├── public ├── uploads │ └── .gitkeep ├── favicon.ico ├── script.js ├── style.css └── index.html ├── url-rewrite.json ├── config.js ├── .gitignore ├── src ├── socket-io.js ├── graphql.js └── rest.js ├── utils ├── jwt-authenticate.js └── graphql-scalar-type.js ├── package.json ├── server.js ├── database.json ├── README.md └── yarn.lock /public/uploads/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /url-rewrite.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api/*": "/$1" 3 | } 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robinhuy/fake-api-nodejs/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | export const CONFIG = { 2 | accessTokenSecret: 'accessToken', 3 | accessTokenExpiresInMinutes: '15', 4 | refreshTokenSecret: 'refreshToken', 5 | refreshTokenExpiresInMinutes: '10080', 6 | databaseFile: 'database.json', 7 | urlRewriteFile: 'url-rewrite.json', 8 | proxyServer: 'https://huydq.dev', 9 | proxyUrl: '/blog', 10 | defaultPort: 8000, 11 | }; 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # IDEs and editors 5 | /.idea 6 | .project 7 | .classpath 8 | .c9/ 9 | *.launch 10 | .settings/ 11 | *.sublime-workspace 12 | 13 | # IDE - VSCode 14 | .vscode/* 15 | !.vscode/settings.json 16 | !.vscode/tasks.json 17 | !.vscode/launch.json 18 | !.vscode/extensions.json 19 | .history/* 20 | 21 | # System Files 22 | .DS_Store 23 | Thumbs.db 24 | 25 | # Upload files 26 | /public/uploads/* -------------------------------------------------------------------------------- /src/socket-io.js: -------------------------------------------------------------------------------- 1 | const SocketIOServer = (socket, io) => { 2 | console.log('An user connected'); 3 | 4 | socket.on('emit', (msg) => { 5 | socket.emit('emit', msg); 6 | }); 7 | 8 | socket.on('broadcast', (msg) => { 9 | socket.broadcast.emit('broadcast', msg); 10 | }); 11 | 12 | socket.on('broadcast-all', (msg) => { 13 | io.emit('broadcast-all', msg); 14 | }); 15 | 16 | socket.on('join-room', (roomName) => { 17 | socket.join(roomName); 18 | }); 19 | 20 | socket.on('emit-in-room', ({ room, event, msg }) => { 21 | socket.to(room).emit(event, msg); 22 | }); 23 | 24 | socket.on('disconnect', () => { 25 | console.log('An user disconnected'); 26 | }); 27 | }; 28 | 29 | export default SocketIOServer; 30 | -------------------------------------------------------------------------------- /utils/jwt-authenticate.js: -------------------------------------------------------------------------------- 1 | import jwt from 'jsonwebtoken'; 2 | import { CONFIG } from '../config.js'; 3 | 4 | export const generateAccessToken = (user) => { 5 | return jwt.sign( 6 | { sub: user.id, name: user.firstName + ' ' + user.lastName, avatar: user.avatar }, 7 | CONFIG.accessTokenSecret, 8 | { 9 | expiresIn: CONFIG.accessTokenExpiresInMinutes + 'm', 10 | } 11 | ); 12 | }; 13 | 14 | export const generateRefreshToken = (user) => { 15 | return jwt.sign({ sub: user.id }, CONFIG.refreshTokenSecret, { 16 | expiresIn: CONFIG.refreshTokenExpiresInMinutes + 'm', 17 | }); 18 | }; 19 | 20 | export const decodeRefreshToken = (token) => { 21 | return jwt.verify(token, CONFIG.refreshTokenSecret); 22 | }; 23 | 24 | export const isAuthenticated = (req) => { 25 | let token = ''; 26 | if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') { 27 | token = req.headers.authorization.split(' ')[1]; 28 | } 29 | 30 | try { 31 | jwt.verify(token, CONFIG.accessTokenSecret); 32 | } catch (err) { 33 | return false; 34 | } 35 | 36 | return true; 37 | }; 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fake-api-nodejs", 3 | "version": "1.0.0", 4 | "description": "Fake API using NodeJS + JSON Server + Socket.IO + GraphQL", 5 | "type": "module", 6 | "exports": "./server.js", 7 | "scripts": { 8 | "start": "node server.js", 9 | "dev": "nodemon server.js" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/robinhuy/fake-rest-api-nodejs.git" 14 | }, 15 | "keywords": [ 16 | "json-server", 17 | "rest-api" 18 | ], 19 | "author": "Robin Huy", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/robinhuy/fake-api-nodejs/issues" 23 | }, 24 | "homepage": "https://github.com/robinhuy/fake-api-nodejs#readme", 25 | "dependencies": { 26 | "cors": "^2.8.5", 27 | "express-graphql": "^0.12.0", 28 | "formidable": "^2.1.1", 29 | "graphql": "^16.8.0", 30 | "http-proxy-middleware": "^2.0.6", 31 | "json-server": "^0.17.3", 32 | "jsonwebtoken": "^9.0.2", 33 | "lowdb": "^5.1.0", 34 | "socket.io": "^4.7.2" 35 | }, 36 | "devDependencies": { 37 | "nodemon": "^2.0.22" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /public/script.js: -------------------------------------------------------------------------------- 1 | function ResourceItem({ name, length }) { 2 | if (name === "protectedResources") return; 3 | 4 | return ` 5 |
  • 6 | /${name} 7 | ${length ? `${length}x` : "object"} 8 |
  • 9 | `; 10 | } 11 | 12 | function ResourceList({ db }) { 13 | return ` 14 | 24 | `; 25 | } 26 | 27 | function NoResources() { 28 | return `

    No resources found

    `; 29 | } 30 | 31 | function ResourcesBlock({ db }) { 32 | return ` 33 |
    34 |

    Resources

    35 | ${Object.keys(db).length ? ResourceList({ db }) : NoResources()} 36 |
    37 | `; 38 | } 39 | 40 | window 41 | .fetch("db") 42 | .then((response) => response.json()) 43 | .then( 44 | (db) => 45 | (document.getElementById("resources").innerHTML = ResourcesBlock({ db })) 46 | ); 47 | -------------------------------------------------------------------------------- /public/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | display: flex; 3 | min-height: 100vh; 4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, 5 | Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 6 | flex-direction: column; 7 | padding: 0; 8 | margin: 0; 9 | color: #3b4252; 10 | letter-spacing: 0; 11 | } 12 | 13 | .container { 14 | max-width: 960px; 15 | margin: auto; 16 | padding: 1rem; 17 | } 18 | 19 | header { 20 | border-bottom: 1px solid #eee; 21 | } 22 | 23 | header a { 24 | color: inherit; 25 | text-decoration: none; 26 | } 27 | 28 | header a:hover { 29 | text-decoration: underline; 30 | } 31 | 32 | nav ul { 33 | display: flex; 34 | flex-wrap: nowrap; 35 | justify-content: space-between; 36 | } 37 | 38 | nav li.title { 39 | flex-grow: 5; 40 | text-align: left; 41 | font-weight: bold; 42 | font-size: 1.4rem; 43 | color: #3b4252; 44 | } 45 | 46 | nav li { 47 | flex-grow: 1; 48 | align-self: center; 49 | text-align: right; 50 | color: #4c566a; 51 | } 52 | 53 | .fa-heart { 54 | color: deeppink; 55 | } 56 | 57 | main { 58 | flex: 1; 59 | } 60 | 61 | footer { 62 | margin-top: 4rem; 63 | border-top: 1px solid #eee; 64 | } 65 | 66 | h1 { 67 | margin-top: 4rem; 68 | font-weight: normal; 69 | } 70 | 71 | i { 72 | margin-right: 0.5rem; 73 | } 74 | 75 | a { 76 | color: #5e81ac; 77 | } 78 | 79 | a:hover { 80 | color: #81a1c1; 81 | text-decoration: underline; 82 | } 83 | 84 | table { 85 | margin-left: 0; 86 | } 87 | 88 | td { 89 | border: 0; 90 | padding: 0 1em 0.5em 0; 91 | } 92 | 93 | td:first-child { 94 | width: 1%; 95 | white-space: nowrap; 96 | } 97 | 98 | ul { 99 | list-style-position: inside; 100 | padding-left: 0; 101 | } 102 | 103 | li { 104 | list-style-type: none; 105 | margin-bottom: 0.2rem; 106 | } 107 | 108 | code { 109 | padding: 0.2rem; 110 | margin: 0rem 0.2rem; 111 | border-radius: 0.2rem; 112 | background: #e5e9f0; 113 | } 114 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | Fake REST API NodeJS 11 | 12 | 13 | 14 |
    15 |
    16 | 26 |
    27 |
    28 |
    29 |
    30 |

    Congrats!

    31 |

    32 | You're successfully running API Server 33 |
    34 | ✧*。٩(ˊᗜˋ*)و✧*。 35 |

    36 | 37 |
    38 | 39 |

    To access and modify resources, you can use any HTTP method:

    40 |

    41 | GET 42 | POST 43 | PUT 44 | PATCH 45 | DELETE 46 | OPTIONS 47 |

    48 | 49 |

    Documentation

    50 | 60 |
    61 |
    62 | 63 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /utils/graphql-scalar-type.js: -------------------------------------------------------------------------------- 1 | import { GraphQLScalarType, Kind } from 'graphql'; 2 | 3 | function parseLiteral(ast, variables) { 4 | switch (ast.kind) { 5 | case Kind.STRING: 6 | case Kind.BOOLEAN: 7 | return ast.value; 8 | case Kind.INT: 9 | case Kind.FLOAT: 10 | return parseFloat(ast.value); 11 | case Kind.OBJECT: 12 | return parseObject(ast, variables); 13 | case Kind.LIST: 14 | return ast.values.map((n) => parseLiteral(n, variables)); 15 | case Kind.NULL: 16 | return null; 17 | case Kind.VARIABLE: { 18 | const name = ast.name.value; 19 | return variables ? variables[name] : undefined; 20 | } 21 | } 22 | } 23 | 24 | function parseObject(ast, variables) { 25 | const value = Object.create(null); 26 | ast.fields.forEach((field) => { 27 | value[field.name.value] = parseLiteral(field.value, variables); 28 | }); 29 | 30 | return value; 31 | } 32 | 33 | function ensureObject(value, ast) { 34 | if (typeof value !== 'object' || value === null || Array.isArray(value)) { 35 | throw createGraphQLError( 36 | `JSONObject cannot represent non-object value: ${value}`, 37 | ast 38 | ? { 39 | nodes: ast, 40 | } 41 | : undefined 42 | ); 43 | } 44 | 45 | return value; 46 | } 47 | 48 | export const ObjectScalarType = new GraphQLScalarType({ 49 | name: 'Object', 50 | description: 'Arbitrary object', 51 | parseValue: (value) => { 52 | return typeof value === 'object' ? value : typeof value === 'string' ? JSON.parse(value) : null; 53 | }, 54 | serialize: (value) => { 55 | return typeof value === 'object' ? value : typeof value === 'string' ? JSON.parse(value) : null; 56 | }, 57 | parseLiteral: (ast) => { 58 | switch (ast.kind) { 59 | case Kind.STRING: 60 | return JSON.parse(ast.value); 61 | case Kind.OBJECT: 62 | throw new Error(`Not sure what to do with OBJECT for ObjectScalarType`); 63 | default: 64 | return null; 65 | } 66 | }, 67 | }); 68 | 69 | export const JSONScalarType = new GraphQLScalarType({ 70 | name: 'JSON', 71 | description: 'JSON values', 72 | parseValue: ensureObject, 73 | serialize: ensureObject, 74 | parseLiteral: parseObject, 75 | }); 76 | -------------------------------------------------------------------------------- /src/graphql.js: -------------------------------------------------------------------------------- 1 | import { buildSchema } from 'graphql'; 2 | import { ObjectScalarType, JSONScalarType } from '../utils/graphql-scalar-type.js'; 3 | 4 | export const schema = buildSchema(` 5 | scalar ObjectScalarType 6 | scalar JSONScalarType 7 | 8 | input ObjectValue { 9 | int: Int 10 | float: Float 11 | string: String 12 | boolean: Boolean 13 | } 14 | 15 | type ResponseMessage { 16 | id: ID 17 | code: String 18 | message: String 19 | } 20 | 21 | type Query { 22 | getObjects(objectName: String!): [ObjectScalarType] 23 | getObjectByKey(objectName: String!, objectKey: String!, objectValue: ObjectValue): ObjectScalarType 24 | } 25 | 26 | type Mutation { 27 | createObject(objectName: String!, objectData: JSONScalarType!): ResponseMessage 28 | updateObject(objectName: String!, objectId: ID!, objectData: JSONScalarType!): ResponseMessage 29 | deleteObject(objectName: String!, objectId: ID!): ResponseMessage 30 | } 31 | `); 32 | 33 | export const setupRootValue = (db) => { 34 | return { 35 | getObjects: ({ objectName }) => { 36 | const obj = db.data[objectName]; 37 | return obj; 38 | }, 39 | 40 | getObjectByKey: ({ objectName, objectKey, objectValue }) => { 41 | const obj = db.get(objectName).find((o) => { 42 | return ( 43 | o[objectKey] === 44 | (objectValue.int ?? objectValue.float ?? objectValue.string ?? objectValue.boolean) 45 | ); 46 | }); 47 | return obj; 48 | }, 49 | 50 | createObject: ({ objectName, objectData }) => { 51 | if (!db.data[objectName]) { 52 | db.data[objectName] = []; 53 | } 54 | 55 | const objects = db.data[objectName]; 56 | let maxId = 0; 57 | for (let o of objects) { 58 | if (o.id > maxId) { 59 | maxId = o.id; 60 | } 61 | } 62 | const newObject = { id: maxId + 1, ...objectData }; 63 | 64 | objects.push(newObject); 65 | db.write(); 66 | 67 | return { 68 | id: newObject.id, 69 | code: 200, 70 | message: 'Create object successfully!', 71 | }; 72 | }, 73 | 74 | updateObject: ({ objectName, objectId, objectData }) => { 75 | if (!db.data[objectName]) { 76 | return { 77 | code: 404, 78 | message: 'Object type not found!', 79 | }; 80 | } 81 | 82 | let object = db.data[objectName].find((o) => o.id == objectId); 83 | if (!object) { 84 | return { 85 | code: 404, 86 | message: 'Object not found!', 87 | }; 88 | } 89 | 90 | const { id, ...objectDataWithoutId } = objectData; 91 | for (let key in objectDataWithoutId) { 92 | object[key] = objectDataWithoutId[key]; 93 | } 94 | db.write(); 95 | 96 | return { 97 | id: objectId, 98 | code: 200, 99 | message: 'Update object successfully!', 100 | }; 101 | }, 102 | 103 | deleteObject: ({ objectName, objectId }) => { 104 | if (!db.data[objectName]) { 105 | return { 106 | code: 404, 107 | message: 'Object type not found!', 108 | }; 109 | } 110 | 111 | const objects = db.data[objectName]; 112 | const objectIndex = objects.findIndex((o) => o.id == objectId); 113 | if (objectIndex === -1) { 114 | return { 115 | code: 404, 116 | message: 'Object not found!', 117 | }; 118 | } 119 | 120 | objects.splice(objectIndex, 1); 121 | db.write(); 122 | 123 | return { 124 | id: objectId, 125 | code: 200, 126 | message: 'Delete object successfully!', 127 | }; 128 | }, 129 | }; 130 | }; 131 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | import { graphqlHTTP } from 'express-graphql'; 2 | import http from 'http'; 3 | import jsonServer from 'json-server'; 4 | import { Low } from 'lowdb'; 5 | import { JSONFile } from 'lowdb/node'; 6 | import { Server } from 'socket.io'; 7 | import { createProxyMiddleware } from 'http-proxy-middleware'; 8 | import cors from 'cors'; 9 | 10 | import { CONFIG } from './config.js'; 11 | import { isAuthenticated } from './utils/jwt-authenticate.js'; 12 | import { schema, setupRootValue } from './src/graphql.js'; 13 | import { 14 | loginHandler, 15 | registerHandler, 16 | refreshTokenHandler, 17 | socketEmit, 18 | testHandler, 19 | uploadFileHandler, 20 | uploadFilesHandler, 21 | } from './src/rest.js'; 22 | import socketHandler from './src/socket-io.js'; 23 | 24 | const db = new Low(new JSONFile(CONFIG.databaseFile)); 25 | await db.read(); 26 | 27 | const app = jsonServer.create(); 28 | const router = jsonServer.router(CONFIG.databaseFile); 29 | const middlewares = jsonServer.defaults(); 30 | const port = process.env.PORT || CONFIG.defaultPort; 31 | const server = http.createServer(app); 32 | 33 | // Init socket io server 34 | const io = new Server(server, { 35 | cors: { origin: '*' }, 36 | }); 37 | io.on('connection', (socket) => { 38 | socketHandler(socket, io); 39 | }); 40 | 41 | // Config proxy middlewares 42 | if (CONFIG.proxyServer) { 43 | app.use( 44 | CONFIG.proxyUrl, 45 | createProxyMiddleware({ 46 | target: CONFIG.proxyServer, 47 | changeOrigin: true, 48 | ws: true, 49 | logger: console, 50 | onProxyRes: function (proxyRes, req, res) { 51 | cors()(req, res, () => {}); 52 | }, 53 | }) 54 | ); 55 | } 56 | 57 | // Init graphql 58 | app.use('/graphql', graphqlHTTP({ schema, rootValue: setupRootValue(db), graphiql: true })); 59 | 60 | // Set default middlewares (logger, static, cors and no-cache) 61 | app.use(middlewares); 62 | 63 | // Handle POST, PUT and PATCH request 64 | app.use(jsonServer.bodyParser); 65 | 66 | // Save createdAt and updatedAt automatically 67 | app.use((req, res, next) => { 68 | const currentTime = Date.now(); 69 | 70 | if (req.method === 'POST') { 71 | req.body.createdAt = currentTime; 72 | req.body.modifiedAt = currentTime; 73 | } else if (['PUT', 'PATCH'].includes(req.method)) { 74 | req.body.modifiedAt = currentTime; 75 | } 76 | 77 | next(); 78 | }); 79 | 80 | // Test web socket request 81 | app.post('/socket-emit', (req, res) => { 82 | socketEmit(io, req, res); 83 | }); 84 | 85 | // Test request (change the response in src/rest.js) 86 | app.get('/test', (req, res) => { 87 | testHandler(db, req, res); 88 | }); 89 | 90 | // Register request 91 | app.post('/register', (req, res) => { 92 | registerHandler(db, req, res); 93 | }); 94 | 95 | // Login request 96 | app.post('/login', (req, res) => { 97 | loginHandler(db, req, res); 98 | }); 99 | 100 | // Renew Token request 101 | app.post('/refresh-token', (req, res) => { 102 | refreshTokenHandler(req, res); 103 | }); 104 | 105 | // Upload 1 file 106 | app.post('/upload-file', uploadFileHandler); 107 | 108 | // Upload multiple files 109 | app.post('/upload-files', uploadFilesHandler); 110 | 111 | // Access control 112 | app.use((req, res, next) => { 113 | const protectedResources = db.data.protectedResources; 114 | if (!protectedResources) { 115 | next(); 116 | return; 117 | } 118 | 119 | const resource = req.path.slice(1).split('/')[0]; 120 | const protectedResource = 121 | protectedResources[resource] && protectedResources[resource].map((item) => item.toUpperCase()); 122 | const reqMethod = req.method.toUpperCase(); 123 | 124 | if (protectedResource && protectedResource.includes(reqMethod)) { 125 | if (isAuthenticated(req)) { 126 | next(); 127 | } else { 128 | res.sendStatus(401); 129 | } 130 | } else { 131 | next(); 132 | } 133 | }); 134 | 135 | // Rewrite routes 136 | const urlRewriteFile = new JSONFile(CONFIG.urlRewriteFile); 137 | const rewriteRules = await urlRewriteFile.read(); 138 | app.use(jsonServer.rewriter(rewriteRules)); 139 | 140 | // Setup others routes 141 | app.use(router); 142 | 143 | // Start server 144 | server.listen(port, () => { 145 | console.log('Server is running on port ' + port); 146 | }); 147 | -------------------------------------------------------------------------------- /src/rest.js: -------------------------------------------------------------------------------- 1 | import formidable from 'formidable'; 2 | import { copyFile, unlink } from 'fs/promises'; 3 | import { 4 | generateAccessToken, 5 | generateRefreshToken, 6 | decodeRefreshToken, 7 | } from '../utils/jwt-authenticate.js'; 8 | 9 | const handleUploadFile = async (req, file) => { 10 | const uploadFolder = 'uploads'; 11 | 12 | try { 13 | // Copy file from temp folder to uploads folder (not rename to allow cross-device link) 14 | await copyFile(file.filepath, `./public/${uploadFolder}/${file.originalFilename}`); 15 | 16 | // Remove temp file 17 | await unlink(file.filepath); 18 | 19 | // Return new path of uploaded file 20 | file.filepath = `${req.protocol}://${req.get('host')}/${uploadFolder}/${file.originalFilename}`; 21 | 22 | return file; 23 | } catch (err) { 24 | throw err; 25 | } 26 | }; 27 | 28 | export const testHandler = (db, req, res) => { 29 | res.jsonp('Hello world!'); 30 | }; 31 | 32 | export const loginHandler = (db, req, res) => { 33 | const { username, email, password: pwd } = req.body; 34 | 35 | const user = db.data.users?.find( 36 | (u) => (u.username === username || u.email === email) && u.password === pwd 37 | ); 38 | 39 | if (user && user.password === pwd) { 40 | const accessToken = generateAccessToken(user); 41 | const refreshToken = generateRefreshToken(user); 42 | const { password, ...userWithoutPassword } = user; 43 | 44 | res.jsonp({ 45 | ...userWithoutPassword, 46 | accessToken, 47 | refreshToken, 48 | }); 49 | } else { 50 | res.status(400).jsonp({ message: 'Username or password is incorrect!' }); 51 | } 52 | }; 53 | 54 | export const refreshTokenHandler = (req, res) => { 55 | const { token } = req.body; 56 | 57 | if (token) { 58 | try { 59 | const payload = decodeRefreshToken(token); 60 | const accessToken = generateAccessToken(payload); 61 | const refreshToken = generateRefreshToken(payload); 62 | 63 | res.jsonp({ 64 | accessToken, 65 | refreshToken, 66 | }); 67 | } catch (error) { 68 | res.status(400).jsonp({ error }); 69 | } 70 | } else { 71 | res.status(400).jsonp({ message: 'Refresh Token is invalid!' }); 72 | } 73 | }; 74 | 75 | export const registerHandler = (db, req, res) => { 76 | const { username, email, password } = req.body; 77 | const users = db.data.users; 78 | 79 | if (!password && (!email || !username)) { 80 | res.status(400).jsonp({ message: 'Please input all required fields!' }); 81 | return; 82 | } 83 | 84 | const existUsername = users?.find((user) => username && user.username === username); 85 | 86 | if (existUsername) { 87 | res.status(400).jsonp({ 88 | message: 'The username already exists. Please use a different username!', 89 | }); 90 | return; 91 | } 92 | 93 | const existEmail = users?.find((user) => email && user.email === email); 94 | 95 | if (existEmail) { 96 | res.status(400).jsonp({ 97 | message: 'The email address is already being used! Please use a different email!', 98 | }); 99 | return; 100 | } 101 | 102 | let maxId = 0; 103 | for (let u of users) { 104 | if (u.id > maxId) { 105 | maxId = u.id; 106 | } 107 | } 108 | const newUser = { id: maxId + 1, ...req.body }; 109 | 110 | users?.push(newUser); 111 | db.write(); 112 | 113 | res.jsonp(newUser); 114 | }; 115 | 116 | export const uploadFileHandler = (req, res) => { 117 | if (req.headers['content-type'] === 'application/json') { 118 | res.status(400).jsonp({ message: 'Content-Type "application/json" is not allowed.' }); 119 | return; 120 | } 121 | 122 | const form = formidable(); 123 | 124 | form.parse(req, async (error, fields, files) => { 125 | let file = files.file; 126 | 127 | if (error || !file) { 128 | res.status(400).jsonp({ message: 'Missing "file" field.' }); 129 | return; 130 | } 131 | 132 | try { 133 | file = await handleUploadFile(req, file); 134 | res.jsonp(file); 135 | } catch (err) { 136 | console.log(err); 137 | res.status(500).jsonp({ message: 'Cannot upload file.' }); 138 | } 139 | }); 140 | }; 141 | 142 | export const uploadFilesHandler = (req, res) => { 143 | if (req.headers['content-type'] === 'application/json') { 144 | res.status(400).jsonp({ message: 'Content-Type "application/json" is not allowed.' }); 145 | return; 146 | } 147 | 148 | const form = formidable({ multiples: true }); 149 | 150 | form.parse(req, async (error, fields, files) => { 151 | let filesUploaded = files.files; 152 | 153 | if (error || !filesUploaded) { 154 | res.status(400).jsonp({ message: 'Missing "files" field.' }); 155 | return; 156 | } 157 | 158 | // If user upload 1 file, transform data to array 159 | if (!Array.isArray(filesUploaded)) { 160 | filesUploaded = [filesUploaded]; 161 | } 162 | 163 | try { 164 | // Handle all uploaded files 165 | filesUploaded = await Promise.all( 166 | filesUploaded.map(async (file) => { 167 | try { 168 | file = await handleUploadFile(req, file); 169 | return file; 170 | } catch (err) { 171 | throw err; 172 | } 173 | }) 174 | ); 175 | 176 | res.jsonp(filesUploaded); 177 | } catch (err) { 178 | console.log(err); 179 | res.status(500).jsonp({ message: 'Cannot upload files.' }); 180 | } 181 | }); 182 | }; 183 | 184 | export const socketEmit = (io, req, res) => { 185 | io.emit('socket-emit', req.body); 186 | res.jsonp({ msg: 'Message sent over websocket connection' }); 187 | }; 188 | -------------------------------------------------------------------------------- /database.json: -------------------------------------------------------------------------------- 1 | { 2 | "protectedResources": { 3 | "users": [ 4 | "GET", 5 | "POST", 6 | "PUT", 7 | "PATCH", 8 | "DELETE" 9 | ], 10 | "products": [ 11 | "POST", 12 | "PUT", 13 | "PATCH", 14 | "DELETE" 15 | ] 16 | }, 17 | "users": [ 18 | { 19 | "id": 1, 20 | "firstName": "Administrator", 21 | "lastName": "", 22 | "username": "admin", 23 | "email": "admin@gmail.com", 24 | "password": "admin", 25 | "avatar": "https://robohash.org/eaquequasincidunt.png?size=50x50&set=set1", 26 | "gender": "Genderfluid", 27 | "phone": "933-658-1213", 28 | "birthday": "1994-03-23", 29 | "status": true, 30 | "createdAt": 1609483221000, 31 | "modifiedAt": 1609483221000 32 | }, 33 | { 34 | "id": 2, 35 | "firstName": "Alberta", 36 | "lastName": "Farncomb", 37 | "username": "afarncomb1", 38 | "email": "afarncomb1@liveinternet.ru", 39 | "password": "FfshsAlZ", 40 | "avatar": "https://robohash.org/accusantiumminimamagni.png?size=50x50&set=set1", 41 | "gender": "Male", 42 | "phone": "510-449-7332", 43 | "birthday": "2002-03-11", 44 | "status": false, 45 | "createdAt": 1617440961000, 46 | "modifiedAt": 1618301961000 47 | }, 48 | { 49 | "id": 3, 50 | "firstName": "Kizzie", 51 | "lastName": "Shama", 52 | "username": "kshama2", 53 | "email": "kshama2@prlog.org", 54 | "password": "kjU6qK1Bm", 55 | "avatar": "https://robohash.org/voluptatemdebitiset.png?size=50x50&set=set1", 56 | "gender": "Male", 57 | "phone": "676-983-4977", 58 | "birthday": "1997-09-29", 59 | "status": false, 60 | "createdAt": 1615745961000, 61 | "modifiedAt": 1615976361000 62 | }, 63 | { 64 | "id": 4, 65 | "firstName": "Tremayne", 66 | "lastName": "Americi", 67 | "username": "tamerici3", 68 | "email": "tamerici3@skype.com", 69 | "password": "xbNRPGk", 70 | "avatar": "https://robohash.org/rerumoccaecatiprovident.png?size=50x50&set=set1", 71 | "gender": "Genderfluid", 72 | "phone": "548-721-4661", 73 | "birthday": "2004-10-01", 74 | "status": false, 75 | "createdAt": 1610281342000, 76 | "modifiedAt": 1619283693000 77 | }, 78 | { 79 | "id": 5, 80 | "firstName": "Luciana", 81 | "lastName": "Fernihough", 82 | "username": "lfernihough4", 83 | "email": "lfernihough4@oaic.gov.au", 84 | "password": "hDuqo8j5TXTl", 85 | "avatar": "https://robohash.org/nobisplaceataut.png?size=50x50&set=set1", 86 | "gender": "Female", 87 | "phone": "597-670-2841", 88 | "birthday": "1999-01-30", 89 | "status": true, 90 | "createdAt": 1614362898000, 91 | "modifiedAt": 1615410795000 92 | }, 93 | { 94 | "id": 6, 95 | "firstName": "Ursuline", 96 | "lastName": "Gorrick", 97 | "username": "ugorrick5", 98 | "email": "ugorrick5@meetup.com", 99 | "password": "GH1yLLmJoq", 100 | "avatar": "https://robohash.org/voluptatemenimerror.png?size=50x50&set=set1", 101 | "gender": "Bigender", 102 | "phone": "686-821-0488", 103 | "birthday": "1996-01-29", 104 | "status": false, 105 | "createdAt": 1621283400000, 106 | "modifiedAt": 1621528590000 107 | }, 108 | { 109 | "id": 7, 110 | "firstName": "Carlotta", 111 | "lastName": "Chivers", 112 | "username": "cchivers6", 113 | "email": "cchivers6@ebay.com", 114 | "password": "n5hIT4NKk8Q", 115 | "avatar": "https://robohash.org/voluptatequasiest.png?size=50x50&set=set1", 116 | "gender": "Non-binary", 117 | "phone": "428-749-0095", 118 | "birthday": "1998-05-19", 119 | "status": true, 120 | "createdAt": 1614957930000, 121 | "modifiedAt": 1614957930000 122 | }, 123 | { 124 | "id": 8, 125 | "firstName": "Thorpe", 126 | "lastName": "Humblestone", 127 | "username": "thumblestone7", 128 | "email": "thumblestone7@china.com.cn", 129 | "password": "iYlKMYJqIy2T", 130 | "avatar": "https://robohash.org/voluptasetexplicabo.png?size=50x50&set=set1", 131 | "gender": "Bigender", 132 | "phone": "722-376-2905", 133 | "birthday": "2007-09-24", 134 | "status": true, 135 | "createdAt": 1613665586000, 136 | "modifiedAt": 1613665586000 137 | }, 138 | { 139 | "id": 9, 140 | "firstName": "Chick", 141 | "lastName": "Kynnd", 142 | "username": "ckynnd8", 143 | "email": "ckynnd8@spotify.com", 144 | "password": "cGdnd1HapM", 145 | "avatar": "https://robohash.org/commodiexplicaboveritatis.png?size=50x50&set=set1", 146 | "gender": "Bigender", 147 | "phone": "825-276-2045", 148 | "birthday": "2007-03-01", 149 | "status": true, 150 | "createdAt": 1612782806000, 151 | "modifiedAt": 1612782806000 152 | }, 153 | { 154 | "id": 10, 155 | "firstName": "Alexis", 156 | "lastName": "Loughan", 157 | "username": "aloughan9", 158 | "email": "aloughan9@soundcloud.com", 159 | "password": "BUSPoSABA3s", 160 | "avatar": "https://robohash.org/suntisteaperiam.png?size=50x50&set=set1", 161 | "gender": "Polygender", 162 | "phone": "391-273-2238", 163 | "birthday": "2000-05-04", 164 | "status": true, 165 | "createdAt": 1615245193000, 166 | "modifiedAt": 1616246055000 167 | } 168 | ], 169 | "products": [ 170 | { 171 | "id": 1, 172 | "name": "Pork Salted Bellies", 173 | "price": 442, 174 | "quantity": 16, 175 | "thumbnail": "http://dummyimage.com/213x100.png/dddddd/000000", 176 | "status": true, 177 | "createdAt": 1610632995000, 178 | "modifiedAt": 1615620960000 179 | }, 180 | { 181 | "id": 2, 182 | "name": "Grapes - Black", 183 | "price": 893, 184 | "quantity": 22, 185 | "thumbnail": "http://dummyimage.com/151x100.png/ff4444/ffffff", 186 | "status": false, 187 | "createdAt": 1615796160000, 188 | "modifiedAt": 1615796160000 189 | }, 190 | { 191 | "id": 3, 192 | "name": "Nantucket - 518ml", 193 | "price": 693, 194 | "quantity": 41, 195 | "thumbnail": "http://dummyimage.com/125x100.png/dddddd/000000", 196 | "status": false, 197 | "createdAt": 1614190320000, 198 | "modifiedAt": 1614190320000 199 | }, 200 | { 201 | "id": 4, 202 | "name": "Onions - White", 203 | "price": 472, 204 | "quantity": 67, 205 | "thumbnail": "http://dummyimage.com/117x100.png/cc0000/ffffff", 206 | "status": false, 207 | "createdAt": 1609751340000, 208 | "modifiedAt": 1617525900000 209 | }, 210 | { 211 | "id": 5, 212 | "name": "Lamb - Whole, Fresh", 213 | "price": 157, 214 | "quantity": 83, 215 | "thumbnail": "http://dummyimage.com/160x100.png/dddddd/000000", 216 | "status": true, 217 | "createdAt": 1620154080000, 218 | "modifiedAt": 1620154080000 219 | }, 220 | { 221 | "id": 6, 222 | "name": "Carrots - Purple, Organic", 223 | "price": 816, 224 | "quantity": 37, 225 | "thumbnail": "http://dummyimage.com/241x100.png/5fa2dd/ffffff", 226 | "status": false, 227 | "createdAt": 1619270940000, 228 | "modifiedAt": 1619443380000 229 | }, 230 | { 231 | "id": 7, 232 | "name": "Bag - Regular Kraft 20 Lb", 233 | "price": 157, 234 | "quantity": 60, 235 | "thumbnail": "http://dummyimage.com/156x100.png/cc0000/ffffff", 236 | "status": false, 237 | "createdAt": 1614098400000, 238 | "modifiedAt": "2021-04-16" 239 | }, 240 | { 241 | "id": 8, 242 | "name": "Flour - Bran, Red", 243 | "price": 970, 244 | "quantity": 40, 245 | "thumbnail": "http://dummyimage.com/157x100.png/5fa2dd/ffffff", 246 | "status": false, 247 | "createdAt": 1617954000000, 248 | "modifiedAt": 1619964420000 249 | }, 250 | { 251 | "id": 9, 252 | "name": "Bread - Bistro Sour", 253 | "price": 112, 254 | "quantity": 77, 255 | "thumbnail": "http://dummyimage.com/147x100.png/dddddd/000000", 256 | "status": false, 257 | "createdAt": 1612357500000, 258 | "modifiedAt": 1614956760000 259 | }, 260 | { 261 | "id": 10, 262 | "name": "Soup - Campbells Bean Medley", 263 | "price": 353, 264 | "quantity": 40, 265 | "thumbnail": "http://dummyimage.com/203x100.png/ff4444/ffffff", 266 | "status": false, 267 | "createdAt": 1615146960000, 268 | "modifiedAt": 1615146960000 269 | } 270 | ] 271 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fake API NodeJS 2 | 3 | Get a full fake API as soon as possible. Base on [NodeJS](https://nodejs.org/en/) + [JSON Server](https://github.com/typicode/json-server) + [Socket.IO](https://socket.io/). 4 | 5 | Features: 6 | 7 | - Define your own database using a JSON file, generate REST APIs from that database. 8 | 9 | - Register user with username & password or email & password. Using object `users` in the database. 10 | 11 | - Login with registered users. 12 | 13 | - Protect resources using JWT Bearer authentication. 14 | 15 | - Upload files. 16 | 17 | - Send and receive messages over web socket connection (Socket.IO). 18 | 19 | - Rewrite URL. 20 | 21 | - Proxy Server. 22 | 23 | ## Getting started 24 | 25 | ### 1. Clone this repository 26 | 27 | ```bash 28 | git clone https://github.com/robinhuy/fake-api-nodejs.git 29 | ``` 30 | 31 | or fork to your account and clone the forked repo 32 | 33 | ### 2. Install dependencies 34 | 35 | ```bash 36 | cd fake-api-nodejs 37 | npm install 38 | ``` 39 | 40 | or if you using yarn 41 | 42 | ```bash 43 | cd fake-api-nodejs 44 | yarn install 45 | ``` 46 | 47 | ### 3. Run server 48 | 49 | - Production mode: 50 | 51 | ```bash 52 | npm start 53 | ``` 54 | 55 | or 56 | 57 | ```bash 58 | yarn start 59 | ``` 60 | 61 | - Development mode (auto reload server when editing using [nodemon](https://github.com/remy/nodemon)): 62 | 63 | ```bash 64 | npm run dev 65 | ``` 66 | 67 | or 68 | 69 | ```bash 70 | yarn dev 71 | ``` 72 | 73 | - The server will run on `http://localhost:8000`. You can test with public endpoint: `http://localhost:8000/products` (GET method). 74 | 75 | ## Modify your data 76 | 77 | All the data is stored in database.json. Edit it to suit your needs but keep the users object to utilize the authentication feature. 78 | 79 | You can use [https://mockaroo.com/](https://mockaroo.com/) to generate mock data and then deploy your code to [https://heroku.com/](https://heroku.com/) or a similar hosting service to create a public API." 80 | 81 | **Note**: 82 | 83 | - To protect resources, declare the resources and protected methods in `database.json`: 84 | 85 | ```json 86 | "protectedResources": { 87 | "users": ["GET", "POST", "PUT", "PATCH", "DELETE"], 88 | "products": ["POST", "PUT", "PATCH", "DELETE"] 89 | } 90 | ``` 91 | 92 | If you don't need to protect any resources, simply delete the object above. 93 | 94 | - To change the default port, database file, JWT secret, or JWT token expiration, ... modify the values in `config.js`. 95 | 96 | ## Access & modify API 97 | 98 | Please view detailed document in [https://github.com/typicode/json-server/blob/master/README.md#table-of-contents](https://github.com/typicode/json-server/blob/master/README.md#table-of-contents) 99 | 100 | If you want to modify the authentication logic or add more custom REST endpoints, please edit the `server.js` and `src/rest.js` files. 101 | 102 | Edit `src/socket-io.js` to add or modify Socket.IO events, `src/graphql.js` to add or modify GraphQL query/mutation (currently, authentication aren't being applied to Socket.IO & GraphQl endpoints). 103 | 104 | To add or modify Socket.IO events, edit the `src/socket-io.js` file. To add or modify GraphQL queries/mutations, edit the `src/graphql.js` file (currently, authentication isn't being applied to Socket.IO & GraphQL endpoints). 105 | 106 | ## Default Endpoints 107 | 108 | To view and modify resources, access the `database.json` file. 109 | 110 | ### Open Endpoints 111 | 112 | Open endpoints do not require Authentication. 113 | 114 | #### User 115 | 116 | Header: `Content-Type: application/json`. 117 | 118 | - **POST /register**: Register a new user. 119 | 120 | ``` 121 | { 122 | "firstName": "Administrator", 123 | "lastName": "", 124 | "username": "admin", 125 | "email": "admin@gmail.com", 126 | "password": "admin", 127 | "avatar": "https://robohash.org/eaquequasincidunt.png?size=50x50&set=set1", 128 | "gender": "Genderfluid", 129 | "phone": "933-658-1213", 130 | "birthday": "1994-03-23", 131 | "status": true 132 | } 133 | ``` 134 | 135 | - **POST /login**: Login user. 136 | 137 | ``` 138 | { 139 | "email": "admin@gmail.com", 140 | "password": "admin" 141 | } 142 | ``` 143 | 144 | or 145 | 146 | ``` 147 | { 148 | "username": "admin", 149 | "password": "admin" 150 | } 151 | ``` 152 | 153 | - **POST /refresh-token**: Get new access token from refresh token. 154 | 155 | ``` 156 | { 157 | "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsImlhdCI6MTY1NjMyNzE4NiwiZXhwIjoxNjU2MzI4MDg2fQ.-si1n7yHpjQ2LEyYqZT6ClIFJOqLOeVXRhwjzyvEZMo" 158 | } 159 | ``` 160 | 161 | #### Product 162 | 163 | Header: `Content-Type: application/json`. 164 | 165 | - **GET /products**: Return a list of all products. 166 | 167 | - **GET /products/{id}**: Return information about a specific product. 168 | 169 | #### Media 170 | 171 | Header: `Content-Type: multipart/form-data`. 172 | 173 | - **POST /upload-file**: Upload single file. 174 | 175 | | Parameter | Type | Description | 176 | | --------- | ---- | ------------------------ | 177 | | file | File | The file to be uploaded. | 178 | 179 | - **POST /upload-files**: Upload multiple files. 180 | 181 | | Parameter | Type | Description | 182 | | --------- | -------- | ------------------------- | 183 | | files | FileList | The files to be uploaded. | 184 | 185 | ### Private Endpoints (require Authentication) 186 | 187 | Private endpoints require a valid token to be included in the request header. A token can be acquired from the Login API above. 188 | 189 | Request header: `Content-Type: application/json` and `Authorization: Bearer {token}` 190 | 191 | #### User 192 | 193 | - **GET /users**: Return a list of all users. 194 | 195 | - **GET /users/{id}**: Return information about a specific user. 196 | 197 | - **POST /users**: Create a new user. 198 | 199 | Request is similar to the user registration API. 200 | 201 | - **PUT /users/{id}**: Update the entire information of a specific user. 202 | 203 | Submit the entire user object except for the id field. 204 | 205 | - **PATCH /users/{id}**: Update the partial information of a specific user. 206 | 207 | Submit the partial user object except for the id field. 208 | 209 | #### Product 210 | 211 | - **POST /products**: Create a new product. 212 | 213 | ``` 214 | { 215 | "name": "Pork Salted Bellies", 216 | "price": 442, 217 | "quantity": 16, 218 | "thumbnail": "http://dummyimage.com/213x100.png/dddddd/000000", 219 | "status": true 220 | } 221 | ``` 222 | 223 | - **PUT /products/{id}**: Update the entire information of a specific product. 224 | 225 | Submit the entire product object except for the id field. 226 | 227 | - **PATCH /products/{id}**: Update the partial information of a specific product. 228 | 229 | Submit the partial product object except for the id field. 230 | 231 | ### Web Socket (Socket.IO) 232 | 233 | - Event `emit`: Echo message to sender 234 | 235 | ```js 236 | socket.emit('emit', 'Hello'); 237 | ``` 238 | 239 | - Event `broadcast`: Broadcast message to all clients in the current namespace except the sender 240 | 241 | ```js 242 | socket.emit('broadcast', 'Hello'); 243 | ``` 244 | 245 | - Event `broadcast-all`: Broadcast message to all clients in the current namespace include the sender 246 | 247 | ```js 248 | socket.emit('broadcast-all', 'Hello'); 249 | ``` 250 | 251 | - Event `join-room`: Join a room 252 | 253 | ```js 254 | socket.emit('join-room', 'game'); 255 | ``` 256 | 257 | - Event `emit-in-room`: Send message to all clients in the room except the sender 258 | 259 | ```js 260 | socket.emit('join-room', { room: 'game', event: 'chat', msg: 'Hello' }); 261 | ``` 262 | 263 | ### GraphQL 264 | 265 | - Endpoint: `/graphql`. 266 | 267 | - Get objects by name (objects declared in database.json) 268 | 269 | ```gql 270 | query getData($objectName: String!) { 271 | getObjects(objectName: $objectName) 272 | } 273 | ``` 274 | 275 | Query variables: 276 | 277 | ```json 278 | { 279 | "objectName": "products" 280 | } 281 | ``` 282 | 283 | - Get an object by name, search by property 284 | 285 | ```gql 286 | query getData($objectName: String!, $objectKey: String!, $objectValue: ObjectValue) { 287 | getObjectByKey(objectName: $objectName, objectKey: $objectKey, objectValue: $objectValue) 288 | } 289 | ``` 290 | 291 | ObjectValue must specify the data type: 292 | 293 | ```gql 294 | ObjectValue { 295 | int: Int 296 | float: Float 297 | string: String 298 | boolean: Boolean 299 | } 300 | ``` 301 | 302 | Query variable examples: 303 | 304 | ```json 305 | { 306 | "objectName": "products", 307 | "objectKey": "id", 308 | "objectValue": { 309 | "int": 1 310 | } 311 | } 312 | ``` 313 | 314 | ```json 315 | { 316 | "objectName": "products", 317 | "objectKey": "name", 318 | "objectValue": { 319 | "string": "Grapes - Black" 320 | } 321 | } 322 | ``` 323 | 324 | - Create an object 325 | 326 | ```gql 327 | query CreateObject($objectName: String!, $objectData: JSONScalarType!) { 328 | createObject(objectName: $objectName, objectData: $objectData) 329 | } 330 | ``` 331 | 332 | Query variable examples: 333 | 334 | ```json 335 | { 336 | "objectName": "posts", 337 | "objectData": { 338 | "title": "New post" 339 | } 340 | } 341 | ``` 342 | 343 | - Update an object 344 | 345 | ```gql 346 | query UpdateObject($objectName: String!, $objectId: ID!, $objectData: JSONScalarType!) { 347 | updateObject(objectName: $objectName, objectId: $objectId, objectData: $objectData) 348 | } 349 | ``` 350 | 351 | Query variable examples: 352 | 353 | ```json 354 | { 355 | "objectName": "posts", 356 | "objectId": "1", 357 | "objectData": { 358 | "title": "Update post" 359 | } 360 | } 361 | ``` 362 | 363 | - Delete an object 364 | 365 | ```gql 366 | query DeleteObject($objectName: String!, $objectId: ID!) { 367 | deleteObject(objectName: $objectName, objectId: $objectId) 368 | } 369 | ``` 370 | 371 | Query variable examples: 372 | 373 | ```json 374 | { 375 | "objectName": "posts", 376 | "objectId": "1" 377 | } 378 | ``` 379 | 380 | ... 381 | 382 | ## Rewrite URL 383 | 384 | You can rewrite the URL by modifying the `url-rewrite.json` file. 385 | 386 | For example, you can configure it to access **/api/products** instead of **/products** (default base URL rewrite rule). 387 | 388 | ## Proxy Server 389 | 390 | If you want to create a proxy server to bypass CORS, you just need to set up **proxyServer** and **proxyUrl** in the `config.js` file. 391 | 392 | For example, setting: 393 | 394 | ``` 395 | proxyServer: 'http://example.org', 396 | proxyUrl: '/api', 397 | ``` 398 | 399 | will create a proxy server to forward API requests from `http://localhost:8000/api/foo/bar` to `http://example.org/api/foo/bar`. 400 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@eslint/eslintrc@^2.0.0": 6 | version "2.0.0" 7 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" 8 | integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== 9 | dependencies: 10 | ajv "^6.12.4" 11 | debug "^4.3.2" 12 | espree "^9.4.0" 13 | globals "^13.19.0" 14 | ignore "^5.2.0" 15 | import-fresh "^3.2.1" 16 | js-yaml "^4.1.0" 17 | minimatch "^3.1.2" 18 | strip-json-comments "^3.1.1" 19 | 20 | "@eslint/js@8.35.0": 21 | version "8.35.0" 22 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" 23 | integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== 24 | 25 | "@humanwhocodes/config-array@^0.11.8": 26 | version "0.11.8" 27 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" 28 | integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== 29 | dependencies: 30 | "@humanwhocodes/object-schema" "^1.2.1" 31 | debug "^4.1.1" 32 | minimatch "^3.0.5" 33 | 34 | "@humanwhocodes/module-importer@^1.0.1": 35 | version "1.0.1" 36 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 37 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 38 | 39 | "@humanwhocodes/object-schema@^1.2.1": 40 | version "1.2.1" 41 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 42 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 43 | 44 | "@nodelib/fs.scandir@2.1.5": 45 | version "2.1.5" 46 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 47 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 48 | dependencies: 49 | "@nodelib/fs.stat" "2.0.5" 50 | run-parallel "^1.1.9" 51 | 52 | "@nodelib/fs.stat@2.0.5": 53 | version "2.0.5" 54 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 55 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 56 | 57 | "@nodelib/fs.walk@^1.2.8": 58 | version "1.2.8" 59 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 60 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 61 | dependencies: 62 | "@nodelib/fs.scandir" "2.1.5" 63 | fastq "^1.6.0" 64 | 65 | "@socket.io/component-emitter@~3.1.0": 66 | version "3.1.0" 67 | resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" 68 | integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== 69 | 70 | "@types/cookie@^0.4.1": 71 | version "0.4.1" 72 | resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" 73 | integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== 74 | 75 | "@types/cors@^2.8.12": 76 | version "2.8.12" 77 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" 78 | integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== 79 | 80 | "@types/http-proxy@^1.17.8": 81 | version "1.17.10" 82 | resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" 83 | integrity sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g== 84 | dependencies: 85 | "@types/node" "*" 86 | 87 | "@types/json5@^0.0.29": 88 | version "0.0.29" 89 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 90 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 91 | 92 | "@types/node@*": 93 | version "18.15.11" 94 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" 95 | integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== 96 | 97 | "@types/node@>=10.0.0": 98 | version "18.11.9" 99 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" 100 | integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== 101 | 102 | abbrev@1: 103 | version "1.1.1" 104 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 105 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 106 | 107 | accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: 108 | version "1.3.8" 109 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 110 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 111 | dependencies: 112 | mime-types "~2.1.34" 113 | negotiator "0.6.3" 114 | 115 | acorn-jsx@^5.3.2: 116 | version "5.3.2" 117 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 118 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 119 | 120 | acorn@^8.8.0: 121 | version "8.8.2" 122 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" 123 | integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== 124 | 125 | ajv@^6.10.0, ajv@^6.12.4: 126 | version "6.12.6" 127 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 128 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 129 | dependencies: 130 | fast-deep-equal "^3.1.1" 131 | fast-json-stable-stringify "^2.0.0" 132 | json-schema-traverse "^0.4.1" 133 | uri-js "^4.2.2" 134 | 135 | ansi-regex@^5.0.0: 136 | version "5.0.0" 137 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 138 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 139 | 140 | ansi-regex@^5.0.1: 141 | version "5.0.1" 142 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 143 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 144 | 145 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 146 | version "4.3.0" 147 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 148 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 149 | dependencies: 150 | color-convert "^2.0.1" 151 | 152 | anymatch@~3.1.2: 153 | version "3.1.2" 154 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 155 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 156 | dependencies: 157 | normalize-path "^3.0.0" 158 | picomatch "^2.0.4" 159 | 160 | argparse@^2.0.1: 161 | version "2.0.1" 162 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 163 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 164 | 165 | array-flatten@1.1.1: 166 | version "1.1.1" 167 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 168 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 169 | 170 | array-includes@^3.1.5, array-includes@^3.1.6: 171 | version "3.1.6" 172 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" 173 | integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== 174 | dependencies: 175 | call-bind "^1.0.2" 176 | define-properties "^1.1.4" 177 | es-abstract "^1.20.4" 178 | get-intrinsic "^1.1.3" 179 | is-string "^1.0.7" 180 | 181 | array.prototype.flat@^1.3.1: 182 | version "1.3.1" 183 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" 184 | integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== 185 | dependencies: 186 | call-bind "^1.0.2" 187 | define-properties "^1.1.4" 188 | es-abstract "^1.20.4" 189 | es-shim-unscopables "^1.0.0" 190 | 191 | array.prototype.flatmap@^1.3.1: 192 | version "1.3.1" 193 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" 194 | integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== 195 | dependencies: 196 | call-bind "^1.0.2" 197 | define-properties "^1.1.4" 198 | es-abstract "^1.20.4" 199 | es-shim-unscopables "^1.0.0" 200 | 201 | array.prototype.tosorted@^1.1.1: 202 | version "1.1.1" 203 | resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" 204 | integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== 205 | dependencies: 206 | call-bind "^1.0.2" 207 | define-properties "^1.1.4" 208 | es-abstract "^1.20.4" 209 | es-shim-unscopables "^1.0.0" 210 | get-intrinsic "^1.1.3" 211 | 212 | asap@^2.0.0: 213 | version "2.0.6" 214 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 215 | integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== 216 | 217 | available-typed-arrays@^1.0.5: 218 | version "1.0.5" 219 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" 220 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== 221 | 222 | balanced-match@^1.0.0: 223 | version "1.0.2" 224 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 225 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 226 | 227 | base64id@2.0.0, base64id@~2.0.0: 228 | version "2.0.0" 229 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 230 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 231 | 232 | basic-auth@~2.0.1: 233 | version "2.0.1" 234 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" 235 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== 236 | dependencies: 237 | safe-buffer "5.1.2" 238 | 239 | binary-extensions@^2.0.0: 240 | version "2.2.0" 241 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 242 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 243 | 244 | body-parser@1.20.1, body-parser@^1.19.0: 245 | version "1.20.1" 246 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" 247 | integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== 248 | dependencies: 249 | bytes "3.1.2" 250 | content-type "~1.0.4" 251 | debug "2.6.9" 252 | depd "2.0.0" 253 | destroy "1.2.0" 254 | http-errors "2.0.0" 255 | iconv-lite "0.4.24" 256 | on-finished "2.4.1" 257 | qs "6.11.0" 258 | raw-body "2.5.1" 259 | type-is "~1.6.18" 260 | unpipe "1.0.0" 261 | 262 | brace-expansion@^1.1.7: 263 | version "1.1.11" 264 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 265 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 266 | dependencies: 267 | balanced-match "^1.0.0" 268 | concat-map "0.0.1" 269 | 270 | braces@^3.0.2, braces@~3.0.2: 271 | version "3.0.2" 272 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 273 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 274 | dependencies: 275 | fill-range "^7.0.1" 276 | 277 | buffer-equal-constant-time@1.0.1: 278 | version "1.0.1" 279 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 280 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 281 | 282 | builtins@^5.0.1: 283 | version "5.0.1" 284 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" 285 | integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== 286 | dependencies: 287 | semver "^7.0.0" 288 | 289 | bytes@3.0.0: 290 | version "3.0.0" 291 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 292 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 293 | 294 | bytes@3.1.2: 295 | version "3.1.2" 296 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 297 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 298 | 299 | call-bind@^1.0.0, call-bind@^1.0.2: 300 | version "1.0.2" 301 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 302 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 303 | dependencies: 304 | function-bind "^1.1.1" 305 | get-intrinsic "^1.0.2" 306 | 307 | callsites@^3.0.0: 308 | version "3.1.0" 309 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 310 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 311 | 312 | chalk@^4.0.0, chalk@^4.1.2: 313 | version "4.1.2" 314 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 315 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 316 | dependencies: 317 | ansi-styles "^4.1.0" 318 | supports-color "^7.1.0" 319 | 320 | chokidar@^3.5.2: 321 | version "3.5.3" 322 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 323 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 324 | dependencies: 325 | anymatch "~3.1.2" 326 | braces "~3.0.2" 327 | glob-parent "~5.1.2" 328 | is-binary-path "~2.1.0" 329 | is-glob "~4.0.1" 330 | normalize-path "~3.0.0" 331 | readdirp "~3.6.0" 332 | optionalDependencies: 333 | fsevents "~2.3.2" 334 | 335 | cliui@^8.0.1: 336 | version "8.0.1" 337 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" 338 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== 339 | dependencies: 340 | string-width "^4.2.0" 341 | strip-ansi "^6.0.1" 342 | wrap-ansi "^7.0.0" 343 | 344 | color-convert@^2.0.1: 345 | version "2.0.1" 346 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 347 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 348 | dependencies: 349 | color-name "~1.1.4" 350 | 351 | color-name@~1.1.4: 352 | version "1.1.4" 353 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 354 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 355 | 356 | compressible@~2.0.16: 357 | version "2.0.18" 358 | resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" 359 | integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== 360 | dependencies: 361 | mime-db ">= 1.43.0 < 2" 362 | 363 | compression@^1.7.4: 364 | version "1.7.4" 365 | resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" 366 | integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== 367 | dependencies: 368 | accepts "~1.3.5" 369 | bytes "3.0.0" 370 | compressible "~2.0.16" 371 | debug "2.6.9" 372 | on-headers "~1.0.2" 373 | safe-buffer "5.1.2" 374 | vary "~1.1.2" 375 | 376 | concat-map@0.0.1: 377 | version "0.0.1" 378 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 379 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 380 | 381 | connect-pause@^0.1.1: 382 | version "0.1.1" 383 | resolved "https://registry.yarnpkg.com/connect-pause/-/connect-pause-0.1.1.tgz#b269b2bb82ddb1ac3db5099c0fb582aba99fb37a" 384 | integrity sha1-smmyu4Ldsaw9tQmcD7WCq6mfs3o= 385 | 386 | content-disposition@0.5.4: 387 | version "0.5.4" 388 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 389 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 390 | dependencies: 391 | safe-buffer "5.2.1" 392 | 393 | content-type@^1.0.4, content-type@~1.0.4: 394 | version "1.0.4" 395 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 396 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 397 | 398 | cookie-signature@1.0.6: 399 | version "1.0.6" 400 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 401 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 402 | 403 | cookie@0.5.0: 404 | version "0.5.0" 405 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 406 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 407 | 408 | cookie@~0.4.1: 409 | version "0.4.2" 410 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" 411 | integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== 412 | 413 | cors@^2.8.5, cors@~2.8.5: 414 | version "2.8.5" 415 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 416 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 417 | dependencies: 418 | object-assign "^4" 419 | vary "^1" 420 | 421 | cross-spawn@^7.0.2: 422 | version "7.0.3" 423 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 424 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 425 | dependencies: 426 | path-key "^3.1.0" 427 | shebang-command "^2.0.0" 428 | which "^2.0.1" 429 | 430 | debug@*, debug@^4.1.1, debug@^4.3.2, debug@~4.3.1, debug@~4.3.2: 431 | version "4.3.4" 432 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 433 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 434 | dependencies: 435 | ms "2.1.2" 436 | 437 | debug@2.6.9: 438 | version "2.6.9" 439 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 440 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 441 | dependencies: 442 | ms "2.0.0" 443 | 444 | debug@3.1.0: 445 | version "3.1.0" 446 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 447 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 448 | dependencies: 449 | ms "2.0.0" 450 | 451 | debug@^3.2.7: 452 | version "3.2.7" 453 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 454 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 455 | dependencies: 456 | ms "^2.1.1" 457 | 458 | deep-is@^0.1.3: 459 | version "0.1.4" 460 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 461 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 462 | 463 | define-properties@^1.1.3, define-properties@^1.1.4: 464 | version "1.2.0" 465 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" 466 | integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== 467 | dependencies: 468 | has-property-descriptors "^1.0.0" 469 | object-keys "^1.1.1" 470 | 471 | depd@2.0.0, depd@~2.0.0: 472 | version "2.0.0" 473 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 474 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 475 | 476 | depd@~1.1.2: 477 | version "1.1.2" 478 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 479 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 480 | 481 | destroy@1.2.0: 482 | version "1.2.0" 483 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 484 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 485 | 486 | dezalgo@^1.0.4: 487 | version "1.0.4" 488 | resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" 489 | integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== 490 | dependencies: 491 | asap "^2.0.0" 492 | wrappy "1" 493 | 494 | doctrine@^2.1.0: 495 | version "2.1.0" 496 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 497 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 498 | dependencies: 499 | esutils "^2.0.2" 500 | 501 | doctrine@^3.0.0: 502 | version "3.0.0" 503 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 504 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 505 | dependencies: 506 | esutils "^2.0.2" 507 | 508 | ecdsa-sig-formatter@1.0.11: 509 | version "1.0.11" 510 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 511 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 512 | dependencies: 513 | safe-buffer "^5.0.1" 514 | 515 | ee-first@1.1.1: 516 | version "1.1.1" 517 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 518 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 519 | 520 | emoji-regex@^8.0.0: 521 | version "8.0.0" 522 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 523 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 524 | 525 | encodeurl@~1.0.2: 526 | version "1.0.2" 527 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 528 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 529 | 530 | engine.io-parser@~5.2.1: 531 | version "5.2.1" 532 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" 533 | integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== 534 | 535 | engine.io@~6.5.2: 536 | version "6.5.2" 537 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.2.tgz#769348ced9d56bd47bd83d308ec1c3375e85937c" 538 | integrity sha512-IXsMcGpw/xRfjra46sVZVHiSWo/nJ/3g1337q9KNXtS6YRzbW5yIzTCb9DjhrBe7r3GZQR0I4+nq+4ODk5g/cA== 539 | dependencies: 540 | "@types/cookie" "^0.4.1" 541 | "@types/cors" "^2.8.12" 542 | "@types/node" ">=10.0.0" 543 | accepts "~1.3.4" 544 | base64id "2.0.0" 545 | cookie "~0.4.1" 546 | cors "~2.8.5" 547 | debug "~4.3.1" 548 | engine.io-parser "~5.2.1" 549 | ws "~8.11.0" 550 | 551 | error-ex@^1.3.1: 552 | version "1.3.2" 553 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 554 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 555 | dependencies: 556 | is-arrayish "^0.2.1" 557 | 558 | errorhandler@^1.5.1: 559 | version "1.5.1" 560 | resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91" 561 | integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== 562 | dependencies: 563 | accepts "~1.3.7" 564 | escape-html "~1.0.3" 565 | 566 | es-abstract@^1.19.0, es-abstract@^1.20.4: 567 | version "1.21.1" 568 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" 569 | integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== 570 | dependencies: 571 | available-typed-arrays "^1.0.5" 572 | call-bind "^1.0.2" 573 | es-set-tostringtag "^2.0.1" 574 | es-to-primitive "^1.2.1" 575 | function-bind "^1.1.1" 576 | function.prototype.name "^1.1.5" 577 | get-intrinsic "^1.1.3" 578 | get-symbol-description "^1.0.0" 579 | globalthis "^1.0.3" 580 | gopd "^1.0.1" 581 | has "^1.0.3" 582 | has-property-descriptors "^1.0.0" 583 | has-proto "^1.0.1" 584 | has-symbols "^1.0.3" 585 | internal-slot "^1.0.4" 586 | is-array-buffer "^3.0.1" 587 | is-callable "^1.2.7" 588 | is-negative-zero "^2.0.2" 589 | is-regex "^1.1.4" 590 | is-shared-array-buffer "^1.0.2" 591 | is-string "^1.0.7" 592 | is-typed-array "^1.1.10" 593 | is-weakref "^1.0.2" 594 | object-inspect "^1.12.2" 595 | object-keys "^1.1.1" 596 | object.assign "^4.1.4" 597 | regexp.prototype.flags "^1.4.3" 598 | safe-regex-test "^1.0.0" 599 | string.prototype.trimend "^1.0.6" 600 | string.prototype.trimstart "^1.0.6" 601 | typed-array-length "^1.0.4" 602 | unbox-primitive "^1.0.2" 603 | which-typed-array "^1.1.9" 604 | 605 | es-set-tostringtag@^2.0.1: 606 | version "2.0.1" 607 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" 608 | integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== 609 | dependencies: 610 | get-intrinsic "^1.1.3" 611 | has "^1.0.3" 612 | has-tostringtag "^1.0.0" 613 | 614 | es-shim-unscopables@^1.0.0: 615 | version "1.0.0" 616 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" 617 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== 618 | dependencies: 619 | has "^1.0.3" 620 | 621 | es-to-primitive@^1.2.1: 622 | version "1.2.1" 623 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 624 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 625 | dependencies: 626 | is-callable "^1.1.4" 627 | is-date-object "^1.0.1" 628 | is-symbol "^1.0.2" 629 | 630 | escalade@^3.1.1: 631 | version "3.1.1" 632 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 633 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 634 | 635 | escape-html@~1.0.3: 636 | version "1.0.3" 637 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 638 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 639 | 640 | escape-string-regexp@^4.0.0: 641 | version "4.0.0" 642 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 643 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 644 | 645 | eslint-config-standard-jsx@^11.0.0: 646 | version "11.0.0" 647 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" 648 | integrity sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ== 649 | 650 | eslint-config-standard@17.0.0: 651 | version "17.0.0" 652 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" 653 | integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== 654 | 655 | eslint-import-resolver-node@^0.3.7: 656 | version "0.3.7" 657 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" 658 | integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== 659 | dependencies: 660 | debug "^3.2.7" 661 | is-core-module "^2.11.0" 662 | resolve "^1.22.1" 663 | 664 | eslint-module-utils@^2.7.4: 665 | version "2.7.4" 666 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" 667 | integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== 668 | dependencies: 669 | debug "^3.2.7" 670 | 671 | eslint-plugin-es@^4.1.0: 672 | version "4.1.0" 673 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" 674 | integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== 675 | dependencies: 676 | eslint-utils "^2.0.0" 677 | regexpp "^3.0.0" 678 | 679 | eslint-plugin-import@^2.26.0: 680 | version "2.27.5" 681 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" 682 | integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== 683 | dependencies: 684 | array-includes "^3.1.6" 685 | array.prototype.flat "^1.3.1" 686 | array.prototype.flatmap "^1.3.1" 687 | debug "^3.2.7" 688 | doctrine "^2.1.0" 689 | eslint-import-resolver-node "^0.3.7" 690 | eslint-module-utils "^2.7.4" 691 | has "^1.0.3" 692 | is-core-module "^2.11.0" 693 | is-glob "^4.0.3" 694 | minimatch "^3.1.2" 695 | object.values "^1.1.6" 696 | resolve "^1.22.1" 697 | semver "^6.3.0" 698 | tsconfig-paths "^3.14.1" 699 | 700 | eslint-plugin-n@^15.1.0: 701 | version "15.6.1" 702 | resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz#f7e77f24abb92a550115cf11e29695da122c398c" 703 | integrity sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA== 704 | dependencies: 705 | builtins "^5.0.1" 706 | eslint-plugin-es "^4.1.0" 707 | eslint-utils "^3.0.0" 708 | ignore "^5.1.1" 709 | is-core-module "^2.11.0" 710 | minimatch "^3.1.2" 711 | resolve "^1.22.1" 712 | semver "^7.3.8" 713 | 714 | eslint-plugin-promise@^6.0.0: 715 | version "6.1.1" 716 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" 717 | integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== 718 | 719 | eslint-plugin-react@^7.28.0: 720 | version "7.32.2" 721 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" 722 | integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== 723 | dependencies: 724 | array-includes "^3.1.6" 725 | array.prototype.flatmap "^1.3.1" 726 | array.prototype.tosorted "^1.1.1" 727 | doctrine "^2.1.0" 728 | estraverse "^5.3.0" 729 | jsx-ast-utils "^2.4.1 || ^3.0.0" 730 | minimatch "^3.1.2" 731 | object.entries "^1.1.6" 732 | object.fromentries "^2.0.6" 733 | object.hasown "^1.1.2" 734 | object.values "^1.1.6" 735 | prop-types "^15.8.1" 736 | resolve "^2.0.0-next.4" 737 | semver "^6.3.0" 738 | string.prototype.matchall "^4.0.8" 739 | 740 | eslint-scope@^7.1.1: 741 | version "7.1.1" 742 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" 743 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 744 | dependencies: 745 | esrecurse "^4.3.0" 746 | estraverse "^5.2.0" 747 | 748 | eslint-utils@^2.0.0: 749 | version "2.1.0" 750 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 751 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 752 | dependencies: 753 | eslint-visitor-keys "^1.1.0" 754 | 755 | eslint-utils@^3.0.0: 756 | version "3.0.0" 757 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 758 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 759 | dependencies: 760 | eslint-visitor-keys "^2.0.0" 761 | 762 | eslint-visitor-keys@^1.1.0: 763 | version "1.3.0" 764 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 765 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 766 | 767 | eslint-visitor-keys@^2.0.0: 768 | version "2.1.0" 769 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 770 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 771 | 772 | eslint-visitor-keys@^3.3.0: 773 | version "3.3.0" 774 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" 775 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 776 | 777 | eslint@^8.13.0: 778 | version "8.35.0" 779 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" 780 | integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== 781 | dependencies: 782 | "@eslint/eslintrc" "^2.0.0" 783 | "@eslint/js" "8.35.0" 784 | "@humanwhocodes/config-array" "^0.11.8" 785 | "@humanwhocodes/module-importer" "^1.0.1" 786 | "@nodelib/fs.walk" "^1.2.8" 787 | ajv "^6.10.0" 788 | chalk "^4.0.0" 789 | cross-spawn "^7.0.2" 790 | debug "^4.3.2" 791 | doctrine "^3.0.0" 792 | escape-string-regexp "^4.0.0" 793 | eslint-scope "^7.1.1" 794 | eslint-utils "^3.0.0" 795 | eslint-visitor-keys "^3.3.0" 796 | espree "^9.4.0" 797 | esquery "^1.4.2" 798 | esutils "^2.0.2" 799 | fast-deep-equal "^3.1.3" 800 | file-entry-cache "^6.0.1" 801 | find-up "^5.0.0" 802 | glob-parent "^6.0.2" 803 | globals "^13.19.0" 804 | grapheme-splitter "^1.0.4" 805 | ignore "^5.2.0" 806 | import-fresh "^3.0.0" 807 | imurmurhash "^0.1.4" 808 | is-glob "^4.0.0" 809 | is-path-inside "^3.0.3" 810 | js-sdsl "^4.1.4" 811 | js-yaml "^4.1.0" 812 | json-stable-stringify-without-jsonify "^1.0.1" 813 | levn "^0.4.1" 814 | lodash.merge "^4.6.2" 815 | minimatch "^3.1.2" 816 | natural-compare "^1.4.0" 817 | optionator "^0.9.1" 818 | regexpp "^3.2.0" 819 | strip-ansi "^6.0.1" 820 | strip-json-comments "^3.1.0" 821 | text-table "^0.2.0" 822 | 823 | espree@^9.4.0: 824 | version "9.4.1" 825 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" 826 | integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== 827 | dependencies: 828 | acorn "^8.8.0" 829 | acorn-jsx "^5.3.2" 830 | eslint-visitor-keys "^3.3.0" 831 | 832 | esquery@^1.4.2: 833 | version "1.5.0" 834 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 835 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 836 | dependencies: 837 | estraverse "^5.1.0" 838 | 839 | esrecurse@^4.3.0: 840 | version "4.3.0" 841 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 842 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 843 | dependencies: 844 | estraverse "^5.2.0" 845 | 846 | estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: 847 | version "5.3.0" 848 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 849 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 850 | 851 | esutils@^2.0.2: 852 | version "2.0.3" 853 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 854 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 855 | 856 | etag@~1.8.1: 857 | version "1.8.1" 858 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 859 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 860 | 861 | eventemitter3@^4.0.0: 862 | version "4.0.7" 863 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 864 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 865 | 866 | express-graphql@^0.12.0: 867 | version "0.12.0" 868 | resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.12.0.tgz#58deabc309909ca2c9fe2f83f5fbe94429aa23df" 869 | integrity sha512-DwYaJQy0amdy3pgNtiTDuGGM2BLdj+YO2SgbKoLliCfuHv3VVTt7vNG/ZqK2hRYjtYHE2t2KB705EU94mE64zg== 870 | dependencies: 871 | accepts "^1.3.7" 872 | content-type "^1.0.4" 873 | http-errors "1.8.0" 874 | raw-body "^2.4.1" 875 | 876 | express-urlrewrite@^1.4.0: 877 | version "1.4.0" 878 | resolved "https://registry.yarnpkg.com/express-urlrewrite/-/express-urlrewrite-1.4.0.tgz#985ee022773bac7ed32126f1cf9ec8ee48e1290a" 879 | integrity sha512-PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA== 880 | dependencies: 881 | debug "*" 882 | path-to-regexp "^1.0.3" 883 | 884 | express@^4.17.1: 885 | version "4.18.2" 886 | resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" 887 | integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== 888 | dependencies: 889 | accepts "~1.3.8" 890 | array-flatten "1.1.1" 891 | body-parser "1.20.1" 892 | content-disposition "0.5.4" 893 | content-type "~1.0.4" 894 | cookie "0.5.0" 895 | cookie-signature "1.0.6" 896 | debug "2.6.9" 897 | depd "2.0.0" 898 | encodeurl "~1.0.2" 899 | escape-html "~1.0.3" 900 | etag "~1.8.1" 901 | finalhandler "1.2.0" 902 | fresh "0.5.2" 903 | http-errors "2.0.0" 904 | merge-descriptors "1.0.1" 905 | methods "~1.1.2" 906 | on-finished "2.4.1" 907 | parseurl "~1.3.3" 908 | path-to-regexp "0.1.7" 909 | proxy-addr "~2.0.7" 910 | qs "6.11.0" 911 | range-parser "~1.2.1" 912 | safe-buffer "5.2.1" 913 | send "0.18.0" 914 | serve-static "1.15.0" 915 | setprototypeof "1.2.0" 916 | statuses "2.0.1" 917 | type-is "~1.6.18" 918 | utils-merge "1.0.1" 919 | vary "~1.1.2" 920 | 921 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 922 | version "3.1.3" 923 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 924 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 925 | 926 | fast-json-stable-stringify@^2.0.0: 927 | version "2.1.0" 928 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 929 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 930 | 931 | fast-levenshtein@^2.0.6: 932 | version "2.0.6" 933 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 934 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 935 | 936 | fastq@^1.6.0: 937 | version "1.15.0" 938 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 939 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 940 | dependencies: 941 | reusify "^1.0.4" 942 | 943 | file-entry-cache@^6.0.1: 944 | version "6.0.1" 945 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 946 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 947 | dependencies: 948 | flat-cache "^3.0.4" 949 | 950 | fill-range@^7.0.1: 951 | version "7.0.1" 952 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 953 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 954 | dependencies: 955 | to-regex-range "^5.0.1" 956 | 957 | finalhandler@1.2.0: 958 | version "1.2.0" 959 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 960 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 961 | dependencies: 962 | debug "2.6.9" 963 | encodeurl "~1.0.2" 964 | escape-html "~1.0.3" 965 | on-finished "2.4.1" 966 | parseurl "~1.3.3" 967 | statuses "2.0.1" 968 | unpipe "~1.0.0" 969 | 970 | find-up@^3.0.0: 971 | version "3.0.0" 972 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 973 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 974 | dependencies: 975 | locate-path "^3.0.0" 976 | 977 | find-up@^5.0.0: 978 | version "5.0.0" 979 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 980 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 981 | dependencies: 982 | locate-path "^6.0.0" 983 | path-exists "^4.0.0" 984 | 985 | flat-cache@^3.0.4: 986 | version "3.0.4" 987 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 988 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 989 | dependencies: 990 | flatted "^3.1.0" 991 | rimraf "^3.0.2" 992 | 993 | flatted@^3.1.0: 994 | version "3.2.7" 995 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 996 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 997 | 998 | follow-redirects@^1.0.0: 999 | version "1.15.2" 1000 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" 1001 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 1002 | 1003 | for-each@^0.3.3: 1004 | version "0.3.3" 1005 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" 1006 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== 1007 | dependencies: 1008 | is-callable "^1.1.3" 1009 | 1010 | formidable@^2.1.1: 1011 | version "2.1.1" 1012 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.1.tgz#81269cbea1a613240049f5f61a9d97731517414f" 1013 | integrity sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ== 1014 | dependencies: 1015 | dezalgo "^1.0.4" 1016 | hexoid "^1.0.0" 1017 | once "^1.4.0" 1018 | qs "^6.11.0" 1019 | 1020 | forwarded@0.2.0: 1021 | version "0.2.0" 1022 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 1023 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 1024 | 1025 | fresh@0.5.2: 1026 | version "0.5.2" 1027 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1028 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 1029 | 1030 | fs.realpath@^1.0.0: 1031 | version "1.0.0" 1032 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1033 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1034 | 1035 | fsevents@~2.3.2: 1036 | version "2.3.2" 1037 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1038 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1039 | 1040 | function-bind@^1.1.1: 1041 | version "1.1.1" 1042 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1043 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1044 | 1045 | function.prototype.name@^1.1.5: 1046 | version "1.1.5" 1047 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" 1048 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 1049 | dependencies: 1050 | call-bind "^1.0.2" 1051 | define-properties "^1.1.3" 1052 | es-abstract "^1.19.0" 1053 | functions-have-names "^1.2.2" 1054 | 1055 | functions-have-names@^1.2.2: 1056 | version "1.2.3" 1057 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" 1058 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 1059 | 1060 | get-caller-file@^2.0.5: 1061 | version "2.0.5" 1062 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1063 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1064 | 1065 | get-intrinsic@^1.0.2: 1066 | version "1.1.3" 1067 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" 1068 | integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== 1069 | dependencies: 1070 | function-bind "^1.1.1" 1071 | has "^1.0.3" 1072 | has-symbols "^1.0.3" 1073 | 1074 | get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: 1075 | version "1.2.0" 1076 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" 1077 | integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== 1078 | dependencies: 1079 | function-bind "^1.1.1" 1080 | has "^1.0.3" 1081 | has-symbols "^1.0.3" 1082 | 1083 | get-stdin@^8.0.0: 1084 | version "8.0.0" 1085 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" 1086 | integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== 1087 | 1088 | get-symbol-description@^1.0.0: 1089 | version "1.0.0" 1090 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 1091 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 1092 | dependencies: 1093 | call-bind "^1.0.2" 1094 | get-intrinsic "^1.1.1" 1095 | 1096 | glob-parent@^6.0.2: 1097 | version "6.0.2" 1098 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1099 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1100 | dependencies: 1101 | is-glob "^4.0.3" 1102 | 1103 | glob-parent@~5.1.2: 1104 | version "5.1.2" 1105 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1106 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1107 | dependencies: 1108 | is-glob "^4.0.1" 1109 | 1110 | glob@^7.1.3: 1111 | version "7.2.3" 1112 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1113 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1114 | dependencies: 1115 | fs.realpath "^1.0.0" 1116 | inflight "^1.0.4" 1117 | inherits "2" 1118 | minimatch "^3.1.1" 1119 | once "^1.3.0" 1120 | path-is-absolute "^1.0.0" 1121 | 1122 | globals@^13.19.0: 1123 | version "13.20.0" 1124 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 1125 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 1126 | dependencies: 1127 | type-fest "^0.20.2" 1128 | 1129 | globalthis@^1.0.3: 1130 | version "1.0.3" 1131 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" 1132 | integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== 1133 | dependencies: 1134 | define-properties "^1.1.3" 1135 | 1136 | gopd@^1.0.1: 1137 | version "1.0.1" 1138 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 1139 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 1140 | dependencies: 1141 | get-intrinsic "^1.1.3" 1142 | 1143 | graceful-fs@^4.1.15: 1144 | version "4.2.10" 1145 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" 1146 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 1147 | 1148 | graceful-fs@^4.1.3: 1149 | version "4.2.6" 1150 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 1151 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 1152 | 1153 | grapheme-splitter@^1.0.4: 1154 | version "1.0.4" 1155 | resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" 1156 | integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== 1157 | 1158 | graphql@^16.8.0: 1159 | version "16.8.0" 1160 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" 1161 | integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== 1162 | 1163 | has-bigints@^1.0.1, has-bigints@^1.0.2: 1164 | version "1.0.2" 1165 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" 1166 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 1167 | 1168 | has-flag@^3.0.0: 1169 | version "3.0.0" 1170 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1171 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1172 | 1173 | has-flag@^4.0.0: 1174 | version "4.0.0" 1175 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1176 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1177 | 1178 | has-property-descriptors@^1.0.0: 1179 | version "1.0.0" 1180 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" 1181 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 1182 | dependencies: 1183 | get-intrinsic "^1.1.1" 1184 | 1185 | has-proto@^1.0.1: 1186 | version "1.0.1" 1187 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" 1188 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 1189 | 1190 | has-symbols@^1.0.2, has-symbols@^1.0.3: 1191 | version "1.0.3" 1192 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1193 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1194 | 1195 | has-tostringtag@^1.0.0: 1196 | version "1.0.0" 1197 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 1198 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1199 | dependencies: 1200 | has-symbols "^1.0.2" 1201 | 1202 | has@^1.0.3: 1203 | version "1.0.3" 1204 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1205 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1206 | dependencies: 1207 | function-bind "^1.1.1" 1208 | 1209 | hexoid@^1.0.0: 1210 | version "1.0.0" 1211 | resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" 1212 | integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== 1213 | 1214 | http-errors@1.8.0: 1215 | version "1.8.0" 1216 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" 1217 | integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== 1218 | dependencies: 1219 | depd "~1.1.2" 1220 | inherits "2.0.4" 1221 | setprototypeof "1.2.0" 1222 | statuses ">= 1.5.0 < 2" 1223 | toidentifier "1.0.0" 1224 | 1225 | http-errors@2.0.0: 1226 | version "2.0.0" 1227 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 1228 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 1229 | dependencies: 1230 | depd "2.0.0" 1231 | inherits "2.0.4" 1232 | setprototypeof "1.2.0" 1233 | statuses "2.0.1" 1234 | toidentifier "1.0.1" 1235 | 1236 | http-proxy-middleware@^2.0.6: 1237 | version "2.0.6" 1238 | resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" 1239 | integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== 1240 | dependencies: 1241 | "@types/http-proxy" "^1.17.8" 1242 | http-proxy "^1.18.1" 1243 | is-glob "^4.0.1" 1244 | is-plain-obj "^3.0.0" 1245 | micromatch "^4.0.2" 1246 | 1247 | http-proxy@^1.18.1: 1248 | version "1.18.1" 1249 | resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" 1250 | integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== 1251 | dependencies: 1252 | eventemitter3 "^4.0.0" 1253 | follow-redirects "^1.0.0" 1254 | requires-port "^1.0.0" 1255 | 1256 | iconv-lite@0.4.24: 1257 | version "0.4.24" 1258 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1259 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1260 | dependencies: 1261 | safer-buffer ">= 2.1.2 < 3" 1262 | 1263 | ignore-by-default@^1.0.1: 1264 | version "1.0.1" 1265 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1266 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 1267 | 1268 | ignore@^5.1.1, ignore@^5.2.0: 1269 | version "5.2.4" 1270 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 1271 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 1272 | 1273 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1274 | version "3.3.0" 1275 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1276 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1277 | dependencies: 1278 | parent-module "^1.0.0" 1279 | resolve-from "^4.0.0" 1280 | 1281 | imurmurhash@^0.1.4: 1282 | version "0.1.4" 1283 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1284 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1285 | 1286 | inflight@^1.0.4: 1287 | version "1.0.6" 1288 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1289 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1290 | dependencies: 1291 | once "^1.3.0" 1292 | wrappy "1" 1293 | 1294 | inherits@2, inherits@2.0.4: 1295 | version "2.0.4" 1296 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1297 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1298 | 1299 | internal-slot@^1.0.3, internal-slot@^1.0.4: 1300 | version "1.0.5" 1301 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" 1302 | integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== 1303 | dependencies: 1304 | get-intrinsic "^1.2.0" 1305 | has "^1.0.3" 1306 | side-channel "^1.0.4" 1307 | 1308 | ipaddr.js@1.9.1: 1309 | version "1.9.1" 1310 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1311 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1312 | 1313 | is-array-buffer@^3.0.1: 1314 | version "3.0.2" 1315 | resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" 1316 | integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== 1317 | dependencies: 1318 | call-bind "^1.0.2" 1319 | get-intrinsic "^1.2.0" 1320 | is-typed-array "^1.1.10" 1321 | 1322 | is-arrayish@^0.2.1: 1323 | version "0.2.1" 1324 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1325 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1326 | 1327 | is-bigint@^1.0.1: 1328 | version "1.0.4" 1329 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 1330 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1331 | dependencies: 1332 | has-bigints "^1.0.1" 1333 | 1334 | is-binary-path@~2.1.0: 1335 | version "2.1.0" 1336 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1337 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1338 | dependencies: 1339 | binary-extensions "^2.0.0" 1340 | 1341 | is-boolean-object@^1.1.0: 1342 | version "1.1.2" 1343 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 1344 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1345 | dependencies: 1346 | call-bind "^1.0.2" 1347 | has-tostringtag "^1.0.0" 1348 | 1349 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: 1350 | version "1.2.7" 1351 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" 1352 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== 1353 | 1354 | is-core-module@^2.11.0, is-core-module@^2.9.0: 1355 | version "2.11.0" 1356 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 1357 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== 1358 | dependencies: 1359 | has "^1.0.3" 1360 | 1361 | is-date-object@^1.0.1: 1362 | version "1.0.5" 1363 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 1364 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1365 | dependencies: 1366 | has-tostringtag "^1.0.0" 1367 | 1368 | is-extglob@^2.1.1: 1369 | version "2.1.1" 1370 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1371 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1372 | 1373 | is-fullwidth-code-point@^3.0.0: 1374 | version "3.0.0" 1375 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1376 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1377 | 1378 | is-glob@^4.0.0, is-glob@^4.0.3: 1379 | version "4.0.3" 1380 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1381 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1382 | dependencies: 1383 | is-extglob "^2.1.1" 1384 | 1385 | is-glob@^4.0.1, is-glob@~4.0.1: 1386 | version "4.0.1" 1387 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1388 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1389 | dependencies: 1390 | is-extglob "^2.1.1" 1391 | 1392 | is-negative-zero@^2.0.2: 1393 | version "2.0.2" 1394 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" 1395 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 1396 | 1397 | is-number-object@^1.0.4: 1398 | version "1.0.7" 1399 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" 1400 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 1401 | dependencies: 1402 | has-tostringtag "^1.0.0" 1403 | 1404 | is-number@^7.0.0: 1405 | version "7.0.0" 1406 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1407 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1408 | 1409 | is-path-inside@^3.0.3: 1410 | version "3.0.3" 1411 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1412 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1413 | 1414 | is-plain-obj@^3.0.0: 1415 | version "3.0.0" 1416 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" 1417 | integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== 1418 | 1419 | is-promise@^2.1.0: 1420 | version "2.2.2" 1421 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" 1422 | integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== 1423 | 1424 | is-regex@^1.1.4: 1425 | version "1.1.4" 1426 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 1427 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1428 | dependencies: 1429 | call-bind "^1.0.2" 1430 | has-tostringtag "^1.0.0" 1431 | 1432 | is-shared-array-buffer@^1.0.2: 1433 | version "1.0.2" 1434 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" 1435 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 1436 | dependencies: 1437 | call-bind "^1.0.2" 1438 | 1439 | is-string@^1.0.5, is-string@^1.0.7: 1440 | version "1.0.7" 1441 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 1442 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 1443 | dependencies: 1444 | has-tostringtag "^1.0.0" 1445 | 1446 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1447 | version "1.0.4" 1448 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 1449 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 1450 | dependencies: 1451 | has-symbols "^1.0.2" 1452 | 1453 | is-typed-array@^1.1.10, is-typed-array@^1.1.9: 1454 | version "1.1.10" 1455 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" 1456 | integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== 1457 | dependencies: 1458 | available-typed-arrays "^1.0.5" 1459 | call-bind "^1.0.2" 1460 | for-each "^0.3.3" 1461 | gopd "^1.0.1" 1462 | has-tostringtag "^1.0.0" 1463 | 1464 | is-weakref@^1.0.2: 1465 | version "1.0.2" 1466 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" 1467 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 1468 | dependencies: 1469 | call-bind "^1.0.2" 1470 | 1471 | isarray@0.0.1: 1472 | version "0.0.1" 1473 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1474 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 1475 | 1476 | isexe@^2.0.0: 1477 | version "2.0.0" 1478 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1479 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1480 | 1481 | jju@^1.1.0: 1482 | version "1.4.0" 1483 | resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" 1484 | integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= 1485 | 1486 | js-sdsl@^4.1.4: 1487 | version "4.3.0" 1488 | resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" 1489 | integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== 1490 | 1491 | "js-tokens@^3.0.0 || ^4.0.0": 1492 | version "4.0.0" 1493 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1494 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1495 | 1496 | js-yaml@^4.1.0: 1497 | version "4.1.0" 1498 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1499 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1500 | dependencies: 1501 | argparse "^2.0.1" 1502 | 1503 | json-parse-better-errors@^1.0.1: 1504 | version "1.0.2" 1505 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1506 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1507 | 1508 | json-parse-helpfulerror@^1.0.3: 1509 | version "1.0.3" 1510 | resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" 1511 | integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= 1512 | dependencies: 1513 | jju "^1.1.0" 1514 | 1515 | json-schema-traverse@^0.4.1: 1516 | version "0.4.1" 1517 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1518 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1519 | 1520 | json-server@^0.17.3: 1521 | version "0.17.3" 1522 | resolved "https://registry.yarnpkg.com/json-server/-/json-server-0.17.3.tgz#c641884189aad59f101f7ad9f519fa3c4c3cff14" 1523 | integrity sha512-LDNOvleTv3rPAcefzXZpXMDZshV0FtSzWo8ZjnTOhKm4OCiUvsYGrGrfz4iHXIFd+UbRgFHm6gcOHI/BSZ/3fw== 1524 | dependencies: 1525 | body-parser "^1.19.0" 1526 | chalk "^4.1.2" 1527 | compression "^1.7.4" 1528 | connect-pause "^0.1.1" 1529 | cors "^2.8.5" 1530 | errorhandler "^1.5.1" 1531 | express "^4.17.1" 1532 | express-urlrewrite "^1.4.0" 1533 | json-parse-helpfulerror "^1.0.3" 1534 | lodash "^4.17.21" 1535 | lodash-id "^0.14.1" 1536 | lowdb "^1.0.0" 1537 | method-override "^3.0.0" 1538 | morgan "^1.10.0" 1539 | nanoid "^3.1.23" 1540 | please-upgrade-node "^3.2.0" 1541 | pluralize "^8.0.0" 1542 | server-destroy "^1.0.1" 1543 | standard "^17.0.0" 1544 | yargs "^17.0.1" 1545 | 1546 | json-stable-stringify-without-jsonify@^1.0.1: 1547 | version "1.0.1" 1548 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1549 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1550 | 1551 | json5@^1.0.2: 1552 | version "1.0.2" 1553 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 1554 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 1555 | dependencies: 1556 | minimist "^1.2.0" 1557 | 1558 | jsonwebtoken@^9.0.2: 1559 | version "9.0.2" 1560 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" 1561 | integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== 1562 | dependencies: 1563 | jws "^3.2.2" 1564 | lodash.includes "^4.3.0" 1565 | lodash.isboolean "^3.0.3" 1566 | lodash.isinteger "^4.0.4" 1567 | lodash.isnumber "^3.0.3" 1568 | lodash.isplainobject "^4.0.6" 1569 | lodash.isstring "^4.0.1" 1570 | lodash.once "^4.0.0" 1571 | ms "^2.1.1" 1572 | semver "^7.5.4" 1573 | 1574 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 1575 | version "3.3.3" 1576 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" 1577 | integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== 1578 | dependencies: 1579 | array-includes "^3.1.5" 1580 | object.assign "^4.1.3" 1581 | 1582 | jwa@^1.4.1: 1583 | version "1.4.1" 1584 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1585 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 1586 | dependencies: 1587 | buffer-equal-constant-time "1.0.1" 1588 | ecdsa-sig-formatter "1.0.11" 1589 | safe-buffer "^5.0.1" 1590 | 1591 | jws@^3.2.2: 1592 | version "3.2.2" 1593 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1594 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1595 | dependencies: 1596 | jwa "^1.4.1" 1597 | safe-buffer "^5.0.1" 1598 | 1599 | levn@^0.4.1: 1600 | version "0.4.1" 1601 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1602 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1603 | dependencies: 1604 | prelude-ls "^1.2.1" 1605 | type-check "~0.4.0" 1606 | 1607 | load-json-file@^5.2.0: 1608 | version "5.3.0" 1609 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" 1610 | integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== 1611 | dependencies: 1612 | graceful-fs "^4.1.15" 1613 | parse-json "^4.0.0" 1614 | pify "^4.0.1" 1615 | strip-bom "^3.0.0" 1616 | type-fest "^0.3.0" 1617 | 1618 | locate-path@^3.0.0: 1619 | version "3.0.0" 1620 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1621 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1622 | dependencies: 1623 | p-locate "^3.0.0" 1624 | path-exists "^3.0.0" 1625 | 1626 | locate-path@^6.0.0: 1627 | version "6.0.0" 1628 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1629 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1630 | dependencies: 1631 | p-locate "^5.0.0" 1632 | 1633 | lodash-id@^0.14.1: 1634 | version "0.14.1" 1635 | resolved "https://registry.yarnpkg.com/lodash-id/-/lodash-id-0.14.1.tgz#dffa1f1f8b90d1803bb0d70b7d7547e10751e80b" 1636 | integrity sha512-ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg== 1637 | 1638 | lodash.includes@^4.3.0: 1639 | version "4.3.0" 1640 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1641 | integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== 1642 | 1643 | lodash.isboolean@^3.0.3: 1644 | version "3.0.3" 1645 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1646 | integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== 1647 | 1648 | lodash.isinteger@^4.0.4: 1649 | version "4.0.4" 1650 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1651 | integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== 1652 | 1653 | lodash.isnumber@^3.0.3: 1654 | version "3.0.3" 1655 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1656 | integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== 1657 | 1658 | lodash.isplainobject@^4.0.6: 1659 | version "4.0.6" 1660 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1661 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== 1662 | 1663 | lodash.isstring@^4.0.1: 1664 | version "4.0.1" 1665 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1666 | integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== 1667 | 1668 | lodash.merge@^4.6.2: 1669 | version "4.6.2" 1670 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1671 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1672 | 1673 | lodash.once@^4.0.0: 1674 | version "4.1.1" 1675 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1676 | integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== 1677 | 1678 | lodash@4, lodash@^4.17.21: 1679 | version "4.17.21" 1680 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1681 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1682 | 1683 | loose-envify@^1.4.0: 1684 | version "1.4.0" 1685 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1686 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1687 | dependencies: 1688 | js-tokens "^3.0.0 || ^4.0.0" 1689 | 1690 | lowdb@^1.0.0: 1691 | version "1.0.0" 1692 | resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" 1693 | integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== 1694 | dependencies: 1695 | graceful-fs "^4.1.3" 1696 | is-promise "^2.1.0" 1697 | lodash "4" 1698 | pify "^3.0.0" 1699 | steno "^0.4.1" 1700 | 1701 | lowdb@^5.1.0: 1702 | version "5.1.0" 1703 | resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-5.1.0.tgz#3d9f13522ea92e445348a7d455a69ce570c2f51d" 1704 | integrity sha512-OEysJ2S3j05RqehEypEv3h6EgdV4Y7LTq7LngRNqe1IxsInOm66/sa3fzoI6mmqs2CC+zIJW3vfncGNv2IGi3A== 1705 | dependencies: 1706 | steno "^3.0.0" 1707 | 1708 | lru-cache@^6.0.0: 1709 | version "6.0.0" 1710 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1711 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1712 | dependencies: 1713 | yallist "^4.0.0" 1714 | 1715 | media-typer@0.3.0: 1716 | version "0.3.0" 1717 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1718 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1719 | 1720 | merge-descriptors@1.0.1: 1721 | version "1.0.1" 1722 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1723 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1724 | 1725 | method-override@^3.0.0: 1726 | version "3.0.0" 1727 | resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" 1728 | integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== 1729 | dependencies: 1730 | debug "3.1.0" 1731 | methods "~1.1.2" 1732 | parseurl "~1.3.2" 1733 | vary "~1.1.2" 1734 | 1735 | methods@~1.1.2: 1736 | version "1.1.2" 1737 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1738 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1739 | 1740 | micromatch@^4.0.2: 1741 | version "4.0.5" 1742 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1743 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1744 | dependencies: 1745 | braces "^3.0.2" 1746 | picomatch "^2.3.1" 1747 | 1748 | mime-db@1.52.0: 1749 | version "1.52.0" 1750 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1751 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1752 | 1753 | "mime-db@>= 1.43.0 < 2": 1754 | version "1.47.0" 1755 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" 1756 | integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== 1757 | 1758 | mime-types@~2.1.24, mime-types@~2.1.34: 1759 | version "2.1.35" 1760 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1761 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1762 | dependencies: 1763 | mime-db "1.52.0" 1764 | 1765 | mime@1.6.0: 1766 | version "1.6.0" 1767 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1768 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1769 | 1770 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1771 | version "3.1.2" 1772 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1773 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1774 | dependencies: 1775 | brace-expansion "^1.1.7" 1776 | 1777 | minimist@^1.2.0, minimist@^1.2.6: 1778 | version "1.2.8" 1779 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1780 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1781 | 1782 | morgan@^1.10.0: 1783 | version "1.10.0" 1784 | resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" 1785 | integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== 1786 | dependencies: 1787 | basic-auth "~2.0.1" 1788 | debug "2.6.9" 1789 | depd "~2.0.0" 1790 | on-finished "~2.3.0" 1791 | on-headers "~1.0.2" 1792 | 1793 | ms@2.0.0: 1794 | version "2.0.0" 1795 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1796 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1797 | 1798 | ms@2.1.2: 1799 | version "2.1.2" 1800 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1801 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1802 | 1803 | ms@2.1.3, ms@^2.1.1: 1804 | version "2.1.3" 1805 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1806 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1807 | 1808 | nanoid@^3.1.23: 1809 | version "3.3.4" 1810 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 1811 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 1812 | 1813 | natural-compare@^1.4.0: 1814 | version "1.4.0" 1815 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1816 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1817 | 1818 | negotiator@0.6.3: 1819 | version "0.6.3" 1820 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1821 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1822 | 1823 | nodemon@^2.0.22: 1824 | version "2.0.22" 1825 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" 1826 | integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== 1827 | dependencies: 1828 | chokidar "^3.5.2" 1829 | debug "^3.2.7" 1830 | ignore-by-default "^1.0.1" 1831 | minimatch "^3.1.2" 1832 | pstree.remy "^1.1.8" 1833 | semver "^5.7.1" 1834 | simple-update-notifier "^1.0.7" 1835 | supports-color "^5.5.0" 1836 | touch "^3.1.0" 1837 | undefsafe "^2.0.5" 1838 | 1839 | nopt@~1.0.10: 1840 | version "1.0.10" 1841 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1842 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1843 | dependencies: 1844 | abbrev "1" 1845 | 1846 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1847 | version "3.0.0" 1848 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1849 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1850 | 1851 | object-assign@^4, object-assign@^4.1.1: 1852 | version "4.1.1" 1853 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1854 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1855 | 1856 | object-inspect@^1.12.2: 1857 | version "1.12.3" 1858 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" 1859 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== 1860 | 1861 | object-inspect@^1.9.0: 1862 | version "1.12.2" 1863 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" 1864 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 1865 | 1866 | object-keys@^1.1.1: 1867 | version "1.1.1" 1868 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1869 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1870 | 1871 | object.assign@^4.1.3, object.assign@^4.1.4: 1872 | version "4.1.4" 1873 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" 1874 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== 1875 | dependencies: 1876 | call-bind "^1.0.2" 1877 | define-properties "^1.1.4" 1878 | has-symbols "^1.0.3" 1879 | object-keys "^1.1.1" 1880 | 1881 | object.entries@^1.1.6: 1882 | version "1.1.6" 1883 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" 1884 | integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== 1885 | dependencies: 1886 | call-bind "^1.0.2" 1887 | define-properties "^1.1.4" 1888 | es-abstract "^1.20.4" 1889 | 1890 | object.fromentries@^2.0.6: 1891 | version "2.0.6" 1892 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" 1893 | integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== 1894 | dependencies: 1895 | call-bind "^1.0.2" 1896 | define-properties "^1.1.4" 1897 | es-abstract "^1.20.4" 1898 | 1899 | object.hasown@^1.1.2: 1900 | version "1.1.2" 1901 | resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" 1902 | integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== 1903 | dependencies: 1904 | define-properties "^1.1.4" 1905 | es-abstract "^1.20.4" 1906 | 1907 | object.values@^1.1.6: 1908 | version "1.1.6" 1909 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" 1910 | integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== 1911 | dependencies: 1912 | call-bind "^1.0.2" 1913 | define-properties "^1.1.4" 1914 | es-abstract "^1.20.4" 1915 | 1916 | on-finished@2.4.1: 1917 | version "2.4.1" 1918 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1919 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1920 | dependencies: 1921 | ee-first "1.1.1" 1922 | 1923 | on-finished@~2.3.0: 1924 | version "2.3.0" 1925 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1926 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1927 | dependencies: 1928 | ee-first "1.1.1" 1929 | 1930 | on-headers@~1.0.2: 1931 | version "1.0.2" 1932 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 1933 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 1934 | 1935 | once@^1.3.0, once@^1.4.0: 1936 | version "1.4.0" 1937 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1938 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1939 | dependencies: 1940 | wrappy "1" 1941 | 1942 | optionator@^0.9.1: 1943 | version "0.9.1" 1944 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1945 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1946 | dependencies: 1947 | deep-is "^0.1.3" 1948 | fast-levenshtein "^2.0.6" 1949 | levn "^0.4.1" 1950 | prelude-ls "^1.2.1" 1951 | type-check "^0.4.0" 1952 | word-wrap "^1.2.3" 1953 | 1954 | p-limit@^2.0.0: 1955 | version "2.3.0" 1956 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1957 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1958 | dependencies: 1959 | p-try "^2.0.0" 1960 | 1961 | p-limit@^3.0.2: 1962 | version "3.1.0" 1963 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1964 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1965 | dependencies: 1966 | yocto-queue "^0.1.0" 1967 | 1968 | p-locate@^3.0.0: 1969 | version "3.0.0" 1970 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1971 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1972 | dependencies: 1973 | p-limit "^2.0.0" 1974 | 1975 | p-locate@^5.0.0: 1976 | version "5.0.0" 1977 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1978 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1979 | dependencies: 1980 | p-limit "^3.0.2" 1981 | 1982 | p-try@^2.0.0: 1983 | version "2.2.0" 1984 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1985 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1986 | 1987 | parent-module@^1.0.0: 1988 | version "1.0.1" 1989 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1990 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1991 | dependencies: 1992 | callsites "^3.0.0" 1993 | 1994 | parse-json@^4.0.0: 1995 | version "4.0.0" 1996 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1997 | integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== 1998 | dependencies: 1999 | error-ex "^1.3.1" 2000 | json-parse-better-errors "^1.0.1" 2001 | 2002 | parseurl@~1.3.2, parseurl@~1.3.3: 2003 | version "1.3.3" 2004 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2005 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2006 | 2007 | path-exists@^3.0.0: 2008 | version "3.0.0" 2009 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2010 | integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== 2011 | 2012 | path-exists@^4.0.0: 2013 | version "4.0.0" 2014 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 2015 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2016 | 2017 | path-is-absolute@^1.0.0: 2018 | version "1.0.1" 2019 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2020 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 2021 | 2022 | path-key@^3.1.0: 2023 | version "3.1.1" 2024 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 2025 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2026 | 2027 | path-parse@^1.0.7: 2028 | version "1.0.7" 2029 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 2030 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 2031 | 2032 | path-to-regexp@0.1.7: 2033 | version "0.1.7" 2034 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2035 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 2036 | 2037 | path-to-regexp@^1.0.3: 2038 | version "1.8.0" 2039 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" 2040 | integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== 2041 | dependencies: 2042 | isarray "0.0.1" 2043 | 2044 | picomatch@^2.0.4, picomatch@^2.2.1: 2045 | version "2.2.2" 2046 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 2047 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 2048 | 2049 | picomatch@^2.3.1: 2050 | version "2.3.1" 2051 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 2052 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 2053 | 2054 | pify@^3.0.0: 2055 | version "3.0.0" 2056 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2057 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 2058 | 2059 | pify@^4.0.1: 2060 | version "4.0.1" 2061 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 2062 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 2063 | 2064 | pkg-conf@^3.1.0: 2065 | version "3.1.0" 2066 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" 2067 | integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== 2068 | dependencies: 2069 | find-up "^3.0.0" 2070 | load-json-file "^5.2.0" 2071 | 2072 | please-upgrade-node@^3.2.0: 2073 | version "3.2.0" 2074 | resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" 2075 | integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== 2076 | dependencies: 2077 | semver-compare "^1.0.0" 2078 | 2079 | pluralize@^8.0.0: 2080 | version "8.0.0" 2081 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" 2082 | integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== 2083 | 2084 | prelude-ls@^1.2.1: 2085 | version "1.2.1" 2086 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 2087 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 2088 | 2089 | prop-types@^15.8.1: 2090 | version "15.8.1" 2091 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" 2092 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== 2093 | dependencies: 2094 | loose-envify "^1.4.0" 2095 | object-assign "^4.1.1" 2096 | react-is "^16.13.1" 2097 | 2098 | proxy-addr@~2.0.7: 2099 | version "2.0.7" 2100 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 2101 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 2102 | dependencies: 2103 | forwarded "0.2.0" 2104 | ipaddr.js "1.9.1" 2105 | 2106 | pstree.remy@^1.1.8: 2107 | version "1.1.8" 2108 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 2109 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 2110 | 2111 | punycode@^2.1.0: 2112 | version "2.3.0" 2113 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 2114 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 2115 | 2116 | qs@6.11.0: 2117 | version "6.11.0" 2118 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 2119 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 2120 | dependencies: 2121 | side-channel "^1.0.4" 2122 | 2123 | qs@^6.11.0: 2124 | version "6.11.1" 2125 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" 2126 | integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== 2127 | dependencies: 2128 | side-channel "^1.0.4" 2129 | 2130 | queue-microtask@^1.2.2: 2131 | version "1.2.3" 2132 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 2133 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 2134 | 2135 | range-parser@~1.2.1: 2136 | version "1.2.1" 2137 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 2138 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 2139 | 2140 | raw-body@2.5.1, raw-body@^2.4.1: 2141 | version "2.5.1" 2142 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 2143 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 2144 | dependencies: 2145 | bytes "3.1.2" 2146 | http-errors "2.0.0" 2147 | iconv-lite "0.4.24" 2148 | unpipe "1.0.0" 2149 | 2150 | react-is@^16.13.1: 2151 | version "16.13.1" 2152 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 2153 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 2154 | 2155 | readdirp@~3.6.0: 2156 | version "3.6.0" 2157 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 2158 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 2159 | dependencies: 2160 | picomatch "^2.2.1" 2161 | 2162 | regexp.prototype.flags@^1.4.3: 2163 | version "1.4.3" 2164 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" 2165 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== 2166 | dependencies: 2167 | call-bind "^1.0.2" 2168 | define-properties "^1.1.3" 2169 | functions-have-names "^1.2.2" 2170 | 2171 | regexpp@^3.0.0, regexpp@^3.2.0: 2172 | version "3.2.0" 2173 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 2174 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 2175 | 2176 | require-directory@^2.1.1: 2177 | version "2.1.1" 2178 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2179 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 2180 | 2181 | requires-port@^1.0.0: 2182 | version "1.0.0" 2183 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 2184 | integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== 2185 | 2186 | resolve-from@^4.0.0: 2187 | version "4.0.0" 2188 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 2189 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 2190 | 2191 | resolve@^1.22.1: 2192 | version "1.22.1" 2193 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 2194 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 2195 | dependencies: 2196 | is-core-module "^2.9.0" 2197 | path-parse "^1.0.7" 2198 | supports-preserve-symlinks-flag "^1.0.0" 2199 | 2200 | resolve@^2.0.0-next.4: 2201 | version "2.0.0-next.4" 2202 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" 2203 | integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== 2204 | dependencies: 2205 | is-core-module "^2.9.0" 2206 | path-parse "^1.0.7" 2207 | supports-preserve-symlinks-flag "^1.0.0" 2208 | 2209 | reusify@^1.0.4: 2210 | version "1.0.4" 2211 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 2212 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 2213 | 2214 | rimraf@^3.0.2: 2215 | version "3.0.2" 2216 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2217 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2218 | dependencies: 2219 | glob "^7.1.3" 2220 | 2221 | run-parallel@^1.1.9: 2222 | version "1.2.0" 2223 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 2224 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 2225 | dependencies: 2226 | queue-microtask "^1.2.2" 2227 | 2228 | safe-buffer@5.1.2: 2229 | version "5.1.2" 2230 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2231 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2232 | 2233 | safe-buffer@5.2.1, safe-buffer@^5.0.1: 2234 | version "5.2.1" 2235 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2236 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2237 | 2238 | safe-regex-test@^1.0.0: 2239 | version "1.0.0" 2240 | resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" 2241 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== 2242 | dependencies: 2243 | call-bind "^1.0.2" 2244 | get-intrinsic "^1.1.3" 2245 | is-regex "^1.1.4" 2246 | 2247 | "safer-buffer@>= 2.1.2 < 3": 2248 | version "2.1.2" 2249 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2250 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2251 | 2252 | semver-compare@^1.0.0: 2253 | version "1.0.0" 2254 | resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 2255 | integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= 2256 | 2257 | semver@^5.7.1: 2258 | version "5.7.2" 2259 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" 2260 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== 2261 | 2262 | semver@^6.3.0: 2263 | version "6.3.1" 2264 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 2265 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 2266 | 2267 | semver@^7.0.0, semver@^7.3.8: 2268 | version "7.5.4" 2269 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 2270 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 2271 | dependencies: 2272 | lru-cache "^6.0.0" 2273 | 2274 | semver@^7.5.4: 2275 | version "7.5.4" 2276 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 2277 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 2278 | dependencies: 2279 | lru-cache "^6.0.0" 2280 | 2281 | semver@~7.0.0: 2282 | version "7.0.0" 2283 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" 2284 | integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== 2285 | 2286 | send@0.18.0: 2287 | version "0.18.0" 2288 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 2289 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 2290 | dependencies: 2291 | debug "2.6.9" 2292 | depd "2.0.0" 2293 | destroy "1.2.0" 2294 | encodeurl "~1.0.2" 2295 | escape-html "~1.0.3" 2296 | etag "~1.8.1" 2297 | fresh "0.5.2" 2298 | http-errors "2.0.0" 2299 | mime "1.6.0" 2300 | ms "2.1.3" 2301 | on-finished "2.4.1" 2302 | range-parser "~1.2.1" 2303 | statuses "2.0.1" 2304 | 2305 | serve-static@1.15.0: 2306 | version "1.15.0" 2307 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 2308 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 2309 | dependencies: 2310 | encodeurl "~1.0.2" 2311 | escape-html "~1.0.3" 2312 | parseurl "~1.3.3" 2313 | send "0.18.0" 2314 | 2315 | server-destroy@^1.0.1: 2316 | version "1.0.1" 2317 | resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" 2318 | integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= 2319 | 2320 | setprototypeof@1.2.0: 2321 | version "1.2.0" 2322 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 2323 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 2324 | 2325 | shebang-command@^2.0.0: 2326 | version "2.0.0" 2327 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2328 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2329 | dependencies: 2330 | shebang-regex "^3.0.0" 2331 | 2332 | shebang-regex@^3.0.0: 2333 | version "3.0.0" 2334 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2335 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2336 | 2337 | side-channel@^1.0.4: 2338 | version "1.0.4" 2339 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 2340 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 2341 | dependencies: 2342 | call-bind "^1.0.0" 2343 | get-intrinsic "^1.0.2" 2344 | object-inspect "^1.9.0" 2345 | 2346 | simple-update-notifier@^1.0.7: 2347 | version "1.1.0" 2348 | resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" 2349 | integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== 2350 | dependencies: 2351 | semver "~7.0.0" 2352 | 2353 | socket.io-adapter@~2.5.2: 2354 | version "2.5.2" 2355 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12" 2356 | integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA== 2357 | dependencies: 2358 | ws "~8.11.0" 2359 | 2360 | socket.io-parser@~4.2.4: 2361 | version "4.2.4" 2362 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" 2363 | integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== 2364 | dependencies: 2365 | "@socket.io/component-emitter" "~3.1.0" 2366 | debug "~4.3.1" 2367 | 2368 | socket.io@^4.7.2: 2369 | version "4.7.2" 2370 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.2.tgz#22557d76c3f3ca48f82e73d68b7add36a22df002" 2371 | integrity sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw== 2372 | dependencies: 2373 | accepts "~1.3.4" 2374 | base64id "~2.0.0" 2375 | cors "~2.8.5" 2376 | debug "~4.3.2" 2377 | engine.io "~6.5.2" 2378 | socket.io-adapter "~2.5.2" 2379 | socket.io-parser "~4.2.4" 2380 | 2381 | standard-engine@^15.0.0: 2382 | version "15.0.0" 2383 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-15.0.0.tgz#e37ca2e1a589ef85431043a3e87cb9ce95a4ca4e" 2384 | integrity sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA== 2385 | dependencies: 2386 | get-stdin "^8.0.0" 2387 | minimist "^1.2.6" 2388 | pkg-conf "^3.1.0" 2389 | xdg-basedir "^4.0.0" 2390 | 2391 | standard@^17.0.0: 2392 | version "17.0.0" 2393 | resolved "https://registry.yarnpkg.com/standard/-/standard-17.0.0.tgz#85718ecd04dc4133908434660788708cca855aa1" 2394 | integrity sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA== 2395 | dependencies: 2396 | eslint "^8.13.0" 2397 | eslint-config-standard "17.0.0" 2398 | eslint-config-standard-jsx "^11.0.0" 2399 | eslint-plugin-import "^2.26.0" 2400 | eslint-plugin-n "^15.1.0" 2401 | eslint-plugin-promise "^6.0.0" 2402 | eslint-plugin-react "^7.28.0" 2403 | standard-engine "^15.0.0" 2404 | 2405 | statuses@2.0.1: 2406 | version "2.0.1" 2407 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 2408 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 2409 | 2410 | "statuses@>= 1.5.0 < 2": 2411 | version "1.5.0" 2412 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2413 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2414 | 2415 | steno@^0.4.1: 2416 | version "0.4.4" 2417 | resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" 2418 | integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= 2419 | dependencies: 2420 | graceful-fs "^4.1.3" 2421 | 2422 | steno@^3.0.0: 2423 | version "3.0.0" 2424 | resolved "https://registry.yarnpkg.com/steno/-/steno-3.0.0.tgz#212a11e8ef3646b610efc8953842f556fd0df28f" 2425 | integrity sha512-uZtn7Ht9yXLiYgOsmo8btj4+f7VxyYheMt8g6F1ANjyqByQXEE2Gygjgenp3otHH1TlHsS4JAaRGv5wJ1wvMNw== 2426 | 2427 | string-width@^4.1.0, string-width@^4.2.0: 2428 | version "4.2.2" 2429 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 2430 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 2431 | dependencies: 2432 | emoji-regex "^8.0.0" 2433 | is-fullwidth-code-point "^3.0.0" 2434 | strip-ansi "^6.0.0" 2435 | 2436 | string-width@^4.2.3: 2437 | version "4.2.3" 2438 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2439 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 2440 | dependencies: 2441 | emoji-regex "^8.0.0" 2442 | is-fullwidth-code-point "^3.0.0" 2443 | strip-ansi "^6.0.1" 2444 | 2445 | string.prototype.matchall@^4.0.8: 2446 | version "4.0.8" 2447 | resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" 2448 | integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== 2449 | dependencies: 2450 | call-bind "^1.0.2" 2451 | define-properties "^1.1.4" 2452 | es-abstract "^1.20.4" 2453 | get-intrinsic "^1.1.3" 2454 | has-symbols "^1.0.3" 2455 | internal-slot "^1.0.3" 2456 | regexp.prototype.flags "^1.4.3" 2457 | side-channel "^1.0.4" 2458 | 2459 | string.prototype.trimend@^1.0.6: 2460 | version "1.0.6" 2461 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" 2462 | integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== 2463 | dependencies: 2464 | call-bind "^1.0.2" 2465 | define-properties "^1.1.4" 2466 | es-abstract "^1.20.4" 2467 | 2468 | string.prototype.trimstart@^1.0.6: 2469 | version "1.0.6" 2470 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" 2471 | integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== 2472 | dependencies: 2473 | call-bind "^1.0.2" 2474 | define-properties "^1.1.4" 2475 | es-abstract "^1.20.4" 2476 | 2477 | strip-ansi@^6.0.0: 2478 | version "6.0.0" 2479 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 2480 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 2481 | dependencies: 2482 | ansi-regex "^5.0.0" 2483 | 2484 | strip-ansi@^6.0.1: 2485 | version "6.0.1" 2486 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2487 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 2488 | dependencies: 2489 | ansi-regex "^5.0.1" 2490 | 2491 | strip-bom@^3.0.0: 2492 | version "3.0.0" 2493 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 2494 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 2495 | 2496 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 2497 | version "3.1.1" 2498 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 2499 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 2500 | 2501 | supports-color@^5.5.0: 2502 | version "5.5.0" 2503 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2504 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2505 | dependencies: 2506 | has-flag "^3.0.0" 2507 | 2508 | supports-color@^7.1.0: 2509 | version "7.2.0" 2510 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2511 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2512 | dependencies: 2513 | has-flag "^4.0.0" 2514 | 2515 | supports-preserve-symlinks-flag@^1.0.0: 2516 | version "1.0.0" 2517 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2518 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2519 | 2520 | text-table@^0.2.0: 2521 | version "0.2.0" 2522 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2523 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 2524 | 2525 | to-regex-range@^5.0.1: 2526 | version "5.0.1" 2527 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2528 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2529 | dependencies: 2530 | is-number "^7.0.0" 2531 | 2532 | toidentifier@1.0.0: 2533 | version "1.0.0" 2534 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 2535 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 2536 | 2537 | toidentifier@1.0.1: 2538 | version "1.0.1" 2539 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 2540 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 2541 | 2542 | touch@^3.1.0: 2543 | version "3.1.0" 2544 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 2545 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 2546 | dependencies: 2547 | nopt "~1.0.10" 2548 | 2549 | tsconfig-paths@^3.14.1: 2550 | version "3.14.2" 2551 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" 2552 | integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== 2553 | dependencies: 2554 | "@types/json5" "^0.0.29" 2555 | json5 "^1.0.2" 2556 | minimist "^1.2.6" 2557 | strip-bom "^3.0.0" 2558 | 2559 | type-check@^0.4.0, type-check@~0.4.0: 2560 | version "0.4.0" 2561 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2562 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2563 | dependencies: 2564 | prelude-ls "^1.2.1" 2565 | 2566 | type-fest@^0.20.2: 2567 | version "0.20.2" 2568 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2569 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2570 | 2571 | type-fest@^0.3.0: 2572 | version "0.3.1" 2573 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" 2574 | integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== 2575 | 2576 | type-is@~1.6.18: 2577 | version "1.6.18" 2578 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2579 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 2580 | dependencies: 2581 | media-typer "0.3.0" 2582 | mime-types "~2.1.24" 2583 | 2584 | typed-array-length@^1.0.4: 2585 | version "1.0.4" 2586 | resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" 2587 | integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== 2588 | dependencies: 2589 | call-bind "^1.0.2" 2590 | for-each "^0.3.3" 2591 | is-typed-array "^1.1.9" 2592 | 2593 | unbox-primitive@^1.0.2: 2594 | version "1.0.2" 2595 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" 2596 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 2597 | dependencies: 2598 | call-bind "^1.0.2" 2599 | has-bigints "^1.0.2" 2600 | has-symbols "^1.0.3" 2601 | which-boxed-primitive "^1.0.2" 2602 | 2603 | undefsafe@^2.0.5: 2604 | version "2.0.5" 2605 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 2606 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 2607 | 2608 | unpipe@1.0.0, unpipe@~1.0.0: 2609 | version "1.0.0" 2610 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2611 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 2612 | 2613 | uri-js@^4.2.2: 2614 | version "4.4.1" 2615 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2616 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2617 | dependencies: 2618 | punycode "^2.1.0" 2619 | 2620 | utils-merge@1.0.1: 2621 | version "1.0.1" 2622 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2623 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 2624 | 2625 | vary@^1, vary@~1.1.2: 2626 | version "1.1.2" 2627 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2628 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 2629 | 2630 | which-boxed-primitive@^1.0.2: 2631 | version "1.0.2" 2632 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 2633 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 2634 | dependencies: 2635 | is-bigint "^1.0.1" 2636 | is-boolean-object "^1.1.0" 2637 | is-number-object "^1.0.4" 2638 | is-string "^1.0.5" 2639 | is-symbol "^1.0.3" 2640 | 2641 | which-typed-array@^1.1.9: 2642 | version "1.1.9" 2643 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" 2644 | integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== 2645 | dependencies: 2646 | available-typed-arrays "^1.0.5" 2647 | call-bind "^1.0.2" 2648 | for-each "^0.3.3" 2649 | gopd "^1.0.1" 2650 | has-tostringtag "^1.0.0" 2651 | is-typed-array "^1.1.10" 2652 | 2653 | which@^2.0.1: 2654 | version "2.0.2" 2655 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2656 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2657 | dependencies: 2658 | isexe "^2.0.0" 2659 | 2660 | word-wrap@^1.2.3: 2661 | version "1.2.4" 2662 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" 2663 | integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== 2664 | 2665 | wrap-ansi@^7.0.0: 2666 | version "7.0.0" 2667 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2668 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2669 | dependencies: 2670 | ansi-styles "^4.0.0" 2671 | string-width "^4.1.0" 2672 | strip-ansi "^6.0.0" 2673 | 2674 | wrappy@1: 2675 | version "1.0.2" 2676 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2677 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2678 | 2679 | ws@~8.11.0: 2680 | version "8.11.0" 2681 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" 2682 | integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== 2683 | 2684 | xdg-basedir@^4.0.0: 2685 | version "4.0.0" 2686 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 2687 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 2688 | 2689 | y18n@^5.0.5: 2690 | version "5.0.6" 2691 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.6.tgz#8236b05cfc5af6a409f41326a4847c68989bb04f" 2692 | integrity sha512-PlVX4Y0lDTN6E2V4ES2tEdyvXkeKzxa8c/vo0pxPr/TqbztddTP0yn7zZylIyiAuxerqj0Q5GhpJ1YJCP8LaZQ== 2693 | 2694 | yallist@^4.0.0: 2695 | version "4.0.0" 2696 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2697 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2698 | 2699 | yargs-parser@^21.1.1: 2700 | version "21.1.1" 2701 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" 2702 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 2703 | 2704 | yargs@^17.0.1: 2705 | version "17.6.2" 2706 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" 2707 | integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== 2708 | dependencies: 2709 | cliui "^8.0.1" 2710 | escalade "^3.1.1" 2711 | get-caller-file "^2.0.5" 2712 | require-directory "^2.1.1" 2713 | string-width "^4.2.3" 2714 | y18n "^5.0.5" 2715 | yargs-parser "^21.1.1" 2716 | 2717 | yocto-queue@^0.1.0: 2718 | version "0.1.0" 2719 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2720 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2721 | --------------------------------------------------------------------------------