├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── README.md ├── package.json ├── src ├── Via.ts ├── errors.ts ├── index.ts └── types.ts ├── tsconfig.d.json ├── tsconfig.json └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | *.config.js 2 | *.config.ts 3 | *.test.js 4 | *.test.ts 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es6: true, 5 | node: true, 6 | mocha: true, 7 | }, 8 | extends: [ 9 | 'eslint:recommended', 10 | 'plugin:import/errors', 11 | 'plugin:import/warnings', 12 | 'plugin:import/typescript', 13 | ], 14 | parser: '@typescript-eslint/parser', 15 | parserOptions: { 16 | sourceType: 'module', 17 | ecmaVersion: 8, 18 | }, 19 | plugins: ['@typescript-eslint'], 20 | rules: { 21 | '@typescript-eslint/no-unused-vars': ['error'], 22 | 'import/first': ['error'], 23 | 'import/no-commonjs': ['error'], 24 | 'import/order': [ 25 | 'error', 26 | { 27 | groups: [ 28 | ['internal', 'external', 'builtin'], 29 | ['index', 'sibling', 'parent'], 30 | ], 31 | 'newlines-between': 'always', 32 | }, 33 | ], 34 | indent: [ 35 | 'error', 36 | 2, 37 | { 38 | MemberExpression: 1, 39 | SwitchCase: 1, 40 | }, 41 | ], 42 | 'linebreak-style': ['error', 'unix'], 43 | 'no-console': [0], 44 | 'no-trailing-spaces': ['error'], 45 | 'no-unused-vars': 'off', 46 | quotes: [ 47 | 'error', 48 | 'single', 49 | {avoidEscape: true, allowTemplateLiterals: true}, 50 | ], 51 | 'require-await': ['error'], 52 | semi: ['error', 'always'], 53 | }, 54 | }; 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # idea 2 | .idea/ 3 | 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | 12 | # Diagnostic reports (https://nodejs.org/api/report.html) 13 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | *.pid.lock 20 | 21 | # Directory for instrumented libs generated by jscoverage/JSCover 22 | lib-cov 23 | 24 | # Coverage directory used by tools like istanbul 25 | coverage 26 | *.lcov 27 | 28 | # nyc test coverage 29 | .nyc_output 30 | 31 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 32 | .grunt 33 | 34 | # Bower dependency directory (https://bower.io/) 35 | bower_components 36 | 37 | # node-waf configuration 38 | .lock-wscript 39 | 40 | # Compiled binary addons (https://nodejs.org/api/addons.html) 41 | build/Release 42 | 43 | # Dependency directories 44 | node_modules/ 45 | jspm_packages/ 46 | 47 | # Snowpack dependency directory (https://snowpack.dev/) 48 | web_modules/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Microbundle cache 60 | .rpt2_cache/ 61 | .rts2_cache_cjs/ 62 | .rts2_cache_es/ 63 | .rts2_cache_umd/ 64 | 65 | # Optional REPL history 66 | .node_repl_history 67 | 68 | # Output of 'npm pack' 69 | *.tgz 70 | 71 | # Yarn Integrity file 72 | .yarn-integrity 73 | 74 | # dotenv environment variables file 75 | .env 76 | .env.test 77 | 78 | # parcel-bundler cache (https://parceljs.org/) 79 | .cache 80 | .parcel-cache 81 | 82 | # Next.js build output 83 | .next 84 | out 85 | 86 | # Nuxt.js build / generate output 87 | .nuxt 88 | dist 89 | 90 | # Gatsby files 91 | .cache/ 92 | # Comment in the public line in if your project uses Gatsby and not Next.js 93 | # https://nextjs.org/blog/next-9-1#public-directory-support 94 | # public 95 | 96 | # vuepress build output 97 | .vuepress/dist 98 | 99 | # Serverless directories 100 | .serverless/ 101 | 102 | # FuseBox cache 103 | .fusebox/ 104 | 105 | # DynamoDB Local files 106 | .dynamodb/ 107 | 108 | # TernJS port file 109 | .tern-port 110 | 111 | # Stores VSCode versions used for testing VSCode extensions 112 | .vscode-test 113 | 114 | # yarn v2 115 | .yarn/cache 116 | .yarn/unplugged 117 | .yarn/build-state.yml 118 | .yarn/install-state.gz 119 | .pnp.* 120 | .DS_Store 121 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Via Protocol is the most advanced cross-chain aggregation protocol 2 | 3 |

