├── .gitignore ├── README.md ├── host ├── .babelrc ├── package.json ├── postcss.config.js ├── src │ ├── App.tsx │ ├── client.ts │ ├── index.html │ ├── index.scss │ └── index.ts ├── tailwind.config.js ├── webpack.config.js └── yarn.lock └── server ├── package.json ├── src ├── index.ts └── users.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Installation and Startup 2 | 3 | Terminal 1: 4 | 5 | ```sh 6 | % cd server 7 | % yarn && yarn start 8 | ``` 9 | 10 | Terminal 2: 11 | 12 | ```sh 13 | % cd host 14 | % yarn && yarn start 15 | ``` 16 | 17 | Navigate to http://localhost:8080/ and login. -------------------------------------------------------------------------------- /host/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-typescript", "@babel/preset-react", "@babel/preset-env"], 3 | "plugins": [ 4 | ["@babel/transform-runtime"] 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /host/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "host", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "build": "webpack --mode production", 6 | "build:dev": "webpack --mode development", 7 | "build:start": "cd dist && PORT=8080 npx serve", 8 | "start": "webpack serve --open --mode development", 9 | "start:live": "webpack serve --open --mode development --live-reload" 10 | }, 11 | "license": "MIT", 12 | "author": { 13 | "name": "Jack Herrington", 14 | "email": "jherr@pobox.com" 15 | }, 16 | "devDependencies": { 17 | "@babel/core": "^7.15.8", 18 | "@babel/plugin-transform-runtime": "^7.15.8", 19 | "@babel/preset-env": "^7.15.8", 20 | "@babel/preset-react": "^7.14.5", 21 | "@babel/preset-typescript": "^7.10.4", 22 | "@types/react": "^17.0.2", 23 | "@types/react-dom": "^17.0.2", 24 | "autoprefixer": "^10.1.0", 25 | "babel-loader": "^8.2.2", 26 | "css-loader": "^6.3.0", 27 | "html-webpack-plugin": "^5.3.2", 28 | "postcss": "^8.2.1", 29 | "postcss-loader": "^4.1.0", 30 | "style-loader": "^3.3.0", 31 | "tailwindcss": "^2.0.2", 32 | "webpack": "^5.57.1", 33 | "webpack-cli": "^4.9.0", 34 | "webpack-dev-server": "^4.3.1" 35 | }, 36 | "dependencies": { 37 | "axios": "^0.24.0", 38 | "react": "^17.0.2", 39 | "react-dom": "^17.0.2", 40 | "react-hooks-global-state": "^1.0.2", 41 | "react-query": "^3.28.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /host/postcss.config.js: -------------------------------------------------------------------------------- 1 | const autoprefixer = require("autoprefixer"); 2 | const tailwindcss = require("tailwindcss"); 3 | 4 | module.exports = { 5 | plugins: [tailwindcss, autoprefixer], 6 | }; 7 | -------------------------------------------------------------------------------- /host/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState, useCallback } from "react"; 2 | import ReactDOM from "react-dom"; 3 | import { useQuery, QueryClient, QueryClientProvider } from "react-query"; 4 | 5 | import { useClient } from "./client"; 6 | 7 | import "./index.scss"; 8 | 9 | const queryClient = new QueryClient(); 10 | 11 | const TodosApp = () => { 12 | const { login, logout, JWT, getTodos } = useClient(); 13 | 14 | const [name, setName] = useState("sally"); 15 | const [password, setPassword] = useState("123"); 16 | 17 | const onLogin = useCallback(async () => { 18 | login(name, password); 19 | }, [name, password]); 20 | 21 | const { data: todos } = useQuery("todos", getTodos, { 22 | initialData: [], 23 | enabled: !!JWT, 24 | }); 25 | 26 | const onGetTodos = useCallback(async () => { 27 | queryClient.invalidateQueries("todos"); 28 | }, [getTodos]); 29 | 30 | return ( 31 |
32 |
33 |
34 | {JWT ? ( 35 | 41 | ) : ( 42 | <> 43 | setName(e.target.value)} 48 | /> 49 | setPassword(e.target.value)} 54 | /> 55 | 61 | 62 | )} 63 |
64 |
65 | {JWT && todos && ( 66 | <> 67 |
68 | {todos.map((todo) => ( 69 |
{todo}
70 | ))} 71 |
72 |
73 | 79 |
80 | 81 | )} 82 |
83 |
84 |
85 | ); 86 | }; 87 | 88 | const App = () => ( 89 | 90 | 91 | 92 | ); 93 | 94 | ReactDOM.render(, document.getElementById("app")); 95 | -------------------------------------------------------------------------------- /host/src/client.ts: -------------------------------------------------------------------------------- 1 | import { useCallback } from "react"; 2 | import { createGlobalState } from "react-hooks-global-state"; 3 | import axios from "axios"; 4 | 5 | const { useGlobalState, getGlobalState, setGlobalState } = createGlobalState({ 6 | jwtToken: "", 7 | }); 8 | const getJWTToken = () => getGlobalState("jwtToken"); 9 | const setJWTToken = (value: string) => setGlobalState("jwtToken", value); 10 | const useJWTToken = () => useGlobalState("jwtToken"); 11 | 12 | const client = axios.create({ 13 | baseURL: "http://localhost:3000", 14 | headers: { 15 | "Access-Control-Allow-Origin": "*", 16 | "Content-Type": "application/json", 17 | }, 18 | }); 19 | 20 | client.interceptors.request.use( 21 | (config) => { 22 | config.headers["x-access-token"] = getJWTToken(); 23 | return config; 24 | }, 25 | (error) => { 26 | return Promise.reject(error); 27 | } 28 | ); 29 | 30 | client.interceptors.response.use( 31 | (res) => { 32 | return res; 33 | }, 34 | async (err) => { 35 | const originalConfig = err.config; 36 | if (err.response.status === 401 && !originalConfig._retry) { 37 | originalConfig._retry = true; 38 | try { 39 | const rs = await client.post( 40 | "/", 41 | { 42 | query: "mutation { refresh }", 43 | }, 44 | { 45 | withCredentials: true, 46 | } 47 | ); 48 | const { data } = rs.data as { 49 | data: { 50 | refresh: string; 51 | }; 52 | }; 53 | setJWTToken(data.refresh); 54 | return client(originalConfig); 55 | } catch (_error) { 56 | return Promise.reject(_error); 57 | } 58 | } 59 | return Promise.reject(err); 60 | } 61 | ); 62 | 63 | export function useClient() { 64 | const [JWT, setJWT] = useJWTToken(); 65 | 66 | const login = useCallback((name: string, password: string) => { 67 | client 68 | .post( 69 | "/", 70 | { 71 | query: 72 | "mutation ($name: String!, $password: String!) {\n authenticate(name: $name, password: $password)\n}\n", 73 | variables: { name, password }, 74 | }, 75 | { 76 | withCredentials: true, 77 | } 78 | ) 79 | .then(({ data }) => { 80 | const jwtToken = ( 81 | data as { 82 | data: { 83 | authenticate: string; 84 | }; 85 | } 86 | ).data.authenticate; 87 | setJWT(jwtToken); 88 | }); 89 | }, []); 90 | 91 | const logout = useCallback(() => { 92 | setJWT(""); 93 | }, []); 94 | 95 | const getTodos = useCallback( 96 | () => 97 | client 98 | .post( 99 | "/", 100 | { 101 | query: "query { todos }", 102 | }, 103 | { 104 | withCredentials: true, 105 | } 106 | ) 107 | .then( 108 | ({ data }) => 109 | ( 110 | data as { 111 | data: { 112 | todos: string[]; 113 | }; 114 | } 115 | ).data.todos 116 | ), 117 | [] 118 | ); 119 | 120 | return { 121 | JWT, 122 | getTodos, 123 | login, 124 | logout, 125 | }; 126 | } 127 | 128 | export default client; 129 | -------------------------------------------------------------------------------- /host/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | host 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /host/src/index.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | font-family: Arial, Helvetica, sans-serif; 7 | } -------------------------------------------------------------------------------- /host/src/index.ts: -------------------------------------------------------------------------------- 1 | import("./App"); 2 | -------------------------------------------------------------------------------- /host/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | purge: [], 3 | darkMode: false, // or 'media' or 'class' 4 | theme: { 5 | extend: {}, 6 | }, 7 | variants: { 8 | extend: {}, 9 | }, 10 | plugins: [], 11 | } 12 | -------------------------------------------------------------------------------- /host/webpack.config.js: -------------------------------------------------------------------------------- 1 | const HtmlWebPackPlugin = require("html-webpack-plugin"); 2 | const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin"); 3 | 4 | const deps = require("./package.json").dependencies; 5 | module.exports = { 6 | output: { 7 | publicPath: "http://localhost:8080/", 8 | }, 9 | 10 | resolve: { 11 | extensions: [".tsx", ".ts", ".jsx", ".js", ".json"], 12 | }, 13 | 14 | devServer: { 15 | port: 8080, 16 | }, 17 | 18 | module: { 19 | rules: [ 20 | { 21 | test: /\.m?js/, 22 | type: "javascript/auto", 23 | resolve: { 24 | fullySpecified: false, 25 | }, 26 | }, 27 | { 28 | test: /\.(css|s[ac]ss)$/i, 29 | use: ["style-loader", "css-loader", "postcss-loader"], 30 | }, 31 | { 32 | test: /\.(ts|tsx|js|jsx)$/, 33 | exclude: /node_modules/, 34 | use: { 35 | loader: "babel-loader", 36 | }, 37 | }, 38 | ], 39 | }, 40 | 41 | plugins: [ 42 | new ModuleFederationPlugin({ 43 | name: "host", 44 | filename: "remoteEntry.js", 45 | remotes: {}, 46 | exposes: {}, 47 | shared: { 48 | ...deps, 49 | react: { 50 | singleton: true, 51 | requiredVersion: deps.react, 52 | }, 53 | "react-dom": { 54 | singleton: true, 55 | requiredVersion: deps["react-dom"], 56 | }, 57 | }, 58 | }), 59 | new HtmlWebPackPlugin({ 60 | template: "./src/index.html", 61 | }), 62 | ], 63 | }; 64 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "scripts": { 6 | "start": "ts-node src/index.ts", 7 | "dev": "tsnd --respawn src/index.ts", 8 | "build": "tsc", 9 | "serve": "node dist/index.js" 10 | }, 11 | "dependencies": { 12 | "apollo-server": "^3.4.0", 13 | "graphql": "^15.6.1", 14 | "guid": "^0.0.12", 15 | "jsonwebtoken": "^8.5.1" 16 | }, 17 | "devDependencies": { 18 | "@types/guid": "^1.0.0", 19 | "@types/jsonwebtoken": "^8.5.5", 20 | "ts-node": "^10.4.0", 21 | "ts-node-dev": "^1.1.8", 22 | "typescript": "^4.4.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server/src/index.ts: -------------------------------------------------------------------------------- 1 | import { ApolloServer, gql, AuthenticationError } from "apollo-server"; 2 | import jwt from "jsonwebtoken"; 3 | import guid from "guid"; 4 | 5 | import users from "./users"; 6 | 7 | const JWT_SECRET = process.env.JWT_SECRET || "secret"; 8 | 9 | const refreshTokens: Record = {}; 10 | 11 | const typeDefs = gql` 12 | type Query { 13 | todos: [String!] 14 | } 15 | 16 | type Mutation { 17 | authenticate(name: String!, password: String!): String 18 | refresh: String 19 | } 20 | `; 21 | 22 | const resolvers = { 23 | Query: { 24 | todos: (_parent: unknown, _args: unknown, context: { name: string }) => { 25 | if (!users[context?.name]) { 26 | throw new AuthenticationError("Invalid credentials"); 27 | } 28 | return users[context?.name].todos; 29 | }, 30 | }, 31 | Mutation: { 32 | authenticate: ( 33 | _: unknown, 34 | { name, password }: { name: string; password: string } 35 | ) => { 36 | if (users[name] && users[name].password === password) { 37 | return jwt.sign({ data: name }, JWT_SECRET, { expiresIn: "5s" }); 38 | } else { 39 | throw new AuthenticationError("Invalid credentials"); 40 | } 41 | }, 42 | refresh: ( 43 | _parent: unknown, 44 | _args: unknown, 45 | { refreshToken }: { refreshToken: string } 46 | ) => { 47 | const token = jwt.verify(refreshToken, JWT_SECRET) as { 48 | data: string; 49 | }; 50 | if (token.data in refreshTokens) { 51 | return jwt.sign({ data: refreshTokens[token.data] }, JWT_SECRET, { 52 | expiresIn: "5s", 53 | }); 54 | } 55 | }, 56 | }, 57 | }; 58 | 59 | const server = new ApolloServer({ 60 | cors: { 61 | origin: "http://localhost:8080", 62 | methods: "GET,HEAD,PUT,PATCH,POST,DELETE", 63 | credentials: true, 64 | }, 65 | formatResponse: (response, requestContext) => { 66 | if (response.errors && !requestContext.request.variables?.password) { 67 | if (requestContext.response?.http) { 68 | requestContext.response.http.status = 401; 69 | } 70 | } else if (response.data?.authenticate || response.data?.refresh) { 71 | const tokenExpireDate = new Date(); 72 | tokenExpireDate.setDate( 73 | tokenExpireDate.getDate() + 60 * 60 * 24 * 7 // 7 days 74 | ); 75 | const refreshTokenGuid = guid.raw(); 76 | 77 | const token = jwt.verify( 78 | response.data?.authenticate || response.data?.refresh, 79 | JWT_SECRET 80 | ) as unknown as { 81 | data: string; 82 | }; 83 | 84 | refreshTokens[refreshTokenGuid] = token.data; 85 | const refreshToken = jwt.sign({ data: refreshTokenGuid }, JWT_SECRET, { 86 | expiresIn: "7 days", 87 | }); 88 | 89 | requestContext.response?.http?.headers.append( 90 | "Set-Cookie", 91 | `refreshToken=${refreshToken}; expires=${tokenExpireDate}` 92 | ); 93 | } 94 | return response; 95 | }, 96 | context: ({ req }) => { 97 | const ctx: { name: string | null; refreshToken: string | null } = { 98 | name: null, 99 | refreshToken: null, 100 | }; 101 | 102 | const cookies = (req.headers?.cookie ?? "") 103 | .split(";") 104 | .reduce>((obj, c) => { 105 | const [name, value] = c.split("="); 106 | obj[name.trim()] = value.trim(); 107 | return obj; 108 | }, {}); 109 | 110 | ctx.refreshToken = cookies?.refreshToken; 111 | 112 | try { 113 | if (req.headers["x-access-token"]) { 114 | const token = jwt.verify( 115 | req.headers["x-access-token"] as string, 116 | JWT_SECRET 117 | ) as unknown as { 118 | data: string; 119 | }; 120 | ctx.name = token.data; 121 | } 122 | } catch (e) {} 123 | return ctx; 124 | }, 125 | typeDefs, 126 | resolvers, 127 | }); 128 | 129 | server.listen({ port: 3000 }).then(({ url }) => { 130 | console.log(`🚀 server ready at ${url}`); 131 | }); 132 | -------------------------------------------------------------------------------- /server/src/users.ts: -------------------------------------------------------------------------------- 1 | const users: Record< 2 | string, 3 | { 4 | id: number; 5 | password: string; 6 | todos: string[]; 7 | } 8 | > = { 9 | sally: { 10 | id: 1, 11 | password: "123", 12 | todos: ["Learn GraphQL", "Learn JWT"], 13 | }, 14 | jane: { 15 | id: 2, 16 | password: "123", 17 | todos: ["Learn C", "Learn C++"], 18 | }, 19 | }; 20 | 21 | export default users; 22 | -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Basic Options */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ 8 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 9 | // "lib": [], /* Specify library files to be included in the compilation. */ 10 | // "allowJs": true, /* Allow javascript files to be compiled. */ 11 | // "checkJs": true, /* Report errors in .js files. */ 12 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 13 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 14 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 15 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 16 | // "outFile": "./", /* Concatenate and emit output to single file. */ 17 | "outDir": "./dist", /* Redirect output structure to the directory. */ 18 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 19 | // "composite": true, /* Enable project compilation */ 20 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 43 | 44 | /* Module Resolution Options */ 45 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 46 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 47 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 48 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 49 | // "typeRoots": [], /* List of folders to include type definitions from. */ 50 | // "types": [], /* Type declaration files to be included in compilation. */ 51 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 52 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 53 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 54 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 55 | 56 | /* Source Map Options */ 57 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 58 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 59 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 60 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 61 | 62 | /* Experimental Options */ 63 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 64 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 65 | 66 | /* Advanced Options */ 67 | "skipLibCheck": true, /* Skip type checking of declaration files. */ 68 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 69 | }, 70 | "include": [ 71 | "./src/**/*.ts" 72 | ], 73 | "exclude": [ 74 | "node_modules" 75 | ] 76 | } 77 | -------------------------------------------------------------------------------- /server/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@apollo/protobufjs@1.2.2": 6 | version "1.2.2" 7 | resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.2.tgz#4bd92cd7701ccaef6d517cdb75af2755f049f87c" 8 | integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== 9 | dependencies: 10 | "@protobufjs/aspromise" "^1.1.2" 11 | "@protobufjs/base64" "^1.1.2" 12 | "@protobufjs/codegen" "^2.0.4" 13 | "@protobufjs/eventemitter" "^1.1.0" 14 | "@protobufjs/fetch" "^1.1.0" 15 | "@protobufjs/float" "^1.0.2" 16 | "@protobufjs/inquire" "^1.1.0" 17 | "@protobufjs/path" "^1.1.2" 18 | "@protobufjs/pool" "^1.1.0" 19 | "@protobufjs/utf8" "^1.1.0" 20 | "@types/long" "^4.0.0" 21 | "@types/node" "^10.1.0" 22 | long "^4.0.0" 23 | 24 | "@apollographql/apollo-tools@^0.5.1": 25 | version "0.5.1" 26 | resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz#f0baef739ff7e2fafcb8b98ad29f6ac817e53e32" 27 | integrity sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA== 28 | 29 | "@apollographql/graphql-playground-html@1.6.29": 30 | version "1.6.29" 31 | resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" 32 | integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== 33 | dependencies: 34 | xss "^1.0.8" 35 | 36 | "@cspotcode/source-map-consumer@0.8.0": 37 | version "0.8.0" 38 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" 39 | integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== 40 | 41 | "@cspotcode/source-map-support@0.7.0": 42 | version "0.7.0" 43 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" 44 | integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== 45 | dependencies: 46 | "@cspotcode/source-map-consumer" "0.8.0" 47 | 48 | "@graphql-tools/merge@^8.2.0": 49 | version "8.2.0" 50 | resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.0.tgz#8f6638eeecf19f59fef28598024308e0452dd0a2" 51 | integrity sha512-nfMLYF7zczjnIbChZtqbvozRfuRweMD1Fe9HHd4RXd3Tcsj6E17srW0QJfxUoIIWh4pitj+XwZAwhj1PWBDU7g== 52 | dependencies: 53 | "@graphql-tools/utils" "^8.4.0" 54 | tslib "~2.3.0" 55 | 56 | "@graphql-tools/mock@^8.1.2": 57 | version "8.4.1" 58 | resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.4.1.tgz#c75fae7e4271224c4efbf57e388cb3eb344be59d" 59 | integrity sha512-eIW2H1k9b4Sczzy1Za+GdaKBc8lTXo8MbJH4oivh1AoGl6/Tu9jTOOTS/b07zQzG+6sIQG54o9W6s2TqDmD+YQ== 60 | dependencies: 61 | "@graphql-tools/schema" "^8.2.0" 62 | "@graphql-tools/utils" "^8.2.3" 63 | fast-json-stable-stringify "^2.1.0" 64 | tslib "~2.3.0" 65 | 66 | "@graphql-tools/schema@^8.0.0", "@graphql-tools/schema@^8.2.0": 67 | version "8.3.0" 68 | resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.3.0.tgz#ddf4297859c6d7ac1ebbbd91460260ed424115db" 69 | integrity sha512-OJD4Q1Xa3sffRiHzy0sskZz9ZWeqaujINfoim4CTk5Y9es1LS+WnKi25wVhmL2SGzzmKuAv7oDn+dpQAlM+Gfw== 70 | dependencies: 71 | "@graphql-tools/merge" "^8.2.0" 72 | "@graphql-tools/utils" "^8.4.0" 73 | tslib "~2.3.0" 74 | value-or-promise "1.0.11" 75 | 76 | "@graphql-tools/utils@^8.0.0", "@graphql-tools/utils@^8.2.3", "@graphql-tools/utils@^8.4.0": 77 | version "8.5.0" 78 | resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.5.0.tgz#439487ac756d9458a33091e5e0435ddf8e794f3e" 79 | integrity sha512-jMwLm6YdN+Vbqntg5GHqDvGLpLa/xPSpRs/c40d0rBuel77wo7AaQ8jHeBSpp9y+7kp7HrGSWff1u7yJ7F8ppw== 80 | dependencies: 81 | tslib "~2.3.0" 82 | 83 | "@josephg/resolvable@^1.0.0": 84 | version "1.0.1" 85 | resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" 86 | integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== 87 | 88 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 89 | version "1.1.2" 90 | resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" 91 | integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= 92 | 93 | "@protobufjs/base64@^1.1.2": 94 | version "1.1.2" 95 | resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" 96 | integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== 97 | 98 | "@protobufjs/codegen@^2.0.4": 99 | version "2.0.4" 100 | resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" 101 | integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== 102 | 103 | "@protobufjs/eventemitter@^1.1.0": 104 | version "1.1.0" 105 | resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" 106 | integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= 107 | 108 | "@protobufjs/fetch@^1.1.0": 109 | version "1.1.0" 110 | resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" 111 | integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= 112 | dependencies: 113 | "@protobufjs/aspromise" "^1.1.1" 114 | "@protobufjs/inquire" "^1.1.0" 115 | 116 | "@protobufjs/float@^1.0.2": 117 | version "1.0.2" 118 | resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" 119 | integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= 120 | 121 | "@protobufjs/inquire@^1.1.0": 122 | version "1.1.0" 123 | resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" 124 | integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= 125 | 126 | "@protobufjs/path@^1.1.2": 127 | version "1.1.2" 128 | resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" 129 | integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= 130 | 131 | "@protobufjs/pool@^1.1.0": 132 | version "1.1.0" 133 | resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" 134 | integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= 135 | 136 | "@protobufjs/utf8@^1.1.0": 137 | version "1.1.0" 138 | resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" 139 | integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= 140 | 141 | "@tsconfig/node10@^1.0.7": 142 | version "1.0.8" 143 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 144 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 145 | 146 | "@tsconfig/node12@^1.0.7": 147 | version "1.0.9" 148 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 149 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 150 | 151 | "@tsconfig/node14@^1.0.0": 152 | version "1.0.1" 153 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 154 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 155 | 156 | "@tsconfig/node16@^1.0.2": 157 | version "1.0.2" 158 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 159 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 160 | 161 | "@types/accepts@^1.3.5": 162 | version "1.3.5" 163 | resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" 164 | integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== 165 | dependencies: 166 | "@types/node" "*" 167 | 168 | "@types/body-parser@*", "@types/body-parser@1.19.1": 169 | version "1.19.1" 170 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" 171 | integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== 172 | dependencies: 173 | "@types/connect" "*" 174 | "@types/node" "*" 175 | 176 | "@types/connect@*": 177 | version "3.4.35" 178 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" 179 | integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== 180 | dependencies: 181 | "@types/node" "*" 182 | 183 | "@types/cors@2.8.12": 184 | version "2.8.12" 185 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" 186 | integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== 187 | 188 | "@types/express-serve-static-core@4.17.24", "@types/express-serve-static-core@^4.17.18": 189 | version "4.17.24" 190 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" 191 | integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== 192 | dependencies: 193 | "@types/node" "*" 194 | "@types/qs" "*" 195 | "@types/range-parser" "*" 196 | 197 | "@types/express@4.17.13": 198 | version "4.17.13" 199 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" 200 | integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== 201 | dependencies: 202 | "@types/body-parser" "*" 203 | "@types/express-serve-static-core" "^4.17.18" 204 | "@types/qs" "*" 205 | "@types/serve-static" "*" 206 | 207 | "@types/guid@^1.0.0": 208 | version "1.0.0" 209 | resolved "https://registry.yarnpkg.com/@types/guid/-/guid-1.0.0.tgz#6ac28afbdd581e123774859dd87129335d14f3b8" 210 | integrity sha512-l3aXmPBnkWdf0Z/drFtK6O6sj1D/TRmjlNUhBcnCtup4vX3gMgU4jRFV4P0IWmqoX3u2slTCXodJhM6jdAg3YQ== 211 | 212 | "@types/jsonwebtoken@^8.5.5": 213 | version "8.5.5" 214 | resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.5.tgz#da5f2f4baee88f052ef3e4db4c1a0afb46cff22c" 215 | integrity sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw== 216 | dependencies: 217 | "@types/node" "*" 218 | 219 | "@types/long@^4.0.0": 220 | version "4.0.1" 221 | resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" 222 | integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== 223 | 224 | "@types/mime@^1": 225 | version "1.3.2" 226 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" 227 | integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== 228 | 229 | "@types/node@*": 230 | version "16.11.6" 231 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" 232 | integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== 233 | 234 | "@types/node@^10.1.0": 235 | version "10.17.60" 236 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" 237 | integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== 238 | 239 | "@types/qs@*": 240 | version "6.9.7" 241 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" 242 | integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== 243 | 244 | "@types/range-parser@*": 245 | version "1.2.4" 246 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" 247 | integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== 248 | 249 | "@types/serve-static@*": 250 | version "1.13.10" 251 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" 252 | integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== 253 | dependencies: 254 | "@types/mime" "^1" 255 | "@types/node" "*" 256 | 257 | "@types/strip-bom@^3.0.0": 258 | version "3.0.0" 259 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 260 | integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= 261 | 262 | "@types/strip-json-comments@0.0.30": 263 | version "0.0.30" 264 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 265 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 266 | 267 | accepts@^1.3.5, accepts@~1.3.7: 268 | version "1.3.7" 269 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 270 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 271 | dependencies: 272 | mime-types "~2.1.24" 273 | negotiator "0.6.2" 274 | 275 | acorn-walk@^8.1.1: 276 | version "8.2.0" 277 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 278 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 279 | 280 | acorn@^8.4.1: 281 | version "8.5.0" 282 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" 283 | integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== 284 | 285 | anymatch@~3.1.2: 286 | version "3.1.2" 287 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 288 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 289 | dependencies: 290 | normalize-path "^3.0.0" 291 | picomatch "^2.0.4" 292 | 293 | apollo-datasource@^3.2.0: 294 | version "3.2.0" 295 | resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.2.0.tgz#fe2fbaae7be0ee10deafa5c3f31732e368a564a1" 296 | integrity sha512-2PK+p6dRFuQQM8F4JbBivGetnJxvb8ggQkY7XLeCSl4qVkBeBjX+mRtsiudk28NUTH3JEll7AgmKj2fHfxYpGQ== 297 | dependencies: 298 | apollo-server-caching "^3.2.0" 299 | apollo-server-env "^4.1.0" 300 | 301 | apollo-graphql@^0.9.0: 302 | version "0.9.3" 303 | resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.9.3.tgz#1ca6f625322ae10a66f57a39642849a07a7a5dc9" 304 | integrity sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A== 305 | dependencies: 306 | core-js-pure "^3.10.2" 307 | lodash.sortby "^4.7.0" 308 | sha.js "^2.4.11" 309 | 310 | apollo-reporting-protobuf@^3.1.0: 311 | version "3.1.0" 312 | resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.1.0.tgz#6f5501c58270b157834f2083668bc74f0e4d6104" 313 | integrity sha512-IP7SHrTQEGc1/RYzOihfcLLF56ALxxORywJj5ba/p1SX99y+Stt+6D5+3DA7XFF00C1BhXkIU+EkFHzPmypz0w== 314 | dependencies: 315 | "@apollo/protobufjs" "1.2.2" 316 | 317 | apollo-server-caching@^3.2.0: 318 | version "3.2.0" 319 | resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-3.2.0.tgz#368bc3288cfc2dab8de900d045dbd66cf457f3f3" 320 | integrity sha512-kR92WjoQVe1Z/EXyh365w6Vz8egkRCKmd3mE7KJvKgk+f0+AGO1LPPrez5IhbCXxAgChqzpHhq2FIyfOqEuLFQ== 321 | dependencies: 322 | lru-cache "^6.0.0" 323 | 324 | apollo-server-core@^3.4.0: 325 | version "3.4.0" 326 | resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.4.0.tgz#a7a492522132472361cd5ff7c6fc32aef37385b5" 327 | integrity sha512-CbQTgoeijCdfaTFq3DHBrnWtat1M/SlPxS365iy2fb2/p4zbYatOA/S0RON7PMGp2gcMnopvOtokJIOxbNN/YA== 328 | dependencies: 329 | "@apollographql/apollo-tools" "^0.5.1" 330 | "@apollographql/graphql-playground-html" "1.6.29" 331 | "@graphql-tools/mock" "^8.1.2" 332 | "@graphql-tools/schema" "^8.0.0" 333 | "@graphql-tools/utils" "^8.0.0" 334 | "@josephg/resolvable" "^1.0.0" 335 | apollo-datasource "^3.2.0" 336 | apollo-graphql "^0.9.0" 337 | apollo-reporting-protobuf "^3.1.0" 338 | apollo-server-caching "^3.2.0" 339 | apollo-server-env "^4.1.0" 340 | apollo-server-errors "^3.2.0" 341 | apollo-server-plugin-base "^3.3.0" 342 | apollo-server-types "^3.3.0" 343 | async-retry "^1.2.1" 344 | fast-json-stable-stringify "^2.1.0" 345 | graphql-tag "^2.11.0" 346 | loglevel "^1.6.8" 347 | lru-cache "^6.0.0" 348 | sha.js "^2.4.11" 349 | uuid "^8.0.0" 350 | 351 | apollo-server-env@^4.1.0: 352 | version "4.1.0" 353 | resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.1.0.tgz#20b69216d87b4e73166b28d2675e72823655fe75" 354 | integrity sha512-pJIqIN7UXYDHcNY/IRi7H9AvdV+aHi96gv/nPmnLsP/LbWMJvMuQY3jQ2obW0P+rO3bx05oYHLsVjwHHaXlEQA== 355 | dependencies: 356 | node-fetch "^2.6.1" 357 | 358 | apollo-server-errors@^3.2.0: 359 | version "3.2.0" 360 | resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.2.0.tgz#6c5051107b073c09bb55c2554878af0e97d59d08" 361 | integrity sha512-Y7YH3JVAaR1199ao4dae3j1UrF9D/6AJwHpsORTjI3BvrwjU1X7Nk1VvEHn9bZfZF6ONaqUM+uCLm5c8GPhffQ== 362 | 363 | apollo-server-express@^3.4.0: 364 | version "3.4.0" 365 | resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.4.0.tgz#2dfa36531746fa36bfafeeda76b017d608a168a9" 366 | integrity sha512-+J7Nu+I+JLCEnBQrQAzKmZfguHo9GQNb6XJZYuNlg9jdcomAvJpEJW5SKujXiGCT9CCIB6jvf8s102pJvBC9TQ== 367 | dependencies: 368 | "@types/accepts" "^1.3.5" 369 | "@types/body-parser" "1.19.1" 370 | "@types/cors" "2.8.12" 371 | "@types/express" "4.17.13" 372 | "@types/express-serve-static-core" "4.17.24" 373 | accepts "^1.3.5" 374 | apollo-server-core "^3.4.0" 375 | apollo-server-types "^3.3.0" 376 | body-parser "^1.19.0" 377 | cors "^2.8.5" 378 | parseurl "^1.3.3" 379 | 380 | apollo-server-plugin-base@^3.3.0: 381 | version "3.3.0" 382 | resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.3.0.tgz#7615cc763848c33099ed4ac8dd5134fbf94df97c" 383 | integrity sha512-4a4KpePhoU9FAIN2YjWm1Cfl7Y3AyRXLH8ZncSRCDcQFWww8gc/ZGqWZ+udRo4ejKvzLjnTwVyxfrd80sf9sHw== 384 | dependencies: 385 | apollo-server-types "^3.3.0" 386 | 387 | apollo-server-types@^3.3.0: 388 | version "3.3.0" 389 | resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.3.0.tgz#20448e2c88e2045764a5fe82ab66069e79c4a834" 390 | integrity sha512-m+GyuXyuZ7YdZO1NIMJdJoOKsocCPx/WRVzBjDegYxNcAa/lDvNYU3hFyX87UGXt8Xsd9VIHxdhO88S6jkgCmw== 391 | dependencies: 392 | apollo-reporting-protobuf "^3.1.0" 393 | apollo-server-caching "^3.2.0" 394 | apollo-server-env "^4.1.0" 395 | 396 | apollo-server@^3.4.0: 397 | version "3.4.0" 398 | resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-3.4.0.tgz#ced80badbf2430231750e4e09c44a22c1d2528e4" 399 | integrity sha512-/3aC3Mh+d+4LbfsvT4rYLzgbobz7QZdfUV1tUYhFtt4pf57qCXBcuSt5vXqVzRJp1ex+3eLP7Q45/S5T/tK87A== 400 | dependencies: 401 | apollo-server-core "^3.4.0" 402 | apollo-server-express "^3.4.0" 403 | express "^4.17.1" 404 | 405 | arg@^4.1.0: 406 | version "4.1.3" 407 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 408 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 409 | 410 | array-flatten@1.1.1: 411 | version "1.1.1" 412 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 413 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 414 | 415 | async-retry@^1.2.1: 416 | version "1.3.3" 417 | resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" 418 | integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== 419 | dependencies: 420 | retry "0.13.1" 421 | 422 | balanced-match@^1.0.0: 423 | version "1.0.2" 424 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 425 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 426 | 427 | binary-extensions@^2.0.0: 428 | version "2.2.0" 429 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 430 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 431 | 432 | body-parser@1.19.0, body-parser@^1.19.0: 433 | version "1.19.0" 434 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 435 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 436 | dependencies: 437 | bytes "3.1.0" 438 | content-type "~1.0.4" 439 | debug "2.6.9" 440 | depd "~1.1.2" 441 | http-errors "1.7.2" 442 | iconv-lite "0.4.24" 443 | on-finished "~2.3.0" 444 | qs "6.7.0" 445 | raw-body "2.4.0" 446 | type-is "~1.6.17" 447 | 448 | brace-expansion@^1.1.7: 449 | version "1.1.11" 450 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 451 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 452 | dependencies: 453 | balanced-match "^1.0.0" 454 | concat-map "0.0.1" 455 | 456 | braces@~3.0.2: 457 | version "3.0.2" 458 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 459 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 460 | dependencies: 461 | fill-range "^7.0.1" 462 | 463 | buffer-equal-constant-time@1.0.1: 464 | version "1.0.1" 465 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 466 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 467 | 468 | buffer-from@^1.0.0: 469 | version "1.1.2" 470 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 471 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 472 | 473 | bytes@3.1.0: 474 | version "3.1.0" 475 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 476 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 477 | 478 | chokidar@^3.5.1: 479 | version "3.5.2" 480 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 481 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 482 | dependencies: 483 | anymatch "~3.1.2" 484 | braces "~3.0.2" 485 | glob-parent "~5.1.2" 486 | is-binary-path "~2.1.0" 487 | is-glob "~4.0.1" 488 | normalize-path "~3.0.0" 489 | readdirp "~3.6.0" 490 | optionalDependencies: 491 | fsevents "~2.3.2" 492 | 493 | commander@^2.20.3: 494 | version "2.20.3" 495 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 496 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 497 | 498 | concat-map@0.0.1: 499 | version "0.0.1" 500 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 501 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 502 | 503 | content-disposition@0.5.3: 504 | version "0.5.3" 505 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 506 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 507 | dependencies: 508 | safe-buffer "5.1.2" 509 | 510 | content-type@~1.0.4: 511 | version "1.0.4" 512 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 513 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 514 | 515 | cookie-signature@1.0.6: 516 | version "1.0.6" 517 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 518 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 519 | 520 | cookie@0.4.0: 521 | version "0.4.0" 522 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 523 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 524 | 525 | core-js-pure@^3.10.2: 526 | version "3.19.0" 527 | resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.0.tgz#db6fdadfdd4dc280ec93b64c3c2e8460e6f10094" 528 | integrity sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ== 529 | 530 | cors@^2.8.5: 531 | version "2.8.5" 532 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 533 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 534 | dependencies: 535 | object-assign "^4" 536 | vary "^1" 537 | 538 | create-require@^1.1.0: 539 | version "1.1.1" 540 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 541 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 542 | 543 | cssfilter@0.0.10: 544 | version "0.0.10" 545 | resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" 546 | integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= 547 | 548 | debug@2.6.9: 549 | version "2.6.9" 550 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 551 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 552 | dependencies: 553 | ms "2.0.0" 554 | 555 | depd@~1.1.2: 556 | version "1.1.2" 557 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 558 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 559 | 560 | destroy@~1.0.4: 561 | version "1.0.4" 562 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 563 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 564 | 565 | diff@^4.0.1: 566 | version "4.0.2" 567 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 568 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 569 | 570 | dynamic-dedupe@^0.3.0: 571 | version "0.3.0" 572 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 573 | integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE= 574 | dependencies: 575 | xtend "^4.0.0" 576 | 577 | ecdsa-sig-formatter@1.0.11: 578 | version "1.0.11" 579 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 580 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 581 | dependencies: 582 | safe-buffer "^5.0.1" 583 | 584 | ee-first@1.1.1: 585 | version "1.1.1" 586 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 587 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 588 | 589 | encodeurl@~1.0.2: 590 | version "1.0.2" 591 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 592 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 593 | 594 | escape-html@~1.0.3: 595 | version "1.0.3" 596 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 597 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 598 | 599 | etag@~1.8.1: 600 | version "1.8.1" 601 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 602 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 603 | 604 | express@^4.17.1: 605 | version "4.17.1" 606 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 607 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 608 | dependencies: 609 | accepts "~1.3.7" 610 | array-flatten "1.1.1" 611 | body-parser "1.19.0" 612 | content-disposition "0.5.3" 613 | content-type "~1.0.4" 614 | cookie "0.4.0" 615 | cookie-signature "1.0.6" 616 | debug "2.6.9" 617 | depd "~1.1.2" 618 | encodeurl "~1.0.2" 619 | escape-html "~1.0.3" 620 | etag "~1.8.1" 621 | finalhandler "~1.1.2" 622 | fresh "0.5.2" 623 | merge-descriptors "1.0.1" 624 | methods "~1.1.2" 625 | on-finished "~2.3.0" 626 | parseurl "~1.3.3" 627 | path-to-regexp "0.1.7" 628 | proxy-addr "~2.0.5" 629 | qs "6.7.0" 630 | range-parser "~1.2.1" 631 | safe-buffer "5.1.2" 632 | send "0.17.1" 633 | serve-static "1.14.1" 634 | setprototypeof "1.1.1" 635 | statuses "~1.5.0" 636 | type-is "~1.6.18" 637 | utils-merge "1.0.1" 638 | vary "~1.1.2" 639 | 640 | fast-json-stable-stringify@^2.1.0: 641 | version "2.1.0" 642 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 643 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 644 | 645 | fill-range@^7.0.1: 646 | version "7.0.1" 647 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 648 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 649 | dependencies: 650 | to-regex-range "^5.0.1" 651 | 652 | finalhandler@~1.1.2: 653 | version "1.1.2" 654 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 655 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 656 | dependencies: 657 | debug "2.6.9" 658 | encodeurl "~1.0.2" 659 | escape-html "~1.0.3" 660 | on-finished "~2.3.0" 661 | parseurl "~1.3.3" 662 | statuses "~1.5.0" 663 | unpipe "~1.0.0" 664 | 665 | forwarded@0.2.0: 666 | version "0.2.0" 667 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 668 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 669 | 670 | fresh@0.5.2: 671 | version "0.5.2" 672 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 673 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 674 | 675 | fs.realpath@^1.0.0: 676 | version "1.0.0" 677 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 678 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 679 | 680 | fsevents@~2.3.2: 681 | version "2.3.2" 682 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 683 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 684 | 685 | function-bind@^1.1.1: 686 | version "1.1.1" 687 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 688 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 689 | 690 | glob-parent@~5.1.2: 691 | version "5.1.2" 692 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 693 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 694 | dependencies: 695 | is-glob "^4.0.1" 696 | 697 | glob@^7.1.3: 698 | version "7.2.0" 699 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 700 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 701 | dependencies: 702 | fs.realpath "^1.0.0" 703 | inflight "^1.0.4" 704 | inherits "2" 705 | minimatch "^3.0.4" 706 | once "^1.3.0" 707 | path-is-absolute "^1.0.0" 708 | 709 | graphql-tag@^2.11.0: 710 | version "2.12.5" 711 | resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" 712 | integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== 713 | dependencies: 714 | tslib "^2.1.0" 715 | 716 | graphql@^15.6.1: 717 | version "15.6.1" 718 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.1.tgz#9125bdf057553525da251e19e96dab3d3855ddfc" 719 | integrity sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw== 720 | 721 | guid@^0.0.12: 722 | version "0.0.12" 723 | resolved "https://registry.yarnpkg.com/guid/-/guid-0.0.12.tgz#9137c52b185f7de12490b9bebcc1660b9025fe0c" 724 | integrity sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw= 725 | 726 | has@^1.0.3: 727 | version "1.0.3" 728 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 729 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 730 | dependencies: 731 | function-bind "^1.1.1" 732 | 733 | http-errors@1.7.2: 734 | version "1.7.2" 735 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 736 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 737 | dependencies: 738 | depd "~1.1.2" 739 | inherits "2.0.3" 740 | setprototypeof "1.1.1" 741 | statuses ">= 1.5.0 < 2" 742 | toidentifier "1.0.0" 743 | 744 | http-errors@~1.7.2: 745 | version "1.7.3" 746 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 747 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 748 | dependencies: 749 | depd "~1.1.2" 750 | inherits "2.0.4" 751 | setprototypeof "1.1.1" 752 | statuses ">= 1.5.0 < 2" 753 | toidentifier "1.0.0" 754 | 755 | iconv-lite@0.4.24: 756 | version "0.4.24" 757 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 758 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 759 | dependencies: 760 | safer-buffer ">= 2.1.2 < 3" 761 | 762 | inflight@^1.0.4: 763 | version "1.0.6" 764 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 765 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 766 | dependencies: 767 | once "^1.3.0" 768 | wrappy "1" 769 | 770 | inherits@2, inherits@2.0.4, inherits@^2.0.1: 771 | version "2.0.4" 772 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 773 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 774 | 775 | inherits@2.0.3: 776 | version "2.0.3" 777 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 778 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 779 | 780 | ipaddr.js@1.9.1: 781 | version "1.9.1" 782 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 783 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 784 | 785 | is-binary-path@~2.1.0: 786 | version "2.1.0" 787 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 788 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 789 | dependencies: 790 | binary-extensions "^2.0.0" 791 | 792 | is-core-module@^2.2.0: 793 | version "2.8.0" 794 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 795 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 796 | dependencies: 797 | has "^1.0.3" 798 | 799 | is-extglob@^2.1.1: 800 | version "2.1.1" 801 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 802 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 803 | 804 | is-glob@^4.0.1, is-glob@~4.0.1: 805 | version "4.0.3" 806 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 807 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 808 | dependencies: 809 | is-extglob "^2.1.1" 810 | 811 | is-number@^7.0.0: 812 | version "7.0.0" 813 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 814 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 815 | 816 | jsonwebtoken@^8.5.1: 817 | version "8.5.1" 818 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 819 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== 820 | dependencies: 821 | jws "^3.2.2" 822 | lodash.includes "^4.3.0" 823 | lodash.isboolean "^3.0.3" 824 | lodash.isinteger "^4.0.4" 825 | lodash.isnumber "^3.0.3" 826 | lodash.isplainobject "^4.0.6" 827 | lodash.isstring "^4.0.1" 828 | lodash.once "^4.0.0" 829 | ms "^2.1.1" 830 | semver "^5.6.0" 831 | 832 | jwa@^1.4.1: 833 | version "1.4.1" 834 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 835 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 836 | dependencies: 837 | buffer-equal-constant-time "1.0.1" 838 | ecdsa-sig-formatter "1.0.11" 839 | safe-buffer "^5.0.1" 840 | 841 | jws@^3.2.2: 842 | version "3.2.2" 843 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 844 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 845 | dependencies: 846 | jwa "^1.4.1" 847 | safe-buffer "^5.0.1" 848 | 849 | lodash.includes@^4.3.0: 850 | version "4.3.0" 851 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 852 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 853 | 854 | lodash.isboolean@^3.0.3: 855 | version "3.0.3" 856 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 857 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 858 | 859 | lodash.isinteger@^4.0.4: 860 | version "4.0.4" 861 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 862 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 863 | 864 | lodash.isnumber@^3.0.3: 865 | version "3.0.3" 866 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 867 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 868 | 869 | lodash.isplainobject@^4.0.6: 870 | version "4.0.6" 871 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 872 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 873 | 874 | lodash.isstring@^4.0.1: 875 | version "4.0.1" 876 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 877 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 878 | 879 | lodash.once@^4.0.0: 880 | version "4.1.1" 881 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 882 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 883 | 884 | lodash.sortby@^4.7.0: 885 | version "4.7.0" 886 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 887 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 888 | 889 | loglevel@^1.6.8: 890 | version "1.7.1" 891 | resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" 892 | integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== 893 | 894 | long@^4.0.0: 895 | version "4.0.0" 896 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 897 | integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== 898 | 899 | lru-cache@^6.0.0: 900 | version "6.0.0" 901 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 902 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 903 | dependencies: 904 | yallist "^4.0.0" 905 | 906 | make-error@^1.1.1: 907 | version "1.3.6" 908 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 909 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 910 | 911 | media-typer@0.3.0: 912 | version "0.3.0" 913 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 914 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 915 | 916 | merge-descriptors@1.0.1: 917 | version "1.0.1" 918 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 919 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 920 | 921 | methods@~1.1.2: 922 | version "1.1.2" 923 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 924 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 925 | 926 | mime-db@1.50.0: 927 | version "1.50.0" 928 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" 929 | integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== 930 | 931 | mime-types@~2.1.24: 932 | version "2.1.33" 933 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" 934 | integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== 935 | dependencies: 936 | mime-db "1.50.0" 937 | 938 | mime@1.6.0: 939 | version "1.6.0" 940 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 941 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 942 | 943 | minimatch@^3.0.4: 944 | version "3.0.4" 945 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 946 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 947 | dependencies: 948 | brace-expansion "^1.1.7" 949 | 950 | minimist@^1.2.5: 951 | version "1.2.5" 952 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 953 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 954 | 955 | mkdirp@^1.0.4: 956 | version "1.0.4" 957 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 958 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 959 | 960 | ms@2.0.0: 961 | version "2.0.0" 962 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 963 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 964 | 965 | ms@2.1.1: 966 | version "2.1.1" 967 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 968 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 969 | 970 | ms@^2.1.1: 971 | version "2.1.3" 972 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 973 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 974 | 975 | negotiator@0.6.2: 976 | version "0.6.2" 977 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 978 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 979 | 980 | node-fetch@^2.6.1: 981 | version "2.6.5" 982 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" 983 | integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== 984 | dependencies: 985 | whatwg-url "^5.0.0" 986 | 987 | normalize-path@^3.0.0, normalize-path@~3.0.0: 988 | version "3.0.0" 989 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 990 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 991 | 992 | object-assign@^4: 993 | version "4.1.1" 994 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 995 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 996 | 997 | on-finished@~2.3.0: 998 | version "2.3.0" 999 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1000 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1001 | dependencies: 1002 | ee-first "1.1.1" 1003 | 1004 | once@^1.3.0: 1005 | version "1.4.0" 1006 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1007 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1008 | dependencies: 1009 | wrappy "1" 1010 | 1011 | parseurl@^1.3.3, parseurl@~1.3.3: 1012 | version "1.3.3" 1013 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1014 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1015 | 1016 | path-is-absolute@^1.0.0: 1017 | version "1.0.1" 1018 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1019 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1020 | 1021 | path-parse@^1.0.6: 1022 | version "1.0.7" 1023 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1024 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1025 | 1026 | path-to-regexp@0.1.7: 1027 | version "0.1.7" 1028 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1029 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 1030 | 1031 | picomatch@^2.0.4, picomatch@^2.2.1: 1032 | version "2.3.0" 1033 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1034 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1035 | 1036 | proxy-addr@~2.0.5: 1037 | version "2.0.7" 1038 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1039 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1040 | dependencies: 1041 | forwarded "0.2.0" 1042 | ipaddr.js "1.9.1" 1043 | 1044 | qs@6.7.0: 1045 | version "6.7.0" 1046 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 1047 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 1048 | 1049 | range-parser@~1.2.1: 1050 | version "1.2.1" 1051 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1052 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1053 | 1054 | raw-body@2.4.0: 1055 | version "2.4.0" 1056 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 1057 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 1058 | dependencies: 1059 | bytes "3.1.0" 1060 | http-errors "1.7.2" 1061 | iconv-lite "0.4.24" 1062 | unpipe "1.0.0" 1063 | 1064 | readdirp@~3.6.0: 1065 | version "3.6.0" 1066 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1067 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1068 | dependencies: 1069 | picomatch "^2.2.1" 1070 | 1071 | resolve@^1.0.0: 1072 | version "1.20.0" 1073 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1074 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1075 | dependencies: 1076 | is-core-module "^2.2.0" 1077 | path-parse "^1.0.6" 1078 | 1079 | retry@0.13.1: 1080 | version "0.13.1" 1081 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" 1082 | integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== 1083 | 1084 | rimraf@^2.6.1: 1085 | version "2.7.1" 1086 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 1087 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 1088 | dependencies: 1089 | glob "^7.1.3" 1090 | 1091 | safe-buffer@5.1.2: 1092 | version "5.1.2" 1093 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1094 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1095 | 1096 | safe-buffer@^5.0.1: 1097 | version "5.2.1" 1098 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1099 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1100 | 1101 | "safer-buffer@>= 2.1.2 < 3": 1102 | version "2.1.2" 1103 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1104 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1105 | 1106 | semver@^5.6.0: 1107 | version "5.7.1" 1108 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1109 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1110 | 1111 | send@0.17.1: 1112 | version "0.17.1" 1113 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 1114 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 1115 | dependencies: 1116 | debug "2.6.9" 1117 | depd "~1.1.2" 1118 | destroy "~1.0.4" 1119 | encodeurl "~1.0.2" 1120 | escape-html "~1.0.3" 1121 | etag "~1.8.1" 1122 | fresh "0.5.2" 1123 | http-errors "~1.7.2" 1124 | mime "1.6.0" 1125 | ms "2.1.1" 1126 | on-finished "~2.3.0" 1127 | range-parser "~1.2.1" 1128 | statuses "~1.5.0" 1129 | 1130 | serve-static@1.14.1: 1131 | version "1.14.1" 1132 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 1133 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 1134 | dependencies: 1135 | encodeurl "~1.0.2" 1136 | escape-html "~1.0.3" 1137 | parseurl "~1.3.3" 1138 | send "0.17.1" 1139 | 1140 | setprototypeof@1.1.1: 1141 | version "1.1.1" 1142 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1143 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1144 | 1145 | sha.js@^2.4.11: 1146 | version "2.4.11" 1147 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 1148 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 1149 | dependencies: 1150 | inherits "^2.0.1" 1151 | safe-buffer "^5.0.1" 1152 | 1153 | source-map-support@^0.5.12, source-map-support@^0.5.17: 1154 | version "0.5.20" 1155 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" 1156 | integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== 1157 | dependencies: 1158 | buffer-from "^1.0.0" 1159 | source-map "^0.6.0" 1160 | 1161 | source-map@^0.6.0: 1162 | version "0.6.1" 1163 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1164 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1165 | 1166 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 1167 | version "1.5.0" 1168 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1169 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1170 | 1171 | strip-bom@^3.0.0: 1172 | version "3.0.0" 1173 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1174 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1175 | 1176 | strip-json-comments@^2.0.0: 1177 | version "2.0.1" 1178 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1179 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1180 | 1181 | to-regex-range@^5.0.1: 1182 | version "5.0.1" 1183 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1184 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1185 | dependencies: 1186 | is-number "^7.0.0" 1187 | 1188 | toidentifier@1.0.0: 1189 | version "1.0.0" 1190 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1191 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1192 | 1193 | tr46@~0.0.3: 1194 | version "0.0.3" 1195 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1196 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= 1197 | 1198 | tree-kill@^1.2.2: 1199 | version "1.2.2" 1200 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1201 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1202 | 1203 | ts-node-dev@^1.1.8: 1204 | version "1.1.8" 1205 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.1.8.tgz#95520d8ab9d45fffa854d6668e2f8f9286241066" 1206 | integrity sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg== 1207 | dependencies: 1208 | chokidar "^3.5.1" 1209 | dynamic-dedupe "^0.3.0" 1210 | minimist "^1.2.5" 1211 | mkdirp "^1.0.4" 1212 | resolve "^1.0.0" 1213 | rimraf "^2.6.1" 1214 | source-map-support "^0.5.12" 1215 | tree-kill "^1.2.2" 1216 | ts-node "^9.0.0" 1217 | tsconfig "^7.0.0" 1218 | 1219 | ts-node@^10.4.0: 1220 | version "10.4.0" 1221 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" 1222 | integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== 1223 | dependencies: 1224 | "@cspotcode/source-map-support" "0.7.0" 1225 | "@tsconfig/node10" "^1.0.7" 1226 | "@tsconfig/node12" "^1.0.7" 1227 | "@tsconfig/node14" "^1.0.0" 1228 | "@tsconfig/node16" "^1.0.2" 1229 | acorn "^8.4.1" 1230 | acorn-walk "^8.1.1" 1231 | arg "^4.1.0" 1232 | create-require "^1.1.0" 1233 | diff "^4.0.1" 1234 | make-error "^1.1.1" 1235 | yn "3.1.1" 1236 | 1237 | ts-node@^9.0.0: 1238 | version "9.1.1" 1239 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" 1240 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== 1241 | dependencies: 1242 | arg "^4.1.0" 1243 | create-require "^1.1.0" 1244 | diff "^4.0.1" 1245 | make-error "^1.1.1" 1246 | source-map-support "^0.5.17" 1247 | yn "3.1.1" 1248 | 1249 | tsconfig@^7.0.0: 1250 | version "7.0.0" 1251 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 1252 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 1253 | dependencies: 1254 | "@types/strip-bom" "^3.0.0" 1255 | "@types/strip-json-comments" "0.0.30" 1256 | strip-bom "^3.0.0" 1257 | strip-json-comments "^2.0.0" 1258 | 1259 | tslib@^2.1.0, tslib@~2.3.0: 1260 | version "2.3.1" 1261 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 1262 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 1263 | 1264 | type-is@~1.6.17, type-is@~1.6.18: 1265 | version "1.6.18" 1266 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1267 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1268 | dependencies: 1269 | media-typer "0.3.0" 1270 | mime-types "~2.1.24" 1271 | 1272 | typescript@^4.4.4: 1273 | version "4.4.4" 1274 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" 1275 | integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== 1276 | 1277 | unpipe@1.0.0, unpipe@~1.0.0: 1278 | version "1.0.0" 1279 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1280 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1281 | 1282 | utils-merge@1.0.1: 1283 | version "1.0.1" 1284 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1285 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 1286 | 1287 | uuid@^8.0.0: 1288 | version "8.3.2" 1289 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1290 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1291 | 1292 | value-or-promise@1.0.11: 1293 | version "1.0.11" 1294 | resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" 1295 | integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== 1296 | 1297 | vary@^1, vary@~1.1.2: 1298 | version "1.1.2" 1299 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1300 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1301 | 1302 | webidl-conversions@^3.0.0: 1303 | version "3.0.1" 1304 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1305 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= 1306 | 1307 | whatwg-url@^5.0.0: 1308 | version "5.0.0" 1309 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1310 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= 1311 | dependencies: 1312 | tr46 "~0.0.3" 1313 | webidl-conversions "^3.0.0" 1314 | 1315 | wrappy@1: 1316 | version "1.0.2" 1317 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1318 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1319 | 1320 | xss@^1.0.8: 1321 | version "1.0.10" 1322 | resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.10.tgz#5cd63a9b147a755a14cb0455c7db8866120eb4d2" 1323 | integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw== 1324 | dependencies: 1325 | commander "^2.20.3" 1326 | cssfilter "0.0.10" 1327 | 1328 | xtend@^4.0.0: 1329 | version "4.0.2" 1330 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1331 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1332 | 1333 | yallist@^4.0.0: 1334 | version "4.0.0" 1335 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1336 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1337 | 1338 | yn@3.1.1: 1339 | version "3.1.1" 1340 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1341 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1342 | --------------------------------------------------------------------------------