├── .gitignore
├── config
├── prod.env
└── dev.env
├── public
└── index.html
├── examples
├── example-client1.js
├── example-client2.js
└── signaling-channel.js
├── LICENSE
├── package.json
├── server.js
├── README.md
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/config/prod.env:
--------------------------------------------------------------------------------
1 | TOKEN="SIGNALING123"
--------------------------------------------------------------------------------
/config/dev.env:
--------------------------------------------------------------------------------
1 | PORT=3030
2 | NODE_ENV=development
3 | TOKEN="SIGNALING123"
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | WebRTC Signaling Server
7 |
8 |
9 | Running well
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/example-client1.js:
--------------------------------------------------------------------------------
1 | const SignalingChannel = require("./signaling-channel");
2 | const peerId = "testPeer1";
3 | // Where the signaling server is hosted, for a local server the port must match the one set in the .env files inside the config directory
4 | const port = process.env.PORT || 3030;
5 | const signalingServerUrl = "http://localhost:" + port;
6 | // Token must match the value defined in the .env filed inside the config directory
7 | const token = "SIGNALING123";
8 |
9 | const channel = new SignalingChannel(peerId, signalingServerUrl, token);
10 | channel.onMessage = (message) => {
11 | console.log(message);
12 | };
13 | channel.connect();
14 | channel.send("Hello from the first peer");
15 | channel.sendTo("testPeer2", { this: "is a test" });
16 |
--------------------------------------------------------------------------------
/examples/example-client2.js:
--------------------------------------------------------------------------------
1 | const SignalingChannel = require("./signaling-channel");
2 | const peerId = "testPeer2";
3 | // Where the signaling server is hosted, for a local server the port must match the one set in the .env files inside the config directory
4 | const port = process.env.PORT || 3030;
5 | const signalingServerUrl = "http://localhost:" + port;
6 | // Token must match the value defined in the .env filed inside the config directory
7 | const token = "SIGNALING123";
8 |
9 | const channel = new SignalingChannel(peerId, signalingServerUrl, token);
10 | channel.onMessage = (message) => {
11 | console.log("A message has been recieved", message);
12 | };
13 | channel.connect();
14 | channel.send({ data: "1234" });
15 | channel.sendTo("testPeer1", { this: "is not a test" });
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Mustafa Al-Janabi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "simple_webrtc_signaling_server",
3 | "version": "1.0.0",
4 | "description": "WebRTC signalling server using Socket.io with option for rooms and deployment instructions",
5 | "main": "server.js",
6 | "repository": "git@github.com:aljanabim/simple_webrtc_signaling_server.git",
7 | "author": "Mustafa Al-Janabi",
8 | "license": "MIT",
9 | "scripts": {
10 | "start": "env-cmd -f ./config/prod.env node server.js",
11 | "dev": "env-cmd -f ./config/dev.env nodemon server.js",
12 | "client1": "nodemon ./examples/example-client1.js",
13 | "client2": "nodemon ./examples/example-client2.js"
14 | },
15 | "dependencies": {
16 | "cors": "^2.8.5",
17 | "express": "^4.17.1",
18 | "sirv": "^1.0.5",
19 | "socket.io": "^4.0.1",
20 | "socket.io-client": "^4.0.1",
21 | "env-cmd": "^10.1.0"
22 | },
23 | "devDependencies": {
24 | "nodemon": "^2.0.4"
25 | },
26 | "keywords": [
27 | "signaling server",
28 | "webrtc",
29 | "peer-to-peer",
30 | "signaling",
31 | "socket.io",
32 | "websocket"
33 | ],
34 | "engines": {
35 | "node": ">=14.x"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/examples/signaling-channel.js:
--------------------------------------------------------------------------------
1 | const io = require("socket.io-client");
2 | // This is a bare minimum example of how one might setup a signaling channel as a class
3 | class SignalingChannel {
4 | constructor(peerId, signalingServerUrl, token) {
5 | this.peerId = peerId;
6 | this.socket = new io(signalingServerUrl, {
7 | auth: { token },
8 | autoConnect: false, // disables auto connection, by default the client would connect to the server as soon as the io() object is instatiated
9 | reconnection: false, // disables auto reconnection, this can occur when for example the host server disconnects. When set to true, the client would keep trying to reconnect
10 | // for a complete list of the available options, see https://socket.io/docs/v4/client-api/#new-Manager-url-options
11 | });
12 | this.onMessage = () => {};
13 | }
14 | connect() {
15 | this.socket.on("connect", () => {
16 | console.log("Connected with id", this.socket.id);
17 | this.socket.emit("ready", this.peerId);
18 | });
19 | this.socket.on("disconnect", () => {
20 | console.log("Disconnected");
21 | });
22 | this.socket.on("connect_error", (error) => {
23 | console.log("Connection error", error.message);
24 | });
25 | this.socket.on("message", this.onMessage);
26 | this.socket.on("uniquenessError", (message) => {
27 | console.error(`Error: ${message.error}`);
28 | // process.exit(1);
29 | });
30 | this.socket.connect();
31 | }
32 | send(message) {
33 | this.socket.emit("message", { from: this.peerId, target: "all", message });
34 | }
35 | sendTo(targetPeerId, message) {
36 | this.socket.emit("messageOne", { from: this.peerId, target: targetPeerId, message });
37 | }
38 | disconnect() {
39 | if (this.socket) {
40 | this.socket.disconnect();
41 | }
42 | }
43 | }
44 |
45 | module.exports = SignalingChannel;
46 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | // IMPORTS
2 | const http = require("http");
3 | const express = require("express");
4 | const socketio = require("socket.io");
5 | const cors = require("cors");
6 | const sirv = require("sirv");
7 |
8 | // ENVIRONMENT VARIABLES
9 | const PORT = process.env.PORT || 3030;
10 | const DEV = process.env.NODE_ENV === "development";
11 | const TOKEN = process.env.TOKEN;
12 |
13 | // SETUP SERVERS
14 | const app = express();
15 | app.use(express.json(), cors());
16 | const server = http.createServer(app);
17 | const io = socketio(server, { cors: {} });
18 |
19 | // AUTHENTICATION MIDDLEWARE
20 | io.use((socket, next) => {
21 | const token = socket.handshake.auth.token; // check the auth token provided by the client upon connection
22 | if (token === TOKEN) {
23 | next();
24 | } else {
25 | next(new Error("Authentication error"));
26 | }
27 | });
28 |
29 | // API ENDPOINT TO DISPLAY THE CONNECTION TO THE SIGNALING SERVER
30 | let connections = {};
31 | app.get("/connections", (req, res) => {
32 | res.json(Object.values(connections));
33 | });
34 |
35 | // MESSAGING LOGIC
36 | io.on("connection", (socket) => {
37 | console.log("User connected with id", socket.id);
38 |
39 | socket.on("ready", (peerId, peerType) => {
40 | // Make sure that the hostname is unique, if the hostname is already in connections, send an error and disconnect
41 | if (peerId in connections) {
42 | socket.emit("uniquenessError", {
43 | message: `${peerId} is already connected to the signalling server. Please change your peer ID and try again.`,
44 | });
45 | socket.disconnect(true);
46 | } else {
47 | console.log(`Added ${peerId} to connections`);
48 | // Let new peer know about all exisiting peers
49 | socket.send({ from: "all", target: peerId, payload: { action: "open", connections: Object.values(connections), bePolite: false } }); // The new peer doesn't need to be polite.
50 | // Create new peer
51 | const newPeer = { socketId: socket.id, peerId, peerType };
52 | // Updates connections object
53 | connections[peerId] = newPeer;
54 | // Let all other peers know about new peer
55 | socket.broadcast.emit("message", {
56 | from: peerId,
57 | target: "all",
58 | payload: { action: "open", connections: [newPeer], bePolite: true }, // send connections object with an array containing the only new peer and make all exisiting peers polite.
59 | });
60 | }
61 | });
62 | socket.on("message", (message) => {
63 | // Send message to all peers expect the sender
64 | socket.broadcast.emit("message", message);
65 | });
66 | socket.on("messageOne", (message) => {
67 | // Send message to a specific targeted peer
68 | const { target } = message;
69 | const targetPeer = connections[target];
70 | if (targetPeer) {
71 | io.to(targetPeer.socketId).emit("message", { ...message });
72 | } else {
73 | console.log(`Target ${target} not found`);
74 | }
75 | });
76 | socket.on("disconnect", () => {
77 | const disconnectingPeer = Object.values(connections).find((peer) => peer.socketId === socket.id);
78 | if (disconnectingPeer) {
79 | console.log("Disconnected", socket.id, "with peerId", disconnectingPeer.peerId);
80 | // Make all peers close their peer channels
81 | socket.broadcast.emit("message", {
82 | from: disconnectingPeer.peerId,
83 | target: "all",
84 | payload: { action: "close", message: "Peer has left the signaling server" },
85 | });
86 | // remove disconnecting peer from connections
87 | delete connections[disconnectingPeer.peerId];
88 | } else {
89 | console.log(socket.id, "has disconnected");
90 | }
91 | });
92 | });
93 |
94 | // SERVE STATIC FILES
95 | app.use(sirv("public", { DEV }));
96 |
97 | // RUN APP
98 | server.listen(PORT, console.log(`Listening on PORT ${PORT}`));
99 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Simple WebRTC Signaling Server
2 |
3 | WebRTC is an evolving technology for peer-to-peer communication on the web. To establish a succesfull WebRTC connection, the peers need to exchange ICE candidates and session description protocol (SDP). This can be done using any method of data transport. Once that connection is established, the peers no longer need to stay connected to the signalling server. Read more [here](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling). In this repository, we will use **socket.io** to implement the simplest possible signaling logic.
4 |
5 | #### Table of Contents
6 |
7 | - [Installation](#Installation)
8 | - [Usage](#Usage)
9 | - [Examples](#Examples)
10 | - [Deployment](#Deployment)
11 | - [API](#API)
12 |
13 | ## Installation
14 |
15 | Make sure to have both [Node.js](https://nodejs.org/en/download/) and [Yarn](https://classic.yarnpkg.com/en/docs/install) installed.
16 |
17 | ```bash
18 | git clone https://github.com/aljanabim/simple_webrtc_signaling_server.git
19 | cd simple_webrtc_signaling_server
20 | yarn install
21 | ```
22 |
23 | ## Usage
24 |
25 | The signaling server can be used in development and in production. You can use it locally to develop your WebRTC logic or deploy it on the web using your deployment service of choice (see [Deployment](##Deployment)) see Deployment. Be sure to checkout [Simple WebRTC Node.js Client](https://github.com/aljanabim/simple_webrtc_nodejs_client) for client implemenation that is compatable with the [API](##API) of this signaling server.
26 |
27 | ### Development
28 |
29 | For **development** signlaing server make sure to update the environment variables, in [/config/dev.env](/config/dev.env), according to your desires. Then run:
30 |
31 | ```bash
32 | yarn dev
33 | ```
34 |
35 | ### Production
36 |
37 | For a **production** signaling server, run
38 |
39 | ```bash
40 | yarn start
41 | ```
42 |
43 | ## Examples
44 |
45 | For an actual implementation of a Node.js WebRTC client that utilizes the API of this signaling server, checkout [Simple WebRTC Node.js Client](https://github.com/aljanabim/simple_webrtc_nodejs_client). Otherwise, you can find starter code for a signaling channel which interacts with the signaling server in [/examples/signaling-channel.js](/examples/signaling-channel.js). To see an **example** of how a client might utilize the signaling server as a signaling channel, run
46 |
47 | ```bash
48 | yarn client1
49 | ```
50 |
51 | and in another terminal window run
52 |
53 | ```bash
54 | yarn client2
55 | ```
56 |
57 | you will see console logs of what the siganling server and the clients are doing, according to the API (see below). All the code for the examples is found in the [/examples](/examples) directory.
58 |
59 | ## Deployment
60 |
61 | You can deploy this signaling server on whichever deployment service you are comfortable with, eg. Heroku, GCP, AWS, Azure, Vercel, Netlify, etc. In this section we will see an example of how to deploy the signaling server on **Heroku**. Follow these steps:
62 |
63 | 1. Do the steps in the **Prerequisites** section in [this](https://devcenter.heroku.com/articles/deploying-nodejs#prerequisites) article and come back once you are done.
64 | 2. In a terminal window run each of the following lines separately (ie. don't copy-paste all the commands at once)
65 |
66 | ```bash
67 | heroku login
68 | heroku create [name]
69 | git push heroku main
70 | heroku open
71 | ```
72 |
73 | The `[name]` argument allows you to give your signaling server a unique name. You can leave out the `[name]` argument to let Heroku generate a random name.
74 |
75 | 3. Save the URL you get in the new browser window, which opens once you run `heroku open`, and use it as the **SIGNALING_SERVER_URL** in [/examples/signaling-channel.js](/examples/signaling-channel.js) or [Simple WebRTC Node.js Client](https://github.com/aljanabim/simple_webrtc_nodejs_client).
76 |
77 | ## API
78 |
79 | The signaling server listens to the following events
80 |
81 | 1. `"connection"`: Fired when a client sucessfully connects to the server.
82 | 2. `"disconnect"`: Fired when the client disconnects from the server. When fired, the message is broadcasted to all other peers in the following format:
83 |
84 | ```javascript
85 | {
86 | from: peerId, // the client that fired the `ready` event
87 | target: "all", // all other clients are informed
88 | payload: { action: "close", message: "Peer has left the signaling server" },
89 | }
90 | ```
91 |
92 | 3. `"message"`: Fired when a client sends a message to the server. When fired, the message is broadcasted to all other clients in the following message format
93 |
94 | ```javascript
95 | {
96 | from: peerId, // id of sender
97 | target: "all", // sent to all other peers,
98 | payload: message, // the content of the message
99 | }
100 | ```
101 |
102 | 4. `"messageOne"`: Fired when a client emits a _messageOne_ event. When fired, the message is broadcasted only to the client that is specified in the message target. The message has the following format
103 |
104 | ```javascript
105 | {
106 | from: peerId, // id of sender
107 | target: targetPeerId, // id of recieving peer,
108 | payload: message, // the content of the message
109 | }
110 | ```
111 |
112 | 5. `"ready"`: Fired when a client emits a _ready_ event. When fired, the client peerId and socketId are added to the object of connections in the server. Furthermore, a message is broadcasted to all already connected clients in the following format:
113 |
114 | ```javascript
115 | {
116 | from: peerId, // the client that fired the `ready` event
117 | target: "all", // all other clients are informed
118 | payload: {
119 | action: "open",
120 | connections: [newPeer],
121 | bePolite: true
122 | }
123 | }
124 | ```
125 |
126 | and the connecting client recieves information about the exising connections in the following format:
127 |
128 | ```javascript
129 | {
130 | from: "all", // all other conneted clients
131 | target: peerId, // the newely connected client
132 | payload: {
133 | action: "open",
134 | connections: Object.values(connections),
135 | bePolite: false
136 | }
137 | }
138 | ```
139 |
140 | ### Connections API
141 |
142 | The server also exposes an API Endpoint which return a JSON object containing all the connections registered in the server. It can be accessed on `[SIGNALING_SERVER_URL]/connections`. Ie. whichever URL is used to indicate where signaling server is hosted, concatenated with "/connections". For localhost at port 3000, this becomes `http://localhost:3000/connections`.
143 |
144 | ---
145 |
146 | Best of Luck with your WebRTC adventures. If you have any feedback, don't hestitate to reach out ☺.
147 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@polka/url@^1.0.0-next.9":
6 | version "1.0.0-next.12"
7 | resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28"
8 | integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==
9 |
10 | "@sindresorhus/is@^0.14.0":
11 | version "0.14.0"
12 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
13 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
14 |
15 | "@szmarczak/http-timer@^1.1.2":
16 | version "1.1.2"
17 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
18 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
19 | dependencies:
20 | defer-to-connect "^1.0.1"
21 |
22 | "@types/component-emitter@^1.2.10":
23 | version "1.2.10"
24 | resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea"
25 | integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==
26 |
27 | "@types/cookie@^0.4.0":
28 | version "0.4.0"
29 | resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108"
30 | integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==
31 |
32 | "@types/cors@^2.8.8":
33 | version "2.8.10"
34 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4"
35 | integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==
36 |
37 | "@types/node@>=10.0.0":
38 | version "15.0.2"
39 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67"
40 | integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==
41 |
42 | abbrev@1:
43 | version "1.1.1"
44 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
45 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
46 |
47 | accepts@~1.3.4, accepts@~1.3.7:
48 | version "1.3.7"
49 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
50 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
51 | dependencies:
52 | mime-types "~2.1.24"
53 | negotiator "0.6.2"
54 |
55 | ansi-align@^3.0.0:
56 | version "3.0.0"
57 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
58 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
59 | dependencies:
60 | string-width "^3.0.0"
61 |
62 | ansi-regex@^4.1.0:
63 | version "4.1.0"
64 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
65 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
66 |
67 | ansi-regex@^5.0.0:
68 | version "5.0.0"
69 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
70 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
71 |
72 | ansi-styles@^4.1.0:
73 | version "4.3.0"
74 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
75 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
76 | dependencies:
77 | color-convert "^2.0.1"
78 |
79 | anymatch@~3.1.1:
80 | version "3.1.2"
81 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
82 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
83 | dependencies:
84 | normalize-path "^3.0.0"
85 | picomatch "^2.0.4"
86 |
87 | array-flatten@1.1.1:
88 | version "1.1.1"
89 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
90 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
91 |
92 | backo2@~1.0.2:
93 | version "1.0.2"
94 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
95 | integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
96 |
97 | balanced-match@^1.0.0:
98 | version "1.0.2"
99 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
100 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
101 |
102 | base64-arraybuffer@0.1.4:
103 | version "0.1.4"
104 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
105 | integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=
106 |
107 | base64id@2.0.0, base64id@~2.0.0:
108 | version "2.0.0"
109 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
110 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
111 |
112 | binary-extensions@^2.0.0:
113 | version "2.2.0"
114 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
115 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
116 |
117 | body-parser@1.19.0:
118 | version "1.19.0"
119 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
120 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
121 | dependencies:
122 | bytes "3.1.0"
123 | content-type "~1.0.4"
124 | debug "2.6.9"
125 | depd "~1.1.2"
126 | http-errors "1.7.2"
127 | iconv-lite "0.4.24"
128 | on-finished "~2.3.0"
129 | qs "6.7.0"
130 | raw-body "2.4.0"
131 | type-is "~1.6.17"
132 |
133 | boxen@^4.2.0:
134 | version "4.2.0"
135 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
136 | integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
137 | dependencies:
138 | ansi-align "^3.0.0"
139 | camelcase "^5.3.1"
140 | chalk "^3.0.0"
141 | cli-boxes "^2.2.0"
142 | string-width "^4.1.0"
143 | term-size "^2.1.0"
144 | type-fest "^0.8.1"
145 | widest-line "^3.1.0"
146 |
147 | brace-expansion@^1.1.7:
148 | version "1.1.11"
149 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
150 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
151 | dependencies:
152 | balanced-match "^1.0.0"
153 | concat-map "0.0.1"
154 |
155 | braces@~3.0.2:
156 | version "3.0.2"
157 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
158 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
159 | dependencies:
160 | fill-range "^7.0.1"
161 |
162 | bytes@3.1.0:
163 | version "3.1.0"
164 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
165 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
166 |
167 | cacheable-request@^6.0.0:
168 | version "6.1.0"
169 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
170 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
171 | dependencies:
172 | clone-response "^1.0.2"
173 | get-stream "^5.1.0"
174 | http-cache-semantics "^4.0.0"
175 | keyv "^3.0.0"
176 | lowercase-keys "^2.0.0"
177 | normalize-url "^4.1.0"
178 | responselike "^1.0.2"
179 |
180 | camelcase@^5.3.1:
181 | version "5.3.1"
182 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
183 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
184 |
185 | chalk@^3.0.0:
186 | version "3.0.0"
187 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
188 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
189 | dependencies:
190 | ansi-styles "^4.1.0"
191 | supports-color "^7.1.0"
192 |
193 | chokidar@^3.2.2:
194 | version "3.5.1"
195 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
196 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
197 | dependencies:
198 | anymatch "~3.1.1"
199 | braces "~3.0.2"
200 | glob-parent "~5.1.0"
201 | is-binary-path "~2.1.0"
202 | is-glob "~4.0.1"
203 | normalize-path "~3.0.0"
204 | readdirp "~3.5.0"
205 | optionalDependencies:
206 | fsevents "~2.3.1"
207 |
208 | ci-info@^2.0.0:
209 | version "2.0.0"
210 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
211 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
212 |
213 | cli-boxes@^2.2.0:
214 | version "2.2.1"
215 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
216 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
217 |
218 | clone-response@^1.0.2:
219 | version "1.0.2"
220 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
221 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
222 | dependencies:
223 | mimic-response "^1.0.0"
224 |
225 | color-convert@^2.0.1:
226 | version "2.0.1"
227 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
228 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
229 | dependencies:
230 | color-name "~1.1.4"
231 |
232 | color-name@~1.1.4:
233 | version "1.1.4"
234 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
235 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
236 |
237 | commander@^4.0.0:
238 | version "4.1.1"
239 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
240 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
241 |
242 | component-emitter@~1.3.0:
243 | version "1.3.0"
244 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
245 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
246 |
247 | concat-map@0.0.1:
248 | version "0.0.1"
249 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
250 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
251 |
252 | configstore@^5.0.1:
253 | version "5.0.1"
254 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
255 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
256 | dependencies:
257 | dot-prop "^5.2.0"
258 | graceful-fs "^4.1.2"
259 | make-dir "^3.0.0"
260 | unique-string "^2.0.0"
261 | write-file-atomic "^3.0.0"
262 | xdg-basedir "^4.0.0"
263 |
264 | content-disposition@0.5.3:
265 | version "0.5.3"
266 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
267 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
268 | dependencies:
269 | safe-buffer "5.1.2"
270 |
271 | content-type@~1.0.4:
272 | version "1.0.4"
273 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
274 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
275 |
276 | cookie-signature@1.0.6:
277 | version "1.0.6"
278 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
279 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
280 |
281 | cookie@0.4.0:
282 | version "0.4.0"
283 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
284 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
285 |
286 | cookie@~0.4.1:
287 | version "0.4.1"
288 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
289 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
290 |
291 | cors@^2.8.5, cors@~2.8.5:
292 | version "2.8.5"
293 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
294 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
295 | dependencies:
296 | object-assign "^4"
297 | vary "^1"
298 |
299 | cross-spawn@^7.0.0:
300 | version "7.0.3"
301 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
302 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
303 | dependencies:
304 | path-key "^3.1.0"
305 | shebang-command "^2.0.0"
306 | which "^2.0.1"
307 |
308 | crypto-random-string@^2.0.0:
309 | version "2.0.0"
310 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
311 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
312 |
313 | debug@2.6.9, debug@^2.2.0:
314 | version "2.6.9"
315 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
316 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
317 | dependencies:
318 | ms "2.0.0"
319 |
320 | debug@^3.2.6:
321 | version "3.2.7"
322 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
323 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
324 | dependencies:
325 | ms "^2.1.1"
326 |
327 | debug@~4.3.1:
328 | version "4.3.1"
329 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
330 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
331 | dependencies:
332 | ms "2.1.2"
333 |
334 | decompress-response@^3.3.0:
335 | version "3.3.0"
336 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
337 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
338 | dependencies:
339 | mimic-response "^1.0.0"
340 |
341 | deep-extend@^0.6.0:
342 | version "0.6.0"
343 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
344 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
345 |
346 | defer-to-connect@^1.0.1:
347 | version "1.1.3"
348 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
349 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
350 |
351 | depd@~1.1.2:
352 | version "1.1.2"
353 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
354 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
355 |
356 | destroy@~1.0.4:
357 | version "1.0.4"
358 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
359 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
360 |
361 | dot-prop@^5.2.0:
362 | version "5.3.0"
363 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
364 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
365 | dependencies:
366 | is-obj "^2.0.0"
367 |
368 | duplexer3@^0.1.4:
369 | version "0.1.4"
370 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
371 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
372 |
373 | ee-first@1.1.1:
374 | version "1.1.1"
375 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
376 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
377 |
378 | emoji-regex@^7.0.1:
379 | version "7.0.3"
380 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
381 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
382 |
383 | emoji-regex@^8.0.0:
384 | version "8.0.0"
385 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
386 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
387 |
388 | encodeurl@~1.0.2:
389 | version "1.0.2"
390 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
391 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
392 |
393 | end-of-stream@^1.1.0:
394 | version "1.4.4"
395 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
396 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
397 | dependencies:
398 | once "^1.4.0"
399 |
400 | engine.io-client@~5.0.0:
401 | version "5.0.1"
402 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-5.0.1.tgz#9470fc6655c9789c5c0aa1a0e7e7d9ae9753a798"
403 | integrity sha512-CQtGN3YwfvbxVwpPugcsHe5rHT4KgT49CEcQppNtu9N7WxbPN0MAG27lGaem7bvtCFtGNLSL+GEqXsFSz36jTg==
404 | dependencies:
405 | base64-arraybuffer "0.1.4"
406 | component-emitter "~1.3.0"
407 | debug "~4.3.1"
408 | engine.io-parser "~4.0.1"
409 | has-cors "1.1.0"
410 | parseqs "0.0.6"
411 | parseuri "0.0.6"
412 | ws "~7.4.2"
413 | yeast "0.1.2"
414 |
415 | engine.io-parser@~4.0.0, engine.io-parser@~4.0.1:
416 | version "4.0.2"
417 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e"
418 | integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==
419 | dependencies:
420 | base64-arraybuffer "0.1.4"
421 |
422 | engine.io@~5.0.0:
423 | version "5.0.0"
424 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.0.0.tgz#470dc94a8a4907fa4d2cd1fa6611426afcee61bf"
425 | integrity sha512-BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==
426 | dependencies:
427 | accepts "~1.3.4"
428 | base64id "2.0.0"
429 | cookie "~0.4.1"
430 | cors "~2.8.5"
431 | debug "~4.3.1"
432 | engine.io-parser "~4.0.0"
433 | ws "~7.4.2"
434 |
435 | env-cmd@^10.1.0:
436 | version "10.1.0"
437 | resolved "https://registry.yarnpkg.com/env-cmd/-/env-cmd-10.1.0.tgz#c7f5d3b550c9519f137fdac4dd8fb6866a8c8c4b"
438 | integrity sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==
439 | dependencies:
440 | commander "^4.0.0"
441 | cross-spawn "^7.0.0"
442 |
443 | escape-goat@^2.0.0:
444 | version "2.1.1"
445 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
446 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
447 |
448 | escape-html@~1.0.3:
449 | version "1.0.3"
450 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
451 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
452 |
453 | etag@~1.8.1:
454 | version "1.8.1"
455 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
456 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
457 |
458 | express@^4.17.1:
459 | version "4.17.1"
460 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
461 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
462 | dependencies:
463 | accepts "~1.3.7"
464 | array-flatten "1.1.1"
465 | body-parser "1.19.0"
466 | content-disposition "0.5.3"
467 | content-type "~1.0.4"
468 | cookie "0.4.0"
469 | cookie-signature "1.0.6"
470 | debug "2.6.9"
471 | depd "~1.1.2"
472 | encodeurl "~1.0.2"
473 | escape-html "~1.0.3"
474 | etag "~1.8.1"
475 | finalhandler "~1.1.2"
476 | fresh "0.5.2"
477 | merge-descriptors "1.0.1"
478 | methods "~1.1.2"
479 | on-finished "~2.3.0"
480 | parseurl "~1.3.3"
481 | path-to-regexp "0.1.7"
482 | proxy-addr "~2.0.5"
483 | qs "6.7.0"
484 | range-parser "~1.2.1"
485 | safe-buffer "5.1.2"
486 | send "0.17.1"
487 | serve-static "1.14.1"
488 | setprototypeof "1.1.1"
489 | statuses "~1.5.0"
490 | type-is "~1.6.18"
491 | utils-merge "1.0.1"
492 | vary "~1.1.2"
493 |
494 | fill-range@^7.0.1:
495 | version "7.0.1"
496 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
497 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
498 | dependencies:
499 | to-regex-range "^5.0.1"
500 |
501 | finalhandler@~1.1.2:
502 | version "1.1.2"
503 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
504 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
505 | dependencies:
506 | debug "2.6.9"
507 | encodeurl "~1.0.2"
508 | escape-html "~1.0.3"
509 | on-finished "~2.3.0"
510 | parseurl "~1.3.3"
511 | statuses "~1.5.0"
512 | unpipe "~1.0.0"
513 |
514 | forwarded@~0.1.2:
515 | version "0.1.2"
516 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
517 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
518 |
519 | fresh@0.5.2:
520 | version "0.5.2"
521 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
522 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
523 |
524 | fsevents@~2.3.1:
525 | version "2.3.2"
526 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
527 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
528 |
529 | get-stream@^4.1.0:
530 | version "4.1.0"
531 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
532 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
533 | dependencies:
534 | pump "^3.0.0"
535 |
536 | get-stream@^5.1.0:
537 | version "5.2.0"
538 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
539 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
540 | dependencies:
541 | pump "^3.0.0"
542 |
543 | glob-parent@~5.1.0:
544 | version "5.1.2"
545 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
546 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
547 | dependencies:
548 | is-glob "^4.0.1"
549 |
550 | global-dirs@^2.0.1:
551 | version "2.1.0"
552 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
553 | integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
554 | dependencies:
555 | ini "1.3.7"
556 |
557 | got@^9.6.0:
558 | version "9.6.0"
559 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
560 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
561 | dependencies:
562 | "@sindresorhus/is" "^0.14.0"
563 | "@szmarczak/http-timer" "^1.1.2"
564 | cacheable-request "^6.0.0"
565 | decompress-response "^3.3.0"
566 | duplexer3 "^0.1.4"
567 | get-stream "^4.1.0"
568 | lowercase-keys "^1.0.1"
569 | mimic-response "^1.0.1"
570 | p-cancelable "^1.0.0"
571 | to-readable-stream "^1.0.0"
572 | url-parse-lax "^3.0.0"
573 |
574 | graceful-fs@^4.1.2:
575 | version "4.2.6"
576 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
577 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
578 |
579 | has-cors@1.1.0:
580 | version "1.1.0"
581 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
582 | integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
583 |
584 | has-flag@^3.0.0:
585 | version "3.0.0"
586 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
587 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
588 |
589 | has-flag@^4.0.0:
590 | version "4.0.0"
591 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
592 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
593 |
594 | has-yarn@^2.1.0:
595 | version "2.1.0"
596 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
597 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
598 |
599 | http-cache-semantics@^4.0.0:
600 | version "4.1.0"
601 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
602 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
603 |
604 | http-errors@1.7.2:
605 | version "1.7.2"
606 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
607 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
608 | dependencies:
609 | depd "~1.1.2"
610 | inherits "2.0.3"
611 | setprototypeof "1.1.1"
612 | statuses ">= 1.5.0 < 2"
613 | toidentifier "1.0.0"
614 |
615 | http-errors@~1.7.2:
616 | version "1.7.3"
617 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
618 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
619 | dependencies:
620 | depd "~1.1.2"
621 | inherits "2.0.4"
622 | setprototypeof "1.1.1"
623 | statuses ">= 1.5.0 < 2"
624 | toidentifier "1.0.0"
625 |
626 | iconv-lite@0.4.24:
627 | version "0.4.24"
628 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
629 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
630 | dependencies:
631 | safer-buffer ">= 2.1.2 < 3"
632 |
633 | ignore-by-default@^1.0.1:
634 | version "1.0.1"
635 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
636 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
637 |
638 | import-lazy@^2.1.0:
639 | version "2.1.0"
640 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
641 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
642 |
643 | imurmurhash@^0.1.4:
644 | version "0.1.4"
645 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
646 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
647 |
648 | inherits@2.0.3:
649 | version "2.0.3"
650 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
651 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
652 |
653 | inherits@2.0.4:
654 | version "2.0.4"
655 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
656 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
657 |
658 | ini@1.3.7:
659 | version "1.3.7"
660 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
661 | integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
662 |
663 | ini@~1.3.0:
664 | version "1.3.8"
665 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
666 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
667 |
668 | ipaddr.js@1.9.1:
669 | version "1.9.1"
670 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
671 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
672 |
673 | is-binary-path@~2.1.0:
674 | version "2.1.0"
675 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
676 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
677 | dependencies:
678 | binary-extensions "^2.0.0"
679 |
680 | is-ci@^2.0.0:
681 | version "2.0.0"
682 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
683 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
684 | dependencies:
685 | ci-info "^2.0.0"
686 |
687 | is-extglob@^2.1.1:
688 | version "2.1.1"
689 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
690 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
691 |
692 | is-fullwidth-code-point@^2.0.0:
693 | version "2.0.0"
694 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
695 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
696 |
697 | is-fullwidth-code-point@^3.0.0:
698 | version "3.0.0"
699 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
700 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
701 |
702 | is-glob@^4.0.1, is-glob@~4.0.1:
703 | version "4.0.1"
704 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
705 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
706 | dependencies:
707 | is-extglob "^2.1.1"
708 |
709 | is-installed-globally@^0.3.1:
710 | version "0.3.2"
711 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
712 | integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
713 | dependencies:
714 | global-dirs "^2.0.1"
715 | is-path-inside "^3.0.1"
716 |
717 | is-npm@^4.0.0:
718 | version "4.0.0"
719 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
720 | integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
721 |
722 | is-number@^7.0.0:
723 | version "7.0.0"
724 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
725 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
726 |
727 | is-obj@^2.0.0:
728 | version "2.0.0"
729 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
730 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
731 |
732 | is-path-inside@^3.0.1:
733 | version "3.0.3"
734 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
735 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
736 |
737 | is-typedarray@^1.0.0:
738 | version "1.0.0"
739 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
740 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
741 |
742 | is-yarn-global@^0.3.0:
743 | version "0.3.0"
744 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
745 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
746 |
747 | isexe@^2.0.0:
748 | version "2.0.0"
749 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
750 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
751 |
752 | json-buffer@3.0.0:
753 | version "3.0.0"
754 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
755 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
756 |
757 | keyv@^3.0.0:
758 | version "3.1.0"
759 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
760 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
761 | dependencies:
762 | json-buffer "3.0.0"
763 |
764 | latest-version@^5.0.0:
765 | version "5.1.0"
766 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
767 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
768 | dependencies:
769 | package-json "^6.3.0"
770 |
771 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
772 | version "1.0.1"
773 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
774 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
775 |
776 | lowercase-keys@^2.0.0:
777 | version "2.0.0"
778 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
779 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
780 |
781 | make-dir@^3.0.0:
782 | version "3.1.0"
783 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
784 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
785 | dependencies:
786 | semver "^6.0.0"
787 |
788 | media-typer@0.3.0:
789 | version "0.3.0"
790 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
791 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
792 |
793 | merge-descriptors@1.0.1:
794 | version "1.0.1"
795 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
796 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
797 |
798 | methods@~1.1.2:
799 | version "1.1.2"
800 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
801 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
802 |
803 | mime-db@1.47.0:
804 | version "1.47.0"
805 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
806 | integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
807 |
808 | mime-types@~2.1.24:
809 | version "2.1.30"
810 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
811 | integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
812 | dependencies:
813 | mime-db "1.47.0"
814 |
815 | mime@1.6.0:
816 | version "1.6.0"
817 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
818 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
819 |
820 | mime@^2.3.1:
821 | version "2.5.2"
822 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
823 | integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
824 |
825 | mimic-response@^1.0.0, mimic-response@^1.0.1:
826 | version "1.0.1"
827 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
828 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
829 |
830 | minimatch@^3.0.4:
831 | version "3.0.4"
832 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
833 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
834 | dependencies:
835 | brace-expansion "^1.1.7"
836 |
837 | minimist@^1.2.0:
838 | version "1.2.5"
839 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
840 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
841 |
842 | ms@2.0.0:
843 | version "2.0.0"
844 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
845 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
846 |
847 | ms@2.1.1:
848 | version "2.1.1"
849 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
850 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
851 |
852 | ms@2.1.2:
853 | version "2.1.2"
854 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
855 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
856 |
857 | ms@^2.1.1:
858 | version "2.1.3"
859 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
860 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
861 |
862 | negotiator@0.6.2:
863 | version "0.6.2"
864 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
865 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
866 |
867 | nodemon@^2.0.4:
868 | version "2.0.7"
869 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32"
870 | integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==
871 | dependencies:
872 | chokidar "^3.2.2"
873 | debug "^3.2.6"
874 | ignore-by-default "^1.0.1"
875 | minimatch "^3.0.4"
876 | pstree.remy "^1.1.7"
877 | semver "^5.7.1"
878 | supports-color "^5.5.0"
879 | touch "^3.1.0"
880 | undefsafe "^2.0.3"
881 | update-notifier "^4.1.0"
882 |
883 | nopt@~1.0.10:
884 | version "1.0.10"
885 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
886 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
887 | dependencies:
888 | abbrev "1"
889 |
890 | normalize-path@^3.0.0, normalize-path@~3.0.0:
891 | version "3.0.0"
892 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
893 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
894 |
895 | normalize-url@^4.1.0:
896 | version "4.5.0"
897 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
898 | integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
899 |
900 | object-assign@^4:
901 | version "4.1.1"
902 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
903 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
904 |
905 | on-finished@~2.3.0:
906 | version "2.3.0"
907 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
908 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
909 | dependencies:
910 | ee-first "1.1.1"
911 |
912 | once@^1.3.1, once@^1.4.0:
913 | version "1.4.0"
914 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
915 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
916 | dependencies:
917 | wrappy "1"
918 |
919 | p-cancelable@^1.0.0:
920 | version "1.1.0"
921 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
922 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
923 |
924 | package-json@^6.3.0:
925 | version "6.5.0"
926 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
927 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
928 | dependencies:
929 | got "^9.6.0"
930 | registry-auth-token "^4.0.0"
931 | registry-url "^5.0.0"
932 | semver "^6.2.0"
933 |
934 | parseqs@0.0.6:
935 | version "0.0.6"
936 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
937 | integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
938 |
939 | parseuri@0.0.6:
940 | version "0.0.6"
941 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
942 | integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
943 |
944 | parseurl@~1.3.3:
945 | version "1.3.3"
946 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
947 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
948 |
949 | path-key@^3.1.0:
950 | version "3.1.1"
951 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
952 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
953 |
954 | path-to-regexp@0.1.7:
955 | version "0.1.7"
956 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
957 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
958 |
959 | picomatch@^2.0.4, picomatch@^2.2.1:
960 | version "2.2.3"
961 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
962 | integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
963 |
964 | prepend-http@^2.0.0:
965 | version "2.0.0"
966 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
967 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
968 |
969 | proxy-addr@~2.0.5:
970 | version "2.0.6"
971 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
972 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
973 | dependencies:
974 | forwarded "~0.1.2"
975 | ipaddr.js "1.9.1"
976 |
977 | pstree.remy@^1.1.7:
978 | version "1.1.8"
979 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
980 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
981 |
982 | pump@^3.0.0:
983 | version "3.0.0"
984 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
985 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
986 | dependencies:
987 | end-of-stream "^1.1.0"
988 | once "^1.3.1"
989 |
990 | pupa@^2.0.1:
991 | version "2.1.1"
992 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
993 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
994 | dependencies:
995 | escape-goat "^2.0.0"
996 |
997 | qs@6.7.0:
998 | version "6.7.0"
999 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
1000 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
1001 |
1002 | range-parser@~1.2.1:
1003 | version "1.2.1"
1004 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
1005 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
1006 |
1007 | raw-body@2.4.0:
1008 | version "2.4.0"
1009 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
1010 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
1011 | dependencies:
1012 | bytes "3.1.0"
1013 | http-errors "1.7.2"
1014 | iconv-lite "0.4.24"
1015 | unpipe "1.0.0"
1016 |
1017 | rc@^1.2.8:
1018 | version "1.2.8"
1019 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
1020 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
1021 | dependencies:
1022 | deep-extend "^0.6.0"
1023 | ini "~1.3.0"
1024 | minimist "^1.2.0"
1025 | strip-json-comments "~2.0.1"
1026 |
1027 | readdirp@~3.5.0:
1028 | version "3.5.0"
1029 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
1030 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
1031 | dependencies:
1032 | picomatch "^2.2.1"
1033 |
1034 | registry-auth-token@^4.0.0:
1035 | version "4.2.1"
1036 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
1037 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
1038 | dependencies:
1039 | rc "^1.2.8"
1040 |
1041 | registry-url@^5.0.0:
1042 | version "5.1.0"
1043 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
1044 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
1045 | dependencies:
1046 | rc "^1.2.8"
1047 |
1048 | responselike@^1.0.2:
1049 | version "1.0.2"
1050 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
1051 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
1052 | dependencies:
1053 | lowercase-keys "^1.0.0"
1054 |
1055 | safe-buffer@5.1.2:
1056 | version "5.1.2"
1057 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1058 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1059 |
1060 | "safer-buffer@>= 2.1.2 < 3":
1061 | version "2.1.2"
1062 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1063 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1064 |
1065 | semver-diff@^3.1.1:
1066 | version "3.1.1"
1067 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
1068 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
1069 | dependencies:
1070 | semver "^6.3.0"
1071 |
1072 | semver@^5.7.1:
1073 | version "5.7.1"
1074 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1075 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1076 |
1077 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
1078 | version "6.3.0"
1079 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1080 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1081 |
1082 | send@0.17.1:
1083 | version "0.17.1"
1084 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
1085 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
1086 | dependencies:
1087 | debug "2.6.9"
1088 | depd "~1.1.2"
1089 | destroy "~1.0.4"
1090 | encodeurl "~1.0.2"
1091 | escape-html "~1.0.3"
1092 | etag "~1.8.1"
1093 | fresh "0.5.2"
1094 | http-errors "~1.7.2"
1095 | mime "1.6.0"
1096 | ms "2.1.1"
1097 | on-finished "~2.3.0"
1098 | range-parser "~1.2.1"
1099 | statuses "~1.5.0"
1100 |
1101 | serve-static@1.14.1:
1102 | version "1.14.1"
1103 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
1104 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
1105 | dependencies:
1106 | encodeurl "~1.0.2"
1107 | escape-html "~1.0.3"
1108 | parseurl "~1.3.3"
1109 | send "0.17.1"
1110 |
1111 | setprototypeof@1.1.1:
1112 | version "1.1.1"
1113 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
1114 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
1115 |
1116 | shebang-command@^2.0.0:
1117 | version "2.0.0"
1118 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1119 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1120 | dependencies:
1121 | shebang-regex "^3.0.0"
1122 |
1123 | shebang-regex@^3.0.0:
1124 | version "3.0.0"
1125 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1126 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1127 |
1128 | signal-exit@^3.0.2:
1129 | version "3.0.3"
1130 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
1131 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1132 |
1133 | sirv@^1.0.5:
1134 | version "1.0.11"
1135 | resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4"
1136 | integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==
1137 | dependencies:
1138 | "@polka/url" "^1.0.0-next.9"
1139 | mime "^2.3.1"
1140 | totalist "^1.0.0"
1141 |
1142 | socket.io-adapter@~2.2.0:
1143 | version "2.2.0"
1144 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz#43af9157c4609e74b8addc6867873ac7eb48fda2"
1145 | integrity sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg==
1146 |
1147 | socket.io-client@^4.0.1:
1148 | version "4.0.1"
1149 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.0.1.tgz#8f3bf4ce9282dda1741a4ed0f726b412944e012b"
1150 | integrity sha512-6AkaEG5zrVuSVW294cH1chioag9i1OqnCYjKwTc3EBGXbnyb98Lw7yMa40ifLjFj3y6fsFKsd0llbUZUCRf3Qw==
1151 | dependencies:
1152 | "@types/component-emitter" "^1.2.10"
1153 | backo2 "~1.0.2"
1154 | component-emitter "~1.3.0"
1155 | debug "~4.3.1"
1156 | engine.io-client "~5.0.0"
1157 | parseuri "0.0.6"
1158 | socket.io-parser "~4.0.4"
1159 |
1160 | socket.io-parser@~4.0.3, socket.io-parser@~4.0.4:
1161 | version "4.0.4"
1162 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0"
1163 | integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==
1164 | dependencies:
1165 | "@types/component-emitter" "^1.2.10"
1166 | component-emitter "~1.3.0"
1167 | debug "~4.3.1"
1168 |
1169 | socket.io@^4.0.1:
1170 | version "4.0.1"
1171 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.0.1.tgz#d2e01cf3780d810b66182b3fbef08a04a4ccf924"
1172 | integrity sha512-g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==
1173 | dependencies:
1174 | "@types/cookie" "^0.4.0"
1175 | "@types/cors" "^2.8.8"
1176 | "@types/node" ">=10.0.0"
1177 | accepts "~1.3.4"
1178 | base64id "~2.0.0"
1179 | debug "~4.3.1"
1180 | engine.io "~5.0.0"
1181 | socket.io-adapter "~2.2.0"
1182 | socket.io-parser "~4.0.3"
1183 |
1184 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
1185 | version "1.5.0"
1186 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
1187 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
1188 |
1189 | string-width@^3.0.0:
1190 | version "3.1.0"
1191 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1192 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1193 | dependencies:
1194 | emoji-regex "^7.0.1"
1195 | is-fullwidth-code-point "^2.0.0"
1196 | strip-ansi "^5.1.0"
1197 |
1198 | string-width@^4.0.0, string-width@^4.1.0:
1199 | version "4.2.2"
1200 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
1201 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
1202 | dependencies:
1203 | emoji-regex "^8.0.0"
1204 | is-fullwidth-code-point "^3.0.0"
1205 | strip-ansi "^6.0.0"
1206 |
1207 | strip-ansi@^5.1.0:
1208 | version "5.2.0"
1209 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1210 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1211 | dependencies:
1212 | ansi-regex "^4.1.0"
1213 |
1214 | strip-ansi@^6.0.0:
1215 | version "6.0.0"
1216 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1217 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
1218 | dependencies:
1219 | ansi-regex "^5.0.0"
1220 |
1221 | strip-json-comments@~2.0.1:
1222 | version "2.0.1"
1223 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1224 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1225 |
1226 | supports-color@^5.5.0:
1227 | version "5.5.0"
1228 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1229 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1230 | dependencies:
1231 | has-flag "^3.0.0"
1232 |
1233 | supports-color@^7.1.0:
1234 | version "7.2.0"
1235 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1236 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1237 | dependencies:
1238 | has-flag "^4.0.0"
1239 |
1240 | term-size@^2.1.0:
1241 | version "2.2.1"
1242 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
1243 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
1244 |
1245 | to-readable-stream@^1.0.0:
1246 | version "1.0.0"
1247 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
1248 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
1249 |
1250 | to-regex-range@^5.0.1:
1251 | version "5.0.1"
1252 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1253 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1254 | dependencies:
1255 | is-number "^7.0.0"
1256 |
1257 | toidentifier@1.0.0:
1258 | version "1.0.0"
1259 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1260 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1261 |
1262 | totalist@^1.0.0:
1263 | version "1.1.0"
1264 | resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
1265 | integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
1266 |
1267 | touch@^3.1.0:
1268 | version "3.1.0"
1269 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
1270 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
1271 | dependencies:
1272 | nopt "~1.0.10"
1273 |
1274 | type-fest@^0.8.1:
1275 | version "0.8.1"
1276 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1277 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
1278 |
1279 | type-is@~1.6.17, type-is@~1.6.18:
1280 | version "1.6.18"
1281 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
1282 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
1283 | dependencies:
1284 | media-typer "0.3.0"
1285 | mime-types "~2.1.24"
1286 |
1287 | typedarray-to-buffer@^3.1.5:
1288 | version "3.1.5"
1289 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
1290 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
1291 | dependencies:
1292 | is-typedarray "^1.0.0"
1293 |
1294 | undefsafe@^2.0.3:
1295 | version "2.0.3"
1296 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
1297 | integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
1298 | dependencies:
1299 | debug "^2.2.0"
1300 |
1301 | unique-string@^2.0.0:
1302 | version "2.0.0"
1303 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
1304 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
1305 | dependencies:
1306 | crypto-random-string "^2.0.0"
1307 |
1308 | unpipe@1.0.0, unpipe@~1.0.0:
1309 | version "1.0.0"
1310 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1311 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
1312 |
1313 | update-notifier@^4.1.0:
1314 | version "4.1.3"
1315 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
1316 | integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
1317 | dependencies:
1318 | boxen "^4.2.0"
1319 | chalk "^3.0.0"
1320 | configstore "^5.0.1"
1321 | has-yarn "^2.1.0"
1322 | import-lazy "^2.1.0"
1323 | is-ci "^2.0.0"
1324 | is-installed-globally "^0.3.1"
1325 | is-npm "^4.0.0"
1326 | is-yarn-global "^0.3.0"
1327 | latest-version "^5.0.0"
1328 | pupa "^2.0.1"
1329 | semver-diff "^3.1.1"
1330 | xdg-basedir "^4.0.0"
1331 |
1332 | url-parse-lax@^3.0.0:
1333 | version "3.0.0"
1334 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
1335 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
1336 | dependencies:
1337 | prepend-http "^2.0.0"
1338 |
1339 | utils-merge@1.0.1:
1340 | version "1.0.1"
1341 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1342 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1343 |
1344 | vary@^1, vary@~1.1.2:
1345 | version "1.1.2"
1346 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1347 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1348 |
1349 | which@^2.0.1:
1350 | version "2.0.2"
1351 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1352 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1353 | dependencies:
1354 | isexe "^2.0.0"
1355 |
1356 | widest-line@^3.1.0:
1357 | version "3.1.0"
1358 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
1359 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
1360 | dependencies:
1361 | string-width "^4.0.0"
1362 |
1363 | wrappy@1:
1364 | version "1.0.2"
1365 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1366 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1367 |
1368 | write-file-atomic@^3.0.0:
1369 | version "3.0.3"
1370 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
1371 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
1372 | dependencies:
1373 | imurmurhash "^0.1.4"
1374 | is-typedarray "^1.0.0"
1375 | signal-exit "^3.0.2"
1376 | typedarray-to-buffer "^3.1.5"
1377 |
1378 | ws@~7.4.2:
1379 | version "7.4.5"
1380 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
1381 | integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
1382 |
1383 | xdg-basedir@^4.0.0:
1384 | version "4.0.0"
1385 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
1386 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
1387 |
1388 | yeast@0.1.2:
1389 | version "0.1.2"
1390 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
1391 | integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
1392 |
--------------------------------------------------------------------------------