├── .gitignore ├── packages ├── client │ ├── .vscode │ │ └── extensions.json │ ├── src │ │ ├── types │ │ │ └── index.ts │ │ ├── main.ts │ │ ├── api │ │ │ └── trpc.ts │ │ ├── vite-env.d.ts │ │ ├── components │ │ │ ├── Error.vue │ │ │ ├── Message.vue │ │ │ └── SendMessageForm.vue │ │ ├── style.css │ │ └── App.vue │ ├── vite.config.ts │ ├── tsconfig.node.json │ ├── .gitignore │ ├── index.html │ ├── tsconfig.json │ ├── package.json │ ├── README.md │ └── public │ │ └── vite.svg └── api-server │ ├── .gitignore │ ├── package.json │ ├── index.ts │ ├── router │ └── app.ts │ └── tsconfig.json ├── package.json ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/client/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export interface Form { 2 | user: string; 3 | message: string; 4 | } 5 | -------------------------------------------------------------------------------- /packages/client/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import vue from '@vitejs/plugin-vue'; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }); 8 | -------------------------------------------------------------------------------- /packages/client/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import { VueQueryPlugin } from 'vue-query'; 3 | import './style.css'; 4 | import App from './App.vue'; 5 | 6 | createApp(App).use(VueQueryPlugin).mount('#app'); 7 | -------------------------------------------------------------------------------- /packages/client/src/api/trpc.ts: -------------------------------------------------------------------------------- 1 | import { createTRPCClient } from '@trpc/client'; 2 | import { AppRouter } from 'api-server/router/app'; 3 | 4 | export const trpc = createTRPCClient({ 5 | url: 'http://localhost:8080/trpc', 6 | }); 7 | -------------------------------------------------------------------------------- /packages/client/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue'; 5 | const component: DefineComponent<{}, {}, any>; 6 | export default component; 7 | } 8 | -------------------------------------------------------------------------------- /packages/client/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-server/.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store* 3 | Icon? 4 | ._* 5 | 6 | # Windows 7 | Thumbs.db 8 | ehthumbs.db 9 | Desktop.ini 10 | 11 | # Linux 12 | .directory 13 | *~ 14 | 15 | 16 | # npm 17 | node_modules 18 | package-lock.json 19 | *.log 20 | *.gz 21 | 22 | 23 | # Coveralls 24 | coverage 25 | 26 | # Benchmarking 27 | benchmarks/graphs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "packages", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "private": true, 7 | "scripts": { 8 | "start": "concurrently \"wsrun --parallel start\"" 9 | }, 10 | "workspaces": [ 11 | "packages/*" 12 | ], 13 | "devDependencies": { 14 | "concurrently": "^5.2.0", 15 | "wsrun": "^5.2.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/client/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/client/src/components/Error.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /packages/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vue 3 + vue-query + tRPC example 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/client/src/components/Message.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /packages/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "lib": ["ESNext", "DOM"], 14 | "skipLibCheck": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [{ "path": "./tsconfig.node.json" }] 18 | } 19 | -------------------------------------------------------------------------------- /packages/api-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "api-server", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "scripts": { 6 | "start": "ts-node-dev index.ts" 7 | }, 8 | "main": "index.ts", 9 | "dependencies": { 10 | "@trpc/server": "^9.26.1", 11 | "@types/uuid": "^8.3.4", 12 | "cors": "^2.8.5", 13 | "express": "^4.17.1", 14 | "uuid": "^8.3.2", 15 | "zod": "^3.17.3" 16 | }, 17 | "devDependencies": { 18 | "@types/cors": "^2.8.12", 19 | "@types/express": "^4.17.13", 20 | "ts-node": "^10.4.0", 21 | "ts-node-dev": "^2.0.0", 22 | "typescript": "^4.4.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/api-server/index.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import * as trpcExpress from '@trpc/server/adapters/express'; 3 | import { appRouter } from './router/app'; 4 | import cors from 'cors'; 5 | 6 | const main = async () => { 7 | const app = express(); 8 | app.use(cors()); 9 | const port = 8080; 10 | 11 | app.use( 12 | '/trpc', 13 | trpcExpress.createExpressMiddleware({ 14 | router: appRouter, 15 | createContext: () => null, 16 | }) 17 | ); 18 | 19 | app.listen(port, () => { 20 | console.log(`api-server listening at http://localhost:${port}`); 21 | }); 22 | }; 23 | 24 | main(); 25 | -------------------------------------------------------------------------------- /packages/client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "start": "vite --port 3000", 8 | "build": "vue-tsc --noEmit && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@trpc/client": "^9.26.1", 13 | "api-server": "1.0.0", 14 | "vue": "^3.2.37", 15 | "vue-query": "^1.25.2", 16 | "zod": "^3.17.3" 17 | }, 18 | "devDependencies": { 19 | "@vitejs/plugin-vue": "^3.0.0", 20 | "sass": "^1.53.0", 21 | "typescript": "^4.6.4", 22 | "vite": "^3.0.0", 23 | "vue-tsc": "^0.38.4" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/client/src/components/SendMessageForm.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 21 | 22 | 28 | -------------------------------------------------------------------------------- /packages/api-server/router/app.ts: -------------------------------------------------------------------------------- 1 | import * as trpc from '@trpc/server'; 2 | import { z } from 'zod'; 3 | import { v4 as uuidv4 } from 'uuid'; 4 | 5 | export interface ChatMessage { 6 | id: string; 7 | user: string; 8 | message: string; 9 | } 10 | 11 | const messages: ChatMessage[] = [ 12 | { id: uuidv4(), user: 'User1', message: 'This is my the first message!' }, 13 | { id: uuidv4(), user: 'User2', message: 'Hello there 🎉' }, 14 | ]; 15 | 16 | export const appRouter = trpc 17 | .router() 18 | .query('greetings', { 19 | resolve() { 20 | return { 21 | message: 'Greetings from /trpc/greetings :)', 22 | }; 23 | }, 24 | }) 25 | .query('getMessages', { 26 | input: z.number().default(10), 27 | resolve({ input }) { 28 | return messages.slice(-input); 29 | }, 30 | }) 31 | .mutation('addMessage', { 32 | input: z.object({ 33 | user: z.string(), 34 | message: z.string(), 35 | }), 36 | resolve({ input }) { 37 | const newMessage: ChatMessage = { 38 | id: uuidv4(), 39 | ...input, 40 | }; 41 | messages.push(newMessage); 42 | return input; 43 | }, 44 | }); 45 | 46 | export type AppRouter = typeof appRouter; 47 | -------------------------------------------------------------------------------- /packages/client/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + TypeScript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` 65 | 66 | 77 | -------------------------------------------------------------------------------- /packages/api-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs" /* Specify what module code is generated. */, 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "resolveJsonModule": true, /* Enable importing .json files. */ 39 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 40 | 41 | /* JavaScript Support */ 42 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 43 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 44 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 45 | 46 | /* Emit */ 47 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 48 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 49 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 50 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 51 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 52 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 53 | // "removeComments": true, /* Disable emitting comments. */ 54 | // "noEmit": true, /* Disable emitting files from a compilation. */ 55 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 56 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 57 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 58 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 59 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 60 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 61 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 62 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 63 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 64 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 65 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 66 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 67 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 68 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 69 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 70 | 71 | /* Interop Constraints */ 72 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 73 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 74 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 75 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 76 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 77 | 78 | /* Type Checking */ 79 | "strict": true /* Enable all strict type-checking options. */, 80 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 81 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 82 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 83 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 84 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 85 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 86 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 87 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 88 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 89 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 90 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 91 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 92 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 93 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 94 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 95 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 96 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 97 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 98 | 99 | /* Completeness */ 100 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 101 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Original article writen [here](https://dev.to/alousilva/vue3-typescript-express-trpc-setup-example-2mlh). 2 | 3 | ## Table of contents 4 | - [Introduction](#introduction) 5 | - [Setup](#setup) 6 | - [Project folder structure](#project-folder-structure) 7 | - [Server script](#server-script) 8 | - [Router](#router) 9 | - [Vue Query initialization](#vue-query-initialization) 10 | - [tRPC Client](#trpc-client) 11 | - [App component](#app-component) 12 | - [App and examples](#app-and-examples) 13 | - [More useful links](#more-useful-links) 14 | 15 | ## Introduction 16 | Recently I was googling about trends in web dev to update myself on modern tools/libs/frameworks and I stumbled upon tRPC. 17 | 18 | tRPC stands for **TypeScript remote procedure call**, and as you can read on its homepage, its purpose is to easily have End-to-end typesafe APIs. Essentially allows you to expose server functions that are callable from your client, your frontend, using all the goodies from TS. 19 | 20 | Official [tRPC website](https://trpc.io/), a nice [collection of examples](https://trpc.io/docs/awesome-trpc) and its [docs](https://trpc.io/docs). 21 | 22 | tRPC is another way of ensuring a correct communication between client and server (via api calls). You might be already thinking about GraphQL to do so, but with tRPC you don't need to learn a new language, nor it is a schema. Whereas GraphQL is a schema and a language, that you use to detail the "shape" of the functions you can call from the server. 23 | 24 | **The experiment**: Why not give it a shot using the latest **Vue** version, **Vite**, **TypeScript** and trying to plug in **tRPC** and see how it goes? 25 | I tried to search for Vue based projects using tRPC and the vast majority of my hits were about React/Next.js based ones... So I decided to just start with a React based one and then experiment from that point on. 26 | 27 | _**Notes**:_ 28 | _- I will link all the relevant resources throughout the article_ 29 | _- This is just an experimental idea, to plug in several modern packages and create a very simplistic project_ 30 | _- This article is more towards people that have already some experience in web dev, however I'll try to provide some additional explanations_ 31 | 32 | ## Setup 33 | As a starting point I watched [Jack Herrington](https://twitter.com/jherr)'s great video on "[tRPC: Smart and Easy APIs](https://youtu.be/Lam0cYOEst8)", followed his steps and wondered how hard would it be to use Vue 3 and [Vue Query](https://github.com/DamianOsipiuk/vue-query), instead of React and React Query, respectively. 34 | 35 | The next section shows how the final folder structure looks like, based on Jack's steps and after modifying it to use Vue. 36 | 37 | ### Project folder structure 38 | folder structure 39 | 40 | It's a monorepo that uses yarn workspaces. 41 | The server project is in the **api-server** folder and the frontend project is in the **client** folder. 42 | 43 | Both server and client start up by running `yarn start` on the root dir, as you can see in the package.json in the root folder: 44 | `"start": "concurrently \"wsrun --parallel start\""` 45 | 46 | ### Server script 47 | This is the server code, where we create our express app and tell it to use cors (to allow the calls from port 3000 to 8080) and also to use the trpcExpress middleware and register the router. 48 | 49 | ```js 50 | // packages\api-server\index.ts 51 | import express from 'express'; 52 | import * as trpcExpress from '@trpc/server/adapters/express'; 53 | import { appRouter } from './router/app'; 54 | import cors from 'cors'; 55 | 56 | const main = async () => { 57 | const app = express(); 58 | app.use(cors()); 59 | const port = 8080; 60 | 61 | app.use( 62 | '/trpc', 63 | trpcExpress.createExpressMiddleware({ 64 | router: appRouter, 65 | createContext: () => null, 66 | }) 67 | ); 68 | 69 | app.listen(port, () => { 70 | console.log(`api-server listening at http://localhost:${port}`); 71 | }); 72 | }; 73 | 74 | main(); 75 | ``` 76 | 77 | ### Router 78 | The following code shows the router, which contains the access points: 79 | - 2 query endpoints (similar to a rest GET endpoint): 80 | - **greetings** 81 | - **getMessages** 82 | - 1 mutation endpoint (similar to a rest POST endpoint): 83 | - **addMessage** 84 | 85 | _**Note**: aside from adding data, a mutation can also update or delete data._ 86 | 87 | You can also see that I'm using [zod](https://github.com/colinhacks/zod), which is a "TypeScript-first schema declaration and validation library". 88 | 89 | This package is going to be used to validate my inputs for queries/mutations (If needed, those validations can even throw validation messages). 90 | ```js 91 | z.string().uuid({ message: "Invalid UUID" }); 92 | ``` 93 | _**Note**: And you can also use zod to infer types from zod objects, storing them as types and reusing them anywhere_: 94 | 95 | ```js 96 | // packages\api-server\router\app.ts 97 | import * as trpc from '@trpc/server'; 98 | import { z } from 'zod'; 99 | import { v4 as uuidv4 } from 'uuid'; 100 | 101 | export interface ChatMessage { 102 | id: string; 103 | user: string; 104 | message: string; 105 | } 106 | 107 | const messages: ChatMessage[] = [ 108 | { id: uuidv4(), user: 'User1', message: 'This is my the first message!' }, 109 | { id: uuidv4(), user: 'User2', message: 'Hello there 🎉' }, 110 | ]; 111 | 112 | export const appRouter = trpc 113 | .router() 114 | .query('greetings', { 115 | resolve() { 116 | return { 117 | message: 'Greetings from /trpc/greetings:)', 118 | }; 119 | }, 120 | }) 121 | .query('getMessages', { 122 | input: z.number().default(10), 123 | resolve({ input }) { 124 | return messages.slice(-input); 125 | }, 126 | }) 127 | .mutation('addMessage', { 128 | input: z.object({ 129 | user: z.string(), 130 | message: z.string(), 131 | }), 132 | resolve({ input }) { 133 | const newMessage: ChatMessage = { 134 | id: uuidv4(), 135 | ...input, 136 | }; 137 | messages.push(newMessage); 138 | return input; 139 | }, 140 | }); 141 | 142 | export type AppRouter = typeof appRouter; 143 | ``` 144 | The **messages** will be only stored in memory in this case, because I'm not using a DB to do that. (and makes it quicker to demo something). 145 | It is also possible to create different routers which will contain different queries/mutations and then you can merge the routers to easily access a particular query from a router, on the client. 146 | 147 | ### Vue Query initialization 148 | This is how you initialize vue-query through VueQueryPlugin, in the main.ts file, which then gets used by the Vue application instance: 149 | 150 | ```js 151 | // packages\client\src\main.ts 152 | import { createApp } from 'vue'; 153 | import { VueQueryPlugin } from 'vue-query'; 154 | import './style.css'; 155 | import App from './App.vue'; 156 | 157 | createApp(App).use(VueQueryPlugin).mount('#app'); 158 | ``` 159 | 160 | Why using Vue Query in the first place, you might ask? 161 | _"I could have done all the api calls using fetch/axios, right?"_ 162 | 163 | True, however, this package offers neat features out of the box, such as caching, retry, refetch, infinite query (for infinite scroll), etc. Here are some challenges that might arise in your project with the increase of its complexity (Taken from the [official docs](https://vue-query.vercel.app/#/)): 164 | 165 | - Caching... (possibly the hardest thing to do in programming) 166 | - Deduping multiple requests for the same data into a single request 167 | - Updating "out of date" data in the background 168 | - Knowing when data is "out of date" 169 | - Reflecting updates to data as quickly as possible 170 | - Performance optimizations like pagination and lazy loading data 171 | - Managing memory and garbage collection of server state 172 | - Memoizing query results with structural sharing 173 | 174 | And the hooks offer a set of standard props/functions for you to use in your app. Example of the useQuery hook: 175 | props from hooks 176 | 177 | _**Note**: The data that you need to access is in the, conviniently named, **data** prop._ 178 | 179 | ### tRPC client 180 | Here we are stating what is the url that we need to use from our tRPC client calls and also the types that we can use, coming from AppRouter. (Later on we will import this trpc const in the App.vue component): 181 | 182 | ```js 183 | // packages\client\src\api\trpc.ts 184 | import { createTRPCClient } from '@trpc/client'; 185 | import { AppRouter } from 'api-server/router/app'; 186 | 187 | export const trpc = createTRPCClient({ 188 | url: 'http://localhost:8080/trpc', 189 | }); 190 | ``` 191 | 192 | ### App component 193 | For simplicity sake, this is the component where I decided to execute the tRPC client calls. 194 | _**Note**: I'm using Vue's script setup and having fun with it so far :)_ 195 | 196 | ```vue 197 | 219 | 220 | 261 | ``` 262 | 263 | ## App and examples 264 | The best way to interact with this project is, obviously, by running it locally and see what you can do with it. But here are some examples: 265 | 266 | This is how the client looks like (yes, I know, the UI looks fabulous!). The Vue.js devtools also displays information about the queries: 267 | 268 | App UI and devtools 269 | 270 | Data coming from /trpc/greetings: 271 | 272 | trpc_greetings 273 | 274 | Data coming from /trpc/getMessages: 275 | 276 | trpc_getMessages 277 | 278 | Examples of changing server side functions and observing TS safety checks on the client: 279 | ![ts safety 1](https://user-images.githubusercontent.com/21337561/180063525-6d699d73-68f7-43b4-89c4-b447a456922a.gif) 280 | ![ts safety 2](https://user-images.githubusercontent.com/21337561/180063553-8fc41339-2ecb-426d-b1e8-9a2222adc616.gif) 281 | 282 | 283 | You can also rename your server functions from the client (for some reason I was not able to rename the symbol from the server): 284 | ![Rename trpc function](https://user-images.githubusercontent.com/21337561/180063603-74f3e3b8-b32c-4b85-8af0-3392577782af.gif) 285 | 286 | Example of blocking a query request and then calling the refetch function and its retries: 287 | ![Refetch example](https://user-images.githubusercontent.com/21337561/180063631-a5bab373-7bee-4dbb-a5ba-a726b0683d3f.gif) 288 | 289 | Example of blocking a mutation request and then calling the reset function. This resets the error state: 290 | ![Reset error](https://user-images.githubusercontent.com/21337561/180063653-db5dfd81-935f-4aee-bbc5-e9c6b6e476a5.gif) 291 | 292 | ## More useful links 293 | - My repo: https://github.com/alousilva/express-vue-trpc 294 | - Alex, the creator of tRPC: https://twitter.com/alexdotjs 295 | - Theo - ping․gg, interview with Alex: https://www.youtube.com/watch?v=Mm3Z5c1Linw (btw, Theo has a ton of interesting contents on his youtube channel) 296 | - Learn with Jason, interview with Alex: https://www.youtube.com/watch?v=GryES84SSEU 297 | 298 | I might create another repo to explore a more realistic project using Nuxt, tRPC, Vue Query, where I connect to a database and use the ORM Prisma, similarly to what Alex did in this pretty neat starter repo: https://github.com/trpc/examples-next-prisma-starter 299 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/parser@^7.16.4": 6 | version "7.18.8" 7 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf" 8 | integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== 9 | 10 | "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.9.0": 11 | version "7.18.9" 12 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" 13 | integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== 14 | dependencies: 15 | regenerator-runtime "^0.13.4" 16 | 17 | "@cspotcode/source-map-support@^0.8.0": 18 | version "0.8.1" 19 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" 20 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 21 | dependencies: 22 | "@jridgewell/trace-mapping" "0.3.9" 23 | 24 | "@jest/types@^24.9.0": 25 | version "24.9.0" 26 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" 27 | integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== 28 | dependencies: 29 | "@types/istanbul-lib-coverage" "^2.0.0" 30 | "@types/istanbul-reports" "^1.1.1" 31 | "@types/yargs" "^13.0.0" 32 | 33 | "@jridgewell/resolve-uri@^3.0.3": 34 | version "3.1.0" 35 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 36 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 37 | 38 | "@jridgewell/sourcemap-codec@^1.4.10": 39 | version "1.4.14" 40 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 41 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 42 | 43 | "@jridgewell/trace-mapping@0.3.9": 44 | version "0.3.9" 45 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" 46 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 47 | dependencies: 48 | "@jridgewell/resolve-uri" "^3.0.3" 49 | "@jridgewell/sourcemap-codec" "^1.4.10" 50 | 51 | "@trpc/client@^9.26.1": 52 | version "9.26.2" 53 | resolved "https://registry.yarnpkg.com/@trpc/client/-/client-9.26.2.tgz#82f57bfe96388a8028b10ebb9aad4eb58ec90b71" 54 | integrity sha512-R7eaxEtcK1C6PwxlGZCmMEiGGfn1BUU/hnulTpHVw/Mkd/3EqQqvP3Gs7pAYnJAZ44rjNF3Hepw5q2nP2Ctnhg== 55 | dependencies: 56 | "@babel/runtime" "^7.9.0" 57 | 58 | "@trpc/server@^9.26.1": 59 | version "9.26.1" 60 | resolved "https://registry.yarnpkg.com/@trpc/server/-/server-9.26.1.tgz#8bae65c58aed74927b348f2297ce1a7c470b62db" 61 | integrity sha512-Q2Hi9rq3o6Zb0+BcuUTw/PmvO10hAQYWmD5ZPQH3y+CIm1DsTJaL4YoKq5tHGOv3u9LHIQPhSPCDjY90s+g3tQ== 62 | 63 | "@tsconfig/node10@^1.0.7": 64 | version "1.0.9" 65 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" 66 | integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== 67 | 68 | "@tsconfig/node12@^1.0.7": 69 | version "1.0.11" 70 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" 71 | integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== 72 | 73 | "@tsconfig/node14@^1.0.0": 74 | version "1.0.3" 75 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" 76 | integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== 77 | 78 | "@tsconfig/node16@^1.0.2": 79 | version "1.0.3" 80 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" 81 | integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== 82 | 83 | "@types/body-parser@*": 84 | version "1.19.2" 85 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" 86 | integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== 87 | dependencies: 88 | "@types/connect" "*" 89 | "@types/node" "*" 90 | 91 | "@types/connect@*": 92 | version "3.4.35" 93 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" 94 | integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== 95 | dependencies: 96 | "@types/node" "*" 97 | 98 | "@types/cors@^2.8.12": 99 | version "2.8.12" 100 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" 101 | integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== 102 | 103 | "@types/express-serve-static-core@^4.17.18": 104 | version "4.17.29" 105 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" 106 | integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== 107 | dependencies: 108 | "@types/node" "*" 109 | "@types/qs" "*" 110 | "@types/range-parser" "*" 111 | 112 | "@types/express@^4.17.13": 113 | version "4.17.13" 114 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" 115 | integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== 116 | dependencies: 117 | "@types/body-parser" "*" 118 | "@types/express-serve-static-core" "^4.17.18" 119 | "@types/qs" "*" 120 | "@types/serve-static" "*" 121 | 122 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": 123 | version "2.0.4" 124 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" 125 | integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== 126 | 127 | "@types/istanbul-lib-report@*": 128 | version "3.0.0" 129 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" 130 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 131 | dependencies: 132 | "@types/istanbul-lib-coverage" "*" 133 | 134 | "@types/istanbul-reports@^1.1.1": 135 | version "1.1.2" 136 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" 137 | integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== 138 | dependencies: 139 | "@types/istanbul-lib-coverage" "*" 140 | "@types/istanbul-lib-report" "*" 141 | 142 | "@types/mime@^1": 143 | version "1.3.2" 144 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" 145 | integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== 146 | 147 | "@types/node@*": 148 | version "18.0.5" 149 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.5.tgz#96be8113b014e9e7f0c3609c4a25afadd85ff659" 150 | integrity sha512-En7tneq+j0qAiVwysBD79y86MT3ModuoIJbe7JXp+sb5UAjInSShmK3nXXMioBzfF7rXC12hv12d4IyCVwN4dA== 151 | 152 | "@types/qs@*": 153 | version "6.9.7" 154 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" 155 | integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== 156 | 157 | "@types/range-parser@*": 158 | version "1.2.4" 159 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" 160 | integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== 161 | 162 | "@types/serve-static@*": 163 | version "1.13.10" 164 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" 165 | integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== 166 | dependencies: 167 | "@types/mime" "^1" 168 | "@types/node" "*" 169 | 170 | "@types/strip-bom@^3.0.0": 171 | version "3.0.0" 172 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 173 | integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== 174 | 175 | "@types/strip-json-comments@0.0.30": 176 | version "0.0.30" 177 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 178 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 179 | 180 | "@types/uuid@^8.3.4": 181 | version "8.3.4" 182 | resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" 183 | integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== 184 | 185 | "@types/yargs-parser@*": 186 | version "21.0.0" 187 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" 188 | integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== 189 | 190 | "@types/yargs@^13.0.0": 191 | version "13.0.12" 192 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" 193 | integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== 194 | dependencies: 195 | "@types/yargs-parser" "*" 196 | 197 | "@vitejs/plugin-vue@^3.0.0": 198 | version "3.0.0" 199 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.0.0.tgz#7081e2b3fbe04e291bb85107b9fb57a1fa5e6aeb" 200 | integrity sha512-yWP34ArFh/jAeNUDkkLz/kVRLjf5ppJiq4L36f64Cp6dIrMQeYZGDP9xxdemlXfZR9ylN9JgHUl3GzfqOtgYDg== 201 | 202 | "@volar/code-gen@0.38.8": 203 | version "0.38.8" 204 | resolved "https://registry.yarnpkg.com/@volar/code-gen/-/code-gen-0.38.8.tgz#ea50a742983f9fd8c3fc23d61497387c520776c9" 205 | integrity sha512-e37jd+JwNjBpWiBblsdmYMbJ9bELiuj2yZrsXv1IVKpYNSfvS92ZiYjJqVXHUwpzNeZjFG0RCd5nTpbiebwANw== 206 | dependencies: 207 | "@volar/source-map" "0.38.8" 208 | 209 | "@volar/source-map@0.38.8": 210 | version "0.38.8" 211 | resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-0.38.8.tgz#13b2fc9234f78fada3c78fd235f446cfaaa7d0b8" 212 | integrity sha512-JZvpjW/z2U3wq5wvwcTounPrRAZuSl4hlVKr3y7y72bKr++6W05OnX7fl/ddw39G/wLHdI2ag5+4JWsSd/EYhg== 213 | 214 | "@volar/vue-code-gen@0.38.8": 215 | version "0.38.8" 216 | resolved "https://registry.yarnpkg.com/@volar/vue-code-gen/-/vue-code-gen-0.38.8.tgz#e7b719194ef40d76093191cf4bb83c96134fed32" 217 | integrity sha512-iQVNmIu1TqnqTko+l9yeylmZipZ8zNH20XZAK9+48hkv2fEQnnJn5AI2W9Zb2M5DkGMpbYiJk9Fq1vm51YY1+g== 218 | dependencies: 219 | "@volar/code-gen" "0.38.8" 220 | "@volar/source-map" "0.38.8" 221 | "@vue/compiler-core" "^3.2.37" 222 | "@vue/compiler-dom" "^3.2.37" 223 | "@vue/shared" "^3.2.37" 224 | 225 | "@volar/vue-typescript@0.38.8": 226 | version "0.38.8" 227 | resolved "https://registry.yarnpkg.com/@volar/vue-typescript/-/vue-typescript-0.38.8.tgz#5412a8b38d404a72aa37902ad87ccd3dc0c7f1f1" 228 | integrity sha512-7WeFt5piz9I6FKw2cQQCWm+75MxS6xCOGm300iu+hJORlroN2dwWbwj97pQnDGbjQbftCRplUYf0GqmhcOsanQ== 229 | dependencies: 230 | "@volar/code-gen" "0.38.8" 231 | "@volar/source-map" "0.38.8" 232 | "@volar/vue-code-gen" "0.38.8" 233 | "@vue/compiler-sfc" "^3.2.37" 234 | "@vue/reactivity" "^3.2.37" 235 | 236 | "@vue/compiler-core@3.2.37", "@vue/compiler-core@^3.2.37": 237 | version "3.2.37" 238 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a" 239 | integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg== 240 | dependencies: 241 | "@babel/parser" "^7.16.4" 242 | "@vue/shared" "3.2.37" 243 | estree-walker "^2.0.2" 244 | source-map "^0.6.1" 245 | 246 | "@vue/compiler-dom@3.2.37", "@vue/compiler-dom@^3.2.37": 247 | version "3.2.37" 248 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5" 249 | integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ== 250 | dependencies: 251 | "@vue/compiler-core" "3.2.37" 252 | "@vue/shared" "3.2.37" 253 | 254 | "@vue/compiler-sfc@3.2.37", "@vue/compiler-sfc@^3.2.37": 255 | version "3.2.37" 256 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" 257 | integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== 258 | dependencies: 259 | "@babel/parser" "^7.16.4" 260 | "@vue/compiler-core" "3.2.37" 261 | "@vue/compiler-dom" "3.2.37" 262 | "@vue/compiler-ssr" "3.2.37" 263 | "@vue/reactivity-transform" "3.2.37" 264 | "@vue/shared" "3.2.37" 265 | estree-walker "^2.0.2" 266 | magic-string "^0.25.7" 267 | postcss "^8.1.10" 268 | source-map "^0.6.1" 269 | 270 | "@vue/compiler-ssr@3.2.37": 271 | version "3.2.37" 272 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff" 273 | integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw== 274 | dependencies: 275 | "@vue/compiler-dom" "3.2.37" 276 | "@vue/shared" "3.2.37" 277 | 278 | "@vue/devtools-api@^6.1.4": 279 | version "6.2.1" 280 | resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092" 281 | integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ== 282 | 283 | "@vue/reactivity-transform@3.2.37": 284 | version "3.2.37" 285 | resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca" 286 | integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg== 287 | dependencies: 288 | "@babel/parser" "^7.16.4" 289 | "@vue/compiler-core" "3.2.37" 290 | "@vue/shared" "3.2.37" 291 | estree-walker "^2.0.2" 292 | magic-string "^0.25.7" 293 | 294 | "@vue/reactivity@3.2.37", "@vue/reactivity@^3.2.37": 295 | version "3.2.37" 296 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848" 297 | integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A== 298 | dependencies: 299 | "@vue/shared" "3.2.37" 300 | 301 | "@vue/runtime-core@3.2.37": 302 | version "3.2.37" 303 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz#7ba7c54bb56e5d70edfc2f05766e1ca8519966e3" 304 | integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ== 305 | dependencies: 306 | "@vue/reactivity" "3.2.37" 307 | "@vue/shared" "3.2.37" 308 | 309 | "@vue/runtime-dom@3.2.37": 310 | version "3.2.37" 311 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz#002bdc8228fa63949317756fb1e92cdd3f9f4bbd" 312 | integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw== 313 | dependencies: 314 | "@vue/runtime-core" "3.2.37" 315 | "@vue/shared" "3.2.37" 316 | csstype "^2.6.8" 317 | 318 | "@vue/server-renderer@3.2.37": 319 | version "3.2.37" 320 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz#840a29c8dcc29bddd9b5f5ffa22b95c0e72afdfc" 321 | integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA== 322 | dependencies: 323 | "@vue/compiler-ssr" "3.2.37" 324 | "@vue/shared" "3.2.37" 325 | 326 | "@vue/shared@3.2.37", "@vue/shared@^3.2.37": 327 | version "3.2.37" 328 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" 329 | integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== 330 | 331 | accepts@~1.3.8: 332 | version "1.3.8" 333 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 334 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 335 | dependencies: 336 | mime-types "~2.1.34" 337 | negotiator "0.6.3" 338 | 339 | acorn-walk@^8.1.1: 340 | version "8.2.0" 341 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 342 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 343 | 344 | acorn@^8.4.1: 345 | version "8.7.1" 346 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" 347 | integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== 348 | 349 | ansi-regex@^4.1.0: 350 | version "4.1.1" 351 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" 352 | integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== 353 | 354 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 355 | version "3.2.1" 356 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 357 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 358 | dependencies: 359 | color-convert "^1.9.0" 360 | 361 | anymatch@~3.1.2: 362 | version "3.1.2" 363 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 364 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 365 | dependencies: 366 | normalize-path "^3.0.0" 367 | picomatch "^2.0.4" 368 | 369 | arg@^4.1.0: 370 | version "4.1.3" 371 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 372 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 373 | 374 | array-flatten@1.1.1: 375 | version "1.1.1" 376 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 377 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 378 | 379 | balanced-match@^1.0.0: 380 | version "1.0.2" 381 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 382 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 383 | 384 | big-integer@^1.6.16: 385 | version "1.6.51" 386 | resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" 387 | integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== 388 | 389 | binary-extensions@^2.0.0: 390 | version "2.2.0" 391 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 392 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 393 | 394 | bluebird@^3.5.1: 395 | version "3.7.2" 396 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 397 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 398 | 399 | body-parser@1.20.0: 400 | version "1.20.0" 401 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" 402 | integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== 403 | dependencies: 404 | bytes "3.1.2" 405 | content-type "~1.0.4" 406 | debug "2.6.9" 407 | depd "2.0.0" 408 | destroy "1.2.0" 409 | http-errors "2.0.0" 410 | iconv-lite "0.4.24" 411 | on-finished "2.4.1" 412 | qs "6.10.3" 413 | raw-body "2.5.1" 414 | type-is "~1.6.18" 415 | unpipe "1.0.0" 416 | 417 | brace-expansion@^1.1.7: 418 | version "1.1.11" 419 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 420 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 421 | dependencies: 422 | balanced-match "^1.0.0" 423 | concat-map "0.0.1" 424 | 425 | braces@~3.0.2: 426 | version "3.0.2" 427 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 428 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 429 | dependencies: 430 | fill-range "^7.0.1" 431 | 432 | broadcast-channel@^3.4.1: 433 | version "3.7.0" 434 | resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz#2dfa5c7b4289547ac3f6705f9c00af8723889937" 435 | integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg== 436 | dependencies: 437 | "@babel/runtime" "^7.7.2" 438 | detect-node "^2.1.0" 439 | js-sha3 "0.8.0" 440 | microseconds "0.2.0" 441 | nano-time "1.0.0" 442 | oblivious-set "1.0.0" 443 | rimraf "3.0.2" 444 | unload "2.2.0" 445 | 446 | buffer-from@^1.0.0: 447 | version "1.1.2" 448 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 449 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 450 | 451 | bytes@3.1.2: 452 | version "3.1.2" 453 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 454 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 455 | 456 | call-bind@^1.0.0: 457 | version "1.0.2" 458 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 459 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 460 | dependencies: 461 | function-bind "^1.1.1" 462 | get-intrinsic "^1.0.2" 463 | 464 | camelcase@^5.0.0: 465 | version "5.3.1" 466 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 467 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 468 | 469 | chalk@^2.3.0, chalk@^2.4.2: 470 | version "2.4.2" 471 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 472 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 473 | dependencies: 474 | ansi-styles "^3.2.1" 475 | escape-string-regexp "^1.0.5" 476 | supports-color "^5.3.0" 477 | 478 | "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: 479 | version "3.5.3" 480 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 481 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 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 | cliui@^5.0.0: 494 | version "5.0.0" 495 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 496 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 497 | dependencies: 498 | string-width "^3.1.0" 499 | strip-ansi "^5.2.0" 500 | wrap-ansi "^5.1.0" 501 | 502 | color-convert@^1.9.0: 503 | version "1.9.3" 504 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 505 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 506 | dependencies: 507 | color-name "1.1.3" 508 | 509 | color-name@1.1.3: 510 | version "1.1.3" 511 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 512 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 513 | 514 | concat-map@0.0.1: 515 | version "0.0.1" 516 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 517 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 518 | 519 | concurrently@^5.2.0: 520 | version "5.3.0" 521 | resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-5.3.0.tgz#7500de6410d043c912b2da27de3202cb489b1e7b" 522 | integrity sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ== 523 | dependencies: 524 | chalk "^2.4.2" 525 | date-fns "^2.0.1" 526 | lodash "^4.17.15" 527 | read-pkg "^4.0.1" 528 | rxjs "^6.5.2" 529 | spawn-command "^0.0.2-1" 530 | supports-color "^6.1.0" 531 | tree-kill "^1.2.2" 532 | yargs "^13.3.0" 533 | 534 | content-disposition@0.5.4: 535 | version "0.5.4" 536 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 537 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 538 | dependencies: 539 | safe-buffer "5.2.1" 540 | 541 | content-type@~1.0.4: 542 | version "1.0.4" 543 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 544 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 545 | 546 | cookie-signature@1.0.6: 547 | version "1.0.6" 548 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 549 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 550 | 551 | cookie@0.5.0: 552 | version "0.5.0" 553 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 554 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 555 | 556 | cors@^2.8.5: 557 | version "2.8.5" 558 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 559 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 560 | dependencies: 561 | object-assign "^4" 562 | vary "^1" 563 | 564 | create-require@^1.1.0: 565 | version "1.1.1" 566 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 567 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 568 | 569 | cross-spawn@^6.0.0: 570 | version "6.0.5" 571 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 572 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 573 | dependencies: 574 | nice-try "^1.0.4" 575 | path-key "^2.0.1" 576 | semver "^5.5.0" 577 | shebang-command "^1.2.0" 578 | which "^1.2.9" 579 | 580 | csstype@^2.6.8: 581 | version "2.6.20" 582 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" 583 | integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== 584 | 585 | date-fns@^2.0.1: 586 | version "2.28.0" 587 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" 588 | integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== 589 | 590 | debug@2.6.9: 591 | version "2.6.9" 592 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 593 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 594 | dependencies: 595 | ms "2.0.0" 596 | 597 | decamelize@^1.2.0: 598 | version "1.2.0" 599 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 600 | integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== 601 | 602 | depd@2.0.0: 603 | version "2.0.0" 604 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 605 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 606 | 607 | destroy@1.2.0: 608 | version "1.2.0" 609 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 610 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 611 | 612 | detect-node@^2.0.4, detect-node@^2.1.0: 613 | version "2.1.0" 614 | resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" 615 | integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== 616 | 617 | diff@^4.0.1: 618 | version "4.0.2" 619 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 620 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 621 | 622 | dynamic-dedupe@^0.3.0: 623 | version "0.3.0" 624 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 625 | integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== 626 | dependencies: 627 | xtend "^4.0.0" 628 | 629 | ee-first@1.1.1: 630 | version "1.1.1" 631 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 632 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 633 | 634 | emoji-regex@^7.0.1: 635 | version "7.0.3" 636 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 637 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 638 | 639 | encodeurl@~1.0.2: 640 | version "1.0.2" 641 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 642 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 643 | 644 | end-of-stream@^1.1.0: 645 | version "1.4.4" 646 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 647 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 648 | dependencies: 649 | once "^1.4.0" 650 | 651 | error-ex@^1.3.1: 652 | version "1.3.2" 653 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 654 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 655 | dependencies: 656 | is-arrayish "^0.2.1" 657 | 658 | esbuild-android-64@0.14.49: 659 | version "0.14.49" 660 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz#9e4682c36dcf6e7b71b73d2a3723a96e0fdc5054" 661 | integrity sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww== 662 | 663 | esbuild-android-arm64@0.14.49: 664 | version "0.14.49" 665 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz#9861b1f7e57d1dd1f23eeef6198561c5f34b51f6" 666 | integrity sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g== 667 | 668 | esbuild-darwin-64@0.14.49: 669 | version "0.14.49" 670 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz#fd30a5ebe28704a3a117126c60f98096c067c8d1" 671 | integrity sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg== 672 | 673 | esbuild-darwin-arm64@0.14.49: 674 | version "0.14.49" 675 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz#c04a3a57dad94a972c66a697a68a25aa25947f41" 676 | integrity sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A== 677 | 678 | esbuild-freebsd-64@0.14.49: 679 | version "0.14.49" 680 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz#c404dbd66c98451395b1eef0fa38b73030a7be82" 681 | integrity sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ== 682 | 683 | esbuild-freebsd-arm64@0.14.49: 684 | version "0.14.49" 685 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz#b62cec96138ebc5937240ce3e1b97902963ea74a" 686 | integrity sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA== 687 | 688 | esbuild-linux-32@0.14.49: 689 | version "0.14.49" 690 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz#495b1cc011b8c64d8bbaf65509c1e7135eb9ddbf" 691 | integrity sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA== 692 | 693 | esbuild-linux-64@0.14.49: 694 | version "0.14.49" 695 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz#3f28dd8f986e6ff42f38888ee435a9b1fb916a56" 696 | integrity sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg== 697 | 698 | esbuild-linux-arm64@0.14.49: 699 | version "0.14.49" 700 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz#a52e99ae30246566dc5f33e835aa6ca98ef70e33" 701 | integrity sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA== 702 | 703 | esbuild-linux-arm@0.14.49: 704 | version "0.14.49" 705 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz#7c33d05a64ec540cf7474834adaa57b3167bbe97" 706 | integrity sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg== 707 | 708 | esbuild-linux-mips64le@0.14.49: 709 | version "0.14.49" 710 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz#ed062bd844b587be649443831eb84ba304685f25" 711 | integrity sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA== 712 | 713 | esbuild-linux-ppc64le@0.14.49: 714 | version "0.14.49" 715 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz#c0786fb5bddffd90c10a2078181513cbaf077958" 716 | integrity sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw== 717 | 718 | esbuild-linux-riscv64@0.14.49: 719 | version "0.14.49" 720 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz#579b0e7cc6fce4bfc698e991a52503bb616bec49" 721 | integrity sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ== 722 | 723 | esbuild-linux-s390x@0.14.49: 724 | version "0.14.49" 725 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz#09eb15c753e249a500b4e28d07c5eef7524a9740" 726 | integrity sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ== 727 | 728 | esbuild-netbsd-64@0.14.49: 729 | version "0.14.49" 730 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz#f7337cd2bddb7cc9d100d19156f36c9ca117b58d" 731 | integrity sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ== 732 | 733 | esbuild-openbsd-64@0.14.49: 734 | version "0.14.49" 735 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz#1f8bdc49f8a44396e73950a3fb6b39828563631d" 736 | integrity sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA== 737 | 738 | esbuild-sunos-64@0.14.49: 739 | version "0.14.49" 740 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz#47d042739365b61aa8ca642adb69534a8eef9f7a" 741 | integrity sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw== 742 | 743 | esbuild-windows-32@0.14.49: 744 | version "0.14.49" 745 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz#79198c88ec9bde163c18a6b430c34eab098ec21a" 746 | integrity sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA== 747 | 748 | esbuild-windows-64@0.14.49: 749 | version "0.14.49" 750 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz#b36b230d18d1ee54008e08814c4799c7806e8c79" 751 | integrity sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw== 752 | 753 | esbuild-windows-arm64@0.14.49: 754 | version "0.14.49" 755 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz#d83c03ff6436caf3262347cfa7e16b0a8049fae7" 756 | integrity sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA== 757 | 758 | esbuild@^0.14.47: 759 | version "0.14.49" 760 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.49.tgz#b82834760eba2ddc17b44f05cfcc0aaca2bae492" 761 | integrity sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw== 762 | optionalDependencies: 763 | esbuild-android-64 "0.14.49" 764 | esbuild-android-arm64 "0.14.49" 765 | esbuild-darwin-64 "0.14.49" 766 | esbuild-darwin-arm64 "0.14.49" 767 | esbuild-freebsd-64 "0.14.49" 768 | esbuild-freebsd-arm64 "0.14.49" 769 | esbuild-linux-32 "0.14.49" 770 | esbuild-linux-64 "0.14.49" 771 | esbuild-linux-arm "0.14.49" 772 | esbuild-linux-arm64 "0.14.49" 773 | esbuild-linux-mips64le "0.14.49" 774 | esbuild-linux-ppc64le "0.14.49" 775 | esbuild-linux-riscv64 "0.14.49" 776 | esbuild-linux-s390x "0.14.49" 777 | esbuild-netbsd-64 "0.14.49" 778 | esbuild-openbsd-64 "0.14.49" 779 | esbuild-sunos-64 "0.14.49" 780 | esbuild-windows-32 "0.14.49" 781 | esbuild-windows-64 "0.14.49" 782 | esbuild-windows-arm64 "0.14.49" 783 | 784 | escape-html@~1.0.3: 785 | version "1.0.3" 786 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 787 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 788 | 789 | escape-string-regexp@^1.0.5: 790 | version "1.0.5" 791 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 792 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 793 | 794 | estree-walker@^2.0.2: 795 | version "2.0.2" 796 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 797 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 798 | 799 | etag@~1.8.1: 800 | version "1.8.1" 801 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 802 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 803 | 804 | execa@^1.0.0: 805 | version "1.0.0" 806 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 807 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 808 | dependencies: 809 | cross-spawn "^6.0.0" 810 | get-stream "^4.0.0" 811 | is-stream "^1.1.0" 812 | npm-run-path "^2.0.0" 813 | p-finally "^1.0.0" 814 | signal-exit "^3.0.0" 815 | strip-eof "^1.0.0" 816 | 817 | express@^4.17.1: 818 | version "4.18.1" 819 | resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" 820 | integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== 821 | dependencies: 822 | accepts "~1.3.8" 823 | array-flatten "1.1.1" 824 | body-parser "1.20.0" 825 | content-disposition "0.5.4" 826 | content-type "~1.0.4" 827 | cookie "0.5.0" 828 | cookie-signature "1.0.6" 829 | debug "2.6.9" 830 | depd "2.0.0" 831 | encodeurl "~1.0.2" 832 | escape-html "~1.0.3" 833 | etag "~1.8.1" 834 | finalhandler "1.2.0" 835 | fresh "0.5.2" 836 | http-errors "2.0.0" 837 | merge-descriptors "1.0.1" 838 | methods "~1.1.2" 839 | on-finished "2.4.1" 840 | parseurl "~1.3.3" 841 | path-to-regexp "0.1.7" 842 | proxy-addr "~2.0.7" 843 | qs "6.10.3" 844 | range-parser "~1.2.1" 845 | safe-buffer "5.2.1" 846 | send "0.18.0" 847 | serve-static "1.15.0" 848 | setprototypeof "1.2.0" 849 | statuses "2.0.1" 850 | type-is "~1.6.18" 851 | utils-merge "1.0.1" 852 | vary "~1.1.2" 853 | 854 | fill-range@^7.0.1: 855 | version "7.0.1" 856 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 857 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 858 | dependencies: 859 | to-regex-range "^5.0.1" 860 | 861 | finalhandler@1.2.0: 862 | version "1.2.0" 863 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 864 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 865 | dependencies: 866 | debug "2.6.9" 867 | encodeurl "~1.0.2" 868 | escape-html "~1.0.3" 869 | on-finished "2.4.1" 870 | parseurl "~1.3.3" 871 | statuses "2.0.1" 872 | unpipe "~1.0.0" 873 | 874 | find-up@^3.0.0: 875 | version "3.0.0" 876 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 877 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 878 | dependencies: 879 | locate-path "^3.0.0" 880 | 881 | forwarded@0.2.0: 882 | version "0.2.0" 883 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 884 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 885 | 886 | fresh@0.5.2: 887 | version "0.5.2" 888 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 889 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 890 | 891 | fs.realpath@^1.0.0: 892 | version "1.0.0" 893 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 894 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 895 | 896 | fsevents@~2.3.2: 897 | version "2.3.2" 898 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 899 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 900 | 901 | function-bind@^1.1.1: 902 | version "1.1.1" 903 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 904 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 905 | 906 | get-caller-file@^2.0.1: 907 | version "2.0.5" 908 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 909 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 910 | 911 | get-intrinsic@^1.0.2: 912 | version "1.1.2" 913 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" 914 | integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== 915 | dependencies: 916 | function-bind "^1.1.1" 917 | has "^1.0.3" 918 | has-symbols "^1.0.3" 919 | 920 | get-stream@^4.0.0: 921 | version "4.1.0" 922 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 923 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 924 | dependencies: 925 | pump "^3.0.0" 926 | 927 | glob-parent@~5.1.2: 928 | version "5.1.2" 929 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 930 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 931 | dependencies: 932 | is-glob "^4.0.1" 933 | 934 | glob@^7.1.2, glob@^7.1.3: 935 | version "7.2.3" 936 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 937 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 938 | dependencies: 939 | fs.realpath "^1.0.0" 940 | inflight "^1.0.4" 941 | inherits "2" 942 | minimatch "^3.1.1" 943 | once "^1.3.0" 944 | path-is-absolute "^1.0.0" 945 | 946 | has-flag@^3.0.0: 947 | version "3.0.0" 948 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 949 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 950 | 951 | has-symbols@^1.0.3: 952 | version "1.0.3" 953 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 954 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 955 | 956 | has@^1.0.3: 957 | version "1.0.3" 958 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 959 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 960 | dependencies: 961 | function-bind "^1.1.1" 962 | 963 | hosted-git-info@^2.1.4: 964 | version "2.8.9" 965 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 966 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 967 | 968 | http-errors@2.0.0: 969 | version "2.0.0" 970 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 971 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 972 | dependencies: 973 | depd "2.0.0" 974 | inherits "2.0.4" 975 | setprototypeof "1.2.0" 976 | statuses "2.0.1" 977 | toidentifier "1.0.1" 978 | 979 | iconv-lite@0.4.24: 980 | version "0.4.24" 981 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 982 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 983 | dependencies: 984 | safer-buffer ">= 2.1.2 < 3" 985 | 986 | immutable@^4.0.0: 987 | version "4.1.0" 988 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" 989 | integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== 990 | 991 | inflight@^1.0.4: 992 | version "1.0.6" 993 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 994 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 995 | dependencies: 996 | once "^1.3.0" 997 | wrappy "1" 998 | 999 | inherits@2, inherits@2.0.4: 1000 | version "2.0.4" 1001 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1002 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1003 | 1004 | ipaddr.js@1.9.1: 1005 | version "1.9.1" 1006 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1007 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1008 | 1009 | is-arrayish@^0.2.1: 1010 | version "0.2.1" 1011 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1012 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1013 | 1014 | is-binary-path@~2.1.0: 1015 | version "2.1.0" 1016 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1017 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1018 | dependencies: 1019 | binary-extensions "^2.0.0" 1020 | 1021 | is-core-module@^2.9.0: 1022 | version "2.9.0" 1023 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" 1024 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== 1025 | dependencies: 1026 | has "^1.0.3" 1027 | 1028 | is-extglob@^2.1.1: 1029 | version "2.1.1" 1030 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1031 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1032 | 1033 | is-fullwidth-code-point@^2.0.0: 1034 | version "2.0.0" 1035 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1036 | integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== 1037 | 1038 | is-glob@^4.0.1, is-glob@~4.0.1: 1039 | version "4.0.3" 1040 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1041 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1042 | dependencies: 1043 | is-extglob "^2.1.1" 1044 | 1045 | is-number@^7.0.0: 1046 | version "7.0.0" 1047 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1048 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1049 | 1050 | is-stream@^1.1.0: 1051 | version "1.1.0" 1052 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1053 | integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== 1054 | 1055 | isexe@^2.0.0: 1056 | version "2.0.0" 1057 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1058 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1059 | 1060 | jest-changed-files@^24.9.0: 1061 | version "24.9.0" 1062 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" 1063 | integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== 1064 | dependencies: 1065 | "@jest/types" "^24.9.0" 1066 | execa "^1.0.0" 1067 | throat "^4.0.0" 1068 | 1069 | js-sha3@0.8.0: 1070 | version "0.8.0" 1071 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" 1072 | integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== 1073 | 1074 | json-parse-better-errors@^1.0.1: 1075 | version "1.0.2" 1076 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1077 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1078 | 1079 | locate-path@^3.0.0: 1080 | version "3.0.0" 1081 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1082 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1083 | dependencies: 1084 | p-locate "^3.0.0" 1085 | path-exists "^3.0.0" 1086 | 1087 | lodash@^4.17.15, lodash@^4.17.4: 1088 | version "4.17.21" 1089 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1090 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1091 | 1092 | magic-string@^0.25.7: 1093 | version "0.25.9" 1094 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" 1095 | integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== 1096 | dependencies: 1097 | sourcemap-codec "^1.4.8" 1098 | 1099 | make-error@^1.1.1: 1100 | version "1.3.6" 1101 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1102 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1103 | 1104 | match-sorter@^6.0.2, match-sorter@^6.3.1: 1105 | version "6.3.1" 1106 | resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" 1107 | integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== 1108 | dependencies: 1109 | "@babel/runtime" "^7.12.5" 1110 | remove-accents "0.4.2" 1111 | 1112 | media-typer@0.3.0: 1113 | version "0.3.0" 1114 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1115 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1116 | 1117 | merge-descriptors@1.0.1: 1118 | version "1.0.1" 1119 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1120 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1121 | 1122 | methods@~1.1.2: 1123 | version "1.1.2" 1124 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1125 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1126 | 1127 | microseconds@0.2.0: 1128 | version "0.2.0" 1129 | resolved "https://registry.yarnpkg.com/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39" 1130 | integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA== 1131 | 1132 | mime-db@1.52.0: 1133 | version "1.52.0" 1134 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1135 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1136 | 1137 | mime-types@~2.1.24, mime-types@~2.1.34: 1138 | version "2.1.35" 1139 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1140 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1141 | dependencies: 1142 | mime-db "1.52.0" 1143 | 1144 | mime@1.6.0: 1145 | version "1.6.0" 1146 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1147 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1148 | 1149 | minimatch@^3.0.4, minimatch@^3.1.1: 1150 | version "3.1.2" 1151 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1152 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1153 | dependencies: 1154 | brace-expansion "^1.1.7" 1155 | 1156 | minimist@^1.2.6: 1157 | version "1.2.6" 1158 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 1159 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 1160 | 1161 | mkdirp@^1.0.4: 1162 | version "1.0.4" 1163 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 1164 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 1165 | 1166 | ms@2.0.0: 1167 | version "2.0.0" 1168 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1169 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1170 | 1171 | ms@2.1.3: 1172 | version "2.1.3" 1173 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1174 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1175 | 1176 | nano-time@1.0.0: 1177 | version "1.0.0" 1178 | resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef" 1179 | integrity sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA== 1180 | dependencies: 1181 | big-integer "^1.6.16" 1182 | 1183 | nanoid@^3.3.4: 1184 | version "3.3.4" 1185 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 1186 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 1187 | 1188 | negotiator@0.6.3: 1189 | version "0.6.3" 1190 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1191 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1192 | 1193 | nice-try@^1.0.4: 1194 | version "1.0.5" 1195 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1196 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1197 | 1198 | normalize-package-data@^2.3.2: 1199 | version "2.5.0" 1200 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1201 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1202 | dependencies: 1203 | hosted-git-info "^2.1.4" 1204 | resolve "^1.10.0" 1205 | semver "2 || 3 || 4 || 5" 1206 | validate-npm-package-license "^3.0.1" 1207 | 1208 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1209 | version "3.0.0" 1210 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1211 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1212 | 1213 | npm-run-path@^2.0.0: 1214 | version "2.0.2" 1215 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1216 | integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== 1217 | dependencies: 1218 | path-key "^2.0.0" 1219 | 1220 | object-assign@^4: 1221 | version "4.1.1" 1222 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1223 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1224 | 1225 | object-inspect@^1.9.0: 1226 | version "1.12.2" 1227 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" 1228 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 1229 | 1230 | oblivious-set@1.0.0: 1231 | version "1.0.0" 1232 | resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566" 1233 | integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== 1234 | 1235 | on-finished@2.4.1: 1236 | version "2.4.1" 1237 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1238 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1239 | dependencies: 1240 | ee-first "1.1.1" 1241 | 1242 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1243 | version "1.4.0" 1244 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1245 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1246 | dependencies: 1247 | wrappy "1" 1248 | 1249 | p-finally@^1.0.0: 1250 | version "1.0.0" 1251 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1252 | integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== 1253 | 1254 | p-limit@^2.0.0: 1255 | version "2.3.0" 1256 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1257 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1258 | dependencies: 1259 | p-try "^2.0.0" 1260 | 1261 | p-locate@^3.0.0: 1262 | version "3.0.0" 1263 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1264 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1265 | dependencies: 1266 | p-limit "^2.0.0" 1267 | 1268 | p-try@^2.0.0: 1269 | version "2.2.0" 1270 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1271 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1272 | 1273 | parse-json@^4.0.0: 1274 | version "4.0.0" 1275 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1276 | integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== 1277 | dependencies: 1278 | error-ex "^1.3.1" 1279 | json-parse-better-errors "^1.0.1" 1280 | 1281 | parseurl@~1.3.3: 1282 | version "1.3.3" 1283 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1284 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1285 | 1286 | path-exists@^3.0.0: 1287 | version "3.0.0" 1288 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1289 | integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== 1290 | 1291 | path-is-absolute@^1.0.0: 1292 | version "1.0.1" 1293 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1294 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1295 | 1296 | path-key@^2.0.0, path-key@^2.0.1: 1297 | version "2.0.1" 1298 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1299 | integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== 1300 | 1301 | path-parse@^1.0.7: 1302 | version "1.0.7" 1303 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1304 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1305 | 1306 | path-to-regexp@0.1.7: 1307 | version "0.1.7" 1308 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1309 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1310 | 1311 | picocolors@^1.0.0: 1312 | version "1.0.0" 1313 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1314 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1315 | 1316 | picomatch@^2.0.4, picomatch@^2.2.1: 1317 | version "2.3.1" 1318 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1319 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1320 | 1321 | pify@^3.0.0: 1322 | version "3.0.0" 1323 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1324 | integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== 1325 | 1326 | postcss@^8.1.10, postcss@^8.4.14: 1327 | version "8.4.14" 1328 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" 1329 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== 1330 | dependencies: 1331 | nanoid "^3.3.4" 1332 | picocolors "^1.0.0" 1333 | source-map-js "^1.0.2" 1334 | 1335 | proxy-addr@~2.0.7: 1336 | version "2.0.7" 1337 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1338 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1339 | dependencies: 1340 | forwarded "0.2.0" 1341 | ipaddr.js "1.9.1" 1342 | 1343 | pump@^3.0.0: 1344 | version "3.0.0" 1345 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1346 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1347 | dependencies: 1348 | end-of-stream "^1.1.0" 1349 | once "^1.3.1" 1350 | 1351 | qs@6.10.3: 1352 | version "6.10.3" 1353 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" 1354 | integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== 1355 | dependencies: 1356 | side-channel "^1.0.4" 1357 | 1358 | range-parser@~1.2.1: 1359 | version "1.2.1" 1360 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1361 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1362 | 1363 | raw-body@2.5.1: 1364 | version "2.5.1" 1365 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 1366 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 1367 | dependencies: 1368 | bytes "3.1.2" 1369 | http-errors "2.0.0" 1370 | iconv-lite "0.4.24" 1371 | unpipe "1.0.0" 1372 | 1373 | react-query@^3.39.0: 1374 | version "3.39.2" 1375 | resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.39.2.tgz#9224140f0296f01e9664b78ed6e4f69a0cc9216f" 1376 | integrity sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA== 1377 | dependencies: 1378 | "@babel/runtime" "^7.5.5" 1379 | broadcast-channel "^3.4.1" 1380 | match-sorter "^6.0.2" 1381 | 1382 | read-pkg@^4.0.1: 1383 | version "4.0.1" 1384 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" 1385 | integrity sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w== 1386 | dependencies: 1387 | normalize-package-data "^2.3.2" 1388 | parse-json "^4.0.0" 1389 | pify "^3.0.0" 1390 | 1391 | readdirp@~3.6.0: 1392 | version "3.6.0" 1393 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1394 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1395 | dependencies: 1396 | picomatch "^2.2.1" 1397 | 1398 | regenerator-runtime@^0.13.4: 1399 | version "0.13.9" 1400 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 1401 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1402 | 1403 | remove-accents@0.4.2: 1404 | version "0.4.2" 1405 | resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" 1406 | integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== 1407 | 1408 | require-directory@^2.1.1: 1409 | version "2.1.1" 1410 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1411 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 1412 | 1413 | require-main-filename@^2.0.0: 1414 | version "2.0.0" 1415 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 1416 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1417 | 1418 | resolve@^1.0.0, resolve@^1.10.0, resolve@^1.22.1: 1419 | version "1.22.1" 1420 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 1421 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 1422 | dependencies: 1423 | is-core-module "^2.9.0" 1424 | path-parse "^1.0.7" 1425 | supports-preserve-symlinks-flag "^1.0.0" 1426 | 1427 | rimraf@3.0.2: 1428 | version "3.0.2" 1429 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1430 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1431 | dependencies: 1432 | glob "^7.1.3" 1433 | 1434 | rimraf@^2.6.1: 1435 | version "2.7.1" 1436 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 1437 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 1438 | dependencies: 1439 | glob "^7.1.3" 1440 | 1441 | rollup@^2.75.6: 1442 | version "2.77.0" 1443 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.0.tgz#749eaa5ac09b6baa52acc076bc46613eddfd53f4" 1444 | integrity sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g== 1445 | optionalDependencies: 1446 | fsevents "~2.3.2" 1447 | 1448 | rxjs@^6.5.2: 1449 | version "6.6.7" 1450 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" 1451 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== 1452 | dependencies: 1453 | tslib "^1.9.0" 1454 | 1455 | safe-buffer@5.2.1: 1456 | version "5.2.1" 1457 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1458 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1459 | 1460 | "safer-buffer@>= 2.1.2 < 3": 1461 | version "2.1.2" 1462 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1463 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1464 | 1465 | sass@^1.53.0: 1466 | version "1.53.0" 1467 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.53.0.tgz#eab73a7baac045cc57ddc1d1ff501ad2659952eb" 1468 | integrity sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ== 1469 | dependencies: 1470 | chokidar ">=3.0.0 <4.0.0" 1471 | immutable "^4.0.0" 1472 | source-map-js ">=0.6.2 <2.0.0" 1473 | 1474 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 1475 | version "5.7.1" 1476 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1477 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1478 | 1479 | send@0.18.0: 1480 | version "0.18.0" 1481 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 1482 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 1483 | dependencies: 1484 | debug "2.6.9" 1485 | depd "2.0.0" 1486 | destroy "1.2.0" 1487 | encodeurl "~1.0.2" 1488 | escape-html "~1.0.3" 1489 | etag "~1.8.1" 1490 | fresh "0.5.2" 1491 | http-errors "2.0.0" 1492 | mime "1.6.0" 1493 | ms "2.1.3" 1494 | on-finished "2.4.1" 1495 | range-parser "~1.2.1" 1496 | statuses "2.0.1" 1497 | 1498 | serve-static@1.15.0: 1499 | version "1.15.0" 1500 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 1501 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 1502 | dependencies: 1503 | encodeurl "~1.0.2" 1504 | escape-html "~1.0.3" 1505 | parseurl "~1.3.3" 1506 | send "0.18.0" 1507 | 1508 | set-blocking@^2.0.0: 1509 | version "2.0.0" 1510 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1511 | integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== 1512 | 1513 | setprototypeof@1.2.0: 1514 | version "1.2.0" 1515 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1516 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1517 | 1518 | shebang-command@^1.2.0: 1519 | version "1.2.0" 1520 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1521 | integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== 1522 | dependencies: 1523 | shebang-regex "^1.0.0" 1524 | 1525 | shebang-regex@^1.0.0: 1526 | version "1.0.0" 1527 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1528 | integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== 1529 | 1530 | side-channel@^1.0.4: 1531 | version "1.0.4" 1532 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1533 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1534 | dependencies: 1535 | call-bind "^1.0.0" 1536 | get-intrinsic "^1.0.2" 1537 | object-inspect "^1.9.0" 1538 | 1539 | signal-exit@^3.0.0: 1540 | version "3.0.7" 1541 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 1542 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 1543 | 1544 | "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: 1545 | version "1.0.2" 1546 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1547 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1548 | 1549 | source-map-support@^0.5.12: 1550 | version "0.5.21" 1551 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1552 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1553 | dependencies: 1554 | buffer-from "^1.0.0" 1555 | source-map "^0.6.0" 1556 | 1557 | source-map@^0.6.0, source-map@^0.6.1: 1558 | version "0.6.1" 1559 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1560 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1561 | 1562 | sourcemap-codec@^1.4.8: 1563 | version "1.4.8" 1564 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1565 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1566 | 1567 | spawn-command@^0.0.2-1: 1568 | version "0.0.2-1" 1569 | resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" 1570 | integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== 1571 | 1572 | spdx-correct@^3.0.0: 1573 | version "3.1.1" 1574 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1575 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1576 | dependencies: 1577 | spdx-expression-parse "^3.0.0" 1578 | spdx-license-ids "^3.0.0" 1579 | 1580 | spdx-exceptions@^2.1.0: 1581 | version "2.3.0" 1582 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1583 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1584 | 1585 | spdx-expression-parse@^3.0.0: 1586 | version "3.0.1" 1587 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1588 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1589 | dependencies: 1590 | spdx-exceptions "^2.1.0" 1591 | spdx-license-ids "^3.0.0" 1592 | 1593 | spdx-license-ids@^3.0.0: 1594 | version "3.0.11" 1595 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" 1596 | integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== 1597 | 1598 | split@^1.0.1: 1599 | version "1.0.1" 1600 | resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" 1601 | integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== 1602 | dependencies: 1603 | through "2" 1604 | 1605 | statuses@2.0.1: 1606 | version "2.0.1" 1607 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 1608 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1609 | 1610 | string-width@^3.0.0, string-width@^3.1.0: 1611 | version "3.1.0" 1612 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1613 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1614 | dependencies: 1615 | emoji-regex "^7.0.1" 1616 | is-fullwidth-code-point "^2.0.0" 1617 | strip-ansi "^5.1.0" 1618 | 1619 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1620 | version "5.2.0" 1621 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1622 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1623 | dependencies: 1624 | ansi-regex "^4.1.0" 1625 | 1626 | strip-bom@^3.0.0: 1627 | version "3.0.0" 1628 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1629 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1630 | 1631 | strip-eof@^1.0.0: 1632 | version "1.0.0" 1633 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1634 | integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== 1635 | 1636 | strip-json-comments@^2.0.0: 1637 | version "2.0.1" 1638 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1639 | integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== 1640 | 1641 | supports-color@^5.3.0: 1642 | version "5.5.0" 1643 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1644 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1645 | dependencies: 1646 | has-flag "^3.0.0" 1647 | 1648 | supports-color@^6.1.0: 1649 | version "6.1.0" 1650 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" 1651 | integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== 1652 | dependencies: 1653 | has-flag "^3.0.0" 1654 | 1655 | supports-preserve-symlinks-flag@^1.0.0: 1656 | version "1.0.0" 1657 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1658 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1659 | 1660 | throat@^4.0.0, throat@^4.1.0: 1661 | version "4.1.0" 1662 | resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" 1663 | integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== 1664 | 1665 | through@2: 1666 | version "2.3.8" 1667 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1668 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 1669 | 1670 | to-regex-range@^5.0.1: 1671 | version "5.0.1" 1672 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1673 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1674 | dependencies: 1675 | is-number "^7.0.0" 1676 | 1677 | toidentifier@1.0.1: 1678 | version "1.0.1" 1679 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 1680 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1681 | 1682 | tree-kill@^1.2.2: 1683 | version "1.2.2" 1684 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1685 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1686 | 1687 | ts-node-dev@^2.0.0: 1688 | version "2.0.0" 1689 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" 1690 | integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== 1691 | dependencies: 1692 | chokidar "^3.5.1" 1693 | dynamic-dedupe "^0.3.0" 1694 | minimist "^1.2.6" 1695 | mkdirp "^1.0.4" 1696 | resolve "^1.0.0" 1697 | rimraf "^2.6.1" 1698 | source-map-support "^0.5.12" 1699 | tree-kill "^1.2.2" 1700 | ts-node "^10.4.0" 1701 | tsconfig "^7.0.0" 1702 | 1703 | ts-node@^10.4.0: 1704 | version "10.9.1" 1705 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" 1706 | integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== 1707 | dependencies: 1708 | "@cspotcode/source-map-support" "^0.8.0" 1709 | "@tsconfig/node10" "^1.0.7" 1710 | "@tsconfig/node12" "^1.0.7" 1711 | "@tsconfig/node14" "^1.0.0" 1712 | "@tsconfig/node16" "^1.0.2" 1713 | acorn "^8.4.1" 1714 | acorn-walk "^8.1.1" 1715 | arg "^4.1.0" 1716 | create-require "^1.1.0" 1717 | diff "^4.0.1" 1718 | make-error "^1.1.1" 1719 | v8-compile-cache-lib "^3.0.1" 1720 | yn "3.1.1" 1721 | 1722 | tsconfig@^7.0.0: 1723 | version "7.0.0" 1724 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 1725 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 1726 | dependencies: 1727 | "@types/strip-bom" "^3.0.0" 1728 | "@types/strip-json-comments" "0.0.30" 1729 | strip-bom "^3.0.0" 1730 | strip-json-comments "^2.0.0" 1731 | 1732 | tslib@^1.9.0: 1733 | version "1.14.1" 1734 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1735 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1736 | 1737 | type-is@~1.6.18: 1738 | version "1.6.18" 1739 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1740 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1741 | dependencies: 1742 | media-typer "0.3.0" 1743 | mime-types "~2.1.24" 1744 | 1745 | typescript@^4.4.4, typescript@^4.6.4: 1746 | version "4.7.4" 1747 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" 1748 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== 1749 | 1750 | unload@2.2.0: 1751 | version "2.2.0" 1752 | resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7" 1753 | integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA== 1754 | dependencies: 1755 | "@babel/runtime" "^7.6.2" 1756 | detect-node "^2.0.4" 1757 | 1758 | unpipe@1.0.0, unpipe@~1.0.0: 1759 | version "1.0.0" 1760 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1761 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 1762 | 1763 | utils-merge@1.0.1: 1764 | version "1.0.1" 1765 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1766 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 1767 | 1768 | uuid@^8.3.2: 1769 | version "8.3.2" 1770 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1771 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1772 | 1773 | v8-compile-cache-lib@^3.0.1: 1774 | version "3.0.1" 1775 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" 1776 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 1777 | 1778 | validate-npm-package-license@^3.0.1: 1779 | version "3.0.4" 1780 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1781 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1782 | dependencies: 1783 | spdx-correct "^3.0.0" 1784 | spdx-expression-parse "^3.0.0" 1785 | 1786 | vary@^1, vary@~1.1.2: 1787 | version "1.1.2" 1788 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1789 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 1790 | 1791 | vite@^3.0.0: 1792 | version "3.0.0" 1793 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.0.tgz#b4675cb9ab83ec0803b9c952ffa6519bcce033a7" 1794 | integrity sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA== 1795 | dependencies: 1796 | esbuild "^0.14.47" 1797 | postcss "^8.4.14" 1798 | resolve "^1.22.1" 1799 | rollup "^2.75.6" 1800 | optionalDependencies: 1801 | fsevents "~2.3.2" 1802 | 1803 | vue-demi@0.10.1: 1804 | version "0.10.1" 1805 | resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.10.1.tgz#229b81395510f02f4ee255344557a12cc0120930" 1806 | integrity sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA== 1807 | 1808 | vue-query@^1.25.2: 1809 | version "1.25.2" 1810 | resolved "https://registry.yarnpkg.com/vue-query/-/vue-query-1.25.2.tgz#5ffb4d3bd3e43eaf6059313f5f6c0d4747166c39" 1811 | integrity sha512-cWmjxFSa6/4QOqcGmhULqk99arKFWTBKo13BZNVvf9AkNWPV1zb2vdOi2ltd9itZP01QUgoc8rGoVOaj60P+DA== 1812 | dependencies: 1813 | "@vue/devtools-api" "^6.1.4" 1814 | match-sorter "^6.3.1" 1815 | react-query "^3.39.0" 1816 | vue-demi "0.10.1" 1817 | 1818 | vue-tsc@^0.38.4: 1819 | version "0.38.8" 1820 | resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-0.38.8.tgz#becf3dddd3c57784c79206aa1d5be750e8bca319" 1821 | integrity sha512-hhyc5SODiekcYNXG08aNg17LogR19o3i14avVejo+Fm45Dqk9Ke6rb0M19HoTKdQGfZBgqg2VUboYxmtAukWeg== 1822 | dependencies: 1823 | "@volar/vue-typescript" "0.38.8" 1824 | 1825 | vue@^3.2.37: 1826 | version "3.2.37" 1827 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e" 1828 | integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ== 1829 | dependencies: 1830 | "@vue/compiler-dom" "3.2.37" 1831 | "@vue/compiler-sfc" "3.2.37" 1832 | "@vue/runtime-dom" "3.2.37" 1833 | "@vue/server-renderer" "3.2.37" 1834 | "@vue/shared" "3.2.37" 1835 | 1836 | which-module@^2.0.0: 1837 | version "2.0.0" 1838 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1839 | integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== 1840 | 1841 | which@^1.2.9: 1842 | version "1.3.1" 1843 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1844 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1845 | dependencies: 1846 | isexe "^2.0.0" 1847 | 1848 | wrap-ansi@^5.1.0: 1849 | version "5.1.0" 1850 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 1851 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== 1852 | dependencies: 1853 | ansi-styles "^3.2.0" 1854 | string-width "^3.0.0" 1855 | strip-ansi "^5.0.0" 1856 | 1857 | wrappy@1: 1858 | version "1.0.2" 1859 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1860 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1861 | 1862 | wsrun@^5.2.0: 1863 | version "5.2.4" 1864 | resolved "https://registry.yarnpkg.com/wsrun/-/wsrun-5.2.4.tgz#6eb6c3ccd3327721a8df073a5e3578fb0dea494e" 1865 | integrity sha512-akv3WtKBohdHsD/5uqhYRHw6GXeCXe87FsSg28Szq+2cpoqRW2SY4yPfm1D0za1cS6MgNy5hPgzS5SqYJaGUxg== 1866 | dependencies: 1867 | bluebird "^3.5.1" 1868 | chalk "^2.3.0" 1869 | glob "^7.1.2" 1870 | jest-changed-files "^24.9.0" 1871 | lodash "^4.17.4" 1872 | minimatch "^3.0.4" 1873 | split "^1.0.1" 1874 | throat "^4.1.0" 1875 | yargs "^13.0.0" 1876 | 1877 | xtend@^4.0.0: 1878 | version "4.0.2" 1879 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1880 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1881 | 1882 | y18n@^4.0.0: 1883 | version "4.0.3" 1884 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" 1885 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== 1886 | 1887 | yargs-parser@^13.1.2: 1888 | version "13.1.2" 1889 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" 1890 | integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== 1891 | dependencies: 1892 | camelcase "^5.0.0" 1893 | decamelize "^1.2.0" 1894 | 1895 | yargs@^13.0.0, yargs@^13.3.0: 1896 | version "13.3.2" 1897 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" 1898 | integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== 1899 | dependencies: 1900 | cliui "^5.0.0" 1901 | find-up "^3.0.0" 1902 | get-caller-file "^2.0.1" 1903 | require-directory "^2.1.1" 1904 | require-main-filename "^2.0.0" 1905 | set-blocking "^2.0.0" 1906 | string-width "^3.0.0" 1907 | which-module "^2.0.0" 1908 | y18n "^4.0.0" 1909 | yargs-parser "^13.1.2" 1910 | 1911 | yn@3.1.1: 1912 | version "3.1.1" 1913 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1914 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1915 | 1916 | zod@^3.17.3: 1917 | version "3.17.3" 1918 | resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.3.tgz#86abbc670ff0063a4588d85a4dcc917d6e4af2ba" 1919 | integrity sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg== 1920 | --------------------------------------------------------------------------------