4 | 5 | # VIA SDK typescript 6 | 7 | A small blazing fast wrapper over the VIA Router API for on-chain and cross-chain swaps. 8 | Our API allows you to find the best route for moving funds between chains! 9 | 10 | ### Feature List 11 | 12 | |feature|remark|method| 13 | |--|--|--| 14 | |get routes|Swaps/bridges cheapest routes|getRoutes| 15 | |check allowance|Allowance to check whether it's needed or not to approve|getAllowanceStatus| 16 | |build approval transaction|The transaction that approves the VIA contract to spend your token|buildApprovalTx| 17 | |build transaction|The transaction that will perform a swap/bridge according to the route|buildTx| 18 | |check transaction|Check the status of the transaction|checkTx| 19 | 20 | 21 | ### Installation 22 | ``` 23 | npm i @viaprotocol/router-sdk 24 | ``` 25 | 26 | 27 | ### Usage 28 | 29 | First you need to initialize a VIA Client instance: 30 | 31 | ``` js 32 | import {Via} from '@viaprotocol/router-sdk'; 33 | 34 | const DEFAULT_API_KEY = 'e3db93a3-ae1c-41e5-8229-b8c1ecef5583'; 35 | const cli = new Via({apiKey: DEFAULT_API_KEY, url: 'https://router-api.via.exchange', timeout: 30000}); 36 | ``` 37 | 38 | > ⚠️ Default API key has 1 RPS rate limit per IP. [Contact us](mailto:mbelyaev@via.exchange) if you need your personal API key with much higher limits. 39 | 40 | #### Get the best routes 41 | 42 | ``` js 43 | const pagesNum = await cli.routesPages(); // cache me! 44 | const baseParams = { 45 | fromChainId: 1, 46 | fromTokenAddress: '0x0000000000000000000000000000000000000000', 47 | fromAmount: Math.pow(10, 18), 48 | toChainId: 56, 49 | toTokenAddress: '0x0000000000000000000000000000000000000000', 50 | fromAddress: '0x856cc59aaE47997a1C8D5472Fc8dfef27821235d', // might be null 51 | multiTx: false, // whether to return routes with multiple user transactions 52 | limit: 1, 53 | }; 54 | const params = [...Array(pagesNum)].map( 55 | (_, i) => ({ 56 | ...baseParams, 57 | offset: i+1 58 | }) 59 | ); 60 | 61 | const routes = await Promise.allSettled( 62 | params.map(i => cli.getRoutes(i)) 63 | ); 64 | ``` 65 | Request parameters description 66 | |Parameter|Description| 67 | |--|--| 68 | |fromChainId|Source chain id| 69 | |fromTokenAddress|Source token address| 70 | |fromAmount|Amount| 71 | |toChainId|Target chain id| 72 | |toTokenAddress|Target token address| 73 | |fromAddress|Sender address| 74 | |multiTx|whether to return routes with multiple user transactions| 75 | |offset|Pagination offset| 76 | |limit|Pagination limit| 77 | 78 | Pagination is needed because the request time for a specific page is faster than for all pages at once 79 | 80 | #### Get allowance status 81 | 82 | You must approve the contract to spend your token. 83 | You can get route_id from the route you like received above in the code snippet. 84 | 85 | ``` js 86 | const firstNonEmptyPage = routes.find(i => i.value.routes.length > 0).value; 87 | const route = firstNonEmptyPage.routes[0]; 88 | const routeId = route.routeId; 89 | const chainId = fromChainId; 90 | const owner = "YOUR_WALLET_ADDRESS"; 91 | const tokenAddress = fromTokenAddress; 92 | const numAction = 0; // number of action in routes 93 | 94 | const allowanceStatus = await cli.getAllowanceStatus( 95 | {owner, routeId, numAction} 96 | ); 97 | ``` 98 | 99 | Build approval transaction. 100 | Returns the transaction that approves the VIA API to spend your token. 101 | 102 | ``` js 103 | const amount = fromAmount; 104 | 105 | tx = await cli.buildApprovalTx( 106 | {routeId, owner, numAction} 107 | ) 108 | ``` 109 | 110 | Now you can build the transaction that will perform a crosschain swap according to the route. 111 | 112 | ``` js 113 | // amount out minimal, you can get it from get_routes as to_token_amount 114 | output = firstNonEmptyPage.routes[0].toTokenAmount 115 | 116 | tx = await cli.buildTx( 117 | { 118 | routeId, 119 | fromAddress, 120 | receiveAddress, 121 | numAction 122 | } 123 | ) 124 | ``` 125 | 126 | If you want to know the status of the transaction, then you need to tell us that you started it 127 | 128 | ``` js 129 | await cli.startRoute( 130 | { 131 | fromAddress: fromAddress, 132 | toAddress: receiveAddress, 133 | routeId: route.routeId, 134 | txHash: txHash 135 | } 136 | ) 137 | ``` 138 | 139 | And start action (you can start from the second action because startRoute also handles first action) 140 | 141 | ``` js 142 | await cli.startAction( 143 | { 144 | actionUuid: route.actions[numAction].uuid, 145 | initialTxHash: actionTxHash 146 | } 147 | ) 148 | ``` 149 | 150 | #### You can see the status of the transaction 151 | ``` js 152 | const txStatus = await cli.checkTx( 153 | { 154 | actionUuid: route.actions[numAction].uuid 155 | } 156 | ) 157 | ``` 158 | 159 | #### You can use websocket 160 | ``` js 161 | const v = new Via({apiKey: DEFAULT_API_KEY}); 162 | const wsProvider = v.getRoutesViaWs({ 163 | fromAddress: '0xD75183E452d6915356814454D2D64Df149853D38', 164 | fromAmount: 148875000000000000, 165 | fromChainId: 56, 166 | toChainId: 56, 167 | fromTokenAddress: '0x0000000000000000000000000000000000000000', 168 | toTokenAddress: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', 169 | multiTx: true 170 | }); 171 | 172 | wsProvider.onopen = function open() { 173 | console.log('connected'); 174 | }; 175 | 176 | wsProvider.onclose = function close() { 177 | console.log('disconnected'); 178 | }; 179 | 180 | wsProvider.onmessage = function incoming(data) { 181 | const res = JSON.parse(data.data as string); 182 | let route: IRoute[]; 183 | let status: IRouteFetchStatus; 184 | if (Array.isArray(res)) { 185 | route = res; 186 | console.log(route); 187 | } else { 188 | status = res.status; 189 | console.log(status); 190 | 191 | if (status.finished === status.all){ 192 | wsProvider.close() 193 | } 194 | } 195 | }; 196 | ``` 197 | 198 | Response parameters description 199 | |Parameter|Description| 200 | |--|--| 201 | |retry|Time to retry in ms| 202 | |event|Status of the transaction| 203 | |data.started|Started time of the transaction on source chain| 204 | |data.finished|Finished time of the transaction on source chain| 205 | |data.txHash|Hash of the destination transaction| 206 | |data.actualAmount|Received amount| 207 | 208 | 209 | ### Multi-tx 210 | 211 | With via.exchange it is possible to execute routes in several steps. This will help expand the number of available routes and, as a result, help you find the most profitable routes! 212 | 213 | 214 | ``` js 215 | const pagesNum = await cli.routesPages(); // cache me! 216 | const baseParams = { 217 | fromChainId: 1, 218 | fromTokenAddress: '0x0000000000000000000000000000000000000000', 219 | fromAmount: Math.pow(10, 18), 220 | toChainId: 56, 221 | toTokenAddress: '0x0000000000000000000000000000000000000000', 222 | fromAddress: '0x856cc59aaE47997a1C8D5472Fc8dfef27821235d', // might be null 223 | multiTx: true, // !! 224 | limit: 1, 225 | }; 226 | const params = [...Array(pagesNum)].map( 227 | (_, i) => ({ 228 | ...baseParams, 229 | offset: i+1 230 | }) 231 | ); 232 | 233 | const routes = await Promise.allSettled( 234 | params.map(i => cli.getRoutes(i)) 235 | ); 236 | ``` 237 | 238 | Now all you need is to sequentially execute transactions for different numAction 239 | 240 | ``` js 241 | const actionCount = firstNonEmptyPage.routes[0].length; 242 | 243 | for (let numAction = 0; i < specified_len; i++) { 244 | tx = await cli.buildTx( 245 | { 246 | routeId, 247 | fromAddress, 248 | receiveAddress, 249 | numAction 250 | } 251 | ); 252 | } 253 | 254 | ``` 255 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@viaprotocol/router-sdk", 3 | "version": "1.0.7", 4 | "dependencies": { 5 | "@types/ws": "^8.5.3", 6 | "axios": "^0.26.1", 7 | "isomorphic-ws": "^5.0.0", 8 | "ws": "^8.8.0" 9 | }, 10 | "main": "dist/index.js", 11 | "types": "dist/index.d.ts", 12 | "files": [ 13 | "dist" 14 | ], 15 | "scripts": { 16 | "clean": "tsc --build --clean", 17 | "watch": "tsc -w -p ./tsconfig.json", 18 | "build": "yarn clean && tsc --project ./tsconfig.json", 19 | "prepare": "yarn clean && yarn build", 20 | "lint": "eslint --ext .tsx --ext .ts ./src", 21 | "lint:fix": "eslint --ext .tsx --ext .ts ./src --fix", 22 | "prettier:fix": "prettier --write ./src/." 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "git+https://github.com/viaprotocol/via-sdk-js.git" 27 | }, 28 | "devDependencies": { 29 | "@typescript-eslint/eslint-plugin": "^5.15.0", 30 | "@typescript-eslint/parser": "^5.15.0", 31 | "eslint": "^8.11.0", 32 | "eslint-plugin-import": "^2.25.4", 33 | "prettier": "^2.6.0", 34 | "ts-node": "^10.8.1", 35 | "typescript": "^4.6.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Via.ts: -------------------------------------------------------------------------------- 1 | import axios, { AxiosInstance } from 'axios'; 2 | import IsoWebSocket from 'isomorphic-ws'; 3 | 4 | import { ViaError } from './errors'; 5 | import { 6 | ViaConfig, 7 | IGetRoutesRequestParams, 8 | IGetAllowanceStatus, 9 | IBuildApprovalTx, 10 | IBuildTx, 11 | IAllowance, 12 | IApprovalTx, 13 | IBuildTxResponse, 14 | IGetRoutesResponse, 15 | ICheckTxStatusRequest, 16 | ITxStatusResponse, 17 | IStartRoute, 18 | IStartRouteResponse, 19 | IStartAction, 20 | } from './types'; 21 | 22 | class Via { 23 | httpCli: AxiosInstance; 24 | apiKey: string; 25 | baseURL: string; 26 | 27 | constructor(config: ViaConfig) { 28 | this.baseURL = config.url || 'https://router-api.via.exchange'; 29 | this.httpCli = axios.create({ 30 | baseURL: this.baseURL, 31 | timeout: config.timeout || 30 * 1000, 32 | }); 33 | this.apiKey = config.apiKey; 34 | } 35 | 36 | getRoutesViaWs(params: IGetRoutesRequestParams) { 37 | const buildURLQuery = (obj: IGetRoutesRequestParams) => 38 | Object.entries(obj) 39 | .map((pair) => pair.map(encodeURIComponent).join('=')) 40 | .join('&'); 41 | const urlParams = buildURLQuery(params); 42 | const urlInfo = new URL(this.baseURL); 43 | const wsProtocol = urlInfo.protocol === 'https:' ? 'wss:' : 'ws:'; 44 | const ws = new IsoWebSocket( 45 | `${wsProtocol}//${urlInfo.host}/api/v1/routes/ws?${urlParams}` 46 | ); 47 | return ws; 48 | } 49 | 50 | async getRoutes( 51 | params: IGetRoutesRequestParams 52 | ): Promise { 53 | try { 54 | const res = await this.httpCli.get('/api/v1/routes', { 55 | params: { apiKey: this.apiKey, ...params }, 56 | }); 57 | return res.data; 58 | } catch (e) { 59 | if (axios.isAxiosError(e)) { 60 | throw new ViaError(e.response?.status, e.response?.data?.message); 61 | } else { 62 | throw e; 63 | } 64 | } 65 | } 66 | 67 | async getAllowanceStatus(params: IGetAllowanceStatus): Promise { 68 | try { 69 | const res = await this.httpCli.get('/api/v2/approval/check-allowance', { 70 | params: { apiKey: this.apiKey, ...params }, 71 | }); 72 | return res.data; 73 | } catch (e) { 74 | if (axios.isAxiosError(e)) { 75 | throw new ViaError(e.response?.status, e.response?.data?.message); 76 | } else { 77 | throw e; 78 | } 79 | } 80 | } 81 | 82 | async buildApprovalTx(params: IBuildApprovalTx): Promise { 83 | try { 84 | const res = await this.httpCli.get('/api/v2/approval/build-tx', { 85 | params: { apiKey: this.apiKey, ...params }, 86 | }); 87 | return res.data; 88 | } catch (e) { 89 | if (axios.isAxiosError(e)) { 90 | throw new ViaError(e.response?.status, e.response?.data?.message); 91 | } else { 92 | throw e; 93 | } 94 | } 95 | } 96 | 97 | async buildTx(params: IBuildTx): Promise { 98 | try { 99 | const res = await this.httpCli.get('/api/v2/send/build-tx', { 100 | params: { apiKey: this.apiKey, ...params }, 101 | }); 102 | return res.data; 103 | } catch (e) { 104 | if (axios.isAxiosError(e)) { 105 | throw new ViaError(e.response?.status, e.response?.data?.message); 106 | } else { 107 | throw e; 108 | } 109 | } 110 | } 111 | 112 | async startRoute(params: IStartRoute): Promise { 113 | try { 114 | const res = await this.httpCli.post('/api/v1/start-route', {apiKey: this.apiKey, ...params}); 115 | return res.data; 116 | } catch (e) { 117 | if (axios.isAxiosError(e)) { 118 | throw new ViaError(e.response?.status, e.response?.data?.message); 119 | } else { 120 | throw e; 121 | } 122 | } 123 | } 124 | 125 | async startAction(params: IStartAction): Promise { 126 | try { 127 | const res = await this.httpCli.post('/api/v1/start-action', {apiKey: this.apiKey, ...params} ); 128 | } catch (e) { 129 | if (axios.isAxiosError(e)) { 130 | throw new ViaError(e.response?.status, e.response?.data?.message); 131 | } else { 132 | throw e; 133 | } 134 | } 135 | } 136 | 137 | async routesPages(): Promise { 138 | try { 139 | const res = await this.httpCli.get('/api/v1/routes/pages'); 140 | return res.data.pages; 141 | } catch (e) { 142 | if (axios.isAxiosError(e)) { 143 | throw new ViaError(e.response?.status, e.response?.data?.message); 144 | } else { 145 | throw e; 146 | } 147 | } 148 | } 149 | 150 | async checkTx(params: ICheckTxStatusRequest): Promise { 151 | try { 152 | const res = await this.httpCli.get('/api/v2/tx-status', { 153 | params: { apiKey: this.apiKey, ...params }, 154 | }); 155 | return res.data; 156 | } catch (e) { 157 | if (axios.isAxiosError(e)) { 158 | throw new ViaError(e.response?.status, e.response?.data?.message); 159 | } else { 160 | throw e; 161 | } 162 | } 163 | } 164 | } 165 | 166 | export default Via; 167 | -------------------------------------------------------------------------------- /src/errors.ts: -------------------------------------------------------------------------------- 1 | export class ViaError extends Error { 2 | code?: number; 3 | msg?: string; 4 | 5 | constructor(code?: number, msg?: string) { 6 | super(msg); 7 | this.code = code; 8 | this.msg = msg; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import Via from './Via'; 2 | 3 | export { Via }; 4 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface ViaConfig { 2 | apiKey: string; 3 | url?: string; 4 | timeout?: number; 5 | } 6 | 7 | export interface INetwork { 8 | chainId: number; 9 | key: string; 10 | logoURI: string; 11 | name: string; 12 | color?: string; 13 | } 14 | 15 | export interface IToken { 16 | chainId: number; 17 | address: string; 18 | decimals: number; 19 | logoURI: string; 20 | name: string; 21 | symbol: string; 22 | color: string; 23 | } 24 | 25 | export interface IGetRoutesRequestParams { 26 | fromChainId: number; 27 | fromTokenAddress: string; 28 | fromAmount: number; 29 | toChainId: number; 30 | toTokenAddress: string; 31 | fromAddress?: string; // sender user address 32 | toAddress?: string; // recipient user address 33 | limit?: number; 34 | offset?: number; 35 | multiTx: boolean; 36 | } 37 | 38 | export interface ICheckTxStatusRequest { 39 | actionUuid: string; 40 | } 41 | 42 | export interface IRouteFetchStatus { 43 | finished: number; 44 | all: number; 45 | } 46 | 47 | enum ITxStatus { 48 | success = 'success', 49 | user_tx_failed = 'user_tx_failed', 50 | pending = 'pending', 51 | to_be_started = 'to_be_started', 52 | recieve_tx_not_found = 'recieve_tx_not_found', 53 | null = 'null', 54 | } 55 | 56 | export interface ITxStatusData { 57 | started: string; 58 | finished: null | string; 59 | txHash: null | string; // txHash received 60 | actualAmount: null | string; // amount received 61 | } 62 | 63 | export interface IStartAction { 64 | actionUuid: string; 65 | initialTxHash: string; 66 | } 67 | 68 | export interface IStartRoute { 69 | fromAddress: string; 70 | toAddress: string; 71 | routeId: string; 72 | txHash: string 73 | } 74 | 75 | export interface IStartRouteResponse { 76 | routeUuid: string; 77 | actionUuids: string[]; 78 | } 79 | 80 | export interface ITxStatusResponse { 81 | event: ITxStatus; 82 | data: null | ITxStatusData; 83 | retry: null | number; // retry after in ms 84 | } 85 | 86 | export interface IGetAllowanceStatus { 87 | owner: string; 88 | routeId: string; 89 | numAction: number; 90 | } 91 | 92 | export interface IBuildApprovalTx { 93 | routeId: string; 94 | owner: string; 95 | numAction: number; 96 | } 97 | 98 | export interface IBuildTx { 99 | routeId: string; 100 | fromAddress: string; 101 | receiveAddress: string; 102 | numAction: number; 103 | } 104 | 105 | export interface IGetRoutesResponse { 106 | fromToken: IToken; 107 | toToken: IToken; 108 | fromTokenAmount: number; 109 | routes: IRoute[]; 110 | } 111 | 112 | export interface IFee { 113 | feeUsd: null | number; 114 | gas: null | number; 115 | gasFeeUsd: null | number; 116 | slippagePerc: null | number; 117 | time: null | string; 118 | totalLossUsd: null | string; 119 | } 120 | 121 | export interface IActionFeeInfo { 122 | gasActionUnits: bigint; 123 | gasActionApproveUnits: bigint; 124 | } 125 | 126 | export interface IAdditionalProviderFee { 127 | amount: bigint; 128 | token: IToken; 129 | } 130 | 131 | export interface IActionStepTool { 132 | name: string; 133 | logoURI: string; 134 | estimatedTime: number; 135 | } 136 | 137 | export interface IActionStep { 138 | type: string; 139 | tool: IActionStepTool; 140 | fromToken: IToken; 141 | toToken: IToken; 142 | fee: IFee; 143 | fromTokenAmount: number; 144 | toTokenAmount: number; 145 | } 146 | 147 | export interface IRouteAction { 148 | uuid: string; 149 | provider: number; 150 | fromToken: IToken; 151 | fromTokenAmount: number; 152 | toToken: IToken; 153 | toTokenAmount: number; 154 | steps: IActionStep[]; 155 | fee: IActionFeeInfo; 156 | additionalProviderFee?: IAdditionalProviderFee; 157 | allowanceValue?: string; 158 | } 159 | 160 | export interface IRoute { 161 | routeId: string; 162 | toTokenAmount: number; 163 | fee: IFee; 164 | actions: IRouteAction[]; 165 | active: boolean; 166 | slippage?: number; 167 | } 168 | 169 | export interface IAllowance { 170 | value: string; 171 | tokenAddress: string; 172 | } 173 | 174 | export interface IApprovalTx { 175 | from: string; 176 | data: string; 177 | to: string; 178 | } 179 | 180 | export interface IBuildTxResponse { 181 | to: string; 182 | data: string; 183 | value: number; 184 | gas: number; 185 | } 186 | -------------------------------------------------------------------------------- /tsconfig.d.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "emitDeclarationOnly": true, 5 | "stripInternal": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "declaration": true, 5 | "outDir": "dist", 6 | "esModuleInterop": true, 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "module": "commonjs", 11 | "moduleResolution": "node", 12 | "sourceMap": true, 13 | "rootDir": "src" 14 | }, 15 | "include": ["src"], 16 | "exclude": ["node_modules", "dist"] 17 | } 18 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cspotcode/source-map-support@^0.8.0": 6 | version "0.8.1" 7 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" 8 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 9 | dependencies: 10 | "@jridgewell/trace-mapping" "0.3.9" 11 | 12 | "@eslint/eslintrc@^1.2.1": 13 | version "1.2.1" 14 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" 15 | integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== 16 | dependencies: 17 | ajv "^6.12.4" 18 | debug "^4.3.2" 19 | espree "^9.3.1" 20 | globals "^13.9.0" 21 | ignore "^5.2.0" 22 | import-fresh "^3.2.1" 23 | js-yaml "^4.1.0" 24 | minimatch "^3.0.4" 25 | strip-json-comments "^3.1.1" 26 | 27 | "@humanwhocodes/config-array@^0.9.2": 28 | version "0.9.5" 29 | resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" 30 | integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== 31 | dependencies: 32 | "@humanwhocodes/object-schema" "^1.2.1" 33 | debug "^4.1.1" 34 | minimatch "^3.0.4" 35 | 36 | "@humanwhocodes/object-schema@^1.2.1": 37 | version "1.2.1" 38 | resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 39 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 40 | 41 | "@jridgewell/resolve-uri@^3.0.3": 42 | version "3.0.7" 43 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" 44 | integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== 45 | 46 | "@jridgewell/sourcemap-codec@^1.4.10": 47 | version "1.4.13" 48 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" 49 | integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== 50 | 51 | "@jridgewell/trace-mapping@0.3.9": 52 | version "0.3.9" 53 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" 54 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 55 | dependencies: 56 | "@jridgewell/resolve-uri" "^3.0.3" 57 | "@jridgewell/sourcemap-codec" "^1.4.10" 58 | 59 | "@nodelib/fs.scandir@2.1.5": 60 | version "2.1.5" 61 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 62 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 63 | dependencies: 64 | "@nodelib/fs.stat" "2.0.5" 65 | run-parallel "^1.1.9" 66 | 67 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 68 | version "2.0.5" 69 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 70 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 71 | 72 | "@nodelib/fs.walk@^1.2.3": 73 | version "1.2.8" 74 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 75 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 76 | dependencies: 77 | "@nodelib/fs.scandir" "2.1.5" 78 | fastq "^1.6.0" 79 | 80 | "@tsconfig/node10@^1.0.7": 81 | version "1.0.8" 82 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 83 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 84 | 85 | "@tsconfig/node12@^1.0.7": 86 | version "1.0.9" 87 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 88 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 89 | 90 | "@tsconfig/node14@^1.0.0": 91 | version "1.0.1" 92 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 93 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 94 | 95 | "@tsconfig/node16@^1.0.2": 96 | version "1.0.2" 97 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 98 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 99 | 100 | "@types/json-schema@^7.0.9": 101 | version "7.0.10" 102 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" 103 | integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== 104 | 105 | "@types/json5@^0.0.29": 106 | version "0.0.29" 107 | resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" 108 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 109 | 110 | "@types/node@*": 111 | version "18.0.3" 112 | resolved "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" 113 | integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== 114 | 115 | "@types/ws@^8.5.3": 116 | version "8.5.3" 117 | resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" 118 | integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== 119 | dependencies: 120 | "@types/node" "*" 121 | 122 | "@typescript-eslint/eslint-plugin@^5.15.0": 123 | version "5.15.0" 124 | resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz#c28ef7f2e688066db0b6a9d95fb74185c114fb9a" 125 | integrity sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA== 126 | dependencies: 127 | "@typescript-eslint/scope-manager" "5.15.0" 128 | "@typescript-eslint/type-utils" "5.15.0" 129 | "@typescript-eslint/utils" "5.15.0" 130 | debug "^4.3.2" 131 | functional-red-black-tree "^1.0.1" 132 | ignore "^5.1.8" 133 | regexpp "^3.2.0" 134 | semver "^7.3.5" 135 | tsutils "^3.21.0" 136 | 137 | "@typescript-eslint/parser@^5.15.0": 138 | version "5.15.0" 139 | resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz#95f603f8fe6eca7952a99bfeef9b85992972e728" 140 | integrity sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ== 141 | dependencies: 142 | "@typescript-eslint/scope-manager" "5.15.0" 143 | "@typescript-eslint/types" "5.15.0" 144 | "@typescript-eslint/typescript-estree" "5.15.0" 145 | debug "^4.3.2" 146 | 147 | "@typescript-eslint/scope-manager@5.15.0": 148 | version "5.15.0" 149 | resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz#d97afab5e0abf4018d1289bd711be21676cdd0ee" 150 | integrity sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg== 151 | dependencies: 152 | "@typescript-eslint/types" "5.15.0" 153 | "@typescript-eslint/visitor-keys" "5.15.0" 154 | 155 | "@typescript-eslint/type-utils@5.15.0": 156 | version "5.15.0" 157 | resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz#d2c02eb2bdf54d0a645ba3a173ceda78346cf248" 158 | integrity sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA== 159 | dependencies: 160 | "@typescript-eslint/utils" "5.15.0" 161 | debug "^4.3.2" 162 | tsutils "^3.21.0" 163 | 164 | "@typescript-eslint/types@5.15.0": 165 | version "5.15.0" 166 | resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" 167 | integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== 168 | 169 | "@typescript-eslint/typescript-estree@5.15.0": 170 | version "5.15.0" 171 | resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" 172 | integrity sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA== 173 | dependencies: 174 | "@typescript-eslint/types" "5.15.0" 175 | "@typescript-eslint/visitor-keys" "5.15.0" 176 | debug "^4.3.2" 177 | globby "^11.0.4" 178 | is-glob "^4.0.3" 179 | semver "^7.3.5" 180 | tsutils "^3.21.0" 181 | 182 | "@typescript-eslint/utils@5.15.0": 183 | version "5.15.0" 184 | resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz#468510a0974d3ced8342f37e6c662778c277f136" 185 | integrity sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA== 186 | dependencies: 187 | "@types/json-schema" "^7.0.9" 188 | "@typescript-eslint/scope-manager" "5.15.0" 189 | "@typescript-eslint/types" "5.15.0" 190 | "@typescript-eslint/typescript-estree" "5.15.0" 191 | eslint-scope "^5.1.1" 192 | eslint-utils "^3.0.0" 193 | 194 | "@typescript-eslint/visitor-keys@5.15.0": 195 | version "5.15.0" 196 | resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" 197 | integrity sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ== 198 | dependencies: 199 | "@typescript-eslint/types" "5.15.0" 200 | eslint-visitor-keys "^3.0.0" 201 | 202 | acorn-jsx@^5.3.1: 203 | version "5.3.2" 204 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 205 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 206 | 207 | acorn-walk@^8.1.1: 208 | version "8.2.0" 209 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 210 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 211 | 212 | acorn@^8.4.1: 213 | version "8.7.1" 214 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" 215 | integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== 216 | 217 | acorn@^8.7.0: 218 | version "8.7.0" 219 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 220 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 221 | 222 | ajv@^6.10.0, ajv@^6.12.4: 223 | version "6.12.6" 224 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 225 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 226 | dependencies: 227 | fast-deep-equal "^3.1.1" 228 | fast-json-stable-stringify "^2.0.0" 229 | json-schema-traverse "^0.4.1" 230 | uri-js "^4.2.2" 231 | 232 | ansi-regex@^5.0.1: 233 | version "5.0.1" 234 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 235 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 236 | 237 | ansi-styles@^4.1.0: 238 | version "4.3.0" 239 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 240 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 241 | dependencies: 242 | color-convert "^2.0.1" 243 | 244 | arg@^4.1.0: 245 | version "4.1.3" 246 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 247 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 248 | 249 | argparse@^2.0.1: 250 | version "2.0.1" 251 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 252 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 253 | 254 | array-includes@^3.1.4: 255 | version "3.1.4" 256 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz" 257 | integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== 258 | dependencies: 259 | call-bind "^1.0.2" 260 | define-properties "^1.1.3" 261 | es-abstract "^1.19.1" 262 | get-intrinsic "^1.1.1" 263 | is-string "^1.0.7" 264 | 265 | array-union@^2.1.0: 266 | version "2.1.0" 267 | resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 268 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 269 | 270 | array.prototype.flat@^1.2.5: 271 | version "1.2.5" 272 | resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz" 273 | integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== 274 | dependencies: 275 | call-bind "^1.0.2" 276 | define-properties "^1.1.3" 277 | es-abstract "^1.19.0" 278 | 279 | axios@^0.26.1: 280 | version "0.26.1" 281 | resolved "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz" 282 | integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== 283 | dependencies: 284 | follow-redirects "^1.14.8" 285 | 286 | balanced-match@^1.0.0: 287 | version "1.0.2" 288 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 289 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 290 | 291 | brace-expansion@^1.1.7: 292 | version "1.1.11" 293 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 294 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 295 | dependencies: 296 | balanced-match "^1.0.0" 297 | concat-map "0.0.1" 298 | 299 | braces@^3.0.1: 300 | version "3.0.2" 301 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 302 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 303 | dependencies: 304 | fill-range "^7.0.1" 305 | 306 | call-bind@^1.0.0, call-bind@^1.0.2: 307 | version "1.0.2" 308 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" 309 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 310 | dependencies: 311 | function-bind "^1.1.1" 312 | get-intrinsic "^1.0.2" 313 | 314 | callsites@^3.0.0: 315 | version "3.1.0" 316 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 317 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 318 | 319 | chalk@^4.0.0: 320 | version "4.1.2" 321 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 322 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 323 | dependencies: 324 | ansi-styles "^4.1.0" 325 | supports-color "^7.1.0" 326 | 327 | color-convert@^2.0.1: 328 | version "2.0.1" 329 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 330 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 331 | dependencies: 332 | color-name "~1.1.4" 333 | 334 | color-name@~1.1.4: 335 | version "1.1.4" 336 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 337 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 338 | 339 | concat-map@0.0.1: 340 | version "0.0.1" 341 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 342 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 343 | 344 | create-require@^1.1.0: 345 | version "1.1.1" 346 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 347 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 348 | 349 | cross-spawn@^7.0.2: 350 | version "7.0.3" 351 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 352 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 353 | dependencies: 354 | path-key "^3.1.0" 355 | shebang-command "^2.0.0" 356 | which "^2.0.1" 357 | 358 | debug@^2.6.9: 359 | version "2.6.9" 360 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 361 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 362 | dependencies: 363 | ms "2.0.0" 364 | 365 | debug@^3.2.7: 366 | version "3.2.7" 367 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" 368 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 369 | dependencies: 370 | ms "^2.1.1" 371 | 372 | debug@^4.1.1, debug@^4.3.2: 373 | version "4.3.3" 374 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 375 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 376 | dependencies: 377 | ms "2.1.2" 378 | 379 | deep-is@^0.1.3: 380 | version "0.1.4" 381 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 382 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 383 | 384 | define-properties@^1.1.3: 385 | version "1.1.3" 386 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" 387 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 388 | dependencies: 389 | object-keys "^1.0.12" 390 | 391 | diff@^4.0.1: 392 | version "4.0.2" 393 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 394 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 395 | 396 | dir-glob@^3.0.1: 397 | version "3.0.1" 398 | resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 399 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 400 | dependencies: 401 | path-type "^4.0.0" 402 | 403 | doctrine@^2.1.0: 404 | version "2.1.0" 405 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" 406 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 407 | dependencies: 408 | esutils "^2.0.2" 409 | 410 | doctrine@^3.0.0: 411 | version "3.0.0" 412 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 413 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 414 | dependencies: 415 | esutils "^2.0.2" 416 | 417 | es-abstract@^1.19.0, es-abstract@^1.19.1: 418 | version "1.19.1" 419 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" 420 | integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== 421 | dependencies: 422 | call-bind "^1.0.2" 423 | es-to-primitive "^1.2.1" 424 | function-bind "^1.1.1" 425 | get-intrinsic "^1.1.1" 426 | get-symbol-description "^1.0.0" 427 | has "^1.0.3" 428 | has-symbols "^1.0.2" 429 | internal-slot "^1.0.3" 430 | is-callable "^1.2.4" 431 | is-negative-zero "^2.0.1" 432 | is-regex "^1.1.4" 433 | is-shared-array-buffer "^1.0.1" 434 | is-string "^1.0.7" 435 | is-weakref "^1.0.1" 436 | object-inspect "^1.11.0" 437 | object-keys "^1.1.1" 438 | object.assign "^4.1.2" 439 | string.prototype.trimend "^1.0.4" 440 | string.prototype.trimstart "^1.0.4" 441 | unbox-primitive "^1.0.1" 442 | 443 | es-to-primitive@^1.2.1: 444 | version "1.2.1" 445 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 446 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 447 | dependencies: 448 | is-callable "^1.1.4" 449 | is-date-object "^1.0.1" 450 | is-symbol "^1.0.2" 451 | 452 | escape-string-regexp@^4.0.0: 453 | version "4.0.0" 454 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 455 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 456 | 457 | eslint-import-resolver-node@^0.3.6: 458 | version "0.3.6" 459 | resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" 460 | integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== 461 | dependencies: 462 | debug "^3.2.7" 463 | resolve "^1.20.0" 464 | 465 | eslint-module-utils@^2.7.2: 466 | version "2.7.3" 467 | resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" 468 | integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== 469 | dependencies: 470 | debug "^3.2.7" 471 | find-up "^2.1.0" 472 | 473 | eslint-plugin-import@^2.25.4: 474 | version "2.25.4" 475 | resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" 476 | integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== 477 | dependencies: 478 | array-includes "^3.1.4" 479 | array.prototype.flat "^1.2.5" 480 | debug "^2.6.9" 481 | doctrine "^2.1.0" 482 | eslint-import-resolver-node "^0.3.6" 483 | eslint-module-utils "^2.7.2" 484 | has "^1.0.3" 485 | is-core-module "^2.8.0" 486 | is-glob "^4.0.3" 487 | minimatch "^3.0.4" 488 | object.values "^1.1.5" 489 | resolve "^1.20.0" 490 | tsconfig-paths "^3.12.0" 491 | 492 | eslint-scope@^5.1.1: 493 | version "5.1.1" 494 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 495 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 496 | dependencies: 497 | esrecurse "^4.3.0" 498 | estraverse "^4.1.1" 499 | 500 | eslint-scope@^7.1.1: 501 | version "7.1.1" 502 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" 503 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== 504 | dependencies: 505 | esrecurse "^4.3.0" 506 | estraverse "^5.2.0" 507 | 508 | eslint-utils@^3.0.0: 509 | version "3.0.0" 510 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 511 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== 512 | dependencies: 513 | eslint-visitor-keys "^2.0.0" 514 | 515 | eslint-visitor-keys@^2.0.0: 516 | version "2.1.0" 517 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 518 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 519 | 520 | eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: 521 | version "3.3.0" 522 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" 523 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== 524 | 525 | eslint@^8.11.0: 526 | version "8.11.0" 527 | resolved "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" 528 | integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== 529 | dependencies: 530 | "@eslint/eslintrc" "^1.2.1" 531 | "@humanwhocodes/config-array" "^0.9.2" 532 | ajv "^6.10.0" 533 | chalk "^4.0.0" 534 | cross-spawn "^7.0.2" 535 | debug "^4.3.2" 536 | doctrine "^3.0.0" 537 | escape-string-regexp "^4.0.0" 538 | eslint-scope "^7.1.1" 539 | eslint-utils "^3.0.0" 540 | eslint-visitor-keys "^3.3.0" 541 | espree "^9.3.1" 542 | esquery "^1.4.0" 543 | esutils "^2.0.2" 544 | fast-deep-equal "^3.1.3" 545 | file-entry-cache "^6.0.1" 546 | functional-red-black-tree "^1.0.1" 547 | glob-parent "^6.0.1" 548 | globals "^13.6.0" 549 | ignore "^5.2.0" 550 | import-fresh "^3.0.0" 551 | imurmurhash "^0.1.4" 552 | is-glob "^4.0.0" 553 | js-yaml "^4.1.0" 554 | json-stable-stringify-without-jsonify "^1.0.1" 555 | levn "^0.4.1" 556 | lodash.merge "^4.6.2" 557 | minimatch "^3.0.4" 558 | natural-compare "^1.4.0" 559 | optionator "^0.9.1" 560 | regexpp "^3.2.0" 561 | strip-ansi "^6.0.1" 562 | strip-json-comments "^3.1.0" 563 | text-table "^0.2.0" 564 | v8-compile-cache "^2.0.3" 565 | 566 | espree@^9.3.1: 567 | version "9.3.1" 568 | resolved "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" 569 | integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== 570 | dependencies: 571 | acorn "^8.7.0" 572 | acorn-jsx "^5.3.1" 573 | eslint-visitor-keys "^3.3.0" 574 | 575 | esquery@^1.4.0: 576 | version "1.4.0" 577 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 578 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 579 | dependencies: 580 | estraverse "^5.1.0" 581 | 582 | esrecurse@^4.3.0: 583 | version "4.3.0" 584 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 585 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 586 | dependencies: 587 | estraverse "^5.2.0" 588 | 589 | estraverse@^4.1.1: 590 | version "4.3.0" 591 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 592 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 593 | 594 | estraverse@^5.1.0, estraverse@^5.2.0: 595 | version "5.3.0" 596 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 597 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 598 | 599 | esutils@^2.0.2: 600 | version "2.0.3" 601 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 602 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 603 | 604 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 605 | version "3.1.3" 606 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 607 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 608 | 609 | fast-glob@^3.2.9: 610 | version "3.2.11" 611 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 612 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 613 | dependencies: 614 | "@nodelib/fs.stat" "^2.0.2" 615 | "@nodelib/fs.walk" "^1.2.3" 616 | glob-parent "^5.1.2" 617 | merge2 "^1.3.0" 618 | micromatch "^4.0.4" 619 | 620 | fast-json-stable-stringify@^2.0.0: 621 | version "2.1.0" 622 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 623 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 624 | 625 | fast-levenshtein@^2.0.6: 626 | version "2.0.6" 627 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 628 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 629 | 630 | fastq@^1.6.0: 631 | version "1.13.0" 632 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 633 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 634 | dependencies: 635 | reusify "^1.0.4" 636 | 637 | file-entry-cache@^6.0.1: 638 | version "6.0.1" 639 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 640 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 641 | dependencies: 642 | flat-cache "^3.0.4" 643 | 644 | fill-range@^7.0.1: 645 | version "7.0.1" 646 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 647 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 648 | dependencies: 649 | to-regex-range "^5.0.1" 650 | 651 | find-up@^2.1.0: 652 | version "2.1.0" 653 | resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" 654 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 655 | dependencies: 656 | locate-path "^2.0.0" 657 | 658 | flat-cache@^3.0.4: 659 | version "3.0.4" 660 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 661 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 662 | dependencies: 663 | flatted "^3.1.0" 664 | rimraf "^3.0.2" 665 | 666 | flatted@^3.1.0: 667 | version "3.2.5" 668 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" 669 | integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== 670 | 671 | follow-redirects@^1.14.8: 672 | version "1.14.9" 673 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" 674 | integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== 675 | 676 | fs.realpath@^1.0.0: 677 | version "1.0.0" 678 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 679 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 680 | 681 | function-bind@^1.1.1: 682 | version "1.1.1" 683 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 684 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 685 | 686 | functional-red-black-tree@^1.0.1: 687 | version "1.0.1" 688 | resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 689 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 690 | 691 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 692 | version "1.1.1" 693 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" 694 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 695 | dependencies: 696 | function-bind "^1.1.1" 697 | has "^1.0.3" 698 | has-symbols "^1.0.1" 699 | 700 | get-symbol-description@^1.0.0: 701 | version "1.0.0" 702 | resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" 703 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 704 | dependencies: 705 | call-bind "^1.0.2" 706 | get-intrinsic "^1.1.1" 707 | 708 | glob-parent@^5.1.2: 709 | version "5.1.2" 710 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 711 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 712 | dependencies: 713 | is-glob "^4.0.1" 714 | 715 | glob-parent@^6.0.1: 716 | version "6.0.2" 717 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 718 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 719 | dependencies: 720 | is-glob "^4.0.3" 721 | 722 | glob@^7.1.3: 723 | version "7.2.0" 724 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 725 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 726 | dependencies: 727 | fs.realpath "^1.0.0" 728 | inflight "^1.0.4" 729 | inherits "2" 730 | minimatch "^3.0.4" 731 | once "^1.3.0" 732 | path-is-absolute "^1.0.0" 733 | 734 | globals@^13.6.0, globals@^13.9.0: 735 | version "13.13.0" 736 | resolved "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" 737 | integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== 738 | dependencies: 739 | type-fest "^0.20.2" 740 | 741 | globby@^11.0.4: 742 | version "11.1.0" 743 | resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 744 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 745 | dependencies: 746 | array-union "^2.1.0" 747 | dir-glob "^3.0.1" 748 | fast-glob "^3.2.9" 749 | ignore "^5.2.0" 750 | merge2 "^1.4.1" 751 | slash "^3.0.0" 752 | 753 | has-bigints@^1.0.1: 754 | version "1.0.1" 755 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" 756 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 757 | 758 | has-flag@^4.0.0: 759 | version "4.0.0" 760 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 761 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 762 | 763 | has-symbols@^1.0.1, has-symbols@^1.0.2: 764 | version "1.0.3" 765 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" 766 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 767 | 768 | has-tostringtag@^1.0.0: 769 | version "1.0.0" 770 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 771 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 772 | dependencies: 773 | has-symbols "^1.0.2" 774 | 775 | has@^1.0.3: 776 | version "1.0.3" 777 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 778 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 779 | dependencies: 780 | function-bind "^1.1.1" 781 | 782 | ignore@^5.1.8, ignore@^5.2.0: 783 | version "5.2.0" 784 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 785 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 786 | 787 | import-fresh@^3.0.0, import-fresh@^3.2.1: 788 | version "3.3.0" 789 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 790 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 791 | dependencies: 792 | parent-module "^1.0.0" 793 | resolve-from "^4.0.0" 794 | 795 | imurmurhash@^0.1.4: 796 | version "0.1.4" 797 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 798 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 799 | 800 | inflight@^1.0.4: 801 | version "1.0.6" 802 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 803 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 804 | dependencies: 805 | once "^1.3.0" 806 | wrappy "1" 807 | 808 | inherits@2: 809 | version "2.0.4" 810 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 811 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 812 | 813 | internal-slot@^1.0.3: 814 | version "1.0.3" 815 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 816 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 817 | dependencies: 818 | get-intrinsic "^1.1.0" 819 | has "^1.0.3" 820 | side-channel "^1.0.4" 821 | 822 | is-bigint@^1.0.1: 823 | version "1.0.4" 824 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" 825 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 826 | dependencies: 827 | has-bigints "^1.0.1" 828 | 829 | is-boolean-object@^1.1.0: 830 | version "1.1.2" 831 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 832 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 833 | dependencies: 834 | call-bind "^1.0.2" 835 | has-tostringtag "^1.0.0" 836 | 837 | is-callable@^1.1.4, is-callable@^1.2.4: 838 | version "1.2.4" 839 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" 840 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== 841 | 842 | is-core-module@^2.8.0, is-core-module@^2.8.1: 843 | version "2.8.1" 844 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" 845 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== 846 | dependencies: 847 | has "^1.0.3" 848 | 849 | is-date-object@^1.0.1: 850 | version "1.0.5" 851 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" 852 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 853 | dependencies: 854 | has-tostringtag "^1.0.0" 855 | 856 | is-extglob@^2.1.1: 857 | version "2.1.1" 858 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 859 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 860 | 861 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 862 | version "4.0.3" 863 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 864 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 865 | dependencies: 866 | is-extglob "^2.1.1" 867 | 868 | is-negative-zero@^2.0.1: 869 | version "2.0.2" 870 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" 871 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 872 | 873 | is-number-object@^1.0.4: 874 | version "1.0.6" 875 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" 876 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== 877 | dependencies: 878 | has-tostringtag "^1.0.0" 879 | 880 | is-number@^7.0.0: 881 | version "7.0.0" 882 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 883 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 884 | 885 | is-regex@^1.1.4: 886 | version "1.1.4" 887 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" 888 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 889 | dependencies: 890 | call-bind "^1.0.2" 891 | has-tostringtag "^1.0.0" 892 | 893 | is-shared-array-buffer@^1.0.1: 894 | version "1.0.1" 895 | resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" 896 | integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== 897 | 898 | is-string@^1.0.5, is-string@^1.0.7: 899 | version "1.0.7" 900 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 901 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 902 | dependencies: 903 | has-tostringtag "^1.0.0" 904 | 905 | is-symbol@^1.0.2, is-symbol@^1.0.3: 906 | version "1.0.4" 907 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" 908 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 909 | dependencies: 910 | has-symbols "^1.0.2" 911 | 912 | is-weakref@^1.0.1: 913 | version "1.0.2" 914 | resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" 915 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 916 | dependencies: 917 | call-bind "^1.0.2" 918 | 919 | isexe@^2.0.0: 920 | version "2.0.0" 921 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 922 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 923 | 924 | isomorphic-ws@^5.0.0: 925 | version "5.0.0" 926 | resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" 927 | integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== 928 | 929 | js-yaml@^4.1.0: 930 | version "4.1.0" 931 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 932 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 933 | dependencies: 934 | argparse "^2.0.1" 935 | 936 | json-schema-traverse@^0.4.1: 937 | version "0.4.1" 938 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 939 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 940 | 941 | json-stable-stringify-without-jsonify@^1.0.1: 942 | version "1.0.1" 943 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 944 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 945 | 946 | json5@^1.0.1: 947 | version "1.0.1" 948 | resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" 949 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 950 | dependencies: 951 | minimist "^1.2.0" 952 | 953 | levn@^0.4.1: 954 | version "0.4.1" 955 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 956 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 957 | dependencies: 958 | prelude-ls "^1.2.1" 959 | type-check "~0.4.0" 960 | 961 | locate-path@^2.0.0: 962 | version "2.0.0" 963 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" 964 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 965 | dependencies: 966 | p-locate "^2.0.0" 967 | path-exists "^3.0.0" 968 | 969 | lodash.merge@^4.6.2: 970 | version "4.6.2" 971 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 972 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 973 | 974 | lru-cache@^6.0.0: 975 | version "6.0.0" 976 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 977 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 978 | dependencies: 979 | yallist "^4.0.0" 980 | 981 | make-error@^1.1.1: 982 | version "1.3.6" 983 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 984 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 985 | 986 | merge2@^1.3.0, merge2@^1.4.1: 987 | version "1.4.1" 988 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 989 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 990 | 991 | micromatch@^4.0.4: 992 | version "4.0.4" 993 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 994 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 995 | dependencies: 996 | braces "^3.0.1" 997 | picomatch "^2.2.3" 998 | 999 | minimatch@^3.0.4: 1000 | version "3.1.2" 1001 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1002 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1003 | dependencies: 1004 | brace-expansion "^1.1.7" 1005 | 1006 | minimist@^1.2.0: 1007 | version "1.2.5" 1008 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" 1009 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1010 | 1011 | ms@2.0.0: 1012 | version "2.0.0" 1013 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 1014 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1015 | 1016 | ms@2.1.2, ms@^2.1.1: 1017 | version "2.1.2" 1018 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 1019 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1020 | 1021 | natural-compare@^1.4.0: 1022 | version "1.4.0" 1023 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1024 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1025 | 1026 | object-inspect@^1.11.0, object-inspect@^1.9.0: 1027 | version "1.12.0" 1028 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" 1029 | integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== 1030 | 1031 | object-keys@^1.0.12, object-keys@^1.1.1: 1032 | version "1.1.1" 1033 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 1034 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1035 | 1036 | object.assign@^4.1.2: 1037 | version "4.1.2" 1038 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" 1039 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1040 | dependencies: 1041 | call-bind "^1.0.0" 1042 | define-properties "^1.1.3" 1043 | has-symbols "^1.0.1" 1044 | object-keys "^1.1.1" 1045 | 1046 | object.values@^1.1.5: 1047 | version "1.1.5" 1048 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" 1049 | integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== 1050 | dependencies: 1051 | call-bind "^1.0.2" 1052 | define-properties "^1.1.3" 1053 | es-abstract "^1.19.1" 1054 | 1055 | once@^1.3.0: 1056 | version "1.4.0" 1057 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1058 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1059 | dependencies: 1060 | wrappy "1" 1061 | 1062 | optionator@^0.9.1: 1063 | version "0.9.1" 1064 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1065 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1066 | dependencies: 1067 | deep-is "^0.1.3" 1068 | fast-levenshtein "^2.0.6" 1069 | levn "^0.4.1" 1070 | prelude-ls "^1.2.1" 1071 | type-check "^0.4.0" 1072 | word-wrap "^1.2.3" 1073 | 1074 | p-limit@^1.1.0: 1075 | version "1.3.0" 1076 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" 1077 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1078 | dependencies: 1079 | p-try "^1.0.0" 1080 | 1081 | p-locate@^2.0.0: 1082 | version "2.0.0" 1083 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" 1084 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1085 | dependencies: 1086 | p-limit "^1.1.0" 1087 | 1088 | p-try@^1.0.0: 1089 | version "1.0.0" 1090 | resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" 1091 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1092 | 1093 | parent-module@^1.0.0: 1094 | version "1.0.1" 1095 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1096 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1097 | dependencies: 1098 | callsites "^3.0.0" 1099 | 1100 | path-exists@^3.0.0: 1101 | version "3.0.0" 1102 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" 1103 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1104 | 1105 | path-is-absolute@^1.0.0: 1106 | version "1.0.1" 1107 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1108 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1109 | 1110 | path-key@^3.1.0: 1111 | version "3.1.1" 1112 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1113 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1114 | 1115 | path-parse@^1.0.7: 1116 | version "1.0.7" 1117 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 1118 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1119 | 1120 | path-type@^4.0.0: 1121 | version "4.0.0" 1122 | resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1123 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1124 | 1125 | picomatch@^2.2.3: 1126 | version "2.3.1" 1127 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1128 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1129 | 1130 | prelude-ls@^1.2.1: 1131 | version "1.2.1" 1132 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1133 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1134 | 1135 | prettier@^2.6.0: 1136 | version "2.6.0" 1137 | resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" 1138 | integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== 1139 | 1140 | punycode@^2.1.0: 1141 | version "2.1.1" 1142 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1143 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1144 | 1145 | queue-microtask@^1.2.2: 1146 | version "1.2.3" 1147 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1148 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1149 | 1150 | regexpp@^3.2.0: 1151 | version "3.2.0" 1152 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1153 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== 1154 | 1155 | resolve-from@^4.0.0: 1156 | version "4.0.0" 1157 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1158 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1159 | 1160 | resolve@^1.20.0: 1161 | version "1.22.0" 1162 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" 1163 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== 1164 | dependencies: 1165 | is-core-module "^2.8.1" 1166 | path-parse "^1.0.7" 1167 | supports-preserve-symlinks-flag "^1.0.0" 1168 | 1169 | reusify@^1.0.4: 1170 | version "1.0.4" 1171 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1172 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1173 | 1174 | rimraf@^3.0.2: 1175 | version "3.0.2" 1176 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1177 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1178 | dependencies: 1179 | glob "^7.1.3" 1180 | 1181 | run-parallel@^1.1.9: 1182 | version "1.2.0" 1183 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1184 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1185 | dependencies: 1186 | queue-microtask "^1.2.2" 1187 | 1188 | semver@^7.3.5: 1189 | version "7.3.5" 1190 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1191 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1192 | dependencies: 1193 | lru-cache "^6.0.0" 1194 | 1195 | shebang-command@^2.0.0: 1196 | version "2.0.0" 1197 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1198 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1199 | dependencies: 1200 | shebang-regex "^3.0.0" 1201 | 1202 | shebang-regex@^3.0.0: 1203 | version "3.0.0" 1204 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1205 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1206 | 1207 | side-channel@^1.0.4: 1208 | version "1.0.4" 1209 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 1210 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1211 | dependencies: 1212 | call-bind "^1.0.0" 1213 | get-intrinsic "^1.0.2" 1214 | object-inspect "^1.9.0" 1215 | 1216 | slash@^3.0.0: 1217 | version "3.0.0" 1218 | resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1219 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1220 | 1221 | string.prototype.trimend@^1.0.4: 1222 | version "1.0.4" 1223 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" 1224 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1225 | dependencies: 1226 | call-bind "^1.0.2" 1227 | define-properties "^1.1.3" 1228 | 1229 | string.prototype.trimstart@^1.0.4: 1230 | version "1.0.4" 1231 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" 1232 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1233 | dependencies: 1234 | call-bind "^1.0.2" 1235 | define-properties "^1.1.3" 1236 | 1237 | strip-ansi@^6.0.1: 1238 | version "6.0.1" 1239 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1240 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1241 | dependencies: 1242 | ansi-regex "^5.0.1" 1243 | 1244 | strip-bom@^3.0.0: 1245 | version "3.0.0" 1246 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" 1247 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1248 | 1249 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1250 | version "3.1.1" 1251 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1252 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1253 | 1254 | supports-color@^7.1.0: 1255 | version "7.2.0" 1256 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1257 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1258 | dependencies: 1259 | has-flag "^4.0.0" 1260 | 1261 | supports-preserve-symlinks-flag@^1.0.0: 1262 | version "1.0.0" 1263 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 1264 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1265 | 1266 | text-table@^0.2.0: 1267 | version "0.2.0" 1268 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1269 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1270 | 1271 | to-regex-range@^5.0.1: 1272 | version "5.0.1" 1273 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1274 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1275 | dependencies: 1276 | is-number "^7.0.0" 1277 | 1278 | ts-node@^10.8.1: 1279 | version "10.8.1" 1280 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.1.tgz#ea2bd3459011b52699d7e88daa55a45a1af4f066" 1281 | integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== 1282 | dependencies: 1283 | "@cspotcode/source-map-support" "^0.8.0" 1284 | "@tsconfig/node10" "^1.0.7" 1285 | "@tsconfig/node12" "^1.0.7" 1286 | "@tsconfig/node14" "^1.0.0" 1287 | "@tsconfig/node16" "^1.0.2" 1288 | acorn "^8.4.1" 1289 | acorn-walk "^8.1.1" 1290 | arg "^4.1.0" 1291 | create-require "^1.1.0" 1292 | diff "^4.0.1" 1293 | make-error "^1.1.1" 1294 | v8-compile-cache-lib "^3.0.1" 1295 | yn "3.1.1" 1296 | 1297 | tsconfig-paths@^3.12.0: 1298 | version "3.14.0" 1299 | resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" 1300 | integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== 1301 | dependencies: 1302 | "@types/json5" "^0.0.29" 1303 | json5 "^1.0.1" 1304 | minimist "^1.2.0" 1305 | strip-bom "^3.0.0" 1306 | 1307 | tslib@^1.8.1: 1308 | version "1.14.1" 1309 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1310 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1311 | 1312 | tsutils@^3.21.0: 1313 | version "3.21.0" 1314 | resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 1315 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 1316 | dependencies: 1317 | tslib "^1.8.1" 1318 | 1319 | type-check@^0.4.0, type-check@~0.4.0: 1320 | version "0.4.0" 1321 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1322 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1323 | dependencies: 1324 | prelude-ls "^1.2.1" 1325 | 1326 | type-fest@^0.20.2: 1327 | version "0.20.2" 1328 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1329 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1330 | 1331 | typescript@^4.6.2: 1332 | version "4.6.2" 1333 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" 1334 | integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== 1335 | 1336 | unbox-primitive@^1.0.1: 1337 | version "1.0.1" 1338 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" 1339 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1340 | dependencies: 1341 | function-bind "^1.1.1" 1342 | has-bigints "^1.0.1" 1343 | has-symbols "^1.0.2" 1344 | which-boxed-primitive "^1.0.2" 1345 | 1346 | uri-js@^4.2.2: 1347 | version "4.4.1" 1348 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1349 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1350 | dependencies: 1351 | punycode "^2.1.0" 1352 | 1353 | v8-compile-cache-lib@^3.0.1: 1354 | version "3.0.1" 1355 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" 1356 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 1357 | 1358 | v8-compile-cache@^2.0.3: 1359 | version "2.3.0" 1360 | resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1361 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1362 | 1363 | which-boxed-primitive@^1.0.2: 1364 | version "1.0.2" 1365 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 1366 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1367 | dependencies: 1368 | is-bigint "^1.0.1" 1369 | is-boolean-object "^1.1.0" 1370 | is-number-object "^1.0.4" 1371 | is-string "^1.0.5" 1372 | is-symbol "^1.0.3" 1373 | 1374 | which@^2.0.1: 1375 | version "2.0.2" 1376 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1377 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1378 | dependencies: 1379 | isexe "^2.0.0" 1380 | 1381 | word-wrap@^1.2.3: 1382 | version "1.2.3" 1383 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1384 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1385 | 1386 | wrappy@1: 1387 | version "1.0.2" 1388 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1389 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1390 | 1391 | ws@^8.8.0: 1392 | version "8.8.0" 1393 | resolved "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" 1394 | integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== 1395 | 1396 | yallist@^4.0.0: 1397 | version "4.0.0" 1398 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1399 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1400 | 1401 | yn@3.1.1: 1402 | version "3.1.1" 1403 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1404 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1405 | --------------------------------------------------------------------------------