diff --git a/.markdownlint.yaml b/.markdownlint.yaml index ff7d7cc..ee0ceb7 100644 --- a/.markdownlint.yaml +++ b/.markdownlint.yaml @@ -1 +1,2 @@ MD013: false +MD033: false diff --git a/README.md b/README.md index c1e67a0..279ca75 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ -# ᐸRepository nameᐳ +# nest-http-client -[![npm@latest](https://img.shields.io/npm/v/@byndyusoft/typescript-template/latest.svg)](https://www.npmjs.com/package/@byndyusoft/typescript-template) -[![test](https://github.com/Byndyusoft/node-typescript-template/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/Byndyusoft/node-typescript-template/actions/workflows/test.yaml) +[![npm@latest](https://img.shields.io/npm/v/@byndyusoft/nest-http-client/latest.svg)](https://www.npmjs.com/package/@byndyusoft/nest-http-client) +[![test](https://github.com/Byndyusoft/nest-http-client/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/Byndyusoft/nest-http-client/actions/workflows/test.yaml) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) -ᐸRepository descriptionᐳ +axios for NestJS + +## Comparison with `@nestjs/axios` + +- [Promises instead of Observables](https://github.com/nestjs/axios/issues/271) +- `axios` dependency [is not pinning](https://github.com/nestjs/axios/pull/149#issuecomment-925764515), you must provide it by yourself (e.g. get it from `HttpService`) +- Allowing you use global `axios` with interceptors and different configs for various clients ## Requirements @@ -15,25 +21,161 @@ ## Install ```bash -npm install ᐸPackage nameᐳ +npm install @byndyusoft/nest-http-client @nestjs/common axios ``` or ```bash -yarn add ᐸPackage nameᐳ +yarn add @byndyusoft/nest-http-client @nestjs/common axios ``` ## Usage +
+1. Create module + ```typescript -// Usage example +import { + DynamicModuleHelper, + TRegisterAsyncOptions, +} from "@byndyusoft/nest-dynamic-module"; +import { + HttpClientModule, + IHttpClientOptions, +} from "@byndyusoft/nest-http-client"; +import { DynamicModule, Module } from "@nestjs/common"; +import urlJoin from "proper-url-join"; +import qs from "qs"; + +import { ClientBaseOptionsToken, ClientOptionsToken } from "./tokens"; +import { UsersClient } from "./usersClient"; + +@Module({ + imports: [ + HttpClientModule.registerAsync({ + inject: [ClientOptionsToken], + useFactory: (options: IHttpClientOptions) => options, + }), + ], + providers: [UsersClient], + exports: [UsersClient], +}) +export class ClientModule { + public static registerAsync( + options?: TRegisterAsyncOptions, + ): DynamicModule { + return DynamicModuleHelper.registerAsync( + { + module: ClientModule, + global: true, + providers: [ + { + provide: ClientOptionsToken, + inject: [ClientBaseOptionsToken], + useFactory: (baseOptions: IHttpClientOptions) => + ClientModule.clientOptionsFactory(baseOptions), + }, + ], + exports: [ClientOptionsToken], + }, + ClientBaseOptionsToken, + options, + ); + } + + private static clientOptionsFactory( + baseOptions: IHttpClientOptions, + ): IHttpClientOptions { + return { + ...baseOptions, + config: { + ...baseOptions.config, + baseURL: urlJoin(baseOptions.config?.baseURL as string, "/api/v1"), + paramsSerializer: (params) => + qs.stringify(params, { + skipNulls: true, + arrayFormat: "repeat", + }), + }, + }; + } +} ``` +
+ +
+2. Create client + +```typescript +import { HttpClient } from "@byndyusoft/nest-http-client"; +import { Injectable } from "@nestjs/common"; +import _ from "lodash"; +import { keys } from "ts-transformer-keys"; + +import { + CreateUserDto, + ListUsersQueryDto, + ListUsersResponseDto, + ParamsWithUserIdDto, + QueryWithUserVersionDto, + UpdateUserDto, + UserDto, +} from "ᐸDtosᐳ"; + +@Injectable() +export class UsersClient { + public constructor(private readonly httpClient: HttpClient) {} + + public createUser(request: CreateUserDto): Promise { + return this.httpClient.post("/users", request); + } + + public deleteUser( + request: ParamsWithUserIdDto & QueryWithUserVersionDto, + ): Promise { + return this.httpClient.delete( + `/users/${encodeURIComponent(request.userId)}`, + { + params: _.pick(request, keys()), + }, + ); + } + + public getUserById(request: ParamsWithUserIdDto): Promise { + return this.httpClient.get(`/users/${encodeURIComponent(request.userId)}`); + } + + public listUsers( + request?: Partial, + ): Promise { + return this.httpClient.get("/users", { + params: request, + }); + } + + public updateUser( + request: ParamsWithUserIdDto & QueryWithUserVersionDto & UpdateUserDto, + ): Promise { + return this.httpClient.patch( + `/users/${encodeURIComponent(request.userId)}`, + _.pick(request, keys()), + { + params: _.pick(request, keys()), + }, + ); + } +} +``` + +
+ ## Maintainers - [@Byndyusoft/owners](https://github.com/orgs/Byndyusoft/teams/owners) <> - [@Byndyusoft/team](https://github.com/orgs/Byndyusoft/teams/team) +- [@KillWolfVlad](https://github.com/KillWolfVlad) ## License diff --git a/package.json b/package.json index 9db4b41..5511bd8 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "@byndyusoft/typescript-template", + "name": "@byndyusoft/nest-http-client", "version": "0.0.0-development", - "description": "Base template for TypeScript packages", - "homepage": "https://github.com/Byndyusoft/node-typescript-template#readme", + "description": "axios for NestJS", + "homepage": "https://github.com/Byndyusoft/nest-http-client#readme", "bugs": { - "url": "https://github.com/Byndyusoft/node-typescript-template/issues" + "url": "https://github.com/Byndyusoft/nest-http-client/issues" }, "repository": { "type": "git", - "url": "https://github.com/Byndyusoft/node-typescript-template.git" + "url": "https://github.com/Byndyusoft/nest-http-client.git" }, "license": "Apache-2.0", "author": "Byndyusoft", @@ -24,6 +24,7 @@ "!**/*spec.ts" ], "scripts": { + "_test:cov": "jest --coverage", "prebuild": "shx rm -rf ./dist", "build": "tsc --project ./tsconfig.build.json", "postinstall": "husky install && ts-patch install", @@ -37,8 +38,7 @@ "lint:prettier:fix": "prettier --ignore-path ./.gitignore --write \"./**/*.{ts,js,json,yaml,yml,md}\"", "prepublishOnly": "pinst --disable", "postpublish": "pinst --enable", - "test": "jest", - "test:cov": "jest --coverage" + "test": "jest" }, "jest": { "collectCoverageFrom": [ @@ -75,6 +75,8 @@ } }, "dependencies": { + "@byndyusoft/nest-dynamic-module": "^1.0.0", + "deepmerge": "^4.2.2", "tslib": "^2.4.0" }, "devDependencies": { @@ -82,9 +84,11 @@ "@byndyusoft/tsconfig": "^1.1.0", "@commitlint/cli": "^17.0.2", "@commitlint/config-conventional": "^17.0.2", - "@types/jest": "^28.1.0", - "@types/node": "^17.0.38", - "eslint": "^8.16.0", + "@nestjs/common": "^8.4.6", + "@types/jest": "^28.1.1", + "@types/node": "^17.0.40", + "axios": "^0.27.2", + "eslint": "^8.17.0", "husky": "^8.0.1", "jest": "^28.1.0", "jest-extended": "^2.0.0", @@ -95,11 +99,20 @@ "prettier-plugin-packagejson": "^2.2.18", "semantic-release": "^19.0.2", "shx": "^0.3.4", - "ts-jest": "^28.0.3", + "ts-jest": "^28.0.4", "ts-patch": "^2.0.1", - "typescript": "^4.7.2", + "typescript": "^4.7.3", "typescript-transform-paths": "^3.3.1" }, + "peerDependencies": { + "@nestjs/common": "^8.4.6", + "axios": "^0.27.2" + }, + "peerDependenciesMeta": { + "axios": { + "optional": true + } + }, "engines": { "node": ">=14" }, diff --git a/src/__tests__/helloWorldService.spec.ts b/src/__tests__/helloWorldService.spec.ts deleted file mode 100644 index 52e5de2..0000000 --- a/src/__tests__/helloWorldService.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2021 Byndyusoft - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { HelloWorldService } from "~/src"; - -describe("HelloWorldService", () => { - let helloWorldService: HelloWorldService; - - beforeEach(() => { - helloWorldService = new HelloWorldService(); - }); - - it("must return hello world message", () => { - expect(helloWorldService.getHelloWorldMessage()).toEqualCaseInsensitive( - "hello world!", - ); - }); -}); diff --git a/src/httpClient.ts b/src/httpClient.ts new file mode 100644 index 0000000..398fe51 --- /dev/null +++ b/src/httpClient.ts @@ -0,0 +1,90 @@ +/* + * Copyright 2022 Byndyusoft + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any */ + +import { Injectable } from "@nestjs/common"; +import { AxiosRequestConfig } from "axios"; + +import { HttpCoreClient } from "./httpCoreClient"; + +@Injectable() +export class HttpClient { + public constructor(private readonly httpCoreClient: HttpCoreClient) {} + + public async delete( + url: string, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.delete(url, config); + + return response.data; + } + + public async get( + url: string, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.get(url, config); + + return response.data; + } + + public async head( + url: string, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.head(url, config); + + return response.data; + } + + public async patch( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.patch(url, data, config); + + return response.data; + } + + public async post( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.post(url, data, config); + + return response.data; + } + + public async put( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise { + const response = await this.httpCoreClient.put(url, data, config); + + return response.data; + } + + public async request(config: AxiosRequestConfig): Promise { + const response = await this.httpCoreClient.request(config); + + return response.data; + } +} diff --git a/src/httpClientModule.ts b/src/httpClientModule.ts new file mode 100644 index 0000000..1985f6e --- /dev/null +++ b/src/httpClientModule.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2022 Byndyusoft + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + DynamicModuleHelper, + TRegisterAsyncOptions, +} from "@byndyusoft/nest-dynamic-module"; +import { DynamicModule, Module } from "@nestjs/common"; + +import { HttpClient } from "./httpClient"; +import { IHttpClientOptions } from "./httpClientOptionsInterface"; +import { HttpClientOptionsToken } from "./httpClientOptionsToken"; +import { HttpCoreClient } from "./httpCoreClient"; + +@Module({ + providers: [HttpCoreClient, HttpClient], + exports: [HttpCoreClient, HttpClient], +}) +export class HttpClientModule { + public static registerAsync( + options?: TRegisterAsyncOptions, + ): DynamicModule { + return DynamicModuleHelper.registerAsync( + { + module: HttpClientModule, + }, + HttpClientOptionsToken, + options, + ); + } +} diff --git a/src/helloWorldService.ts b/src/httpClientOptionsInterface.ts similarity index 73% rename from src/helloWorldService.ts rename to src/httpClientOptionsInterface.ts index 1738b19..db3cb5f 100644 --- a/src/helloWorldService.ts +++ b/src/httpClientOptionsInterface.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021 Byndyusoft + * Copyright 2022 Byndyusoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,10 @@ * limitations under the License. */ -export class HelloWorldService { - public getHelloWorldMessage(): string { - return "Hello World!"; - } +import { AxiosInstance, AxiosRequestConfig } from "axios"; + +export interface IHttpClientOptions { + readonly axios: AxiosInstance; + + readonly config?: AxiosRequestConfig; } diff --git a/index.ts b/src/httpClientOptionsToken.ts similarity index 84% rename from index.ts rename to src/httpClientOptionsToken.ts index d9f93d6..65ae66f 100644 --- a/index.ts +++ b/src/httpClientOptionsToken.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021 Byndyusoft + * Copyright 2022 Byndyusoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,4 +14,4 @@ * limitations under the License. */ -export * from "./src"; +export const HttpClientOptionsToken = Symbol("HttpClientOptionsToken"); diff --git a/src/httpCoreClient.ts b/src/httpCoreClient.ts new file mode 100644 index 0000000..1df2c14 --- /dev/null +++ b/src/httpCoreClient.ts @@ -0,0 +1,93 @@ +/* + * Copyright 2022 Byndyusoft + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any */ + +import { Inject, Injectable } from "@nestjs/common"; +import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios"; +import deepMerge from "deepmerge"; + +import { IHttpClientOptions } from "./httpClientOptionsInterface"; +import { HttpClientOptionsToken } from "./httpClientOptionsToken"; + +@Injectable() +export class HttpCoreClient { + private readonly axios: AxiosInstance; + private readonly config: AxiosRequestConfig; + + public constructor( + @Inject(HttpClientOptionsToken) + options: IHttpClientOptions, + ) { + this.axios = options.axios; + this.config = options.config ?? {}; + } + + public delete( + url: string, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.delete(url, this.mergeConfigs(config)); + } + + public get( + url: string, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.get(url, this.mergeConfigs(config)); + } + + public head( + url: string, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.head(url, this.mergeConfigs(config)); + } + + public patch( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.patch(url, data, this.mergeConfigs(config)); + } + + public post( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.post(url, data, this.mergeConfigs(config)); + } + + public put( + url: string, + data?: any, + config?: AxiosRequestConfig, + ): Promise> { + return this.axios.put(url, data, this.mergeConfigs(config)); + } + + public request( + config: AxiosRequestConfig, + ): Promise> { + return this.axios.request(this.mergeConfigs(config)); + } + + private mergeConfigs(config: AxiosRequestConfig = {}): AxiosRequestConfig { + return deepMerge(this.config, config); + } +} diff --git a/src/index.ts b/src/index.ts index 354bc98..c26c65c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021 Byndyusoft + * Copyright 2022 Byndyusoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,4 +14,8 @@ * limitations under the License. */ -export * from "./helloWorldService"; +export * from "./httpClient"; +export * from "./httpClientModule"; +export * from "./httpClientOptionsInterface"; +export * from "./httpClientOptionsToken"; +export * from "./httpCoreClient"; diff --git a/test/expect.d.ts b/test/expect.d.ts index 62adf3a..bbd83ae 100644 --- a/test/expect.d.ts +++ b/test/expect.d.ts @@ -1,5 +1,5 @@ /* - * Copyright 2021 Byndyusoft + * Copyright 2022 Byndyusoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/yarn.lock b/yarn.lock index ad98eec..9d96dd3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -325,6 +325,13 @@ eslint-plugin-unicorn "^42.0.0" pkg-dir "^5.0.0" +"@byndyusoft/nest-dynamic-module@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@byndyusoft/nest-dynamic-module/-/nest-dynamic-module-1.0.0.tgz#e72663cd3bc9f5bb88261a0b674ce239f7affcbd" + integrity sha512-hz120JkBVQb0kx58B/rH33RPj7lYre9zSoJDqGO1wdBNMGacgT/wCqAWzpr/rNbkpaZvgqktusEo4O0A8W/4wg== + dependencies: + tslib "^2.3.1" + "@byndyusoft/tsconfig@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@byndyusoft/tsconfig/-/tsconfig-1.1.0.tgz#bc2cf2bf5938db28514677cdf4220e41a5115bb2" @@ -794,6 +801,16 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@nestjs/common@^8.4.6": + version "8.4.6" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-8.4.6.tgz#e2858c230371eeb5ccf7547d5b9434a2096da835" + integrity sha512-INp1ERDrLiQ4GwRc3zotTwBLZm2sIwcJwnBE2yXqsth17KijmoVmY8UB5Tares0IlwjsqlRFWkCX8uWE5rzbSA== + dependencies: + axios "0.27.2" + iterare "1.2.1" + tslib "2.4.0" + uuid "8.3.2" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1306,10 +1323,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.0.tgz#6107d7f8cf46d994e4de23e11f873d61bafe5573" - integrity sha512-ITfF6JJIl9zbEi2k6NmhNE/BiDqfsI/ceqfvdaWaPbcrCpYyyRq4KtDQIWh6vQUru6SqwppODiom/Zhid+np6A== +"@types/jest@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.1.tgz#8c9ba63702a11f8c386ee211280e8b68cb093cd1" + integrity sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA== dependencies: jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" @@ -1334,10 +1351,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node@*", "@types/node@>=12", "@types/node@^17.0.38": - version "17.0.38" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.38.tgz#f8bb07c371ccb1903f3752872c89f44006132947" - integrity sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g== +"@types/node@*", "@types/node@>=12", "@types/node@^17.0.40": + version "17.0.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.40.tgz#76ee88ae03650de8064a6cf75b8d95f9f4a16090" + integrity sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1693,11 +1710,24 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + axe-core@^4.3.5: version "4.4.2" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== +axios@0.27.2, axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -1884,9 +1914,9 @@ cacache@^15.2.0: unique-filename "^1.1.1" cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.0.tgz#87a6bae558a511c9cb2a13768073e240ca76153a" - integrity sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ== + version "16.1.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" + integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== dependencies: "@npmcli/fs" "^2.1.0" "@npmcli/move-file" "^2.0.0" @@ -2114,9 +2144,9 @@ color-support@^1.1.3: integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + version "2.0.17" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47" + integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g== columnify@^1.6.0: version "1.6.0" @@ -2126,6 +2156,13 @@ columnify@^1.6.0: strip-ansi "^6.0.1" wcwidth "^1.0.0" +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@^9.3.0: version "9.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" @@ -2369,6 +2406,11 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -2468,9 +2510,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.118: - version "1.4.144" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.144.tgz#9a5d1f41452ecc65b686d529ae919248da44f406" - integrity sha512-R3RV3rU1xWwFJlSClVWDvARaOk6VUO/FubHLodIASDB3Mc2dzuWvNdfOgH9bwHUTqT79u92qw60NWfwUdzAqdg== + version "1.4.146" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.146.tgz#fd20970c3def2f9e6b32ac13a2e7a6b64e1b0c48" + integrity sha512-4eWebzDLd+hYLm4csbyMU2EbBnqhwl8Oe9eF/7CBDPWcRxFmqzx4izxvHH+lofQxzieg8UbB8ZuzNTxeukzfTg== emittery@^0.10.2: version "0.10.2" @@ -2683,9 +2725,9 @@ eslint-plugin-jest-dom@^4.0.1: requireindex "^1.2.0" eslint-plugin-jest@^26.1.4: - version "26.4.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.4.6.tgz#9d8184c1ecf077722a20cc236c7e14f4e263606f" - integrity sha512-R3mq1IepnhtsukHQsWxdyKra3OVwYB+N4k8i45ndqSfr8p9KZV6G+EIUt1Z7hzAh4KlsbXG+nCTlNeGFLFLNvA== + version "26.5.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz#a3ceeaf4a757878342b8b00eca92379b246e5505" + integrity sha512-sICclUqJQnR1bFRZGLN2jnSVsYOsmPYYnroGCIMVSvTS3y8XR3yjzy1EcTQmk6typ5pRgyIWzbjqxK6cZHEZuQ== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -2835,10 +2877,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.16.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae" - integrity sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA== +eslint@^8.17.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.17.0.tgz#1cfc4b6b6912f77d24b874ca1506b0fe09328c21" + integrity sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" @@ -3086,6 +3128,20 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +follow-redirects@^1.14.9: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -3851,6 +3907,11 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterare@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" + integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== + java-properties@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" @@ -4346,9 +4407,9 @@ just-diff-apply@^5.2.0: integrity sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA== just-diff@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.2.tgz#68854c94280c37d28cb266d8f29bdd2cd29f003e" - integrity sha512-uGd6F+eIZ4T95EinP8ubINGkbEy3jrgBym+6LjW+ja1UG1WQIcEcQ6FLeyXtVJZglk+bj7fvEn+Cu2LBxkgiYQ== + version "5.0.3" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.3.tgz#4c9c514dec5526b25ab977590e3c39a0cf271554" + integrity sha512-a8p80xcpJ6sdurk5PxDKb4mav9MeKjA3zFKZpCWBIfvg8mznfnmb13MKZvlrwJ+Lhis0wM3uGAzE0ArhFHvIcg== kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" @@ -4685,9 +4746,9 @@ make-error@1.x, make-error@^1.1.1: integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.6: - version "10.1.6" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz#22b3ac3b077a7cfa80525af12e637e349f21d26e" - integrity sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w== + version "10.1.7" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76" + integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q== dependencies: agentkeepalive "^4.2.1" cacache "^16.1.0" @@ -4703,7 +4764,7 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.6: minipass-pipeline "^1.2.4" negotiator "^0.6.3" promise-retry "^2.0.1" - socks-proxy-agent "^6.1.1" + socks-proxy-agent "^7.0.0" ssri "^9.0.0" make-fetch-happen@^9.1.0: @@ -4841,6 +4902,18 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + mime@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" @@ -5227,9 +5300,9 @@ npm-user-validate@^1.0.1: integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== npm@^8.3.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-8.12.0.tgz#ea2a9c3ff6253a7e55ed2f5fe506fdfdc73f9ad1" - integrity sha512-tueYJV0gAEv3unoGBrA0Qb/qZ8wdR4GF+aZYM5VO9pBNJhxW+JJje/xFm+ZFRvFfi7eWjba5KYlC2n2yvQSaIg== + version "8.12.1" + resolved "https://registry.yarnpkg.com/npm/-/npm-8.12.1.tgz#624064fa7a8e0730223f6b2effe087e7127d567b" + integrity sha512-0yOlhfgu1UzP6UijnaFuIS2bES2H9D90EA5OVsf2iOZw7VBrjntXKEwKfCaFA6vMVWkCP8qnPwCxxPdnDVwlNw== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/arborist" "^5.0.4" @@ -6244,7 +6317,7 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: +socks-proxy-agent@^6.0.0: version "6.2.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== @@ -6253,6 +6326,15 @@ socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: debug "^4.3.3" socks "^2.6.2" +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + socks@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" @@ -6666,10 +6748,10 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.3.tgz#d1c47f167e56eef3989bb51afaf7fc1c87a04c52" - integrity sha512-HzgbEDQ2KgVtDmpXToqAcKTyGHdHsG23i/iUjfxji92G5eT09S1m9UHZd7csF0Bfgh9txM4JzwHnv7r1waFPlw== +ts-jest@^28.0.4: + version "28.0.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.4.tgz#0ab705a60fc4b9f3506f35e26edfa9e9c915c31b" + integrity sha512-S6uRDDdCJBvnZqyGjB4VCnwbQrbgdL8WPeP4jevVSpYsBaeGRQAIS08o3Svav2Ex+oXwLgJ/m7F24TNq62kA1A== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -6681,9 +6763,9 @@ ts-jest@^28.0.3: yargs-parser "^20.x" ts-node@^10.8.0: - version "10.8.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce" - integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA== + version "10.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.1.tgz#ea2bd3459011b52699d7e88daa55a45a1af4f066" + integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -6722,16 +6804,16 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" +tslib@2.4.0, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -6793,10 +6875,10 @@ typescript-transform-paths@^3.3.1: dependencies: minimatch "^3.0.4" -typescript@^4.6.4, typescript@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" - integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== +typescript@^4.6.4, typescript@^4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d" + integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -6804,9 +6886,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.15.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.5.tgz#2b10f9e0bfb3f5c15a8e8404393b6361eaeb33b3" - integrity sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ== + version "3.16.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.16.0.tgz#b778ba0831ca102c1d8ecbdec2d2bdfcc7353190" + integrity sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw== unbox-primitive@^1.0.2: version "1.0.2" @@ -6866,6 +6948,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"