├── .gitignore ├── .prettierrc ├── Procfile ├── README.md ├── client ├── .gitignore ├── .prettierrc ├── package.json ├── public │ ├── index.html │ └── manifest.json ├── src │ ├── actions │ │ └── index.ts │ ├── components │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── Game.tsx │ │ ├── Lobby.tsx │ │ └── Scene.tsx │ ├── config │ │ ├── index.ts │ │ └── request.ts │ ├── constants │ │ └── index.tsx │ ├── game │ │ ├── Player.ts │ │ ├── Rival.ts │ │ ├── World.ts │ │ └── routing │ │ │ └── routerService.ts │ ├── index.tsx │ ├── react-app-env.d.ts │ ├── reducers │ │ ├── gameClientReducer.ts │ │ └── index.tsx │ ├── thunks │ │ └── index.ts │ └── types │ │ └── index.tsx ├── tsconfig.json ├── tslint.json └── yarn.lock ├── copyStaticAssets.ts ├── game-screenshot.png ├── lobby-screenshot.png ├── package.json ├── src ├── app.ts ├── constants │ └── index.ts ├── game │ ├── Player.ts │ └── World.ts ├── rooms │ ├── GameRoom.ts │ ├── StateHandler.ts │ └── state │ │ └── PlayerState.ts ├── server.ts └── types │ └── xhr2.d.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .DS_Store 3 | 4 | /node_modules 5 | dist/**/* 6 | yarn-error.log 7 | .env 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "trailingComma": "es5", 4 | "tabWidth": 2, 5 | "semi": true, 6 | "singleQuote": true, 7 | "overrides": [ 8 | { 9 | "files": "*.json", 10 | "options": { 11 | "printWidth": 100 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: yarn serve 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React + BabylonJS + Colyseus (with BabylonJS NullEngine) starter project 2 | 3 | This is a starter project for a realtime 3D multiplayer game with simple rooms lobby. 4 | You can try a live demo [here](https://powerful-shore-32599.herokuapp.com/). 5 | 6 | ![alt text](lobby-screenshot.png) 7 | ![alt text](game-screenshot.png) 8 | 9 | ## Main tech stack 10 | 11 | - [TypeScript](https://github.com/Microsoft/TypeScript) 12 | - [React](https://reactjs.org) 13 | - [BabylonJS](https://github.com/BabylonJS/Babylon.js) 14 | - [Colyseus](https://github.com/colyseus/colyseus) 15 | - [Node.js](https://nodejs.org/) 16 | 17 | ### Server 18 | Server uses authoritative arhitecture provided by [Colyseus](https://github.com/colyseus/colyseus). 19 | Game state authority is given by instance of [BabylonJS NullEngine](https://doc.babylonjs.com/features/nullengine) while Colyseus package synchronizes the state to the clients. 20 | 21 | NullEngine enables you to run Babylon.js on a node server without having to render anything to the screen. That way you can simulate virtual world on each client but also on the server. 22 | 23 | ## How to run locally 24 | After cloning the project, position yourself inside root directory, install dependencies and start local server. 25 | ``` 26 | yarn 27 | yarn watch-debug 28 | ``` 29 | Your server is now listening on [http://localhost:4000](http://localhost:4000). 30 | 31 | To run client code position yourself inside client folder, install dependencies and start react client. 32 | ``` 33 | cd client 34 | yarn 35 | yarn start 36 | ``` 37 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /client/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "trailingComma": "es5", 4 | "tabWidth": 2, 5 | "semi": true, 6 | "singleQuote": true, 7 | "overrides": [ 8 | { 9 | "files": "*.json", 10 | "options": { 11 | "printWidth": 100 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@types/jest": "24.0.9", 7 | "@types/node": "11.10.4", 8 | "@types/react": "16.8.6", 9 | "@types/react-dom": "16.8.2", 10 | "@types/react-redux": "^7.0.1", 11 | "@types/react-router-dom": "^4.3.5", 12 | "axios": "^0.19.0", 13 | "babylonjs": "^4.0.3", 14 | "babylonjs-gui": "^4.0.3", 15 | "cannon": "^0.6.2", 16 | "colyseus.js": "^0.10.6", 17 | "node-sass": "^4.12.0", 18 | "react": "^16.8.3", 19 | "react-dom": "^16.8.3", 20 | "react-redux": "^6.0.1", 21 | "react-router-dom": "^5.0.0", 22 | "react-scripts": "2.1.5", 23 | "redux": "^4.0.1", 24 | "redux-thunk": "^2.3.0", 25 | "semantic-ui-react": "^0.87.2", 26 | "typescript": "3.3.3333" 27 | }, 28 | "scripts": { 29 | "start": "react-scripts start", 30 | "build": "react-scripts build", 31 | "test": "react-scripts test", 32 | "eject": "react-scripts eject", 33 | "lint": "tslint -c tslint.json src/**/*.{ts,tsx}", 34 | "format": "prettier-tslint fix '**/*.ts'" 35 | }, 36 | "eslintConfig": { 37 | "extends": "react-app" 38 | }, 39 | "browserslist": [ 40 | ">0.2%", 41 | "not dead", 42 | "not ie <= 11", 43 | "not op_mini all" 44 | ], 45 | "devDependencies": { 46 | "prettier": "^1.16.4", 47 | "prettier-tslint": "^0.4.2", 48 | "tslint": "^5.13.1", 49 | "tslint-config-prettier": "^1.18.0", 50 | "tslint-react": "^3.6.0", 51 | "typescript-tslint-plugin": "^0.3.1" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /client/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 16 | 17 | 26 | React App 27 | 28 | 29 | 30 |
31 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "theme_color": "#000000", 7 | "background_color": "#ffffff" 8 | } 9 | -------------------------------------------------------------------------------- /client/src/actions/index.ts: -------------------------------------------------------------------------------- 1 | import { Action } from 'redux'; 2 | import * as constants from '../constants'; 3 | import * as Colyseus from 'colyseus.js'; 4 | 5 | export type IActions = 6 | | IAddGameClient 7 | | IRemoveGameClient 8 | 9 | export interface IAddGameClient extends Action { 10 | type: constants.ADD_GAME_CLIENT; 11 | client: Colyseus.Client; 12 | } 13 | 14 | export interface IRemoveGameClient extends Action { 15 | type: constants.REMOVE_GAME_CLIENT; 16 | } 17 | 18 | export function addGameClient(client: Colyseus.Client): IAddGameClient { 19 | return { 20 | type: constants.ADD_GAME_CLIENT, 21 | client, 22 | }; 23 | } 24 | 25 | export function removeGameClient(): IRemoveGameClient { 26 | return { 27 | type: constants.REMOVE_GAME_CLIENT, 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /client/src/components/App.scss: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #root, 4 | .game-wrapper, 5 | .App, 6 | .router-wrapper { 7 | overflow: hidden; 8 | width: 100%; 9 | height: 100%; 10 | margin: 0; 11 | padding: 0; 12 | } 13 | 14 | #renderCanvas { 15 | width: 100%; 16 | height: 100%; 17 | touch-action: none; 18 | } 19 | 20 | .container { 21 | margin-top: 20px !important; 22 | } 23 | 24 | .item.selected { 25 | padding-left: 1% !important; 26 | background-color: rgb(226, 226, 226); 27 | -webkit-box-shadow: 0px 0px 6px 0px rgb(158, 158, 158); 28 | -moz-box-shadow: 0px 0px 6px 0px rgba(189, 189, 189, 1); 29 | box-shadow: 0px 0px 6px 0px rgba(189, 189, 189, 1); 30 | } 31 | -------------------------------------------------------------------------------- /client/src/components/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { BrowserRouter, Route, Switch } from 'react-router-dom'; 3 | import { connect } from 'react-redux'; 4 | import * as Colyseus from 'colyseus.js'; 5 | 6 | import { IRootState } from '../types'; 7 | import Game from './Game'; 8 | import { connectToGameClient } from '../thunks'; 9 | import Lobby from './Lobby'; 10 | 11 | import './App.scss'; 12 | 13 | interface IAppProps { 14 | connectToGameClient: () => void; 15 | client: Colyseus.Client | null, 16 | } 17 | 18 | class App extends Component { 19 | componentDidMount() { 20 | this.props.connectToGameClient(); 21 | } 22 | 23 | render() { 24 | if(!this.props.client) { 25 | return null; 26 | } 27 | return ( 28 |
29 | 30 |
31 | 32 | 37 | 42 | 43 |
44 |
45 |
46 | ); 47 | } 48 | } 49 | 50 | const mapStateToProps = ({ gameClient }: IRootState) => { 51 | return { 52 | client: gameClient.client, 53 | }; 54 | }; 55 | 56 | export default connect( 57 | mapStateToProps, 58 | { connectToGameClient, } 59 | )(App); 60 | -------------------------------------------------------------------------------- /client/src/components/Game.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import * as Colyseus from 'colyseus.js'; 3 | import { connect } from 'react-redux'; 4 | 5 | import BabylonScene, { ISceneEventArgs } from './Scene'; 6 | import { RouterService } from '../game/routing/routerService'; 7 | import { World } from '../game/World'; 8 | import { IRootState } from '../types'; 9 | 10 | export interface IGameProps { 11 | client: Colyseus.Client | null; 12 | match: { params: { roomId: string } }; 13 | } 14 | 15 | class PageWithScene extends React.Component { 16 | 17 | private world!: World; 18 | private routerService!: RouterService 19 | 20 | onSceneMount = (args: ISceneEventArgs) => { 21 | this.world = new World(args); 22 | this.world.run(); 23 | this.routerService = new RouterService( 24 | this.props.client as Colyseus.Client, 25 | this.world, 26 | this.props.match.params.roomId 27 | ); 28 | this.routerService.connect(); 29 | this.world.associateRouterService(this.routerService); 30 | }; 31 | 32 | componentWillUnmount() { 33 | this.routerService.room.leave(); 34 | } 35 | 36 | render() { 37 | return ( 38 |
39 | 45 |
46 | 47 | ); 48 | } 49 | } 50 | 51 | const mapStateToProps = ({ gameClient }: IRootState) => { 52 | return { 53 | client: gameClient.client, 54 | }; 55 | }; 56 | 57 | export default connect( 58 | mapStateToProps, 59 | null 60 | )(PageWithScene); 61 | -------------------------------------------------------------------------------- /client/src/components/Lobby.tsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { Client } from 'colyseus.js'; 3 | import { connect } from 'react-redux'; 4 | import { Link } from 'react-router-dom'; 5 | 6 | import { IRootState } from '../types'; 7 | 8 | export interface ILobbyProps { 9 | client: Client | null; 10 | } 11 | 12 | class Lobby extends Component { 13 | state = { availableRooms: [], selectedRoom: undefined }; 14 | 15 | private checkRoomsInterval!: NodeJS.Timeout; 16 | 17 | componentDidMount() { 18 | this.checkRoomsInterval = setInterval(this.getAvailableRooms, 3000); 19 | this.getAvailableRooms(); 20 | } 21 | 22 | getAvailableRooms = () => { 23 | if (this.props.client) { 24 | (this.props.client as Client).getAvailableRooms('game', rooms => { 25 | if (rooms) { 26 | this.setState({ availableRooms: rooms }); 27 | } 28 | }); 29 | } 30 | }; 31 | 32 | componentWillUnmount() { 33 | clearInterval(this.checkRoomsInterval); 34 | } 35 | 36 | selectRoom = (roomId: string) => { 37 | this.setState({ selectedRoom: roomId }); 38 | }; 39 | 40 | renderAvailableRooms() { 41 | const rooms = this.state.availableRooms; 42 | if (rooms.length === 0) { 43 | return
It seems no one is playing at the moment.
; 44 | } 45 | return rooms.map((room: any) => { 46 | const selected = room.roomId === this.state.selectedRoom; 47 | return ( 48 |
this.selectRoom(room.roomId)} 52 | > 53 | {selected && ( 54 |
55 | 56 |
Join
57 | 58 |
59 | )} 60 |
61 |
{room.roomId}
62 |
63 | {room.clients}/{room.maxClients} 64 |
65 |
66 |
67 | ); 68 | }); 69 | } 70 | 71 | render() { 72 | return ( 73 |
74 |
75 |

76 | 77 |
78 | Available rooms 79 |
Choose one to join
80 |
81 |

82 |
{this.renderAvailableRooms()}
83 | 84 |
Create new room
85 | 86 |
87 |
88 | ); 89 | } 90 | } 91 | 92 | const mapStateToProps = ({ gameClient }: IRootState) => { 93 | return { 94 | client: gameClient.client, 95 | }; 96 | }; 97 | 98 | export default connect( 99 | mapStateToProps, 100 | null 101 | )(Lobby); 102 | -------------------------------------------------------------------------------- /client/src/components/Scene.tsx: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | import React, { Component } from 'react'; 3 | 4 | export interface ISceneEventArgs { 5 | engine: BABYLON.Engine; 6 | scene: BABYLON.Scene; 7 | canvas: HTMLCanvasElement | null; 8 | } 9 | 10 | export interface ISceneProps { 11 | engineOptions?: BABYLON.EngineOptions; 12 | adaptToDeviceRatio?: boolean; 13 | onSceneMount?: (args: ISceneEventArgs) => void; 14 | width?: string; 15 | height?: string; 16 | } 17 | 18 | export default class Scene extends Component< 19 | ISceneProps & React.HTMLAttributes, 20 | {} 21 | > { 22 | private scene: BABYLON.Scene | null; 23 | private engine: BABYLON.Engine | null; 24 | private canvas: React.RefObject; 25 | 26 | constructor(props: ISceneProps) { 27 | super(props); 28 | this.scene = null; 29 | this.engine = null; 30 | this.canvas = React.createRef(); 31 | } 32 | 33 | onResizeWindow = () => { 34 | if (this.engine) { 35 | this.engine.resize(); 36 | } 37 | }; 38 | 39 | shouldComponentUpdate(nextProps: ISceneProps, nextState: {}) { 40 | return false; 41 | } 42 | 43 | componentDidMount() { 44 | this.engine = new BABYLON.Engine( 45 | this.canvas.current, 46 | true, 47 | this.props.engineOptions, 48 | this.props.adaptToDeviceRatio 49 | ); 50 | 51 | this.scene = new BABYLON.Scene(this.engine); 52 | 53 | if (typeof this.props.onSceneMount === 'function') { 54 | this.props.onSceneMount({ 55 | scene: this.scene, 56 | engine: this.engine, 57 | canvas: this.canvas.current, 58 | }); 59 | } else { 60 | console.error('onSceneMount function not available'); 61 | } 62 | 63 | // Resize the babylon engine when the window is resized 64 | window.addEventListener('resize', this.onResizeWindow); 65 | } 66 | 67 | componentWillUnmount() { 68 | window.removeEventListener('resize', this.onResizeWindow); 69 | (this.scene as BABYLON.Scene).dispose(); 70 | (this.engine as BABYLON.Engine).dispose(); 71 | } 72 | 73 | render() { 74 | // 'rest' can contain additional properties that you can flow through to canvas: 75 | // (id, className, etc.) 76 | const { width, height, ...rest } = this.props; 77 | 78 | const opts: any = {}; 79 | 80 | if (width !== undefined && height !== undefined) { 81 | opts.width = width; 82 | opts.height = height; 83 | } 84 | 85 | return ; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /client/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export const GAME_API_BASE_URL = 'http://localhost:4000'; 2 | -------------------------------------------------------------------------------- /client/src/config/request.ts: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | 3 | import { GAME_API_BASE_URL } from './index'; 4 | 5 | export const gameAPI = axios.create({ 6 | baseURL: GAME_API_BASE_URL, 7 | headers: { 8 | 'Content-Type': 'application/json', 9 | Accept: 'application/json', 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /client/src/constants/index.tsx: -------------------------------------------------------------------------------- 1 | export const ADD_GAME_CLIENT = 'ADD_GAME_CLIENT'; 2 | export type ADD_GAME_CLIENT = typeof ADD_GAME_CLIENT; 3 | 4 | export const REMOVE_GAME_CLIENT = 'REMOVE_GAME_CLIENT'; 5 | export type REMOVE_GAME_CLIENT = typeof REMOVE_GAME_CLIENT; 6 | 7 | export enum GameStatus { 8 | ONGOING = 'ong', 9 | WIN = 'win', 10 | LOSE = 'los', 11 | OVER = 'ovr', 12 | } 13 | 14 | export enum MessageType { 15 | PLAYER_MOVEMENT = 'move' 16 | } 17 | -------------------------------------------------------------------------------- /client/src/game/Player.ts: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | import { RouterService } from './routing/routerService'; 3 | 4 | export const LEFT: [number, string] = [65, 'a']; 5 | export const RIGHT: [number, string] = [68, 'd']; 6 | export const UP: [number, string] = [87, 'w']; 7 | export const DOWN: [number, string] = [83, 's']; 8 | 9 | export class Player { 10 | private scene: BABYLON.Scene; 11 | private keyDown: any = {}; 12 | private keyFired: any = {}; 13 | speed: number = 0.3; 14 | camera!: BABYLON.UniversalCamera; 15 | 16 | constructor(scene: BABYLON.Scene) { 17 | this.scene = scene; 18 | } 19 | 20 | init(position: BABYLON.Vector3) { 21 | this.camera = new BABYLON.UniversalCamera('player', position, this.scene); 22 | this.camera.speed = this.speed; 23 | this.camera.applyGravity = true; 24 | this.camera.ellipsoid = new BABYLON.Vector3(1, 0.75, 1); 25 | this.camera.checkCollisions = true; 26 | this.camera.keysUp = [UP[0]]; // w 27 | this.camera.keysDown = [DOWN[0]]; // S 28 | this.camera.keysLeft = [LEFT[0]]; // A 29 | this.camera.keysRight = [RIGHT[0]]; // D 30 | this.camera.setTarget(BABYLON.Vector3.Zero()); 31 | this.scene.activeCamera = this.camera; 32 | 33 | // This attaches the camera to the canvas 34 | this.camera.attachControl( 35 | this.scene.getEngine().getRenderingCanvas() as HTMLCanvasElement, 36 | true 37 | ); 38 | } 39 | 40 | private keyDownEvt(keyCode: number) { 41 | if (!this.keyFired[keyCode]) { 42 | this.keyDown[keyCode] = true; 43 | this.keyFired[keyCode] = true; 44 | } 45 | } 46 | 47 | private keyUpEvt(keyCode: number) { 48 | this.keyDown[keyCode] = false; 49 | this.keyFired[keyCode] = false; 50 | } 51 | 52 | setupControls(sceneActionManager: BABYLON.ActionManager) { 53 | [LEFT, RIGHT, UP, DOWN].forEach((control: [number, string]) => { 54 | sceneActionManager.registerAction( 55 | new BABYLON.ExecuteCodeAction( 56 | { 57 | trigger: BABYLON.ActionManager.OnKeyUpTrigger, 58 | parameter: control[1], 59 | }, 60 | () => this.keyUpEvt(control[0]) 61 | ) 62 | ); 63 | sceneActionManager.registerAction( 64 | new BABYLON.ExecuteCodeAction( 65 | { 66 | trigger: BABYLON.ActionManager.OnKeyDownTrigger, 67 | parameter: control[1], 68 | }, 69 | () => this.keyDownEvt(control[0]) 70 | ) 71 | ); 72 | }); 73 | } 74 | 75 | sendMovement(router: RouterService) { 76 | if ( 77 | this.keyDown[UP[0]] || 78 | this.keyDown[DOWN[0]] || 79 | this.keyDown[LEFT[0]] || 80 | this.keyDown[RIGHT[0]] 81 | ) { 82 | const direction: BABYLON.Vector3 = this.camera 83 | .getFrontPosition(1) 84 | .subtract(this.camera.position); 85 | router.sendMovement( 86 | new BABYLON.Vector2(direction.x, direction.z).normalize(), 87 | this.keyDown[UP[0]], 88 | this.keyDown[DOWN[0]], 89 | this.keyDown[LEFT[0]], 90 | this.keyDown[RIGHT[0]] 91 | ); 92 | } 93 | } 94 | 95 | update(position: BABYLON.Vector3) { 96 | this.camera.position.x = position.x; 97 | this.camera.position.z = position.z; 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /client/src/game/Rival.ts: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | 3 | export class Rival { 4 | private scene: BABYLON.Scene; 5 | id: string; 6 | mesh: BABYLON.Mesh; 7 | 8 | constructor(scene: BABYLON.Scene, id: string) { 9 | this.scene = scene; 10 | this.id = id; 11 | this.mesh = BABYLON.Mesh.CreateSphere(id, 16, 2, this.scene); 12 | } 13 | 14 | init(position: BABYLON.Vector3) { 15 | this.mesh.position = position; 16 | } 17 | 18 | update(position: BABYLON.Vector3) { 19 | this.mesh.position = position; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /client/src/game/World.ts: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | 3 | import { Player } from './Player'; 4 | import { Rival } from './Rival'; 5 | 6 | import { ISceneEventArgs } from '../components/Scene'; 7 | import { RouterService } from './routing/routerService'; 8 | 9 | export class World { 10 | private canvas: HTMLCanvasElement; 11 | private engine: BABYLON.Engine; 12 | private scene: BABYLON.Scene; 13 | 14 | player!: Player; 15 | private rivals: { [id: string]: Rival } = {}; 16 | private routerService!: RouterService 17 | 18 | constructor(args: ISceneEventArgs) { 19 | this.canvas = args.canvas as HTMLCanvasElement 20 | this.engine = args.engine 21 | this.scene = args.scene 22 | } 23 | 24 | run() { 25 | this.scene.actionManager = new BABYLON.ActionManager(this.scene); 26 | 27 | const ground = BABYLON.MeshBuilder.CreateGround("ground", {width: 100, height: 100}, this.scene); 28 | ground.checkCollisions = true; 29 | 30 | this.player = new Player(this.scene); 31 | this.player.init(new BABYLON.Vector3(0, 1, 0)); 32 | this.player.setupControls(this.scene.actionManager as BABYLON.ActionManager) 33 | 34 | const light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), this.scene); 35 | light.intensity = 0.7; 36 | 37 | 38 | this.engine.runRenderLoop(() => { 39 | if(this.player && this.routerService) { 40 | this.player.sendMovement(this.routerService); 41 | } 42 | if (this.scene) { 43 | this.scene.render(); 44 | } 45 | }); 46 | } 47 | 48 | associateRouterService(routerService: RouterService) { 49 | this.routerService = routerService; 50 | } 51 | 52 | addRival(key: string, position: BABYLON.Vector3) { 53 | const newRival = new Rival(this.scene, key); 54 | newRival.init(position); 55 | this.rivals[key] = newRival; 56 | } 57 | 58 | removeRival(key: string) { 59 | const rival = this.rivals[key]; 60 | if (rival) { 61 | rival.mesh.dispose(); 62 | delete this.rivals[key]; 63 | } 64 | } 65 | 66 | updateRival(key: string, position: BABYLON.Vector3) { 67 | this.rivals[key].update(position); 68 | } 69 | 70 | updatePlayer(key: string, position: BABYLON.Vector3) { 71 | this.player.update(position); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /client/src/game/routing/routerService.ts: -------------------------------------------------------------------------------- 1 | import * as Colyseus from 'colyseus.js'; 2 | import * as BABYLON from 'babylonjs'; 3 | 4 | import { World } from '../World'; 5 | 6 | import { MessageType } from '../../constants'; 7 | 8 | export class RouterService { 9 | client: Colyseus.Client; 10 | roomId: string; 11 | world: World; 12 | room!: Colyseus.Room; 13 | 14 | constructor(client: Colyseus.Client, world: World, roomId: string) { 15 | this.client = client; 16 | this.roomId = roomId === 'new' ? 'game' : roomId; 17 | this.world = world; 18 | } 19 | 20 | connect() { 21 | this.room = this.client.join(this.roomId, { create: this.roomId === 'game' }); 22 | this.room.onJoin.add(() => { 23 | console.log('client joined successfully'); 24 | this.setupMessageListeners(); 25 | }); 26 | } 27 | 28 | private setupMessageListeners() { 29 | this.room.state.players.onAdd = (player: any, key: string) => { 30 | console.log(player, 'player was added'); 31 | if (key !== this.room.sessionId) { 32 | this.world.addRival(key, new BABYLON.Vector3(player.x, 1, player.y)); 33 | } 34 | }; 35 | 36 | this.room.state.players.onChange = (player: any, key: string) => { 37 | if(key === this.room.sessionId) { 38 | this.world.updatePlayer(key, new BABYLON.Vector3(player.x, 1, player.y)); 39 | } else { 40 | this.world.updateRival(key, new BABYLON.Vector3(player.x, 1, player.y)); 41 | } 42 | }; 43 | 44 | this.room.state.players.onRemove = (player: any, key: string) => { 45 | this.world.removeRival(key); 46 | }; 47 | } 48 | 49 | sendMovement( 50 | direction: BABYLON.Vector2, 51 | keyUp: boolean, 52 | keyDown: boolean, 53 | keyLeft: boolean, 54 | keyRight: boolean 55 | ) { 56 | this.room.send({ 57 | type: MessageType.PLAYER_MOVEMENT, 58 | data: { direction, keyUp, keyDown, keyLeft, keyRight }, 59 | }); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import { Provider } from 'react-redux'; 4 | import { applyMiddleware, compose, createStore } from 'redux'; 5 | import reduxThunk, { ThunkMiddleware } from 'redux-thunk'; 6 | 7 | import App from './components/App'; 8 | import reducers from './reducers'; 9 | import { IRootState } from './types'; 10 | import { IActions } from './actions'; 11 | 12 | const windowIfDefined = typeof window === 'undefined' ? null : (window as any); 13 | const composeEnhancers = windowIfDefined.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; 14 | const store = createStore( 15 | reducers, 16 | composeEnhancers(applyMiddleware(reduxThunk as ThunkMiddleware)) 17 | ); 18 | 19 | ReactDOM.render( 20 | 21 | 22 | , 23 | document.getElementById('root') as HTMLElement 24 | ); 25 | -------------------------------------------------------------------------------- /client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /client/src/reducers/gameClientReducer.ts: -------------------------------------------------------------------------------- 1 | import { IActions } from '../actions'; 2 | import { IClientState } from '../types/index'; 3 | import { ADD_GAME_CLIENT, REMOVE_GAME_CLIENT } from '../constants/index'; 4 | import { Reducer } from 'redux'; 5 | 6 | export const gameClient: Reducer = (state = { client: null }, action) => { 7 | switch (action.type) { 8 | case ADD_GAME_CLIENT: 9 | return { client: action.client }; 10 | case REMOVE_GAME_CLIENT: 11 | if (state.client) { 12 | state.client.close(); 13 | } 14 | return { client: null }; 15 | } 16 | return state; 17 | }; 18 | -------------------------------------------------------------------------------- /client/src/reducers/index.tsx: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import { gameClient } from './gameClientReducer'; 3 | 4 | export default combineReducers({ 5 | gameClient, 6 | }); 7 | -------------------------------------------------------------------------------- /client/src/thunks/index.ts: -------------------------------------------------------------------------------- 1 | import * as Colyseus from 'colyseus.js'; 2 | import { addGameClient } from '../actions'; 3 | import { Dispatch } from 'redux'; 4 | import { ThunkAction } from 'redux-thunk'; 5 | import { IRootState } from '../types'; 6 | import { IActions } from '../actions'; 7 | 8 | export type ThunkResult = ThunkAction; 9 | 10 | export const connectToGameClient = (): ThunkResult => { 11 | return async (dispatch: Dispatch) => { 12 | const gameServerUrl = process.env.NODE_ENV === 'development' ? 'ws://localhost:4000' : process.env.REACT_APP_GAME_SERVER_URL; 13 | const client = new Colyseus.Client(gameServerUrl as string); 14 | await dispatch(addGameClient(client)); 15 | }; 16 | }; 17 | -------------------------------------------------------------------------------- /client/src/types/index.tsx: -------------------------------------------------------------------------------- 1 | import * as Colyseus from 'colyseus.js'; 2 | 3 | export interface IClientState { 4 | client: Colyseus.Client | null; 5 | } 6 | 7 | export interface IRootState { 8 | gameClient: IClientState; 9 | } 10 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "plugins": [ 6 | { 7 | "name": "typescript-tslint-plugin" 8 | } 9 | ], 10 | "allowJs": true, 11 | "skipLibCheck": true, 12 | "esModuleInterop": true, 13 | "allowSyntheticDefaultImports": true, 14 | "strict": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "module": "esnext", 17 | "moduleResolution": "node", 18 | "resolveJsonModule": true, 19 | "isolatedModules": true, 20 | "noEmit": true, 21 | "jsx": "preserve" 22 | }, 23 | "include": ["src"], 24 | "types": ["babylonjs", "babylonjs-gui"] 25 | } 26 | -------------------------------------------------------------------------------- /client/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], 3 | "rules": { 4 | "member-access": [true, "no-public"], 5 | "no-console": [false], 6 | "object-literal-sort-keys": [false], 7 | "ordered-imports": [false], 8 | "member-ordering": false, 9 | "radix": false, 10 | "jsx-no-lambda": false 11 | }, 12 | "linterOptions": { 13 | "exclude": ["config/**/*.js", "node_modules/**/*.ts"] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /copyStaticAssets.ts: -------------------------------------------------------------------------------- 1 | import * as shell from 'shelljs'; 2 | 3 | shell.cp('-R', 'src/public/js/lib', 'dist/public/js/'); 4 | shell.cp('-R', 'src/public/fonts', 'dist/public/'); 5 | shell.cp('-R', 'src/public/images', 'dist/public/'); 6 | shell.cp('-R', 'src/public/assets', 'dist/public/assets'); 7 | -------------------------------------------------------------------------------- /game-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creationspirit/multiplayer-browser-game-boilerplate/ce4ccd95f096a018558e411709ef7e5f0155741b/game-screenshot.png -------------------------------------------------------------------------------- /lobby-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creationspirit/multiplayer-browser-game-boilerplate/ce4ccd95f096a018558e411709ef7e5f0155741b/lobby-screenshot.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "scripts": { 6 | "start": "yarn serve", 7 | "build": "yarn build-ts && yarn tslint && yarn copy-static-assets", 8 | "serve": "node dist/server.js", 9 | "watch-node": "nodemon dist/server.js", 10 | "watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"cyan.bold,green.bold\" \"yarn watch-ts\" \"yarn watch-node\"", 11 | "build-ts": "tsc", 12 | "watch-ts": "tsc -w", 13 | "tslint": "tslint -c tslint.json -p tsconfig.json", 14 | "copy-static-assets": "ts-node copyStaticAssets.ts", 15 | "debug": "yarn build && yarn watch-debug", 16 | "serve-debug": "nodemon --inspect dist/server.js", 17 | "watch-debug": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"cyan.bold,green.bold\" \"yarn watch-ts\" \"yarn serve-debug\"", 18 | "heroku-postbuild": "yarn build && cd client && yarn && yarn build" 19 | }, 20 | "engines": { 21 | "node": "10.x" 22 | }, 23 | "dependencies": { 24 | "@colyseus/monitor": "^0.10.0", 25 | "axios": "^0.19.0", 26 | "babylonjs": "^4.0.3", 27 | "body-parser": "^1.19.0", 28 | "colyseus": "^0.10.7", 29 | "cors": "^2.8.5", 30 | "dotenv": "^8.0.0", 31 | "express": "^4.16.4", 32 | "morgan": "^1.9.1", 33 | "xhr2": "^0.2.0" 34 | }, 35 | "devDependencies": { 36 | "@types/body-parser": "^1.17.0", 37 | "@types/cors": "^2.8.5", 38 | "@types/dotenv": "^6.1.1", 39 | "@types/express": "^4.16.1", 40 | "@types/morgan": "^1.7.35", 41 | "@types/node": "^12.0.2", 42 | "@types/shelljs": "^0.8.5", 43 | "concurrently": "^4.1.0", 44 | "nodemon": "^1.19.0", 45 | "shelljs": "^0.8.3", 46 | "ts-node": "^8.1.0", 47 | "tslint": "^5.16.0", 48 | "tslint-config-prettier": "^1.18.0", 49 | "typescript": "^3.4.5", 50 | "typescript-tslint-plugin": "^0.3.1" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/app.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | 3 | import bodyParser from 'body-parser'; 4 | import express from 'express'; 5 | import morgan from 'morgan'; 6 | import cors from 'cors'; 7 | 8 | // Create Express server 9 | const app = express(); 10 | 11 | app.set('port', process.env.PORT || 4000); 12 | app.use(express.static(path.join(__dirname, '/../client/build'))); 13 | 14 | app.use(bodyParser.json()); 15 | app.use(bodyParser.urlencoded({ extended: true })); 16 | 17 | app.use(morgan('combined')); 18 | 19 | app.use(cors()); 20 | 21 | app.get('/', (req, res) => { 22 | res.sendFile(path.join(__dirname, '/../client/build/index.html')); 23 | }); 24 | 25 | export default app; 26 | -------------------------------------------------------------------------------- /src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export enum MessageType { 2 | PLAYER_MOVEMENT = 'move' 3 | } 4 | -------------------------------------------------------------------------------- /src/game/Player.ts: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | 3 | export class Player { 4 | private scene: BABYLON.Scene; 5 | speed: number = 0.15; 6 | playerMesh!: BABYLON.Mesh; 7 | actionTriggerBox!: BABYLON.Mesh; 8 | id: string; 9 | 10 | constructor(scene: BABYLON.Scene, id: string) { 11 | this.scene = scene; 12 | this.id = id; 13 | } 14 | 15 | init(position: BABYLON.Vector3) { 16 | this.playerMesh = BABYLON.MeshBuilder.CreateSphere( 17 | `player_${this.id}`, 18 | { diameterX: 1, diameterY: 0.75, diameterZ: 1 }, 19 | this.scene 20 | ); 21 | this.playerMesh.checkCollisions = true; 22 | this.playerMesh.position = position; 23 | 24 | // This mesh is used to trigger actions on intersection 25 | this.actionTriggerBox = BABYLON.MeshBuilder.CreateBox('collider', { size: 1 }, this.scene); 26 | this.actionTriggerBox.parent = this.playerMesh; 27 | this.actionTriggerBox.actionManager = new BABYLON.ActionManager(this.scene); 28 | } 29 | 30 | getActionManager() { 31 | return this.actionTriggerBox.actionManager as BABYLON.ActionManager; 32 | } 33 | 34 | applyMovement(data: any) { 35 | const direction = data.direction; 36 | const up = new BABYLON.Vector2(direction.x, direction.y); 37 | const down = new BABYLON.Vector2(-direction.x, -direction.y); 38 | const left = new BABYLON.Vector2(-direction.y, direction.x); 39 | const right = new BABYLON.Vector2(direction.y, -direction.x); 40 | 41 | let moveDir = new BABYLON.Vector2(0, 0); 42 | if (data.keyUp) { 43 | moveDir.addInPlace(up); 44 | } 45 | if (data.keyDown) { 46 | moveDir.addInPlace(down); 47 | } 48 | if (data.keyLeft) { 49 | moveDir.addInPlace(left); 50 | } 51 | if (data.keyRight) { 52 | moveDir.addInPlace(right); 53 | } 54 | moveDir = moveDir.normalize(); 55 | moveDir.scaleInPlace(this.speed); 56 | this.playerMesh.moveWithCollisions(new BABYLON.Vector3(moveDir.x, 0, moveDir.y)); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/game/World.ts: -------------------------------------------------------------------------------- 1 | import * as BABYLON from 'babylonjs'; 2 | 3 | import { Player } from './Player'; 4 | import { XMLHttpRequest } from 'xhr2'; 5 | 6 | (global as any).XMLHttpRequest = XMLHttpRequest; 7 | 8 | export class World { 9 | private engine: BABYLON.Engine; 10 | private scene: BABYLON.Scene; 11 | 12 | players: { [id: string]: Player } = {}; 13 | 14 | constructor() { 15 | this.engine = new BABYLON.NullEngine(); 16 | this.scene = new BABYLON.Scene(this.engine); 17 | } 18 | 19 | init() { 20 | this.scene.gravity = new BABYLON.Vector3(0, -5, 0); 21 | this.scene.collisionsEnabled = true; 22 | 23 | const camera = new BABYLON.ArcRotateCamera( 24 | 'Camera', 25 | 0, 26 | 0.8, 27 | 100, 28 | BABYLON.Vector3.Zero(), 29 | this.scene 30 | ); 31 | 32 | const ground = BABYLON.Mesh.CreateGround("ground1", 6, 6, 2, this.scene); 33 | ground.checkCollisions = true; 34 | 35 | this.engine.runRenderLoop(() => { 36 | if (this.scene) { 37 | this.scene.render(); 38 | } 39 | }); 40 | } 41 | 42 | createPlayer(id: string): void { 43 | const player = new Player(this.scene, id); 44 | const position = new BABYLON.Vector3(this.getRandomNum(-2, 2), 1, this.getRandomNum(-2, 2)) 45 | player.init(position); 46 | 47 | this.players[id] = player; 48 | } 49 | 50 | removePlayer(id: string) { 51 | const player: Player = this.players[id]; 52 | if (player !== undefined) { 53 | player.playerMesh.dispose(); 54 | } 55 | delete this.players[id]; 56 | } 57 | 58 | dispose() { 59 | this.scene.dispose(); 60 | } 61 | 62 | private getRandomNum(min: number, max: number): number { 63 | return Math.random() * (max - min) + min; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/rooms/GameRoom.ts: -------------------------------------------------------------------------------- 1 | import { Room, Client } from 'colyseus'; 2 | 3 | import { StateHandler } from './StateHandler'; 4 | import { PlayerState } from './state/PlayerState'; 5 | import { World } from '../game/World'; 6 | 7 | import { MessageType } from '../constants' 8 | 9 | export class GameRoom extends Room { 10 | maxClients = 4; 11 | 12 | private world!: World; 13 | 14 | // When room is initialized 15 | onInit(options: any) { 16 | 17 | this.world = new World(); 18 | this.world.init(); 19 | 20 | console.log('World is initialized'); 21 | 22 | this.setSimulationInterval(() => this.onUpdate()); 23 | this.setState(new StateHandler()); 24 | } 25 | 26 | // Checks if a new client is allowed to join. 27 | requestJoin(options: any, isNew: boolean) { 28 | return options.create ? options.create && isNew : this.clients.length > 0; 29 | } 30 | 31 | // Authorize client based on provided options before WebSocket handshake is complete 32 | async onAuth(options: any) { 33 | return true; 34 | } 35 | 36 | // When client successfully join the room 37 | onJoin(client: Client, options: any) { 38 | this.world.createPlayer(client.sessionId); 39 | const player = new PlayerState( 40 | client.sessionId, 41 | this.world.players[client.sessionId].playerMesh.position.x, 42 | this.world.players[client.sessionId].playerMesh.position.z, 43 | ); 44 | this.state.addPlayer(client.sessionId, player); 45 | console.log(`player ${client.sessionId} joined room ${this.roomId}.`); 46 | } 47 | 48 | // When a client sends a message 49 | onMessage(client: Client, message: any) { 50 | const data = message.data; 51 | const player = this.state.getPlayer(client.sessionId); 52 | 53 | if (message.type === MessageType.PLAYER_MOVEMENT) { 54 | this.world.players[client.sessionId].applyMovement(data); 55 | } 56 | } 57 | 58 | onUpdate() { 59 | Object.keys(this.world.players).forEach(key => { 60 | const pos = this.world.players[key].playerMesh.position; 61 | this.state.players[key].updatePosition(pos); 62 | }); 63 | } 64 | 65 | // When a client leaves the room 66 | onLeave(client: Client) { 67 | this.world.removePlayer(client.sessionId); 68 | this.state.removePlayer(client.sessionId); 69 | } 70 | 71 | // Cleanup callback, called after there are no more clients in the room. (see `autoDispose`) 72 | onDispose() { 73 | this.world.dispose(); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/rooms/StateHandler.ts: -------------------------------------------------------------------------------- 1 | import { Schema, type, MapSchema } from '@colyseus/schema'; 2 | import { PlayerState } from './state/PlayerState'; 3 | 4 | export class StateHandler extends Schema { 5 | 6 | @type({ map: PlayerState }) 7 | players = new MapSchema(); 8 | 9 | addPlayer(clientId: string, player: PlayerState): void { 10 | this.players[clientId] = player; 11 | } 12 | 13 | getPlayer(clientId: string): PlayerState { 14 | return this.players[clientId]; 15 | } 16 | 17 | removePlayer(clientId: string): void { 18 | delete this.players[clientId]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/rooms/state/PlayerState.ts: -------------------------------------------------------------------------------- 1 | import { Schema, type } from '@colyseus/schema'; 2 | import { Vector3 } from 'babylonjs'; 3 | 4 | export class PlayerState extends Schema { 5 | @type('string') 6 | id: string; 7 | 8 | @type('number') 9 | x: number | undefined; 10 | 11 | @type('number') 12 | y: number | undefined; 13 | 14 | constructor(id: string, x: number, y: number) { 15 | super(); 16 | this.x = x; 17 | this.y = y; 18 | this.id = id; 19 | } 20 | 21 | updatePosition(position: Vector3) { 22 | (this.x = position.x), (this.y = position.z); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- 1 | // Load environment variables from .env file 2 | import dotenv from 'dotenv'; 3 | dotenv.config(); 4 | 5 | import { Server } from 'colyseus'; 6 | import { createServer } from 'http'; 7 | import { monitor } from '@colyseus/monitor'; 8 | 9 | import app from './app'; 10 | import { GameRoom } from './rooms/GameRoom'; 11 | 12 | /** 13 | * Start Express server. 14 | */ 15 | 16 | const gameServer = new Server({ 17 | server: createServer(app), 18 | }); 19 | 20 | gameServer.register('game', GameRoom); 21 | // Register colyseus monitor AFTER registering your room handlers 22 | app.use('/colyseus', monitor(gameServer)); 23 | 24 | const server = gameServer.listen(app.get('port'), undefined, undefined, () => { 25 | console.log('App is running in %s mode', app.get('port'), app.get('env')); 26 | console.log('Press CTRL-C to stop\n'); 27 | }); 28 | 29 | export default server; 30 | -------------------------------------------------------------------------------- /src/types/xhr2.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'xhr2'; 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "plugins": [ 4 | { 5 | "name": "typescript-tslint-plugin" 6 | } 7 | ], 8 | "experimentalDecorators": true, 9 | "emitDecoratorMetadata": true, 10 | "allowJs": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "commonjs", 16 | "moduleResolution": "node", 17 | "sourceMap": true, 18 | "target": "es6", 19 | "noImplicitAny": true, 20 | "outDir": "dist", 21 | "baseUrl": "." 22 | }, 23 | "include": ["src/**/*"], 24 | "types": ["babylonjs"], 25 | "paths": { 26 | "*": ["node_modules/*", "src/types/*"] 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["tslint:recommended", "tslint-config-prettier"], 3 | "rules": { 4 | "member-access": [true, "no-public"], 5 | "no-console": [false], 6 | "object-literal-sort-keys": [false], 7 | "ordered-imports": false, 8 | "no-empty": false, 9 | "member-ordering": false, 10 | "radix": false, 11 | "interface-over-type-literal": false 12 | }, 13 | "linterOptions": { 14 | "exclude": ["config/**/*.js", "node_modules/**/*.ts"] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/highlight@^7.0.0": 13 | version "7.0.0" 14 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 15 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== 16 | dependencies: 17 | chalk "^2.0.0" 18 | esutils "^2.0.2" 19 | js-tokens "^4.0.0" 20 | 21 | "@colyseus/monitor@^0.10.0": 22 | version "0.10.0" 23 | resolved "https://registry.yarnpkg.com/@colyseus/monitor/-/monitor-0.10.0.tgz#2b579b422e59aa745548f7cb63286b1aaf7a4b75" 24 | integrity sha512-zV3y3jrTN18rbsNGLpXeGKscEMo4tcl/bU+5a/tvKE+pPMsjwGkmn63Uq6SvVXzIbDn0p3xjZElNwAAQt6/f9A== 25 | dependencies: 26 | express "^4.16.3" 27 | 28 | "@colyseus/schema@^0.4.0": 29 | version "0.4.33" 30 | resolved "https://registry.yarnpkg.com/@colyseus/schema/-/schema-0.4.33.tgz#afb06ed227f0dfed814dd29b152b5e90c57622ab" 31 | integrity sha512-SaZCaN7uIJdphsQeRVKcE2yjVLXEl1LMHKAFp8mVwTb1ugXPO6V12e8gZV+2kOdkq8duu2k47SME4219HpXC7g== 32 | 33 | "@gamestdio/clock@^1.1.9": 34 | version "1.1.9" 35 | resolved "https://registry.yarnpkg.com/@gamestdio/clock/-/clock-1.1.9.tgz#77ec0c011391fbbfdcb4f32112429536fd8680cb" 36 | integrity sha1-d+wMAROR+7/ctPMhEkKVNv2GgMs= 37 | 38 | "@gamestdio/timer@^1.3.0": 39 | version "1.3.0" 40 | resolved "https://registry.yarnpkg.com/@gamestdio/timer/-/timer-1.3.0.tgz#1e6ed0af6843abe6f7bc8814d8f9a992cb452881" 41 | integrity sha512-hPx+oWuGPnT2U4lFinE2dFVlJOnvK040kyIt38B78cWpufg2EpK0I4UOfibt0q+T84F07YnmAlhySvI2QhCSvQ== 42 | dependencies: 43 | "@gamestdio/clock" "^1.1.9" 44 | 45 | "@types/body-parser@*", "@types/body-parser@^1.17.0": 46 | version "1.17.0" 47 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 48 | integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== 49 | dependencies: 50 | "@types/connect" "*" 51 | "@types/node" "*" 52 | 53 | "@types/connect@*": 54 | version "3.4.32" 55 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 56 | integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== 57 | dependencies: 58 | "@types/node" "*" 59 | 60 | "@types/cors@^2.8.5": 61 | version "2.8.5" 62 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.5.tgz#c0c54c4e643e1d943d447292f2baf9dc82cfc8ec" 63 | integrity sha512-GmK8AKu8i+s+EChK/uZ5IbrXPcPaQKWaNSGevDT/7o3gFObwSUQwqb1jMqxuo+YPvj0ckGzINI+EO7EHcmJjKg== 64 | dependencies: 65 | "@types/express" "*" 66 | 67 | "@types/dotenv@^6.1.1": 68 | version "6.1.1" 69 | resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-6.1.1.tgz#f7ce1cc4fe34f0a4373ba99fefa437b0bec54b46" 70 | integrity sha512-ftQl3DtBvqHl9L16tpqqzA4YzCSXZfi7g8cQceTz5rOlYtk/IZbFjAv3mLOQlNIgOaylCQWQoBdDQHPgEBJPHg== 71 | dependencies: 72 | "@types/node" "*" 73 | 74 | "@types/events@*": 75 | version "3.0.0" 76 | resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" 77 | integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== 78 | 79 | "@types/express-serve-static-core@*": 80 | version "4.16.4" 81 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.4.tgz#56bb8be4559401d68af4a3624ae9dd3166103e60" 82 | integrity sha512-x/8h6FHm14rPWnW2HP5likD/rsqJ3t/77OWx2PLxym0hXbeBWQmcPyHmwX+CtCQpjIfgrUdEoDFcLPwPZWiqzQ== 83 | dependencies: 84 | "@types/node" "*" 85 | "@types/range-parser" "*" 86 | 87 | "@types/express@*", "@types/express@^4.16.1": 88 | version "4.16.1" 89 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.1.tgz#d756bd1a85c34d87eaf44c888bad27ba8a4b7cf0" 90 | integrity sha512-V0clmJow23WeyblmACoxbHBu2JKlE5TiIme6Lem14FnPW9gsttyHtk6wq7njcdIWH1njAaFgR8gW09lgY98gQg== 91 | dependencies: 92 | "@types/body-parser" "*" 93 | "@types/express-serve-static-core" "*" 94 | "@types/serve-static" "*" 95 | 96 | "@types/glob@*": 97 | version "7.1.1" 98 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" 99 | integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== 100 | dependencies: 101 | "@types/events" "*" 102 | "@types/minimatch" "*" 103 | "@types/node" "*" 104 | 105 | "@types/mime@*": 106 | version "2.0.1" 107 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" 108 | integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== 109 | 110 | "@types/minimatch@*": 111 | version "3.0.3" 112 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 113 | integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== 114 | 115 | "@types/morgan@^1.7.35": 116 | version "1.7.35" 117 | resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.7.35.tgz#6358f502931cc2583d7a94248c41518baa688494" 118 | integrity sha512-E9qFi0seOkdlQnCTPv54brNfGWeFdRaEhI5tSue4pdx/V+xfxvMETsxXhOEcj1cYL+0n/jcTEmj/jD2gjzCwMg== 119 | dependencies: 120 | "@types/express" "*" 121 | 122 | "@types/node@*", "@types/node@^12.0.2": 123 | version "12.0.2" 124 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" 125 | integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== 126 | 127 | "@types/range-parser@*": 128 | version "1.2.3" 129 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 130 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 131 | 132 | "@types/redis@^2.8.12": 133 | version "2.8.12" 134 | resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.12.tgz#6405d7ece0d6cc037151b7141cef9ad3cd06f3ac" 135 | integrity sha512-eT5cGYr08OnF6OlAHdc2hVOBAKBpfQQNQHsWEvUwRPFiXRd+vv+hOHSSIo4xB7M5vZOZdjMT2OUlXYqo3YlIGQ== 136 | dependencies: 137 | "@types/node" "*" 138 | 139 | "@types/serve-static@*": 140 | version "1.13.2" 141 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 142 | integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== 143 | dependencies: 144 | "@types/express-serve-static-core" "*" 145 | "@types/mime" "*" 146 | 147 | "@types/shelljs@^0.8.5": 148 | version "0.8.5" 149 | resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.5.tgz#1e507b2f6d1f893269bd3e851ec24419ef9beeea" 150 | integrity sha512-bZgjwIWu9gHCjirKJoOlLzGi5N0QgZ5t7EXEuoqyWCHTuSddURXo3FOBYDyRPNOWzZ6NbkLvZnVkn483Y/tvcQ== 151 | dependencies: 152 | "@types/glob" "*" 153 | "@types/node" "*" 154 | 155 | "@types/ws@^6.0.1": 156 | version "6.0.1" 157 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz#ca7a3f3756aa12f62a0a62145ed14c6db25d5a28" 158 | integrity sha512-EzH8k1gyZ4xih/MaZTXwT2xOkPiIMSrhQ9b8wrlX88L0T02eYsddatQlwVFlEPyEqV0ChpdpNnE51QPH6NVT4Q== 159 | dependencies: 160 | "@types/events" "*" 161 | "@types/node" "*" 162 | 163 | abbrev@1: 164 | version "1.1.1" 165 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 166 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 167 | 168 | accepts@~1.3.5: 169 | version "1.3.5" 170 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 171 | integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= 172 | dependencies: 173 | mime-types "~2.1.18" 174 | negotiator "0.6.1" 175 | 176 | accepts@~1.3.7: 177 | version "1.3.7" 178 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 179 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 180 | dependencies: 181 | mime-types "~2.1.24" 182 | negotiator "0.6.2" 183 | 184 | ansi-align@^2.0.0: 185 | version "2.0.0" 186 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 187 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= 188 | dependencies: 189 | string-width "^2.0.0" 190 | 191 | ansi-regex@^2.0.0: 192 | version "2.1.1" 193 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 194 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 195 | 196 | ansi-regex@^3.0.0: 197 | version "3.0.0" 198 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 199 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 200 | 201 | ansi-styles@^3.2.1: 202 | version "3.2.1" 203 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 204 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 205 | dependencies: 206 | color-convert "^1.9.0" 207 | 208 | anymatch@^2.0.0: 209 | version "2.0.0" 210 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 211 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 212 | dependencies: 213 | micromatch "^3.1.4" 214 | normalize-path "^2.1.1" 215 | 216 | aproba@^1.0.3: 217 | version "1.2.0" 218 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 219 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 220 | 221 | are-we-there-yet@~1.1.2: 222 | version "1.1.5" 223 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 224 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 225 | dependencies: 226 | delegates "^1.0.0" 227 | readable-stream "^2.0.6" 228 | 229 | arg@^4.1.0: 230 | version "4.1.0" 231 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" 232 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== 233 | 234 | argparse@^1.0.7: 235 | version "1.0.10" 236 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 237 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 238 | dependencies: 239 | sprintf-js "~1.0.2" 240 | 241 | arr-diff@^4.0.0: 242 | version "4.0.0" 243 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 244 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 245 | 246 | arr-flatten@^1.1.0: 247 | version "1.1.0" 248 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 249 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 250 | 251 | arr-union@^3.1.0: 252 | version "3.1.0" 253 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 254 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 255 | 256 | array-flatten@1.1.1: 257 | version "1.1.1" 258 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 259 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 260 | 261 | array-unique@^0.3.2: 262 | version "0.3.2" 263 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 264 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 265 | 266 | assign-symbols@^1.0.0: 267 | version "1.0.0" 268 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 269 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 270 | 271 | async-each@^1.0.1: 272 | version "1.0.3" 273 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 274 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== 275 | 276 | async-limiter@~1.0.0: 277 | version "1.0.0" 278 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 279 | integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== 280 | 281 | atob@^2.1.1: 282 | version "2.1.2" 283 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 284 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 285 | 286 | axios@^0.19.0: 287 | version "0.19.0" 288 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" 289 | integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== 290 | dependencies: 291 | follow-redirects "1.5.10" 292 | is-buffer "^2.0.2" 293 | 294 | babylonjs@^4.0.3: 295 | version "4.0.3" 296 | resolved "https://registry.yarnpkg.com/babylonjs/-/babylonjs-4.0.3.tgz#5dba9a96a7cb70634338e8dd7a17081e9f902cf6" 297 | integrity sha512-S5PoPmf0Vo03FDmF9z8djBiIm8GSLvCesln/9aKV9RbD4W+NTqVmMKhR8CQoMRCQNb2JSKKUuyUygXxCRVG37Q== 298 | 299 | balanced-match@^1.0.0: 300 | version "1.0.0" 301 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 302 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 303 | 304 | base@^0.11.1: 305 | version "0.11.2" 306 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 307 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 308 | dependencies: 309 | cache-base "^1.0.1" 310 | class-utils "^0.3.5" 311 | component-emitter "^1.2.1" 312 | define-property "^1.0.0" 313 | isobject "^3.0.1" 314 | mixin-deep "^1.2.0" 315 | pascalcase "^0.1.1" 316 | 317 | basic-auth@~2.0.0: 318 | version "2.0.1" 319 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" 320 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== 321 | dependencies: 322 | safe-buffer "5.1.2" 323 | 324 | binary-extensions@^1.0.0: 325 | version "1.13.1" 326 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 327 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 328 | 329 | body-parser@1.18.3: 330 | version "1.18.3" 331 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 332 | integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= 333 | dependencies: 334 | bytes "3.0.0" 335 | content-type "~1.0.4" 336 | debug "2.6.9" 337 | depd "~1.1.2" 338 | http-errors "~1.6.3" 339 | iconv-lite "0.4.23" 340 | on-finished "~2.3.0" 341 | qs "6.5.2" 342 | raw-body "2.3.3" 343 | type-is "~1.6.16" 344 | 345 | body-parser@1.19.0, body-parser@^1.19.0: 346 | version "1.19.0" 347 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 348 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 349 | dependencies: 350 | bytes "3.1.0" 351 | content-type "~1.0.4" 352 | debug "2.6.9" 353 | depd "~1.1.2" 354 | http-errors "1.7.2" 355 | iconv-lite "0.4.24" 356 | on-finished "~2.3.0" 357 | qs "6.7.0" 358 | raw-body "2.4.0" 359 | type-is "~1.6.17" 360 | 361 | boxen@^1.2.1: 362 | version "1.3.0" 363 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 364 | integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== 365 | dependencies: 366 | ansi-align "^2.0.0" 367 | camelcase "^4.0.0" 368 | chalk "^2.0.1" 369 | cli-boxes "^1.0.0" 370 | string-width "^2.0.0" 371 | term-size "^1.2.0" 372 | widest-line "^2.0.0" 373 | 374 | brace-expansion@^1.1.7: 375 | version "1.1.11" 376 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 377 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 378 | dependencies: 379 | balanced-match "^1.0.0" 380 | concat-map "0.0.1" 381 | 382 | braces@^2.3.1, braces@^2.3.2: 383 | version "2.3.2" 384 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 385 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 386 | dependencies: 387 | arr-flatten "^1.1.0" 388 | array-unique "^0.3.2" 389 | extend-shallow "^2.0.1" 390 | fill-range "^4.0.0" 391 | isobject "^3.0.1" 392 | repeat-element "^1.1.2" 393 | snapdragon "^0.8.1" 394 | snapdragon-node "^2.0.1" 395 | split-string "^3.0.2" 396 | to-regex "^3.0.1" 397 | 398 | buffer-from@^1.0.0: 399 | version "1.1.1" 400 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 401 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 402 | 403 | builtin-modules@^1.1.1: 404 | version "1.1.1" 405 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 406 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 407 | 408 | bytes@3.0.0: 409 | version "3.0.0" 410 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 411 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 412 | 413 | bytes@3.1.0: 414 | version "3.1.0" 415 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 416 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 417 | 418 | cache-base@^1.0.1: 419 | version "1.0.1" 420 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 421 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 422 | dependencies: 423 | collection-visit "^1.0.0" 424 | component-emitter "^1.2.1" 425 | get-value "^2.0.6" 426 | has-value "^1.0.0" 427 | isobject "^3.0.1" 428 | set-value "^2.0.0" 429 | to-object-path "^0.3.0" 430 | union-value "^1.0.0" 431 | unset-value "^1.0.0" 432 | 433 | camelcase@^4.0.0: 434 | version "4.1.0" 435 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 436 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 437 | 438 | camelcase@^5.0.0: 439 | version "5.3.1" 440 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 441 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 442 | 443 | capture-stack-trace@^1.0.0: 444 | version "1.0.1" 445 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 446 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== 447 | 448 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1: 449 | version "2.4.2" 450 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 451 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 452 | dependencies: 453 | ansi-styles "^3.2.1" 454 | escape-string-regexp "^1.0.5" 455 | supports-color "^5.3.0" 456 | 457 | chokidar@^2.1.5: 458 | version "2.1.6" 459 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" 460 | integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== 461 | dependencies: 462 | anymatch "^2.0.0" 463 | async-each "^1.0.1" 464 | braces "^2.3.2" 465 | glob-parent "^3.1.0" 466 | inherits "^2.0.3" 467 | is-binary-path "^1.0.0" 468 | is-glob "^4.0.0" 469 | normalize-path "^3.0.0" 470 | path-is-absolute "^1.0.0" 471 | readdirp "^2.2.1" 472 | upath "^1.1.1" 473 | optionalDependencies: 474 | fsevents "^1.2.7" 475 | 476 | chownr@^1.1.1: 477 | version "1.1.1" 478 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 479 | integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== 480 | 481 | ci-info@^1.5.0: 482 | version "1.6.0" 483 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 484 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 485 | 486 | class-utils@^0.3.5: 487 | version "0.3.6" 488 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 489 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 490 | dependencies: 491 | arr-union "^3.1.0" 492 | define-property "^0.2.5" 493 | isobject "^3.0.0" 494 | static-extend "^0.1.1" 495 | 496 | cli-boxes@^1.0.0: 497 | version "1.0.0" 498 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 499 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= 500 | 501 | cliui@^4.0.0: 502 | version "4.1.0" 503 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 504 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 505 | dependencies: 506 | string-width "^2.1.1" 507 | strip-ansi "^4.0.0" 508 | wrap-ansi "^2.0.0" 509 | 510 | code-point-at@^1.0.0: 511 | version "1.1.0" 512 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 513 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 514 | 515 | collection-visit@^1.0.0: 516 | version "1.0.0" 517 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 518 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 519 | dependencies: 520 | map-visit "^1.0.0" 521 | object-visit "^1.0.0" 522 | 523 | color-convert@^1.9.0: 524 | version "1.9.3" 525 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 526 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 527 | dependencies: 528 | color-name "1.1.3" 529 | 530 | color-name@1.1.3: 531 | version "1.1.3" 532 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 533 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 534 | 535 | colyseus@^0.10.7: 536 | version "0.10.7" 537 | resolved "https://registry.yarnpkg.com/colyseus/-/colyseus-0.10.7.tgz#1b5c9af18759eff317ffe832470d9e3ef38a3d3a" 538 | integrity sha512-wDR0nSvl8IlV58NURHYQZBKkR585nTLCNxRgn3kL01dQl/26DTx9W6CXsJeIBJOf7wqUYXN9KTPyBAjKbT2FRw== 539 | dependencies: 540 | "@colyseus/schema" "^0.4.0" 541 | "@gamestdio/timer" "^1.3.0" 542 | "@types/redis" "^2.8.12" 543 | "@types/ws" "^6.0.1" 544 | debug "^4.0.1" 545 | fast-json-patch "^2.0.5" 546 | fossil-delta "^1.0.1" 547 | nanoid "^2.0.0" 548 | nonenumerable "^1.0.1" 549 | notepack.io "^2.2.0" 550 | ws "^6.0.0" 551 | optionalDependencies: 552 | redis "^2.8.0" 553 | 554 | commander@^2.12.1: 555 | version "2.20.0" 556 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" 557 | integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== 558 | 559 | component-emitter@^1.2.1: 560 | version "1.3.0" 561 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 562 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 563 | 564 | concat-map@0.0.1: 565 | version "0.0.1" 566 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 567 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 568 | 569 | concurrently@^4.1.0: 570 | version "4.1.0" 571 | resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-4.1.0.tgz#17fdf067da71210685d9ea554423ef239da30d33" 572 | integrity sha512-pwzXCE7qtOB346LyO9eFWpkFJVO3JQZ/qU/feGeaAHiX1M3Rw3zgXKc5cZ8vSH5DGygkjzLFDzA/pwoQDkRNGg== 573 | dependencies: 574 | chalk "^2.4.1" 575 | date-fns "^1.23.0" 576 | lodash "^4.17.10" 577 | read-pkg "^4.0.1" 578 | rxjs "^6.3.3" 579 | spawn-command "^0.0.2-1" 580 | supports-color "^4.5.0" 581 | tree-kill "^1.1.0" 582 | yargs "^12.0.1" 583 | 584 | configstore@^3.0.0: 585 | version "3.1.2" 586 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 587 | integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== 588 | dependencies: 589 | dot-prop "^4.1.0" 590 | graceful-fs "^4.1.2" 591 | make-dir "^1.0.0" 592 | unique-string "^1.0.0" 593 | write-file-atomic "^2.0.0" 594 | xdg-basedir "^3.0.0" 595 | 596 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 597 | version "1.1.0" 598 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 599 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 600 | 601 | content-disposition@0.5.2: 602 | version "0.5.2" 603 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 604 | integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= 605 | 606 | content-disposition@0.5.3: 607 | version "0.5.3" 608 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 609 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 610 | dependencies: 611 | safe-buffer "5.1.2" 612 | 613 | content-type@~1.0.4: 614 | version "1.0.4" 615 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 616 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 617 | 618 | cookie-signature@1.0.6: 619 | version "1.0.6" 620 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 621 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 622 | 623 | cookie@0.3.1: 624 | version "0.3.1" 625 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 626 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= 627 | 628 | cookie@0.4.0: 629 | version "0.4.0" 630 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 631 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 632 | 633 | copy-descriptor@^0.1.0: 634 | version "0.1.1" 635 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 636 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 637 | 638 | core-util-is@~1.0.0: 639 | version "1.0.2" 640 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 641 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 642 | 643 | cors@^2.8.5: 644 | version "2.8.5" 645 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 646 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 647 | dependencies: 648 | object-assign "^4" 649 | vary "^1" 650 | 651 | create-error-class@^3.0.0: 652 | version "3.0.2" 653 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 654 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= 655 | dependencies: 656 | capture-stack-trace "^1.0.0" 657 | 658 | cross-spawn@^5.0.1: 659 | version "5.1.0" 660 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 661 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 662 | dependencies: 663 | lru-cache "^4.0.1" 664 | shebang-command "^1.2.0" 665 | which "^1.2.9" 666 | 667 | cross-spawn@^6.0.0: 668 | version "6.0.5" 669 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 670 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 671 | dependencies: 672 | nice-try "^1.0.4" 673 | path-key "^2.0.1" 674 | semver "^5.5.0" 675 | shebang-command "^1.2.0" 676 | which "^1.2.9" 677 | 678 | crypto-random-string@^1.0.0: 679 | version "1.0.0" 680 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 681 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 682 | 683 | date-fns@^1.23.0: 684 | version "1.30.1" 685 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" 686 | integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== 687 | 688 | debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 689 | version "2.6.9" 690 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 691 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 692 | dependencies: 693 | ms "2.0.0" 694 | 695 | debug@=3.1.0: 696 | version "3.1.0" 697 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 698 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 699 | dependencies: 700 | ms "2.0.0" 701 | 702 | debug@^3.1.0, debug@^3.2.6: 703 | version "3.2.6" 704 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 705 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 706 | dependencies: 707 | ms "^2.1.1" 708 | 709 | debug@^4.0.1: 710 | version "4.1.1" 711 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 712 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 713 | dependencies: 714 | ms "^2.1.1" 715 | 716 | decamelize@^1.2.0: 717 | version "1.2.0" 718 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 719 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 720 | 721 | decode-uri-component@^0.2.0: 722 | version "0.2.0" 723 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 724 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 725 | 726 | deep-equal@^1.0.1: 727 | version "1.0.1" 728 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 729 | integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 730 | 731 | deep-extend@^0.6.0: 732 | version "0.6.0" 733 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 734 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 735 | 736 | define-property@^0.2.5: 737 | version "0.2.5" 738 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 739 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 740 | dependencies: 741 | is-descriptor "^0.1.0" 742 | 743 | define-property@^1.0.0: 744 | version "1.0.0" 745 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 746 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 747 | dependencies: 748 | is-descriptor "^1.0.0" 749 | 750 | define-property@^2.0.2: 751 | version "2.0.2" 752 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 753 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 754 | dependencies: 755 | is-descriptor "^1.0.2" 756 | isobject "^3.0.1" 757 | 758 | delegates@^1.0.0: 759 | version "1.0.0" 760 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 761 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 762 | 763 | depd@~1.1.2: 764 | version "1.1.2" 765 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 766 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 767 | 768 | destroy@~1.0.4: 769 | version "1.0.4" 770 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 771 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 772 | 773 | detect-libc@^1.0.2: 774 | version "1.0.3" 775 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 776 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 777 | 778 | diff@^3.1.0, diff@^3.2.0: 779 | version "3.5.0" 780 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 781 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 782 | 783 | dot-prop@^4.1.0: 784 | version "4.2.0" 785 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 786 | integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== 787 | dependencies: 788 | is-obj "^1.0.0" 789 | 790 | dotenv@^8.0.0: 791 | version "8.0.0" 792 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.0.0.tgz#ed310c165b4e8a97bb745b0a9d99c31bda566440" 793 | integrity sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg== 794 | 795 | double-ended-queue@^2.1.0-0: 796 | version "2.1.0-0" 797 | resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 798 | integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= 799 | 800 | duplexer3@^0.1.4: 801 | version "0.1.4" 802 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 803 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 804 | 805 | ee-first@1.1.1: 806 | version "1.1.1" 807 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 808 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 809 | 810 | encodeurl@~1.0.2: 811 | version "1.0.2" 812 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 813 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 814 | 815 | end-of-stream@^1.1.0: 816 | version "1.4.1" 817 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 818 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 819 | dependencies: 820 | once "^1.4.0" 821 | 822 | error-ex@^1.3.1: 823 | version "1.3.2" 824 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 825 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 826 | dependencies: 827 | is-arrayish "^0.2.1" 828 | 829 | escape-html@~1.0.3: 830 | version "1.0.3" 831 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 832 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 833 | 834 | escape-string-regexp@^1.0.5: 835 | version "1.0.5" 836 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 837 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 838 | 839 | esprima@^4.0.0: 840 | version "4.0.1" 841 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 842 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 843 | 844 | esutils@^2.0.2: 845 | version "2.0.2" 846 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 847 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 848 | 849 | etag@~1.8.1: 850 | version "1.8.1" 851 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 852 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 853 | 854 | execa@^0.7.0: 855 | version "0.7.0" 856 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 857 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= 858 | dependencies: 859 | cross-spawn "^5.0.1" 860 | get-stream "^3.0.0" 861 | is-stream "^1.1.0" 862 | npm-run-path "^2.0.0" 863 | p-finally "^1.0.0" 864 | signal-exit "^3.0.0" 865 | strip-eof "^1.0.0" 866 | 867 | execa@^1.0.0: 868 | version "1.0.0" 869 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 870 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 871 | dependencies: 872 | cross-spawn "^6.0.0" 873 | get-stream "^4.0.0" 874 | is-stream "^1.1.0" 875 | npm-run-path "^2.0.0" 876 | p-finally "^1.0.0" 877 | signal-exit "^3.0.0" 878 | strip-eof "^1.0.0" 879 | 880 | expand-brackets@^2.1.4: 881 | version "2.1.4" 882 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 883 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 884 | dependencies: 885 | debug "^2.3.3" 886 | define-property "^0.2.5" 887 | extend-shallow "^2.0.1" 888 | posix-character-classes "^0.1.0" 889 | regex-not "^1.0.0" 890 | snapdragon "^0.8.1" 891 | to-regex "^3.0.1" 892 | 893 | express@^4.16.3: 894 | version "4.17.0" 895 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.0.tgz#288af62228a73f4c8ea2990ba3b791bb87cd4438" 896 | integrity sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ== 897 | dependencies: 898 | accepts "~1.3.7" 899 | array-flatten "1.1.1" 900 | body-parser "1.19.0" 901 | content-disposition "0.5.3" 902 | content-type "~1.0.4" 903 | cookie "0.4.0" 904 | cookie-signature "1.0.6" 905 | debug "2.6.9" 906 | depd "~1.1.2" 907 | encodeurl "~1.0.2" 908 | escape-html "~1.0.3" 909 | etag "~1.8.1" 910 | finalhandler "~1.1.2" 911 | fresh "0.5.2" 912 | merge-descriptors "1.0.1" 913 | methods "~1.1.2" 914 | on-finished "~2.3.0" 915 | parseurl "~1.3.3" 916 | path-to-regexp "0.1.7" 917 | proxy-addr "~2.0.5" 918 | qs "6.7.0" 919 | range-parser "~1.2.1" 920 | safe-buffer "5.1.2" 921 | send "0.17.1" 922 | serve-static "1.14.1" 923 | setprototypeof "1.1.1" 924 | statuses "~1.5.0" 925 | type-is "~1.6.18" 926 | utils-merge "1.0.1" 927 | vary "~1.1.2" 928 | 929 | express@^4.16.4: 930 | version "4.16.4" 931 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" 932 | integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== 933 | dependencies: 934 | accepts "~1.3.5" 935 | array-flatten "1.1.1" 936 | body-parser "1.18.3" 937 | content-disposition "0.5.2" 938 | content-type "~1.0.4" 939 | cookie "0.3.1" 940 | cookie-signature "1.0.6" 941 | debug "2.6.9" 942 | depd "~1.1.2" 943 | encodeurl "~1.0.2" 944 | escape-html "~1.0.3" 945 | etag "~1.8.1" 946 | finalhandler "1.1.1" 947 | fresh "0.5.2" 948 | merge-descriptors "1.0.1" 949 | methods "~1.1.2" 950 | on-finished "~2.3.0" 951 | parseurl "~1.3.2" 952 | path-to-regexp "0.1.7" 953 | proxy-addr "~2.0.4" 954 | qs "6.5.2" 955 | range-parser "~1.2.0" 956 | safe-buffer "5.1.2" 957 | send "0.16.2" 958 | serve-static "1.13.2" 959 | setprototypeof "1.1.0" 960 | statuses "~1.4.0" 961 | type-is "~1.6.16" 962 | utils-merge "1.0.1" 963 | vary "~1.1.2" 964 | 965 | extend-shallow@^2.0.1: 966 | version "2.0.1" 967 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 968 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 969 | dependencies: 970 | is-extendable "^0.1.0" 971 | 972 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 973 | version "3.0.2" 974 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 975 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 976 | dependencies: 977 | assign-symbols "^1.0.0" 978 | is-extendable "^1.0.1" 979 | 980 | extglob@^2.0.4: 981 | version "2.0.4" 982 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 983 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 984 | dependencies: 985 | array-unique "^0.3.2" 986 | define-property "^1.0.0" 987 | expand-brackets "^2.1.4" 988 | extend-shallow "^2.0.1" 989 | fragment-cache "^0.2.1" 990 | regex-not "^1.0.0" 991 | snapdragon "^0.8.1" 992 | to-regex "^3.0.1" 993 | 994 | fast-json-patch@^2.0.5: 995 | version "2.1.0" 996 | resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-2.1.0.tgz#e348c330a5b2481b14f5fffd707aebfef8b7bef6" 997 | integrity sha512-PipOsAKamRw7+CXtKiieehyjUeDVPJ5J7b2kdJYerEf6TSUQoD2ijpVyZ88KQm5YXziff4h762bz3+vzf56khg== 998 | dependencies: 999 | deep-equal "^1.0.1" 1000 | 1001 | fill-range@^4.0.0: 1002 | version "4.0.0" 1003 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1004 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 1005 | dependencies: 1006 | extend-shallow "^2.0.1" 1007 | is-number "^3.0.0" 1008 | repeat-string "^1.6.1" 1009 | to-regex-range "^2.1.0" 1010 | 1011 | finalhandler@1.1.1: 1012 | version "1.1.1" 1013 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 1014 | integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== 1015 | dependencies: 1016 | debug "2.6.9" 1017 | encodeurl "~1.0.2" 1018 | escape-html "~1.0.3" 1019 | on-finished "~2.3.0" 1020 | parseurl "~1.3.2" 1021 | statuses "~1.4.0" 1022 | unpipe "~1.0.0" 1023 | 1024 | finalhandler@~1.1.2: 1025 | version "1.1.2" 1026 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 1027 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 1028 | dependencies: 1029 | debug "2.6.9" 1030 | encodeurl "~1.0.2" 1031 | escape-html "~1.0.3" 1032 | on-finished "~2.3.0" 1033 | parseurl "~1.3.3" 1034 | statuses "~1.5.0" 1035 | unpipe "~1.0.0" 1036 | 1037 | find-up@^3.0.0: 1038 | version "3.0.0" 1039 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1040 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 1041 | dependencies: 1042 | locate-path "^3.0.0" 1043 | 1044 | follow-redirects@1.5.10: 1045 | version "1.5.10" 1046 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" 1047 | integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== 1048 | dependencies: 1049 | debug "=3.1.0" 1050 | 1051 | for-in@^1.0.2: 1052 | version "1.0.2" 1053 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1054 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 1055 | 1056 | forwarded@~0.1.2: 1057 | version "0.1.2" 1058 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1059 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 1060 | 1061 | fossil-delta@^1.0.1: 1062 | version "1.0.2" 1063 | resolved "https://registry.yarnpkg.com/fossil-delta/-/fossil-delta-1.0.2.tgz#a3e9545d5fd5e1b317dca38f0c852baa80b13b89" 1064 | integrity sha512-fkgQUnBaJjhDq0DN1ajBlWWRH99NQgwVoReMEr0oXLqYXAx8X9mD5gGaoTYDdVVbLJYsMNrnkJ028Ld0UgWrGA== 1065 | 1066 | fragment-cache@^0.2.1: 1067 | version "0.2.1" 1068 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1069 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 1070 | dependencies: 1071 | map-cache "^0.2.2" 1072 | 1073 | fresh@0.5.2: 1074 | version "0.5.2" 1075 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1076 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1077 | 1078 | fs-minipass@^1.2.5: 1079 | version "1.2.6" 1080 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" 1081 | integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== 1082 | dependencies: 1083 | minipass "^2.2.1" 1084 | 1085 | fs.realpath@^1.0.0: 1086 | version "1.0.0" 1087 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1088 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1089 | 1090 | fsevents@^1.2.7: 1091 | version "1.2.9" 1092 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" 1093 | integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== 1094 | dependencies: 1095 | nan "^2.12.1" 1096 | node-pre-gyp "^0.12.0" 1097 | 1098 | gauge@~2.7.3: 1099 | version "2.7.4" 1100 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1101 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 1102 | dependencies: 1103 | aproba "^1.0.3" 1104 | console-control-strings "^1.0.0" 1105 | has-unicode "^2.0.0" 1106 | object-assign "^4.1.0" 1107 | signal-exit "^3.0.0" 1108 | string-width "^1.0.1" 1109 | strip-ansi "^3.0.1" 1110 | wide-align "^1.1.0" 1111 | 1112 | get-caller-file@^1.0.1, get-caller-file@^1.0.2: 1113 | version "1.0.3" 1114 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 1115 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 1116 | 1117 | get-stream@^3.0.0: 1118 | version "3.0.0" 1119 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1120 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 1121 | 1122 | get-stream@^4.0.0: 1123 | version "4.1.0" 1124 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 1125 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 1126 | dependencies: 1127 | pump "^3.0.0" 1128 | 1129 | get-value@^2.0.3, get-value@^2.0.6: 1130 | version "2.0.6" 1131 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1132 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 1133 | 1134 | glob-parent@^3.1.0: 1135 | version "3.1.0" 1136 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1137 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 1138 | dependencies: 1139 | is-glob "^3.1.0" 1140 | path-dirname "^1.0.0" 1141 | 1142 | glob@^7.0.0, glob@^7.1.1, glob@^7.1.3: 1143 | version "7.1.4" 1144 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 1145 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 1146 | dependencies: 1147 | fs.realpath "^1.0.0" 1148 | inflight "^1.0.4" 1149 | inherits "2" 1150 | minimatch "^3.0.4" 1151 | once "^1.3.0" 1152 | path-is-absolute "^1.0.0" 1153 | 1154 | global-dirs@^0.1.0: 1155 | version "0.1.1" 1156 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 1157 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 1158 | dependencies: 1159 | ini "^1.3.4" 1160 | 1161 | got@^6.7.1: 1162 | version "6.7.1" 1163 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 1164 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= 1165 | dependencies: 1166 | create-error-class "^3.0.0" 1167 | duplexer3 "^0.1.4" 1168 | get-stream "^3.0.0" 1169 | is-redirect "^1.0.0" 1170 | is-retry-allowed "^1.0.0" 1171 | is-stream "^1.0.0" 1172 | lowercase-keys "^1.0.0" 1173 | safe-buffer "^5.0.1" 1174 | timed-out "^4.0.0" 1175 | unzip-response "^2.0.1" 1176 | url-parse-lax "^1.0.0" 1177 | 1178 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1179 | version "4.1.15" 1180 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 1181 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 1182 | 1183 | has-flag@^2.0.0: 1184 | version "2.0.0" 1185 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 1186 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= 1187 | 1188 | has-flag@^3.0.0: 1189 | version "3.0.0" 1190 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1191 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1192 | 1193 | has-unicode@^2.0.0: 1194 | version "2.0.1" 1195 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1196 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 1197 | 1198 | has-value@^0.3.1: 1199 | version "0.3.1" 1200 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1201 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 1202 | dependencies: 1203 | get-value "^2.0.3" 1204 | has-values "^0.1.4" 1205 | isobject "^2.0.0" 1206 | 1207 | has-value@^1.0.0: 1208 | version "1.0.0" 1209 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1210 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 1211 | dependencies: 1212 | get-value "^2.0.6" 1213 | has-values "^1.0.0" 1214 | isobject "^3.0.0" 1215 | 1216 | has-values@^0.1.4: 1217 | version "0.1.4" 1218 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1219 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 1220 | 1221 | has-values@^1.0.0: 1222 | version "1.0.0" 1223 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1224 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 1225 | dependencies: 1226 | is-number "^3.0.0" 1227 | kind-of "^4.0.0" 1228 | 1229 | hosted-git-info@^2.1.4: 1230 | version "2.7.1" 1231 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 1232 | integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== 1233 | 1234 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 1235 | version "1.6.3" 1236 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 1237 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 1238 | dependencies: 1239 | depd "~1.1.2" 1240 | inherits "2.0.3" 1241 | setprototypeof "1.1.0" 1242 | statuses ">= 1.4.0 < 2" 1243 | 1244 | http-errors@1.7.2, http-errors@~1.7.2: 1245 | version "1.7.2" 1246 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 1247 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 1248 | dependencies: 1249 | depd "~1.1.2" 1250 | inherits "2.0.3" 1251 | setprototypeof "1.1.1" 1252 | statuses ">= 1.5.0 < 2" 1253 | toidentifier "1.0.0" 1254 | 1255 | iconv-lite@0.4.23: 1256 | version "0.4.23" 1257 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1258 | integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== 1259 | dependencies: 1260 | safer-buffer ">= 2.1.2 < 3" 1261 | 1262 | iconv-lite@0.4.24, iconv-lite@^0.4.4: 1263 | version "0.4.24" 1264 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1265 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1266 | dependencies: 1267 | safer-buffer ">= 2.1.2 < 3" 1268 | 1269 | ignore-by-default@^1.0.1: 1270 | version "1.0.1" 1271 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1272 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 1273 | 1274 | ignore-walk@^3.0.1: 1275 | version "3.0.1" 1276 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1277 | integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== 1278 | dependencies: 1279 | minimatch "^3.0.4" 1280 | 1281 | import-lazy@^2.1.0: 1282 | version "2.1.0" 1283 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1284 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 1285 | 1286 | imurmurhash@^0.1.4: 1287 | version "0.1.4" 1288 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1289 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1290 | 1291 | inflight@^1.0.4: 1292 | version "1.0.6" 1293 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1294 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1295 | dependencies: 1296 | once "^1.3.0" 1297 | wrappy "1" 1298 | 1299 | inherits@2, inherits@2.0.3, inherits@^2.0.3, inherits@~2.0.3: 1300 | version "2.0.3" 1301 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1302 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1303 | 1304 | ini@^1.3.4, ini@~1.3.0: 1305 | version "1.3.5" 1306 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1307 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 1308 | 1309 | interpret@^1.0.0: 1310 | version "1.2.0" 1311 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" 1312 | integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== 1313 | 1314 | invert-kv@^2.0.0: 1315 | version "2.0.0" 1316 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 1317 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 1318 | 1319 | ipaddr.js@1.8.0: 1320 | version "1.8.0" 1321 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 1322 | integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= 1323 | 1324 | ipaddr.js@1.9.0: 1325 | version "1.9.0" 1326 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" 1327 | integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== 1328 | 1329 | is-accessor-descriptor@^0.1.6: 1330 | version "0.1.6" 1331 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1332 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 1333 | dependencies: 1334 | kind-of "^3.0.2" 1335 | 1336 | is-accessor-descriptor@^1.0.0: 1337 | version "1.0.0" 1338 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1339 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 1340 | dependencies: 1341 | kind-of "^6.0.0" 1342 | 1343 | is-arrayish@^0.2.1: 1344 | version "0.2.1" 1345 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1346 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1347 | 1348 | is-binary-path@^1.0.0: 1349 | version "1.0.1" 1350 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1351 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 1352 | dependencies: 1353 | binary-extensions "^1.0.0" 1354 | 1355 | is-buffer@^1.1.5: 1356 | version "1.1.6" 1357 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1358 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 1359 | 1360 | is-buffer@^2.0.2: 1361 | version "2.0.3" 1362 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" 1363 | integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== 1364 | 1365 | is-ci@^1.0.10: 1366 | version "1.2.1" 1367 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 1368 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 1369 | dependencies: 1370 | ci-info "^1.5.0" 1371 | 1372 | is-data-descriptor@^0.1.4: 1373 | version "0.1.4" 1374 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1375 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 1376 | dependencies: 1377 | kind-of "^3.0.2" 1378 | 1379 | is-data-descriptor@^1.0.0: 1380 | version "1.0.0" 1381 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1382 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 1383 | dependencies: 1384 | kind-of "^6.0.0" 1385 | 1386 | is-descriptor@^0.1.0: 1387 | version "0.1.6" 1388 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1389 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 1390 | dependencies: 1391 | is-accessor-descriptor "^0.1.6" 1392 | is-data-descriptor "^0.1.4" 1393 | kind-of "^5.0.0" 1394 | 1395 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1396 | version "1.0.2" 1397 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1398 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 1399 | dependencies: 1400 | is-accessor-descriptor "^1.0.0" 1401 | is-data-descriptor "^1.0.0" 1402 | kind-of "^6.0.2" 1403 | 1404 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1405 | version "0.1.1" 1406 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1407 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 1408 | 1409 | is-extendable@^1.0.1: 1410 | version "1.0.1" 1411 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1412 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 1413 | dependencies: 1414 | is-plain-object "^2.0.4" 1415 | 1416 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1417 | version "2.1.1" 1418 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1419 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1420 | 1421 | is-fullwidth-code-point@^1.0.0: 1422 | version "1.0.0" 1423 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1424 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1425 | dependencies: 1426 | number-is-nan "^1.0.0" 1427 | 1428 | is-fullwidth-code-point@^2.0.0: 1429 | version "2.0.0" 1430 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1431 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1432 | 1433 | is-glob@^3.1.0: 1434 | version "3.1.0" 1435 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1436 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 1437 | dependencies: 1438 | is-extglob "^2.1.0" 1439 | 1440 | is-glob@^4.0.0: 1441 | version "4.0.1" 1442 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1443 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1444 | dependencies: 1445 | is-extglob "^2.1.1" 1446 | 1447 | is-installed-globally@^0.1.0: 1448 | version "0.1.0" 1449 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1450 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= 1451 | dependencies: 1452 | global-dirs "^0.1.0" 1453 | is-path-inside "^1.0.0" 1454 | 1455 | is-npm@^1.0.0: 1456 | version "1.0.0" 1457 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1458 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 1459 | 1460 | is-number@^3.0.0: 1461 | version "3.0.0" 1462 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1463 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 1464 | dependencies: 1465 | kind-of "^3.0.2" 1466 | 1467 | is-obj@^1.0.0: 1468 | version "1.0.1" 1469 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1470 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 1471 | 1472 | is-path-inside@^1.0.0: 1473 | version "1.0.1" 1474 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1475 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= 1476 | dependencies: 1477 | path-is-inside "^1.0.1" 1478 | 1479 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1480 | version "2.0.4" 1481 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1482 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1483 | dependencies: 1484 | isobject "^3.0.1" 1485 | 1486 | is-redirect@^1.0.0: 1487 | version "1.0.0" 1488 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1489 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 1490 | 1491 | is-retry-allowed@^1.0.0: 1492 | version "1.1.0" 1493 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 1494 | integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= 1495 | 1496 | is-stream@^1.0.0, is-stream@^1.1.0: 1497 | version "1.1.0" 1498 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1499 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1500 | 1501 | is-windows@^1.0.2: 1502 | version "1.0.2" 1503 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1504 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 1505 | 1506 | isarray@1.0.0, isarray@~1.0.0: 1507 | version "1.0.0" 1508 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1509 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1510 | 1511 | isexe@^2.0.0: 1512 | version "2.0.0" 1513 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1514 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1515 | 1516 | isobject@^2.0.0: 1517 | version "2.1.0" 1518 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1519 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1520 | dependencies: 1521 | isarray "1.0.0" 1522 | 1523 | isobject@^3.0.0, isobject@^3.0.1: 1524 | version "3.0.1" 1525 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1526 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1527 | 1528 | js-tokens@^4.0.0: 1529 | version "4.0.0" 1530 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1531 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1532 | 1533 | js-yaml@^3.13.0: 1534 | version "3.13.1" 1535 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1536 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 1537 | dependencies: 1538 | argparse "^1.0.7" 1539 | esprima "^4.0.0" 1540 | 1541 | json-parse-better-errors@^1.0.1: 1542 | version "1.0.2" 1543 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1544 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1545 | 1546 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1547 | version "3.2.2" 1548 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1549 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1550 | dependencies: 1551 | is-buffer "^1.1.5" 1552 | 1553 | kind-of@^4.0.0: 1554 | version "4.0.0" 1555 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1556 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1557 | dependencies: 1558 | is-buffer "^1.1.5" 1559 | 1560 | kind-of@^5.0.0: 1561 | version "5.1.0" 1562 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1563 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 1564 | 1565 | kind-of@^6.0.0, kind-of@^6.0.2: 1566 | version "6.0.2" 1567 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1568 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== 1569 | 1570 | latest-version@^3.0.0: 1571 | version "3.1.0" 1572 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1573 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= 1574 | dependencies: 1575 | package-json "^4.0.0" 1576 | 1577 | lcid@^2.0.0: 1578 | version "2.0.0" 1579 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 1580 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 1581 | dependencies: 1582 | invert-kv "^2.0.0" 1583 | 1584 | locate-path@^3.0.0: 1585 | version "3.0.0" 1586 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1587 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1588 | dependencies: 1589 | p-locate "^3.0.0" 1590 | path-exists "^3.0.0" 1591 | 1592 | lodash@^4.17.10: 1593 | version "4.17.11" 1594 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 1595 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== 1596 | 1597 | lowercase-keys@^1.0.0: 1598 | version "1.0.1" 1599 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 1600 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 1601 | 1602 | lru-cache@^4.0.1: 1603 | version "4.1.5" 1604 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 1605 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 1606 | dependencies: 1607 | pseudomap "^1.0.2" 1608 | yallist "^2.1.2" 1609 | 1610 | make-dir@^1.0.0: 1611 | version "1.3.0" 1612 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1613 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== 1614 | dependencies: 1615 | pify "^3.0.0" 1616 | 1617 | make-error@^1.1.1: 1618 | version "1.3.5" 1619 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" 1620 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== 1621 | 1622 | map-age-cleaner@^0.1.1: 1623 | version "0.1.3" 1624 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 1625 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 1626 | dependencies: 1627 | p-defer "^1.0.0" 1628 | 1629 | map-cache@^0.2.2: 1630 | version "0.2.2" 1631 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1632 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1633 | 1634 | map-visit@^1.0.0: 1635 | version "1.0.0" 1636 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1637 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1638 | dependencies: 1639 | object-visit "^1.0.0" 1640 | 1641 | media-typer@0.3.0: 1642 | version "0.3.0" 1643 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1644 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 1645 | 1646 | mem@^4.0.0: 1647 | version "4.3.0" 1648 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" 1649 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== 1650 | dependencies: 1651 | map-age-cleaner "^0.1.1" 1652 | mimic-fn "^2.0.0" 1653 | p-is-promise "^2.0.0" 1654 | 1655 | merge-descriptors@1.0.1: 1656 | version "1.0.1" 1657 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1658 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 1659 | 1660 | methods@~1.1.2: 1661 | version "1.1.2" 1662 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1663 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 1664 | 1665 | micromatch@^3.1.10, micromatch@^3.1.4: 1666 | version "3.1.10" 1667 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1668 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 1669 | dependencies: 1670 | arr-diff "^4.0.0" 1671 | array-unique "^0.3.2" 1672 | braces "^2.3.1" 1673 | define-property "^2.0.2" 1674 | extend-shallow "^3.0.2" 1675 | extglob "^2.0.4" 1676 | fragment-cache "^0.2.1" 1677 | kind-of "^6.0.2" 1678 | nanomatch "^1.2.9" 1679 | object.pick "^1.3.0" 1680 | regex-not "^1.0.0" 1681 | snapdragon "^0.8.1" 1682 | to-regex "^3.0.2" 1683 | 1684 | mime-db@1.40.0: 1685 | version "1.40.0" 1686 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" 1687 | integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== 1688 | 1689 | mime-db@~1.38.0: 1690 | version "1.38.0" 1691 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" 1692 | integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== 1693 | 1694 | mime-types@~2.1.18: 1695 | version "2.1.22" 1696 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" 1697 | integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== 1698 | dependencies: 1699 | mime-db "~1.38.0" 1700 | 1701 | mime-types@~2.1.24: 1702 | version "2.1.24" 1703 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" 1704 | integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== 1705 | dependencies: 1706 | mime-db "1.40.0" 1707 | 1708 | mime@1.4.1: 1709 | version "1.4.1" 1710 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 1711 | integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== 1712 | 1713 | mime@1.6.0: 1714 | version "1.6.0" 1715 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1716 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1717 | 1718 | mimic-fn@^2.0.0: 1719 | version "2.1.0" 1720 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1721 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1722 | 1723 | minimatch@^3.0.4: 1724 | version "3.0.4" 1725 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1726 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1727 | dependencies: 1728 | brace-expansion "^1.1.7" 1729 | 1730 | minimist@0.0.8: 1731 | version "0.0.8" 1732 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1733 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 1734 | 1735 | minimist@^1.2.0: 1736 | version "1.2.0" 1737 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1738 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 1739 | 1740 | minipass@^2.2.1, minipass@^2.3.4: 1741 | version "2.3.5" 1742 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" 1743 | integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== 1744 | dependencies: 1745 | safe-buffer "^5.1.2" 1746 | yallist "^3.0.0" 1747 | 1748 | minizlib@^1.1.1: 1749 | version "1.2.1" 1750 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" 1751 | integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== 1752 | dependencies: 1753 | minipass "^2.2.1" 1754 | 1755 | mixin-deep@^1.2.0: 1756 | version "1.3.1" 1757 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 1758 | integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== 1759 | dependencies: 1760 | for-in "^1.0.2" 1761 | is-extendable "^1.0.1" 1762 | 1763 | mkdirp@^0.5.0, mkdirp@^0.5.1: 1764 | version "0.5.1" 1765 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1766 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 1767 | dependencies: 1768 | minimist "0.0.8" 1769 | 1770 | mock-require@^3.0.2: 1771 | version "3.0.3" 1772 | resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz#ccd544d9eae81dd576b3f219f69ec867318a1946" 1773 | integrity sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg== 1774 | dependencies: 1775 | get-caller-file "^1.0.2" 1776 | normalize-path "^2.1.1" 1777 | 1778 | morgan@^1.9.1: 1779 | version "1.9.1" 1780 | resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" 1781 | integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== 1782 | dependencies: 1783 | basic-auth "~2.0.0" 1784 | debug "2.6.9" 1785 | depd "~1.1.2" 1786 | on-finished "~2.3.0" 1787 | on-headers "~1.0.1" 1788 | 1789 | ms@2.0.0: 1790 | version "2.0.0" 1791 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1792 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1793 | 1794 | ms@2.1.1, ms@^2.1.1: 1795 | version "2.1.1" 1796 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1797 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1798 | 1799 | nan@^2.12.1: 1800 | version "2.13.2" 1801 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" 1802 | integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== 1803 | 1804 | nanoid@^2.0.0: 1805 | version "2.0.3" 1806 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.0.3.tgz#dde999e173bc9d7bd2ee2746b89909ade98e075e" 1807 | integrity sha512-NbaoqdhIYmY6FXDRB4eYtDVC9Z9eCbn8TyaiC16LNKtpPv/aqa0tOPD8y6gNE4yUNnaZ7LLhYtXOev/6+cBtfw== 1808 | 1809 | nanomatch@^1.2.9: 1810 | version "1.2.13" 1811 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1812 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 1813 | dependencies: 1814 | arr-diff "^4.0.0" 1815 | array-unique "^0.3.2" 1816 | define-property "^2.0.2" 1817 | extend-shallow "^3.0.2" 1818 | fragment-cache "^0.2.1" 1819 | is-windows "^1.0.2" 1820 | kind-of "^6.0.2" 1821 | object.pick "^1.3.0" 1822 | regex-not "^1.0.0" 1823 | snapdragon "^0.8.1" 1824 | to-regex "^3.0.1" 1825 | 1826 | needle@^2.2.1: 1827 | version "2.4.0" 1828 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" 1829 | integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== 1830 | dependencies: 1831 | debug "^3.2.6" 1832 | iconv-lite "^0.4.4" 1833 | sax "^1.2.4" 1834 | 1835 | negotiator@0.6.1: 1836 | version "0.6.1" 1837 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1838 | integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= 1839 | 1840 | negotiator@0.6.2: 1841 | version "0.6.2" 1842 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1843 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1844 | 1845 | nice-try@^1.0.4: 1846 | version "1.0.5" 1847 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1848 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1849 | 1850 | node-pre-gyp@^0.12.0: 1851 | version "0.12.0" 1852 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" 1853 | integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== 1854 | dependencies: 1855 | detect-libc "^1.0.2" 1856 | mkdirp "^0.5.1" 1857 | needle "^2.2.1" 1858 | nopt "^4.0.1" 1859 | npm-packlist "^1.1.6" 1860 | npmlog "^4.0.2" 1861 | rc "^1.2.7" 1862 | rimraf "^2.6.1" 1863 | semver "^5.3.0" 1864 | tar "^4" 1865 | 1866 | nodemon@^1.19.0: 1867 | version "1.19.0" 1868 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.0.tgz#358e005549a1e9e1148cb2b9b8b28957dc4e4527" 1869 | integrity sha512-NHKpb/Je0Urmwi3QPDHlYuFY9m1vaVfTsRZG5X73rY46xPj0JpNe8WhUGQdkDXQDOxrBNIU3JrcflE9Y44EcuA== 1870 | dependencies: 1871 | chokidar "^2.1.5" 1872 | debug "^3.1.0" 1873 | ignore-by-default "^1.0.1" 1874 | minimatch "^3.0.4" 1875 | pstree.remy "^1.1.6" 1876 | semver "^5.5.0" 1877 | supports-color "^5.2.0" 1878 | touch "^3.1.0" 1879 | undefsafe "^2.0.2" 1880 | update-notifier "^2.5.0" 1881 | 1882 | nonenumerable@^1.0.1: 1883 | version "1.1.1" 1884 | resolved "https://registry.yarnpkg.com/nonenumerable/-/nonenumerable-1.1.1.tgz#35f74d66a2571a09f25bc143c87324ec7dd0e4ff" 1885 | integrity sha512-ptUD9w9D8WqW6fuJJkZNCImkf+0vdbgUTbRK3i7jsy3olqtH96hYE6Q/S3Tx9NWbcB/ocAjYshXCAUP0lZ9B4Q== 1886 | 1887 | nopt@^4.0.1: 1888 | version "4.0.1" 1889 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1890 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= 1891 | dependencies: 1892 | abbrev "1" 1893 | osenv "^0.1.4" 1894 | 1895 | nopt@~1.0.10: 1896 | version "1.0.10" 1897 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1898 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1899 | dependencies: 1900 | abbrev "1" 1901 | 1902 | normalize-package-data@^2.3.2: 1903 | version "2.5.0" 1904 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1905 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1906 | dependencies: 1907 | hosted-git-info "^2.1.4" 1908 | resolve "^1.10.0" 1909 | semver "2 || 3 || 4 || 5" 1910 | validate-npm-package-license "^3.0.1" 1911 | 1912 | normalize-path@^2.1.1: 1913 | version "2.1.1" 1914 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1915 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 1916 | dependencies: 1917 | remove-trailing-separator "^1.0.1" 1918 | 1919 | normalize-path@^3.0.0: 1920 | version "3.0.0" 1921 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1922 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1923 | 1924 | notepack.io@^2.2.0: 1925 | version "2.2.0" 1926 | resolved "https://registry.yarnpkg.com/notepack.io/-/notepack.io-2.2.0.tgz#d7ea71d1cb90094f88c6f3c8d84277c2d0cd101c" 1927 | integrity sha512-9b5w3t5VSH6ZPosoYnyDONnUTF8o0UkBw7JLA6eBlYJWyGT1Q3vQa8Hmuj1/X6RYvHjjygBDgw6fJhe0JEojfw== 1928 | 1929 | npm-bundled@^1.0.1: 1930 | version "1.0.6" 1931 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" 1932 | integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== 1933 | 1934 | npm-packlist@^1.1.6: 1935 | version "1.4.1" 1936 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" 1937 | integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== 1938 | dependencies: 1939 | ignore-walk "^3.0.1" 1940 | npm-bundled "^1.0.1" 1941 | 1942 | npm-run-path@^2.0.0: 1943 | version "2.0.2" 1944 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1945 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1946 | dependencies: 1947 | path-key "^2.0.0" 1948 | 1949 | npmlog@^4.0.2: 1950 | version "4.1.2" 1951 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1952 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 1953 | dependencies: 1954 | are-we-there-yet "~1.1.2" 1955 | console-control-strings "~1.1.0" 1956 | gauge "~2.7.3" 1957 | set-blocking "~2.0.0" 1958 | 1959 | number-is-nan@^1.0.0: 1960 | version "1.0.1" 1961 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1962 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1963 | 1964 | object-assign@^4, object-assign@^4.1.0: 1965 | version "4.1.1" 1966 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1967 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1968 | 1969 | object-copy@^0.1.0: 1970 | version "0.1.0" 1971 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 1972 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 1973 | dependencies: 1974 | copy-descriptor "^0.1.0" 1975 | define-property "^0.2.5" 1976 | kind-of "^3.0.3" 1977 | 1978 | object-visit@^1.0.0: 1979 | version "1.0.1" 1980 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 1981 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 1982 | dependencies: 1983 | isobject "^3.0.0" 1984 | 1985 | object.pick@^1.3.0: 1986 | version "1.3.0" 1987 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 1988 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 1989 | dependencies: 1990 | isobject "^3.0.1" 1991 | 1992 | on-finished@~2.3.0: 1993 | version "2.3.0" 1994 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1995 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1996 | dependencies: 1997 | ee-first "1.1.1" 1998 | 1999 | on-headers@~1.0.1: 2000 | version "1.0.2" 2001 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 2002 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 2003 | 2004 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2005 | version "1.4.0" 2006 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2007 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2008 | dependencies: 2009 | wrappy "1" 2010 | 2011 | os-homedir@^1.0.0: 2012 | version "1.0.2" 2013 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2014 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 2015 | 2016 | os-locale@^3.0.0: 2017 | version "3.1.0" 2018 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" 2019 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== 2020 | dependencies: 2021 | execa "^1.0.0" 2022 | lcid "^2.0.0" 2023 | mem "^4.0.0" 2024 | 2025 | os-tmpdir@^1.0.0: 2026 | version "1.0.2" 2027 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2028 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 2029 | 2030 | osenv@^0.1.4: 2031 | version "0.1.5" 2032 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2033 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== 2034 | dependencies: 2035 | os-homedir "^1.0.0" 2036 | os-tmpdir "^1.0.0" 2037 | 2038 | p-defer@^1.0.0: 2039 | version "1.0.0" 2040 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 2041 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 2042 | 2043 | p-finally@^1.0.0: 2044 | version "1.0.0" 2045 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2046 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 2047 | 2048 | p-is-promise@^2.0.0: 2049 | version "2.1.0" 2050 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" 2051 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== 2052 | 2053 | p-limit@^2.0.0: 2054 | version "2.2.0" 2055 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" 2056 | integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== 2057 | dependencies: 2058 | p-try "^2.0.0" 2059 | 2060 | p-locate@^3.0.0: 2061 | version "3.0.0" 2062 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2063 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 2064 | dependencies: 2065 | p-limit "^2.0.0" 2066 | 2067 | p-try@^2.0.0: 2068 | version "2.2.0" 2069 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2070 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2071 | 2072 | package-json@^4.0.0: 2073 | version "4.0.1" 2074 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2075 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= 2076 | dependencies: 2077 | got "^6.7.1" 2078 | registry-auth-token "^3.0.1" 2079 | registry-url "^3.0.3" 2080 | semver "^5.1.0" 2081 | 2082 | parse-json@^4.0.0: 2083 | version "4.0.0" 2084 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 2085 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 2086 | dependencies: 2087 | error-ex "^1.3.1" 2088 | json-parse-better-errors "^1.0.1" 2089 | 2090 | parseurl@~1.3.2: 2091 | version "1.3.2" 2092 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 2093 | integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= 2094 | 2095 | parseurl@~1.3.3: 2096 | version "1.3.3" 2097 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2098 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2099 | 2100 | pascalcase@^0.1.1: 2101 | version "0.1.1" 2102 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2103 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 2104 | 2105 | path-dirname@^1.0.0: 2106 | version "1.0.2" 2107 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2108 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 2109 | 2110 | path-exists@^3.0.0: 2111 | version "3.0.0" 2112 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2113 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 2114 | 2115 | path-is-absolute@^1.0.0: 2116 | version "1.0.1" 2117 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2118 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2119 | 2120 | path-is-inside@^1.0.1: 2121 | version "1.0.2" 2122 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2123 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 2124 | 2125 | path-key@^2.0.0, path-key@^2.0.1: 2126 | version "2.0.1" 2127 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2128 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 2129 | 2130 | path-parse@^1.0.6: 2131 | version "1.0.6" 2132 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2133 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 2134 | 2135 | path-to-regexp@0.1.7: 2136 | version "0.1.7" 2137 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2138 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 2139 | 2140 | pify@^3.0.0: 2141 | version "3.0.0" 2142 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2143 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 2144 | 2145 | posix-character-classes@^0.1.0: 2146 | version "0.1.1" 2147 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2148 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 2149 | 2150 | prepend-http@^1.0.1: 2151 | version "1.0.4" 2152 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2153 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= 2154 | 2155 | process-nextick-args@~2.0.0: 2156 | version "2.0.0" 2157 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2158 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== 2159 | 2160 | proxy-addr@~2.0.4: 2161 | version "2.0.4" 2162 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" 2163 | integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== 2164 | dependencies: 2165 | forwarded "~0.1.2" 2166 | ipaddr.js "1.8.0" 2167 | 2168 | proxy-addr@~2.0.5: 2169 | version "2.0.5" 2170 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" 2171 | integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== 2172 | dependencies: 2173 | forwarded "~0.1.2" 2174 | ipaddr.js "1.9.0" 2175 | 2176 | pseudomap@^1.0.2: 2177 | version "1.0.2" 2178 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2179 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 2180 | 2181 | pstree.remy@^1.1.6: 2182 | version "1.1.6" 2183 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.6.tgz#73a55aad9e2d95814927131fbf4dc1b62d259f47" 2184 | integrity sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w== 2185 | 2186 | pump@^3.0.0: 2187 | version "3.0.0" 2188 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 2189 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2190 | dependencies: 2191 | end-of-stream "^1.1.0" 2192 | once "^1.3.1" 2193 | 2194 | qs@6.5.2: 2195 | version "6.5.2" 2196 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2197 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 2198 | 2199 | qs@6.7.0: 2200 | version "6.7.0" 2201 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 2202 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 2203 | 2204 | range-parser@~1.2.0: 2205 | version "1.2.0" 2206 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 2207 | integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= 2208 | 2209 | range-parser@~1.2.1: 2210 | version "1.2.1" 2211 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 2212 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 2213 | 2214 | raw-body@2.3.3: 2215 | version "2.3.3" 2216 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 2217 | integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== 2218 | dependencies: 2219 | bytes "3.0.0" 2220 | http-errors "1.6.3" 2221 | iconv-lite "0.4.23" 2222 | unpipe "1.0.0" 2223 | 2224 | raw-body@2.4.0: 2225 | version "2.4.0" 2226 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 2227 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 2228 | dependencies: 2229 | bytes "3.1.0" 2230 | http-errors "1.7.2" 2231 | iconv-lite "0.4.24" 2232 | unpipe "1.0.0" 2233 | 2234 | rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: 2235 | version "1.2.8" 2236 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2237 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 2238 | dependencies: 2239 | deep-extend "^0.6.0" 2240 | ini "~1.3.0" 2241 | minimist "^1.2.0" 2242 | strip-json-comments "~2.0.1" 2243 | 2244 | read-pkg@^4.0.1: 2245 | version "4.0.1" 2246 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" 2247 | integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= 2248 | dependencies: 2249 | normalize-package-data "^2.3.2" 2250 | parse-json "^4.0.0" 2251 | pify "^3.0.0" 2252 | 2253 | readable-stream@^2.0.2, readable-stream@^2.0.6: 2254 | version "2.3.6" 2255 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2256 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 2257 | dependencies: 2258 | core-util-is "~1.0.0" 2259 | inherits "~2.0.3" 2260 | isarray "~1.0.0" 2261 | process-nextick-args "~2.0.0" 2262 | safe-buffer "~5.1.1" 2263 | string_decoder "~1.1.1" 2264 | util-deprecate "~1.0.1" 2265 | 2266 | readdirp@^2.2.1: 2267 | version "2.2.1" 2268 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2269 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 2270 | dependencies: 2271 | graceful-fs "^4.1.11" 2272 | micromatch "^3.1.10" 2273 | readable-stream "^2.0.2" 2274 | 2275 | rechoir@^0.6.2: 2276 | version "0.6.2" 2277 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 2278 | integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= 2279 | dependencies: 2280 | resolve "^1.1.6" 2281 | 2282 | redis-commands@^1.2.0: 2283 | version "1.5.0" 2284 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" 2285 | integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg== 2286 | 2287 | redis-parser@^2.6.0: 2288 | version "2.6.0" 2289 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 2290 | integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs= 2291 | 2292 | redis@^2.8.0: 2293 | version "2.8.0" 2294 | resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" 2295 | integrity sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A== 2296 | dependencies: 2297 | double-ended-queue "^2.1.0-0" 2298 | redis-commands "^1.2.0" 2299 | redis-parser "^2.6.0" 2300 | 2301 | regex-not@^1.0.0, regex-not@^1.0.2: 2302 | version "1.0.2" 2303 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2304 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 2305 | dependencies: 2306 | extend-shallow "^3.0.2" 2307 | safe-regex "^1.1.0" 2308 | 2309 | registry-auth-token@^3.0.1: 2310 | version "3.4.0" 2311 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 2312 | integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== 2313 | dependencies: 2314 | rc "^1.1.6" 2315 | safe-buffer "^5.0.1" 2316 | 2317 | registry-url@^3.0.3: 2318 | version "3.1.0" 2319 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2320 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 2321 | dependencies: 2322 | rc "^1.0.1" 2323 | 2324 | remove-trailing-separator@^1.0.1: 2325 | version "1.1.0" 2326 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2327 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 2328 | 2329 | repeat-element@^1.1.2: 2330 | version "1.1.3" 2331 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2332 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 2333 | 2334 | repeat-string@^1.6.1: 2335 | version "1.6.1" 2336 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2337 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 2338 | 2339 | require-directory@^2.1.1: 2340 | version "2.1.1" 2341 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2342 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 2343 | 2344 | require-main-filename@^1.0.1: 2345 | version "1.0.1" 2346 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2347 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 2348 | 2349 | resolve-url@^0.2.1: 2350 | version "0.2.1" 2351 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2352 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 2353 | 2354 | resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2: 2355 | version "1.11.0" 2356 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" 2357 | integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== 2358 | dependencies: 2359 | path-parse "^1.0.6" 2360 | 2361 | ret@~0.1.10: 2362 | version "0.1.15" 2363 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2364 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 2365 | 2366 | rimraf@^2.6.1: 2367 | version "2.6.3" 2368 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 2369 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 2370 | dependencies: 2371 | glob "^7.1.3" 2372 | 2373 | rxjs@^6.3.3: 2374 | version "6.5.2" 2375 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" 2376 | integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== 2377 | dependencies: 2378 | tslib "^1.9.0" 2379 | 2380 | safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2381 | version "5.1.2" 2382 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2383 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2384 | 2385 | safe-regex@^1.1.0: 2386 | version "1.1.0" 2387 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2388 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 2389 | dependencies: 2390 | ret "~0.1.10" 2391 | 2392 | "safer-buffer@>= 2.1.2 < 3": 2393 | version "2.1.2" 2394 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2395 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2396 | 2397 | sax@^1.2.4: 2398 | version "1.2.4" 2399 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2400 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 2401 | 2402 | semver-diff@^2.0.0: 2403 | version "2.1.0" 2404 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2405 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 2406 | dependencies: 2407 | semver "^5.0.3" 2408 | 2409 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0: 2410 | version "5.7.0" 2411 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 2412 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 2413 | 2414 | send@0.16.2: 2415 | version "0.16.2" 2416 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 2417 | integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== 2418 | dependencies: 2419 | debug "2.6.9" 2420 | depd "~1.1.2" 2421 | destroy "~1.0.4" 2422 | encodeurl "~1.0.2" 2423 | escape-html "~1.0.3" 2424 | etag "~1.8.1" 2425 | fresh "0.5.2" 2426 | http-errors "~1.6.2" 2427 | mime "1.4.1" 2428 | ms "2.0.0" 2429 | on-finished "~2.3.0" 2430 | range-parser "~1.2.0" 2431 | statuses "~1.4.0" 2432 | 2433 | send@0.17.1: 2434 | version "0.17.1" 2435 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 2436 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 2437 | dependencies: 2438 | debug "2.6.9" 2439 | depd "~1.1.2" 2440 | destroy "~1.0.4" 2441 | encodeurl "~1.0.2" 2442 | escape-html "~1.0.3" 2443 | etag "~1.8.1" 2444 | fresh "0.5.2" 2445 | http-errors "~1.7.2" 2446 | mime "1.6.0" 2447 | ms "2.1.1" 2448 | on-finished "~2.3.0" 2449 | range-parser "~1.2.1" 2450 | statuses "~1.5.0" 2451 | 2452 | serve-static@1.13.2: 2453 | version "1.13.2" 2454 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 2455 | integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== 2456 | dependencies: 2457 | encodeurl "~1.0.2" 2458 | escape-html "~1.0.3" 2459 | parseurl "~1.3.2" 2460 | send "0.16.2" 2461 | 2462 | serve-static@1.14.1: 2463 | version "1.14.1" 2464 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 2465 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 2466 | dependencies: 2467 | encodeurl "~1.0.2" 2468 | escape-html "~1.0.3" 2469 | parseurl "~1.3.3" 2470 | send "0.17.1" 2471 | 2472 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2473 | version "2.0.0" 2474 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2475 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2476 | 2477 | set-value@^0.4.3: 2478 | version "0.4.3" 2479 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2480 | integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= 2481 | dependencies: 2482 | extend-shallow "^2.0.1" 2483 | is-extendable "^0.1.1" 2484 | is-plain-object "^2.0.1" 2485 | to-object-path "^0.3.0" 2486 | 2487 | set-value@^2.0.0: 2488 | version "2.0.0" 2489 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2490 | integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== 2491 | dependencies: 2492 | extend-shallow "^2.0.1" 2493 | is-extendable "^0.1.1" 2494 | is-plain-object "^2.0.3" 2495 | split-string "^3.0.1" 2496 | 2497 | setprototypeof@1.1.0: 2498 | version "1.1.0" 2499 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 2500 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 2501 | 2502 | setprototypeof@1.1.1: 2503 | version "1.1.1" 2504 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 2505 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 2506 | 2507 | shebang-command@^1.2.0: 2508 | version "1.2.0" 2509 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2510 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2511 | dependencies: 2512 | shebang-regex "^1.0.0" 2513 | 2514 | shebang-regex@^1.0.0: 2515 | version "1.0.0" 2516 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2517 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2518 | 2519 | shelljs@^0.8.3: 2520 | version "0.8.3" 2521 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" 2522 | integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A== 2523 | dependencies: 2524 | glob "^7.0.0" 2525 | interpret "^1.0.0" 2526 | rechoir "^0.6.2" 2527 | 2528 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2529 | version "3.0.2" 2530 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2531 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 2532 | 2533 | snapdragon-node@^2.0.1: 2534 | version "2.1.1" 2535 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2536 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 2537 | dependencies: 2538 | define-property "^1.0.0" 2539 | isobject "^3.0.0" 2540 | snapdragon-util "^3.0.1" 2541 | 2542 | snapdragon-util@^3.0.1: 2543 | version "3.0.1" 2544 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2545 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 2546 | dependencies: 2547 | kind-of "^3.2.0" 2548 | 2549 | snapdragon@^0.8.1: 2550 | version "0.8.2" 2551 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2552 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 2553 | dependencies: 2554 | base "^0.11.1" 2555 | debug "^2.2.0" 2556 | define-property "^0.2.5" 2557 | extend-shallow "^2.0.1" 2558 | map-cache "^0.2.2" 2559 | source-map "^0.5.6" 2560 | source-map-resolve "^0.5.0" 2561 | use "^3.1.0" 2562 | 2563 | source-map-resolve@^0.5.0: 2564 | version "0.5.2" 2565 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2566 | integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== 2567 | dependencies: 2568 | atob "^2.1.1" 2569 | decode-uri-component "^0.2.0" 2570 | resolve-url "^0.2.1" 2571 | source-map-url "^0.4.0" 2572 | urix "^0.1.0" 2573 | 2574 | source-map-support@^0.5.6: 2575 | version "0.5.12" 2576 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" 2577 | integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== 2578 | dependencies: 2579 | buffer-from "^1.0.0" 2580 | source-map "^0.6.0" 2581 | 2582 | source-map-url@^0.4.0: 2583 | version "0.4.0" 2584 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2585 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 2586 | 2587 | source-map@^0.5.6: 2588 | version "0.5.7" 2589 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2590 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2591 | 2592 | source-map@^0.6.0: 2593 | version "0.6.1" 2594 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2595 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2596 | 2597 | spawn-command@^0.0.2-1: 2598 | version "0.0.2-1" 2599 | resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" 2600 | integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= 2601 | 2602 | spdx-correct@^3.0.0: 2603 | version "3.1.0" 2604 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 2605 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 2606 | dependencies: 2607 | spdx-expression-parse "^3.0.0" 2608 | spdx-license-ids "^3.0.0" 2609 | 2610 | spdx-exceptions@^2.1.0: 2611 | version "2.2.0" 2612 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 2613 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 2614 | 2615 | spdx-expression-parse@^3.0.0: 2616 | version "3.0.0" 2617 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 2618 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 2619 | dependencies: 2620 | spdx-exceptions "^2.1.0" 2621 | spdx-license-ids "^3.0.0" 2622 | 2623 | spdx-license-ids@^3.0.0: 2624 | version "3.0.4" 2625 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" 2626 | integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== 2627 | 2628 | split-string@^3.0.1, split-string@^3.0.2: 2629 | version "3.1.0" 2630 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2631 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 2632 | dependencies: 2633 | extend-shallow "^3.0.0" 2634 | 2635 | sprintf-js@~1.0.2: 2636 | version "1.0.3" 2637 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2638 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2639 | 2640 | static-extend@^0.1.1: 2641 | version "0.1.2" 2642 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2643 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 2644 | dependencies: 2645 | define-property "^0.2.5" 2646 | object-copy "^0.1.0" 2647 | 2648 | "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 2649 | version "1.5.0" 2650 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2651 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2652 | 2653 | statuses@~1.4.0: 2654 | version "1.4.0" 2655 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 2656 | integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== 2657 | 2658 | string-width@^1.0.1: 2659 | version "1.0.2" 2660 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2661 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 2662 | dependencies: 2663 | code-point-at "^1.0.0" 2664 | is-fullwidth-code-point "^1.0.0" 2665 | strip-ansi "^3.0.0" 2666 | 2667 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 2668 | version "2.1.1" 2669 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2670 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2671 | dependencies: 2672 | is-fullwidth-code-point "^2.0.0" 2673 | strip-ansi "^4.0.0" 2674 | 2675 | string_decoder@~1.1.1: 2676 | version "1.1.1" 2677 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2678 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 2679 | dependencies: 2680 | safe-buffer "~5.1.0" 2681 | 2682 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2683 | version "3.0.1" 2684 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2685 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 2686 | dependencies: 2687 | ansi-regex "^2.0.0" 2688 | 2689 | strip-ansi@^4.0.0: 2690 | version "4.0.0" 2691 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2692 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2693 | dependencies: 2694 | ansi-regex "^3.0.0" 2695 | 2696 | strip-eof@^1.0.0: 2697 | version "1.0.0" 2698 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2699 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 2700 | 2701 | strip-json-comments@~2.0.1: 2702 | version "2.0.1" 2703 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2704 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2705 | 2706 | supports-color@^4.5.0: 2707 | version "4.5.0" 2708 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 2709 | integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= 2710 | dependencies: 2711 | has-flag "^2.0.0" 2712 | 2713 | supports-color@^5.2.0, supports-color@^5.3.0: 2714 | version "5.5.0" 2715 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2716 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2717 | dependencies: 2718 | has-flag "^3.0.0" 2719 | 2720 | tar@^4: 2721 | version "4.4.8" 2722 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" 2723 | integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== 2724 | dependencies: 2725 | chownr "^1.1.1" 2726 | fs-minipass "^1.2.5" 2727 | minipass "^2.3.4" 2728 | minizlib "^1.1.1" 2729 | mkdirp "^0.5.0" 2730 | safe-buffer "^5.1.2" 2731 | yallist "^3.0.2" 2732 | 2733 | term-size@^1.2.0: 2734 | version "1.2.0" 2735 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 2736 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= 2737 | dependencies: 2738 | execa "^0.7.0" 2739 | 2740 | timed-out@^4.0.0: 2741 | version "4.0.1" 2742 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 2743 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 2744 | 2745 | to-object-path@^0.3.0: 2746 | version "0.3.0" 2747 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 2748 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 2749 | dependencies: 2750 | kind-of "^3.0.2" 2751 | 2752 | to-regex-range@^2.1.0: 2753 | version "2.1.1" 2754 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 2755 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 2756 | dependencies: 2757 | is-number "^3.0.0" 2758 | repeat-string "^1.6.1" 2759 | 2760 | to-regex@^3.0.1, to-regex@^3.0.2: 2761 | version "3.0.2" 2762 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 2763 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 2764 | dependencies: 2765 | define-property "^2.0.2" 2766 | extend-shallow "^3.0.2" 2767 | regex-not "^1.0.2" 2768 | safe-regex "^1.1.0" 2769 | 2770 | toidentifier@1.0.0: 2771 | version "1.0.0" 2772 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 2773 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 2774 | 2775 | touch@^3.1.0: 2776 | version "3.1.0" 2777 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 2778 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 2779 | dependencies: 2780 | nopt "~1.0.10" 2781 | 2782 | tree-kill@^1.1.0: 2783 | version "1.2.1" 2784 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a" 2785 | integrity sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q== 2786 | 2787 | ts-node@^8.1.0: 2788 | version "8.1.0" 2789 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.1.0.tgz#8c4b37036abd448577db22a061fd7a67d47e658e" 2790 | integrity sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A== 2791 | dependencies: 2792 | arg "^4.1.0" 2793 | diff "^3.1.0" 2794 | make-error "^1.1.1" 2795 | source-map-support "^0.5.6" 2796 | yn "^3.0.0" 2797 | 2798 | tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: 2799 | version "1.9.3" 2800 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 2801 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 2802 | 2803 | tslint-config-prettier@^1.18.0: 2804 | version "1.18.0" 2805 | resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" 2806 | integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== 2807 | 2808 | tslint@^5.16.0: 2809 | version "5.16.0" 2810 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67" 2811 | integrity sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA== 2812 | dependencies: 2813 | "@babel/code-frame" "^7.0.0" 2814 | builtin-modules "^1.1.1" 2815 | chalk "^2.3.0" 2816 | commander "^2.12.1" 2817 | diff "^3.2.0" 2818 | glob "^7.1.1" 2819 | js-yaml "^3.13.0" 2820 | minimatch "^3.0.4" 2821 | mkdirp "^0.5.1" 2822 | resolve "^1.3.2" 2823 | semver "^5.3.0" 2824 | tslib "^1.8.0" 2825 | tsutils "^2.29.0" 2826 | 2827 | tsutils@^2.29.0: 2828 | version "2.29.0" 2829 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 2830 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== 2831 | dependencies: 2832 | tslib "^1.8.1" 2833 | 2834 | type-is@~1.6.16: 2835 | version "1.6.16" 2836 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 2837 | integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== 2838 | dependencies: 2839 | media-typer "0.3.0" 2840 | mime-types "~2.1.18" 2841 | 2842 | type-is@~1.6.17, type-is@~1.6.18: 2843 | version "1.6.18" 2844 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2845 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 2846 | dependencies: 2847 | media-typer "0.3.0" 2848 | mime-types "~2.1.24" 2849 | 2850 | typescript-tslint-plugin@^0.3.1: 2851 | version "0.3.1" 2852 | resolved "https://registry.yarnpkg.com/typescript-tslint-plugin/-/typescript-tslint-plugin-0.3.1.tgz#d86ae0342c9e8f9ecfcbcc47f7a7c2b5ab0e86f9" 2853 | integrity sha512-h8HEPBm36UEs901ld1x6m5eY/UFb4mF+A0nvERr4BWMww5wnV5nfcm9ZFt18foYL0GQ5NVMt1Tb3466WUU8dRQ== 2854 | dependencies: 2855 | minimatch "^3.0.4" 2856 | mock-require "^3.0.2" 2857 | vscode-languageserver "^5.1.0" 2858 | 2859 | typescript@^3.4.5: 2860 | version "3.4.5" 2861 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" 2862 | integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== 2863 | 2864 | undefsafe@^2.0.2: 2865 | version "2.0.2" 2866 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" 2867 | integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= 2868 | dependencies: 2869 | debug "^2.2.0" 2870 | 2871 | union-value@^1.0.0: 2872 | version "1.0.0" 2873 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 2874 | integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= 2875 | dependencies: 2876 | arr-union "^3.1.0" 2877 | get-value "^2.0.6" 2878 | is-extendable "^0.1.1" 2879 | set-value "^0.4.3" 2880 | 2881 | unique-string@^1.0.0: 2882 | version "1.0.0" 2883 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 2884 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= 2885 | dependencies: 2886 | crypto-random-string "^1.0.0" 2887 | 2888 | unpipe@1.0.0, unpipe@~1.0.0: 2889 | version "1.0.0" 2890 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2891 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 2892 | 2893 | unset-value@^1.0.0: 2894 | version "1.0.0" 2895 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 2896 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 2897 | dependencies: 2898 | has-value "^0.3.1" 2899 | isobject "^3.0.0" 2900 | 2901 | unzip-response@^2.0.1: 2902 | version "2.0.1" 2903 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 2904 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= 2905 | 2906 | upath@^1.1.1: 2907 | version "1.1.2" 2908 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" 2909 | integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== 2910 | 2911 | update-notifier@^2.5.0: 2912 | version "2.5.0" 2913 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 2914 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== 2915 | dependencies: 2916 | boxen "^1.2.1" 2917 | chalk "^2.0.1" 2918 | configstore "^3.0.0" 2919 | import-lazy "^2.1.0" 2920 | is-ci "^1.0.10" 2921 | is-installed-globally "^0.1.0" 2922 | is-npm "^1.0.0" 2923 | latest-version "^3.0.0" 2924 | semver-diff "^2.0.0" 2925 | xdg-basedir "^3.0.0" 2926 | 2927 | urix@^0.1.0: 2928 | version "0.1.0" 2929 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 2930 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 2931 | 2932 | url-parse-lax@^1.0.0: 2933 | version "1.0.0" 2934 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2935 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= 2936 | dependencies: 2937 | prepend-http "^1.0.1" 2938 | 2939 | use@^3.1.0: 2940 | version "3.1.1" 2941 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 2942 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 2943 | 2944 | util-deprecate@~1.0.1: 2945 | version "1.0.2" 2946 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2947 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2948 | 2949 | utils-merge@1.0.1: 2950 | version "1.0.1" 2951 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2952 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 2953 | 2954 | validate-npm-package-license@^3.0.1: 2955 | version "3.0.4" 2956 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2957 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 2958 | dependencies: 2959 | spdx-correct "^3.0.0" 2960 | spdx-expression-parse "^3.0.0" 2961 | 2962 | vary@^1, vary@~1.1.2: 2963 | version "1.1.2" 2964 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2965 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 2966 | 2967 | vscode-jsonrpc@^4.0.0: 2968 | version "4.0.0" 2969 | resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" 2970 | integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== 2971 | 2972 | vscode-languageserver-protocol@3.14.1: 2973 | version "3.14.1" 2974 | resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f" 2975 | integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g== 2976 | dependencies: 2977 | vscode-jsonrpc "^4.0.0" 2978 | vscode-languageserver-types "3.14.0" 2979 | 2980 | vscode-languageserver-types@3.14.0: 2981 | version "3.14.0" 2982 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" 2983 | integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== 2984 | 2985 | vscode-languageserver@^5.1.0: 2986 | version "5.2.1" 2987 | resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz#0d2feddd33f92aadf5da32450df498d52f6f14eb" 2988 | integrity sha512-GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A== 2989 | dependencies: 2990 | vscode-languageserver-protocol "3.14.1" 2991 | vscode-uri "^1.0.6" 2992 | 2993 | vscode-uri@^1.0.6: 2994 | version "1.0.6" 2995 | resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.6.tgz#6b8f141b0bbc44ad7b07e94f82f168ac7608ad4d" 2996 | integrity sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww== 2997 | 2998 | which-module@^2.0.0: 2999 | version "2.0.0" 3000 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3001 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 3002 | 3003 | which@^1.2.9: 3004 | version "1.3.1" 3005 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3006 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 3007 | dependencies: 3008 | isexe "^2.0.0" 3009 | 3010 | wide-align@^1.1.0: 3011 | version "1.1.3" 3012 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3013 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 3014 | dependencies: 3015 | string-width "^1.0.2 || 2" 3016 | 3017 | widest-line@^2.0.0: 3018 | version "2.0.1" 3019 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 3020 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== 3021 | dependencies: 3022 | string-width "^2.1.1" 3023 | 3024 | wrap-ansi@^2.0.0: 3025 | version "2.1.0" 3026 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3027 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 3028 | dependencies: 3029 | string-width "^1.0.1" 3030 | strip-ansi "^3.0.1" 3031 | 3032 | wrappy@1: 3033 | version "1.0.2" 3034 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3035 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3036 | 3037 | write-file-atomic@^2.0.0: 3038 | version "2.4.2" 3039 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" 3040 | integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== 3041 | dependencies: 3042 | graceful-fs "^4.1.11" 3043 | imurmurhash "^0.1.4" 3044 | signal-exit "^3.0.2" 3045 | 3046 | ws@^6.0.0: 3047 | version "6.2.1" 3048 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" 3049 | integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== 3050 | dependencies: 3051 | async-limiter "~1.0.0" 3052 | 3053 | xdg-basedir@^3.0.0: 3054 | version "3.0.0" 3055 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 3056 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 3057 | 3058 | xhr2@^0.2.0: 3059 | version "0.2.0" 3060 | resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.0.tgz#eddeff782f3b7551061b8d75645085269396e521" 3061 | integrity sha512-BDtiD0i2iKPK/S8OAZfpk6tyzEDnKKSjxWHcMBVmh+LuqJ8A32qXTyOx+TVOg2dKvq6zGBq2sgKPkEeRs1qTRA== 3062 | 3063 | "y18n@^3.2.1 || ^4.0.0": 3064 | version "4.0.0" 3065 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3066 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 3067 | 3068 | yallist@^2.1.2: 3069 | version "2.1.2" 3070 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3071 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 3072 | 3073 | yallist@^3.0.0, yallist@^3.0.2: 3074 | version "3.0.3" 3075 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" 3076 | integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== 3077 | 3078 | yargs-parser@^11.1.1: 3079 | version "11.1.1" 3080 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" 3081 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== 3082 | dependencies: 3083 | camelcase "^5.0.0" 3084 | decamelize "^1.2.0" 3085 | 3086 | yargs@^12.0.1: 3087 | version "12.0.5" 3088 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" 3089 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== 3090 | dependencies: 3091 | cliui "^4.0.0" 3092 | decamelize "^1.2.0" 3093 | find-up "^3.0.0" 3094 | get-caller-file "^1.0.1" 3095 | os-locale "^3.0.0" 3096 | require-directory "^2.1.1" 3097 | require-main-filename "^1.0.1" 3098 | set-blocking "^2.0.0" 3099 | string-width "^2.0.0" 3100 | which-module "^2.0.0" 3101 | y18n "^3.2.1 || ^4.0.0" 3102 | yargs-parser "^11.1.1" 3103 | 3104 | yn@^3.0.0: 3105 | version "3.1.0" 3106 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" 3107 | integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg== 3108 | --------------------------------------------------------------------------------