diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c57be86..48f19a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ 14.x ] + node-version: [ 12.x ] steps: - uses: actions/checkout@v2 @@ -32,8 +32,8 @@ jobs: strategy: matrix: - os: [ubuntu-latest] - node-version: [ 12.x, 14.x, 15.x ] + os: [macos-latest] + node-version: [ 12.22.7 ] steps: - uses: actions/checkout@v2 @@ -67,7 +67,7 @@ jobs: strategy: matrix: - node-version: [ 14.x ] + node-version: [ 12.x ] steps: - uses: actions/checkout@v2 @@ -87,7 +87,7 @@ jobs: strategy: matrix: - node-version: [ 14.x ] + node-version: [ 12.x ] steps: - uses: actions/checkout@v2 diff --git a/.nvmrc b/.nvmrc index d2d8914..d8ff873 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12.18.2 \ No newline at end of file +12.22.7 diff --git a/README.md b/README.md index 45f395a..d757767 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,26 @@ A Node.js wrapper for libgphoto2 written in TypeScript. Useful for remote contro ## Features - - Camera autodetection, - - Take a picture/movie capture, - - Take a preview, - - Retrieve camera list, - - Select camera, - - Take a liveview from camera and get binary or base64 of each frame, or write it to file, - - Display info about your camera (summary, about, manual). +- Camera autodetection, +- Take a picture/movie capture, +- Take a preview, +- Retrieve camera list, +- Select camera, +- Take a liveview from camera and get binary or base64 of each frame, or write it to file, +- Display info about your camera (summary, about, manual). + +## Know issue + +This package isn't compatible with Node.js 13 and higher version. `@tsed/gphoto2-driver use` `ref-array-napi` which have a +bug with some node.js version related [here](https://github.com/node-ffi-napi/ref-napi/issues/47). + +The possible solutions would be: + +- Find a way not to use ref-array-napi to manipulate C++ Array in Node.js, +- That the author of the module finds a solution to correct the problem, +- Redevelop the driver directly with NAPI. + +Obviously any help is welcome to move the project forward :) ## Prerequisite diff --git a/jest.config.js b/base.jest.config.js similarity index 61% rename from jest.config.js rename to base.jest.config.js index 76b50f5..c380ec4 100644 --- a/jest.config.js +++ b/base.jest.config.js @@ -1,8 +1,11 @@ // For a detailed explanation regarding each configuration property, visit: // https://jestjs.io/docs/en/configuration.html +const {join} = require("path"); +const fixPath = require("normalize-path"); +const packageDir = join(__dirname, 'packages'); -module.exports = { - rootDir: __dirname, +module.exports = (rootDir) => ({ + rootDir: fixPath(rootDir), // Automatically clear mock calls and instances between every test clearMocks: true, @@ -10,25 +13,17 @@ module.exports = { collectCoverage: true, // An array of glob patterns indicating a set of files for which coverage information should be collected - collectCoverageFrom: ["packages/gphoto2-*/src/**"], + collectCoverageFrom: ["/src/**"], // The directory where Jest should output its coverage files coverageDirectory: "coverage", // moduleDirectories: ["node_modules", "packages"], // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: [], + coveragePathIgnorePatterns: ["index.ts", "GPUtils.ts", "__mock__"], moduleNameMapper: { - "^@tsed/gphoto-(.*)$": "/packages/gphoto-$1/src" - }, - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 17.22, - functions: 11.66, - lines: 23.32, - statements: 23.16 - } + "^@tsed/gphoto2-core$": fixPath(join(packageDir, "gphoto2-core/src")), + "^@tsed/gphoto2-driver$": fixPath(join(packageDir, "gphoto2-driver/src")), }, // An array of file extensions your modules use @@ -37,12 +32,6 @@ module.exports = { // The test environment that will be used for testing testEnvironment: "node", - // The glob patterns Jest uses to detect test files - testMatch: [ - "**/packages/*/src/**/__tests__/**/*.[jt]s?(x)", - "**/packages/*/src/**/?(*.)+(spec|test).[tj]s?(x)", - "**/packages/*/test/**/?(*.)+(spec|test).[tj]s?(x)" - ], // A map from regular expressions to paths to transformers transform: { "\\.(ts)$": "ts-jest" @@ -50,7 +39,7 @@ module.exports = { preset: "ts-jest", - modulePathIgnorePatterns: ["/packages/*/lib", "/dist"], + modulePathIgnorePatterns: ["/lib", "/dist"], // The paths to modules that run some code to configure or set up the testing environment before each test setupFiles: [] -}; +}); diff --git a/lerna.json b/lerna.json index 596ae47..3a55aa9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "npmClient": "npm", + "npmClient": "yarn", "useWorkspaces": true, "packages": [ "packages/*" diff --git a/package.json b/package.json index 9c1687c..dc18d08 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,9 @@ "scripts": { "configure": "monorepo ci configure", "test": "yarn test:lint && yarn test:coverage", - "test:unit": "cross-env NODE_ENV=test jest", - "test:coverage": "yarn test:unit", + "test:unit": "cross-env NODE_ENV=test lerna run test", + "test:coverage": "yarn test:unit && yarn coverage:merge", + "coverage:merge": "istanbul-merge --out coverage/coverage-final.json 'packages/*/coverage/coverage-final.json' && nyc report --temp-dir ./coverage --reporter clover --reporter lcov --report-dir ./coverage", "test:lint": "eslint packages --ext .ts", "test:lint:fix": "eslint packages --ext .ts --fix", "build": "monorepo build", @@ -41,30 +42,37 @@ "start:widgets": "lerna run start:widgets" }, "dependencies": { - "lerna": "4.0.0", - "@tsed/monorepo-utils": "1.17.0", - "@types/jest": "26.0.22", + "@types/ffi-napi": "4.0.4", + "@types/ref-napi": "3.0.4", + "@tsed/monorepo-utils": "1.19.3", + "@types/jest": "27.0.3", "@types/node": "16.11.11", - "@typescript-eslint/eslint-plugin": "^4.3.0", - "@typescript-eslint/parser": "^4.3.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", "cross-env": "7.0.3", - "eslint": "^7.10.0", + "eslint": "^8.4.0", "eslint-config-prettier": "8.3.0", - "eslint-plugin-jest": "24.3.5", - "eslint-plugin-prettier": "3.4.0", + "eslint-plugin-jest": "25.3.0", + "eslint-plugin-prettier": "4.0.0", "gflow": "5.1.2", "husky": "6.0.0", - "jest": "26.6.3", - "lint-staged": "10.5.4", - "prettier": "2.2.1", + "istanbul-merge": "^1.1.1", + "nyc": "^15.1.0", + "jest": "27.4.3", + "lerna": "4.0.0", + "lint-staged": "12.1.2", + "normalize-path": "^3.0.0", + "prettier": "2.5.1", "segfault-handler": "1.3.0", - "semantic-release": "17.4.2", - "ts-node": "9.1.1", - "ts-jest": "26.5.6", - "typescript": "4.2.4", - "tsconfig-paths": "3.9.0" + "semantic-release": "17.4.7", + "ts-jest": "27.0.7", + "ts-node": "10.4.0", + "tsconfig-paths": "3.12.0", + "typescript": "4.5.2" + }, + "resolutions": { + "ref-napi": "3.0.3" }, - "devDependencies": {}, "workspaces": { "packages": [ "packages/*" diff --git a/packages/examples/package.json b/packages/examples/package.json index 0f32d48..3de4c7c 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -15,8 +15,8 @@ "start:camera:autoselect": "ts-node -r tsconfig-paths/register src/camera-autoselect.ts", "start:camera:info": "ts-node -r tsconfig-paths/register src/camera-info.ts", "start:camera:list:autodetect": "ts-node -r tsconfig-paths/register src/camera-info.ts", - "start:camera:list:liveview": "ts-node -r tsconfig-paths/register src/camera-liveview.ts", - "start:camera:list:liveview:file": "ts-node -r tsconfig-paths/register src/list-liveview-file.ts", + "start:camera:list:liveview": "yarn ts-node -r tsconfig-paths/register src/camera-liveview.ts", + "start:camera:list:liveview:file": "yarn ts-node -r tsconfig-paths/register src/camera-liveview-file.ts", "start:camera:scenario": "ts-node -r tsconfig-paths/register src/camera-scenario.ts", "start:camera:scenario:async": "ts-node -r tsconfig-paths/register src/camera-scenario-async.ts", "start:port:list": "ts-node -r tsconfig-paths/register src/port-list.ts", diff --git a/packages/gphoto2-core/jest.config.js b/packages/gphoto2-core/jest.config.js index c5f5a5e..b216b81 100644 --- a/packages/gphoto2-core/jest.config.js +++ b/packages/gphoto2-core/jest.config.js @@ -1 +1,11 @@ -module.exports = require("../../jest.config"); +module.exports = { + ...require("../../base.jest.config")(__dirname), + coverageThreshold: { + global: { + branches: 91.89, + functions: 100, + lines: 100, + statements: 100 + } + } +} diff --git a/packages/gphoto2-core/package.json b/packages/gphoto2-core/package.json index 6e000e8..5a92f0e 100644 --- a/packages/gphoto2-core/package.json +++ b/packages/gphoto2-core/package.json @@ -2,8 +2,16 @@ "name": "@tsed/gphoto2-core", "version": "3.0.3", "description": "Node.js wrapper of C library libgphoto2 written in TypeScript", - "main": "lib/index.js", - "typings": "lib/index.d.js", + "private": false, + "source": "./src/index.ts", + "main": "./lib/cjs/index.js", + "typings": "./lib/types/index.d.ts", + "exports": { + "types": "./lib/types/index.d.ts", + "import": "./lib/esm/index.js", + "require": "./lib/cjs/index.js", + "default": "./lib/esm/index.js" + }, "author": "Romain Lenzotti", "contributors": [ "Alexander Gusez (https://github.com/goooseman)" @@ -25,26 +33,28 @@ "reflex" ], "scripts": { - "build": "tsc --build tsconfig.compile.json", - "build:doc": "tsc --build tsconfig.doc.json" + "build": "yarn run build:esm && yarn run build:cjs", + "build:cjs": "tsc --build tsconfig.compile.json", + "build:esm": "tsc --build tsconfig.compile.esm.json", + "test": "cross-env NODE_ENV=test jest" }, "dependencies": { - "@tsed/core": "6.92.0", - "@tsed/logger": "5.14.0", + "@tsed/core": "6.94.0", + "@tsed/logger": "6.0.0", "ffi-napi": "4.0.3", "ref-array-napi": "1.2.2", - "ref-napi": "3.0.2", + "ref-napi": "3.0.3", "ref-struct-napi": "1.1.1", - "tslib": "2.2.0" - }, - "devDependencies": { - "@types/ffi-napi": "2.4.3", - "@types/ref-napi": "^1.4.1" + "tslib": "2.3.1" }, + "devDependencies": {}, "directories": { "lib": "lib", "src": "src", "test": "test" }, - "peerDependencies": {} + "peerDependencies": { + "@types/ffi-napi": ">=4.0.4", + "@types/ref-napi": ">=3.0.4" + } } \ No newline at end of file diff --git a/packages/gphoto2-core/src/GPhoto2Driver.ts b/packages/gphoto2-core/src/GPhoto2Driver.ts index ebf7cce..5a19365 100644 --- a/packages/gphoto2-core/src/GPhoto2Driver.ts +++ b/packages/gphoto2-core/src/GPhoto2Driver.ts @@ -20,6 +20,7 @@ import { IGPWidgetModule } from "./modules"; import {getLibLocation} from "./utils/getLibLocation"; +import {checkCode, CheckCodeException} from "./utils/checkCode"; /** * @@ -34,7 +35,8 @@ export interface GPhoto2Driver IGPPortInfoModule {} // tslint:disable-next-line -export let GPhoto2Driver: GPhoto2Driver & Record; +export let GPhoto2Driver: GPhoto2Driver & Record & RunnableDriverMethods; + export const driverFunctions = { // CONTEXT ...GPContextModuleDescription, @@ -58,8 +60,14 @@ export const driverFunctions = { ...GPWidgetModuleDescription }; +export interface RunnableDriverMethods { + run(method: keyof GPhoto2Driver, ...args: any[]): T; + + runAsync(method: keyof GPhoto2Driver, ...args: any[]): Promise; +} + // istanbul ignore next -export function getGPhoto2Driver(): GPhoto2Driver & Record { +export function getGPhoto2Driver(): GPhoto2Driver & Record & RunnableDriverMethods { if (!GPhoto2Driver) { const libPath = getLibLocation(); @@ -71,7 +79,52 @@ export function getGPhoto2Driver(): GPhoto2Driver & Record { }); GPhoto2Driver = driver; + + driver.run = runMethod; + driver.runAsync = runAsyncMethod; } return GPhoto2Driver; } + +// istanbul ignore next +export function runMethod(method: keyof GPhoto2Driver, ...args: any[]): T { + const driver = getGPhoto2Driver(); + + if (!driver[method]) { + throw new Error(`GPhoto2Driver.${method} doesn't exists`); + } + + try { + const result = (driver[method] as any)(...args); + return checkCode(result, method); + } catch (er) { + if (er instanceof CheckCodeException) { + throw er; + } + + $log.error(`Error when calling method GPhoto2Driver.${method}. ${er.message}`, er.stack); + process.exit(-1); + } +} + +// istanbul ignore next +export async function runAsyncMethod(method: keyof GPhoto2Driver, ...args: any[]): Promise { + const driver = getGPhoto2Driver(); + + if (!driver[method]) { + throw new Error(`GPhoto2Driver.${method} doesn't exists`); + } + try { + const result = await (driver[method] as any)(...args); + + return checkCode(result, method); + } catch (er) { + if (er instanceof CheckCodeException) { + throw er; + } + + $log.error(`Error when calling method GPhoto2Driver.${method}. ${er.message}`, er.stack); + process.exit(-1); + } +} diff --git a/packages/gphoto2-core/src/index.ts b/packages/gphoto2-core/src/index.ts index 2ef31d9..869bc51 100644 --- a/packages/gphoto2-core/src/index.ts +++ b/packages/gphoto2-core/src/index.ts @@ -6,6 +6,5 @@ export * from "./types"; export * from "./GPhoto2Driver"; export * from "./utils/GPUtils"; export * from "./utils/GPPointer"; -export * from "./utils/GPPointerRef"; -getGPhoto2Driver(); +process.env.NODE_ENV !== "test" && getGPhoto2Driver(); diff --git a/packages/gphoto2-core/src/modules/GPAbilitiesListModule.ts b/packages/gphoto2-core/src/modules/GPAbilitiesListModule.ts index a7fb826..be26d05 100644 --- a/packages/gphoto2-core/src/modules/GPAbilitiesListModule.ts +++ b/packages/gphoto2-core/src/modules/GPAbilitiesListModule.ts @@ -1,15 +1,7 @@ -import {refType, types} from "ref-napi"; +import {Pointer, refType, types} from "ref-napi"; import ArrayType from "ref-array-napi"; import StructType from "ref-struct-napi"; -import { - GPCameraDriverStatus, - GPCameraFileOperation, - GPCameraFolderOperation, - GPCameraOperation, - GPDeviceType, - GPPortType, - PointerOf -} from "../types"; +import {GPCameraDriverStatus, GPCameraFileOperation, GPCameraFolderOperation, GPCameraOperation, GPDeviceType, GPPortType} from "../types"; import {GPCodes} from "../types/GPCodes"; import {StructBuffer} from "../types/StructBuffer"; import {PointerContext, RefContext} from "./GPContextModule"; @@ -19,7 +11,7 @@ import {PointerPortInfoList, RefPortInfoList} from "./GPPortInfoModule"; /** * */ -export type PointerAbilitiesList = PointerOf; +export type PointerAbilitiesList = Pointer; /** * */ @@ -30,12 +22,12 @@ export const RefAbilitiesList = refType("void"); * */ export type StructCameraAbilities = StructType & { - model: PointerOf & StructBuffer; - speed: PointerOf; + model: Pointer & StructBuffer; + speed: Pointer; port: GPPortType; status: GPCameraDriverStatus; - id: PointerOf & StructBuffer; - library: PointerOf & StructBuffer; + id: Pointer & StructBuffer; + library: Pointer & StructBuffer; operation: GPCameraOperation; file_operations: GPCameraFileOperation; folder_operations: GPCameraFolderOperation; @@ -52,7 +44,7 @@ export type StructCameraAbilities = StructType & { reserved6: number /**< reserved space \internal */; reserved7: number /**< reserved space \internal */; reserved8: number /**< reserved space \internal */; - ref(): PointerOf; + ref(): Pointer; }; /** * @@ -115,7 +107,7 @@ export interface IGPAbilitiesListModule { * */ - gp_abilities_list_new(abilitiesList: PointerOf): void; + gp_abilities_list_new(abilitiesList: Pointer): void; /** * Scans the system for camera drivers. diff --git a/packages/gphoto2-core/src/modules/GPCameraModule.ts b/packages/gphoto2-core/src/modules/GPCameraModule.ts index 7d18ee2..de8aa0a 100644 --- a/packages/gphoto2-core/src/modules/GPCameraModule.ts +++ b/packages/gphoto2-core/src/modules/GPCameraModule.ts @@ -1,7 +1,7 @@ -import {refType, types} from "ref-napi"; +import {Pointer, refType, types} from "ref-napi"; import ArrayType from "ref-array-napi"; import StructType from "ref-struct-napi"; -import {GPCameraCaptureType, GPCameraFileType, GPCodes, PointerOf} from "../types"; +import {GPCameraCaptureType, GPCameraFileType, GPCodes} from "../types"; import {StructBuffer} from "../types/StructBuffer"; import {StructCameraAbilities} from "./GPAbilitiesListModule"; import {PointerContext, RefContext} from "./GPContextModule"; @@ -12,7 +12,7 @@ import {PointerCameraWidget, RefCameraWidget} from "./GPWidgetModule"; /** * */ -export type PointerCamera = PointerOf; +export type PointerCamera = Pointer; /** * @@ -23,7 +23,7 @@ export const RefCamera = refType("void"); /** * */ -export type PointerCameraFile = PointerOf; +export type PointerCameraFile = Pointer; /** * @@ -34,7 +34,7 @@ export const RefCameraFile = refType("void"); /** * */ -export type StructCameraText = StructType & {text: PointerOf & StructBuffer}; +export type StructCameraText = StructType & {text: Pointer & StructBuffer}; /** * * @type {StructType} @@ -48,9 +48,9 @@ export const StructCameraText = StructType({ * */ export type StructCameraFilePath = StructType & { - name: PointerOf & StructBuffer; - folder: PointerOf & StructBuffer; - ref(): PointerOf; + name: Pointer & StructBuffer; + folder: Pointer & StructBuffer; + ref(): Pointer; }; /** * @@ -129,7 +129,7 @@ export interface IGPCameraModule { * @return a gphoto2 error code * */ - gp_camera_new(camera: PointerOf): GPCodes; + gp_camera_new(camera: Pointer): GPCodes; /** * @@ -160,7 +160,7 @@ export interface IGPCameraModule { * #gp_abilities_list_get_abilities. * */ - gp_camera_set_abilities(camera: PointerCamera, abilities: PointerOf): GPCodes; + gp_camera_set_abilities(camera: PointerCamera, abilities: Pointer): GPCodes; /** * Gets the camera abilities. @@ -169,7 +169,7 @@ export interface IGPCameraModule { * @param abilities * @return a gphoto2 error code */ - gp_camera_get_abilities(camera: PointerCamera, abilities: PointerOf): GPCodes; + gp_camera_get_abilities(camera: PointerCamera, abilities: Pointer): GPCodes; /** * Initiate a connection to the camera. @@ -235,7 +235,7 @@ export interface IGPCameraModule { * @return gphoto2 error code * */ - gp_camera_get_config(camera: PointerCamera, window: PointerOf, context: PointerContext): GPCodes; + gp_camera_get_config(camera: PointerCamera, window: Pointer, context: PointerContext): GPCodes; /** * @@ -257,12 +257,7 @@ export interface IGPCameraModule { * @param context * @returns {GPCodes} gphoto2 error code */ - gp_camera_get_single_config( - camera: PointerCamera, - name: string, - buffer: PointerOf, - context: PointerContext - ): GPCodes; + gp_camera_get_single_config(camera: PointerCamera, name: string, buffer: Pointer, context: PointerContext): GPCodes; /** * Sets the configuration. @@ -304,7 +299,7 @@ export interface IGPCameraModule { * taken, or generally information that is not configurable. * **/ - gp_camera_get_summary(camera: PointerCamera, summary: PointerOf, context: PointerContext): GPCodes; + gp_camera_get_summary(camera: PointerCamera, summary: Pointer, context: PointerContext): GPCodes; /** * Retrieves the manual for given camera. @@ -317,7 +312,7 @@ export interface IGPCameraModule { * This manual typically contains information about using the camera. * **/ - gp_camera_get_manual(camera: PointerCamera, manual: PointerOf, context: PointerContext): GPCodes; + gp_camera_get_manual(camera: PointerCamera, manual: Pointer, context: PointerContext): GPCodes; /** * Retrieves information about the camera driver. @@ -331,7 +326,7 @@ export interface IGPCameraModule { * acknowledgements, etc. * */ - gp_camera_get_about(camera: PointerCamera, about: PointerOf, context: PointerContext): GPCodes; + gp_camera_get_about(camera: PointerCamera, about: Pointer, context: PointerContext): GPCodes; /** * Gets information on the camera attached storage. @@ -372,7 +367,7 @@ export interface IGPCameraModule { gp_camera_capture( camera: PointerCamera, type: GPCameraCaptureType, - path: PointerOf, + path: Pointer, context: PointerContext ): GPCodes; @@ -392,7 +387,7 @@ export interface IGPCameraModule { gp_camera_capture_async( camera: PointerCamera, type: GPCameraCaptureType, - path: PointerOf, + path: Pointer, context: PointerContext ): Promise; diff --git a/packages/gphoto2-core/src/modules/GPContextModule.ts b/packages/gphoto2-core/src/modules/GPContextModule.ts index 85bfb3c..15b9a8c 100644 --- a/packages/gphoto2-core/src/modules/GPContextModule.ts +++ b/packages/gphoto2-core/src/modules/GPContextModule.ts @@ -1,10 +1,9 @@ -import {refType} from "ref-napi"; -import {PointerOf} from "../types"; +import {refType, Pointer} from "ref-napi"; /** * */ -export type PointerContext = PointerOf; +export type PointerContext = Pointer; /** * */ @@ -13,7 +12,7 @@ export const RefContext = refType("void"); /** * */ -export type PointerCB = PointerOf; +export type PointerCB = Pointer; /** * * @type {Type} diff --git a/packages/gphoto2-core/src/modules/GPFileModule.ts b/packages/gphoto2-core/src/modules/GPFileModule.ts index dc97527..a60dfac 100644 --- a/packages/gphoto2-core/src/modules/GPFileModule.ts +++ b/packages/gphoto2-core/src/modules/GPFileModule.ts @@ -1,5 +1,5 @@ -import {refType, types} from "ref-napi"; -import {GPCodes, PointerOf} from "../types"; +import {Pointer, refType, types} from "ref-napi"; +import {GPCodes} from "../types"; import {PointerCameraFile, RefCameraFile} from "./GPCameraModule"; export const GP_FILE_MODULE_ASYNC_KEYS: string[] = ["gp_file_save"]; @@ -15,32 +15,32 @@ export const GPFileModuleDescription = { gp_file_save: ["int", [RefCameraFile, types.CString]], gp_file_unref: ["int", [RefCameraFile]], gp_file_free: ["int", [RefCameraFile]], - gp_file_get_data_and_size: ["int", [RefCameraFile, refType(refType(types.char)), refType(types.int)]] + gp_file_get_data_and_size: ["int", [RefCameraFile, refType(types.CString), refType(types.int)]] }; export interface IGPFileModule { /** * - * @param {PointerOf} buffer + * @param {Pointer} buffer * @returns {GPCodes} */ - gp_file_new(buffer: PointerOf): GPCodes; + gp_file_new(buffer: Pointer): GPCodes; /** * Create new {@link CameraFile} object from a UNIX filedescriptor. - * @param {PointerOf} buffer + * @param {Pointer} buffer * @param {number} fd * @returns {GPCodes} */ - gp_file_new_from_fd(buffer: PointerOf, fd: number): GPCodes; + gp_file_new_from_fd(buffer: Pointer, fd: number): GPCodes; /** * * @param {PointerCameraFile} file - * @param {PointerOf} mime + * @param {Pointer} mime * @returns {GPCodes} */ - gp_file_get_mime_type(file: PointerCameraFile, mime: PointerOf): GPCodes; + gp_file_get_mime_type(file: PointerCameraFile, mime: Pointer): GPCodes; gp_file_set_mime_type(file: PointerCameraFile, mime: string): GPCodes; /** @@ -107,5 +107,5 @@ export interface IGPFileModule { * memory leaks. * **/ - gp_file_get_data_and_size(file: PointerCameraFile, data: PointerOf>, size: PointerOf): GPCodes; + gp_file_get_data_and_size(file: PointerCameraFile, data: Pointer>, size: Pointer): GPCodes; } diff --git a/packages/gphoto2-core/src/modules/GPListModule.ts b/packages/gphoto2-core/src/modules/GPListModule.ts index 80f3c56..a57ddbf 100644 --- a/packages/gphoto2-core/src/modules/GPListModule.ts +++ b/packages/gphoto2-core/src/modules/GPListModule.ts @@ -1,10 +1,10 @@ -import {refType} from "ref-napi"; -import {GPCodes, PointerOf} from "../types"; +import {Pointer, refType} from "ref-napi"; +import {GPCodes} from "../types"; /** * */ -export type PointerList = PointerOf; +export type PointerList = Pointer; /** * @@ -27,7 +27,6 @@ export const GPListModuleDescription = { gp_list_get_value: ["int", [RefList, "int", refType("string")]], gp_list_set_name: ["int", [RefList, "int", "string"]], gp_list_set_value: ["int", [RefList, "int", "string"]] - // "gp_list_populate": ["int", [RefList, "string", "int"]], }; /** @@ -39,7 +38,7 @@ export interface IGPListModule { * @returns {GPCodes} * @param buffer */ - gp_list_new(buffer: PointerOf): GPCodes; + gp_list_new(buffer: Pointer): GPCodes; /** * @@ -101,7 +100,7 @@ export interface IGPListModule { * @param name * @returns {GPCodes} */ - gp_list_get_name(cameraList: PointerList, index: number, name: PointerOf): GPCodes; + gp_list_get_name(cameraList: PointerList, index: number, name: Pointer): GPCodes; /** * @@ -110,7 +109,7 @@ export interface IGPListModule { * @param value * @returns {GPCodes} */ - gp_list_get_value(cameraList: PointerList, index: number, value: PointerOf): GPCodes; + gp_list_get_value(cameraList: PointerList, index: number, value: Pointer): GPCodes; /** * diff --git a/packages/gphoto2-core/src/modules/GPPortInfoModule.ts b/packages/gphoto2-core/src/modules/GPPortInfoModule.ts index 9a575c5..615c300 100644 --- a/packages/gphoto2-core/src/modules/GPPortInfoModule.ts +++ b/packages/gphoto2-core/src/modules/GPPortInfoModule.ts @@ -1,10 +1,10 @@ -import {refType, types} from "ref-napi"; -import {GPCodes, PointerOf} from "../types"; +import {Pointer, refType, types} from "ref-napi"; +import {GPCodes} from "../types"; /** * */ -export type PointerPortInfoList = PointerOf; +export type PointerPortInfoList = Pointer; /** * * @type {Type} @@ -14,7 +14,7 @@ export const RefPortInfoList = refType("void"); /** * */ -export type PointerPortInfo = PointerOf; +export type PointerPortInfo = Pointer; /** * @@ -32,7 +32,7 @@ export const RefPortType = refType("void"); /** * */ -export type PointerPortType = PointerOf; +export type PointerPortType = Pointer; /** * @@ -69,10 +69,10 @@ export interface IGPPortInfoModule { * * Allocates and initializes a GPPortInfo structure. This is a libgphoto2_port internal function. * - * @param {PointerOf} info pointer to a #GPPortInfo + * @param {Pointer} info pointer to a #GPPortInfo * @returns {GPCodes} a gphoto2 error code */ - gp_port_info_new(info: PointerOf): GPCodes; + gp_port_info_new(info: Pointer): GPCodes; // gp_port_info_free(portInfo: PointerPortInfo): GPCodes; @@ -90,7 +90,7 @@ export interface IGPPortInfoModule { * @param {Buffer} buffer pointer to a GPPortInfoList* which is allocated * @returns {GPCodes} a gphoto2 error code */ - gp_port_info_list_new(buffer: PointerOf): GPCodes; + gp_port_info_list_new(buffer: Pointer): GPCodes; /** * Load system ports. @@ -167,7 +167,7 @@ export interface IGPPortInfoModule { * @param name a pointer to a char* which will receive the path * @return a gphoto2 error code **/ - gp_port_info_get_name(portInfo: PointerPortInfoList, name: PointerOf): GPCodes; + gp_port_info_get_name(portInfo: PointerPortInfoList, name: Pointer): GPCodes; /** * Get path of a specific port entry @@ -178,5 +178,5 @@ export interface IGPPortInfoModule { * @param path a pointer to a char* which will receive the path * @return a gphoto2 error code **/ - gp_port_info_get_path(portInfo: PointerPortInfoList, path: PointerOf): GPCodes; + gp_port_info_get_path(portInfo: PointerPortInfoList, path: Pointer): GPCodes; } diff --git a/packages/gphoto2-core/src/modules/GPWidgetModule.ts b/packages/gphoto2-core/src/modules/GPWidgetModule.ts index 40b6894..622b61b 100644 --- a/packages/gphoto2-core/src/modules/GPWidgetModule.ts +++ b/packages/gphoto2-core/src/modules/GPWidgetModule.ts @@ -1,10 +1,10 @@ -import {refType, types} from "ref-napi"; -import {GPCodes, PointerOf} from "../types"; +import {Pointer, refType, types, Value} from "ref-napi"; +import {GPCodes} from "../types"; /** * */ -export type PointerCameraWidget = PointerOf; +export type PointerCameraWidget = Pointer; /** * */ @@ -15,7 +15,7 @@ export const RefCameraWidget = refType("void"); * */ // tslint:disable-next-line -export type PointerCameraWidgetType = PointerOf; +export type PointerCameraWidgetType = Value; /** * * @type {Type} @@ -76,10 +76,10 @@ export interface IGPWidgetModule { * * @param {number} type the type * @param {string} label the label - * @param {PointerOf} widget + * @param {Pointer} widget * @returns {GPCodes} a gphoto2 error code. **/ - gp_widget_new(type: number, label: string, widget: PointerOf): GPCodes; + gp_widget_new(type: number, label: string, widget: Pointer): GPCodes; /** * Frees a CameraWidget @@ -99,7 +99,7 @@ export interface IGPWidgetModule { /** * Decrements the reference count for the CameraWidget - * + * Pointer * @param {PointerCameraWidget} widget a CameraWidget you want to unref * @returns {GPCodes} a gphoto2 error code. **/ @@ -116,17 +116,17 @@ export interface IGPWidgetModule { */ gp_widget_count_children(widget: PointerCameraWidget): GPCodes; - gp_widget_get_child(widget: PointerCameraWidget, index: number, buffer: PointerOf): GPCodes; + gp_widget_get_child(widget: PointerCameraWidget, index: number, buffer: Pointer): GPCodes; - gp_widget_get_child_by_label(widget: PointerCameraWidget, label: string, buffer: PointerOf): GPCodes; + gp_widget_get_child_by_label(widget: PointerCameraWidget, label: string, buffer: Pointer): GPCodes; - gp_widget_get_child_by_id(widget: PointerCameraWidget, id: number, buffer: PointerOf): GPCodes; + gp_widget_get_child_by_id(widget: PointerCameraWidget, id: number, buffer: Pointer): GPCodes; - gp_widget_get_child_by_name(widget: PointerCameraWidget, name: string, buffer: PointerOf): GPCodes; + gp_widget_get_child_by_name(widget: PointerCameraWidget, name: string, buffer: Pointer): GPCodes; - gp_widget_get_root(widget: PointerCameraWidget, buffer: PointerOf): GPCodes; + gp_widget_get_root(widget: PointerCameraWidget, buffer: Pointer): GPCodes; - gp_widget_get_parent(widget: PointerCameraWidget, buffer: PointerOf): GPCodes; + gp_widget_get_parent(widget: PointerCameraWidget, buffer: Pointer): GPCodes; /** * Sets the value of the widget @@ -138,21 +138,21 @@ export interface IGPWidgetModule { * (CameraWidgetCallback) for GP_WIDGET_BUTTON. * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} value + * @param {Pointer} value * @returns a gphoto2 error code. * **/ - gp_widget_set_value(widget: PointerCameraWidget, value: PointerOf): GPCodes; + gp_widget_set_value(widget: PointerCameraWidget, value: Pointer | null): GPCodes; /** * Retrieves the value of the #CameraWidget * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} value + * @param {Pointer} value * @returns a gphoto2 error code. * **/ - gp_widget_get_value(widget: PointerCameraWidget, value: PointerOf): GPCodes; + gp_widget_get_value(widget: PointerCameraWidget, value: Pointer): GPCodes; gp_widget_set_name(widget: PointerCameraWidget, name: string): GPCodes; @@ -160,10 +160,10 @@ export interface IGPWidgetModule { * Gets the path of the widget * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} name Name of above widget + * @param {Pointer} name Name of above widget * @return a gphoto2 error code. **/ - gp_widget_get_name(widget: PointerCameraWidget, name: PointerOf): GPCodes; + gp_widget_get_name(widget: PointerCameraWidget, name: Pointer): GPCodes; /** * Sets the information about the widget @@ -179,33 +179,33 @@ export interface IGPWidgetModule { * Retrieves the information about the widget * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} info + * @param {Pointer} info * @return {GPCodes} a gphoto2 error code. * **/ - gp_widget_get_info(widget: PointerCameraWidget, info: PointerOf): GPCodes; + gp_widget_get_info(widget: PointerCameraWidget, info: Pointer): GPCodes; /** * Retrieves the unique id of the #CameraWidget * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} id + * @param {Pointer} id * @return {GPCodes} a gphoto2 error code. * **/ - gp_widget_get_id(widget: PointerCameraWidget, id: PointerOf): GPCodes; + gp_widget_get_id(widget: PointerCameraWidget, id: Pointer): GPCodes; /** * Retrieves the type of the #CameraWidget * * @param {PointerCameraWidget} widget a #CameraWidget - * @param {PointerOf} type + * @param {Pointer} type * @return {GPCodes} a gphoto2 error code. * **/ - gp_widget_get_type(widget: PointerCameraWidget, type: PointerOf): GPCodes; + gp_widget_get_type(widget: PointerCameraWidget, type: Pointer): GPCodes; - gp_widget_get_label(widget: PointerCameraWidget, label: PointerOf): GPCodes; + gp_widget_get_label(widget: PointerCameraWidget, label: Pointer): GPCodes; gp_widget_set_range(widget: PointerCameraWidget, range1: number, range2: number, range3: number): GPCodes; @@ -220,7 +220,7 @@ export interface IGPWidgetModule { * **/ - gp_widget_get_range(range: PointerCameraWidget, min: PointerOf, max: PointerOf, increment: PointerOf): GPCodes; + gp_widget_get_range(range: PointerCameraWidget, min: Pointer, max: Pointer, increment: Pointer): GPCodes; gp_widget_add_choice(widget: PointerCameraWidget, choice: string): GPCodes; @@ -231,11 +231,11 @@ export interface IGPWidgetModule { * * @param {PointerCameraWidget} widget a #CameraWidget of type GP_WIDGET_RADIO or GP_WIDGET_MENU * @param {number} choiceNumber - * @param {PointerOf} choice + * @param {Pointer} choice * @return a gphoto2 error code * **/ - gp_widget_get_choice(widget: PointerCameraWidget, choiceNumber: number, choice: PointerOf): GPCodes; + gp_widget_get_choice(widget: PointerCameraWidget, choiceNumber: number, choice: Pointer): GPCodes; gp_widget_set_changed(widget: PointerCameraWidget, changed: number): GPCodes; @@ -275,5 +275,5 @@ export interface IGPWidgetModule { * @return a gphoto2 error code. * */ - gp_widget_get_readonly(widget: PointerCameraWidget, readonly: PointerOf): GPCodes; + gp_widget_get_readonly(widget: PointerCameraWidget, readonly: Pointer): GPCodes; } diff --git a/packages/gphoto2-core/src/types/Pointer.ts b/packages/gphoto2-core/src/types/Pointer.ts deleted file mode 100644 index 60f9f03..0000000 --- a/packages/gphoto2-core/src/types/Pointer.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * In C => *Type - */ -export type PointerOf = Buffer & { - deref(): T; -}; - -/** - * In C => **Type - */ -export type PointerRef = PointerOf>; diff --git a/packages/gphoto2-core/src/types/index.ts b/packages/gphoto2-core/src/types/index.ts index bbc5d95..1b6e42e 100644 --- a/packages/gphoto2-core/src/types/index.ts +++ b/packages/gphoto2-core/src/types/index.ts @@ -9,5 +9,4 @@ export * from "./GPDeviceType"; export * from "./GPPortType"; export * from "./GPVersionType"; export * from "./GPWidgetType"; -export * from "./Pointer"; export * from "./StructBuffer"; diff --git a/packages/gphoto2-core/src/utils/GPPointer.ts b/packages/gphoto2-core/src/utils/GPPointer.ts index 0ef2826..7cde177 100644 --- a/packages/gphoto2-core/src/utils/GPPointer.ts +++ b/packages/gphoto2-core/src/utils/GPPointer.ts @@ -1,38 +1,46 @@ -import {alloc, allocCString} from "ref-napi"; -import {PointerOf} from "../types"; +import {alloc, allocCString, Pointer, refType} from "ref-napi"; /** * Create a new Pointer. * @param type - * @returns {PointerOf} + * @returns {Pointer} */ -export function GPPointer(type: any = "void"): PointerOf { +export function GPPointer(type: any = "void"): Pointer { return alloc(type) as any; } /** * Create a new pointer of string. * @param {string} value - * @returns {PointerOf} + * @returns {Pointer} */ -export function GPPointerString(value?: string): PointerOf { +export function GPPointerString(value?: string): Pointer { return value !== undefined ? (allocCString(value) as any) : (alloc("string") as any); } /** * Create a new pointer of int * @param {number} value - * @returns {PointerOf} + * @returns {Pointer} */ -export function GPPointerInt(value?: number): PointerOf { +export function GPPointerInt(value?: number): Pointer { return alloc("int", value) as any; } /** * Create a new pointer of Float. * @param {number} value - * @returns {PointerOf} + * @returns {Pointer} */ -export function GPPointerFloat(value?: number): PointerOf { +export function GPPointerFloat(value?: number): Pointer { return alloc("float", value) as any; } + +/** + * @param type + * @returns {Pointer} + * @constructor + */ +export function GPPointerRef(type: any = "void"): Pointer { + return alloc(refType(type)) as any; +} diff --git a/packages/gphoto2-core/src/utils/GPPointerRef.spec.ts b/packages/gphoto2-core/src/utils/GPPointerRef.spec.ts index 22d969d..162ef90 100644 --- a/packages/gphoto2-core/src/utils/GPPointerRef.spec.ts +++ b/packages/gphoto2-core/src/utils/GPPointerRef.spec.ts @@ -1,4 +1,4 @@ -import {GPPointerRef} from "./GPPointerRef"; +import {GPPointerRef} from "./GPPointer"; describe("GPPointerRef", () => { describe("GPPointerRef()", () => { diff --git a/packages/gphoto2-core/src/utils/GPPointerRef.ts b/packages/gphoto2-core/src/utils/GPPointerRef.ts deleted file mode 100644 index 33f3a34..0000000 --- a/packages/gphoto2-core/src/utils/GPPointerRef.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {alloc, refType} from "ref-napi"; -import {PointerRef} from "../types"; - -/** - * - * @param type - * @returns {PointerRef} - * @constructor - */ -export function GPPointerRef(type: any = "void"): PointerRef { - return alloc(refType(type)) as any; -} diff --git a/packages/gphoto2-core/src/utils/checkCode.spec.ts b/packages/gphoto2-core/src/utils/checkCode.spec.ts index c600cc0..fee5a2a 100644 --- a/packages/gphoto2-core/src/utils/checkCode.spec.ts +++ b/packages/gphoto2-core/src/utils/checkCode.spec.ts @@ -16,7 +16,6 @@ describe("GPUtils", () => { const error = catchError(() => checkCode(GPCodes.GP_ERROR_BAD_PARAMETERS, "method")); expect(error?.message).toEqual("method returned -2: GP_ERROR_BAD_PARAMETERS > Error GP"); - expect($log.error).toHaveBeenCalledWith("method returned -2: GP_ERROR_BAD_PARAMETERS > Error GP"); }); it("should fail silently", () => { (getGPhoto2Driver as any).mockReturnValue({ diff --git a/packages/gphoto2-core/src/utils/checkCode.ts b/packages/gphoto2-core/src/utils/checkCode.ts index e55b5b8..26a6ab0 100644 --- a/packages/gphoto2-core/src/utils/checkCode.ts +++ b/packages/gphoto2-core/src/utils/checkCode.ts @@ -2,6 +2,8 @@ import {$log} from "@tsed/logger"; import {getGPhoto2Driver} from "../GPhoto2Driver"; import {GPCodes} from "../types/GPCodes"; +export class CheckCodeException extends Error {} + /** * * @param returnValue @@ -10,12 +12,14 @@ import {GPCodes} from "../types/GPCodes"; * @returns {any} */ export function checkCode(returnValue: any, method = "", silent = false): any { + $log.debug(`GPhoto2Driver.${method}() => ${returnValue}`); + if (returnValue < GPCodes.GP_OK) { const errorStr = getGPhoto2Driver().gp_port_result_as_string(returnValue); - const error = new Error(`${method} returned ${returnValue}: ${GPCodes[returnValue] || "Unsupported code"} > ${errorStr}`); + const error = new CheckCodeException(`${method} returned ${returnValue}: ${GPCodes[returnValue] || "Unsupported code"} > ${errorStr}`); if (!silent) { - $log.error(error.message); + $log.error(error.message, error.stack); throw error; } else { $log.warn(error.message); diff --git a/packages/gphoto2-core/src/utils/pointerToString.ts b/packages/gphoto2-core/src/utils/pointerToString.ts index 568580c..1dd2897 100644 --- a/packages/gphoto2-core/src/utils/pointerToString.ts +++ b/packages/gphoto2-core/src/utils/pointerToString.ts @@ -1,12 +1,11 @@ -import {PointerOf} from "../types/Pointer"; import {readCString} from "ref-napi"; /** * Return the string value of the pointer. - * @param {PointerOf} p + * @param {Pointer} p * @returns {string} * @constructor */ -export function pointerToString(p: PointerOf) { +export function pointerToString(p: Buffer) { return readCString(p, 0); } diff --git a/packages/gphoto2-core/tsconfig.compile.esm.json b/packages/gphoto2-core/tsconfig.compile.esm.json new file mode 100644 index 0000000..33b292b --- /dev/null +++ b/packages/gphoto2-core/tsconfig.compile.esm.json @@ -0,0 +1,24 @@ +{ + "extends": "./tsconfig.compile.json", + "compilerOptions": { + "baseUrl": ".", + "module": "ES2020", + "rootDir": "src", + "outDir": "./lib/esm", + "declaration": true, + "declarationDir": "./lib/types", + "skipLibCheck": true + }, + "exclude": [ + "node_modules", + "test", + "lib", + "benchmark", + "coverage", + "spec", + "**/*.benchmark.ts", + "**/*.spec.ts", + "keys", + "jest.config.js" + ] +} diff --git a/packages/gphoto2-core/tsconfig.compile.json b/packages/gphoto2-core/tsconfig.compile.json index 2cfb26f..e88aa3e 100644 --- a/packages/gphoto2-core/tsconfig.compile.json +++ b/packages/gphoto2-core/tsconfig.compile.json @@ -2,12 +2,19 @@ "extends": "../../tsconfig.compile.json", "compilerOptions": { "rootDir": "src", - "outDir": "lib" + "outDir": "lib/cjs", + "skipLibCheck": true }, "exclude": [ "node_modules", "test", "lib", - "**/*.spec.ts" + "benchmark", + "coverage", + "spec", + "**/*.benchmark.ts", + "**/*.spec.ts", + "keys", + "jest.config.js" ] } diff --git a/packages/gphoto2-driver/jest.config.js b/packages/gphoto2-driver/jest.config.js index c5f5a5e..6f26172 100644 --- a/packages/gphoto2-driver/jest.config.js +++ b/packages/gphoto2-driver/jest.config.js @@ -1 +1,11 @@ -module.exports = require("../../jest.config"); +module.exports = { + ...require("../../base.jest.config")(__dirname), + coverageThreshold: { + global: { + branches: 3.75, + functions: 32.04, + lines: 34.04, + statements: 33.7 + } + } +} diff --git a/packages/gphoto2-driver/package.json b/packages/gphoto2-driver/package.json index efec49c..f0f961b 100644 --- a/packages/gphoto2-driver/package.json +++ b/packages/gphoto2-driver/package.json @@ -2,8 +2,16 @@ "name": "@tsed/gphoto2-driver", "version": "3.0.3", "description": "Node.js wrapper of C library libgphoto2 written in TypeScript", - "main": "lib/index.js", - "typings": "lib/index.d.js", + "private": false, + "source": "./src/index.ts", + "main": "./lib/cjs/index.js", + "typings": "./lib/types/index.d.ts", + "exports": { + "types": "./lib/types/index.d.ts", + "import": "./lib/esm/index.js", + "require": "./lib/cjs/index.js", + "default": "./lib/esm/index.js" + }, "author": "Romain Lenzotti", "contributors": [ "Alexander Gusez (https://github.com/goooseman)" @@ -18,6 +26,7 @@ }, "homepage": "https://github.com/tsedio/ts-gphoto2-driver", "keywords": [ + "dslr", "gphoto-driver", "typescript", "driver", @@ -25,8 +34,10 @@ "reflex" ], "scripts": { - "build": "tsc --build tsconfig.compile.json", - "build:doc": "tsc --build tsconfig.doc.json" + "build": "yarn run build:esm && yarn run build:cjs", + "build:cjs": "tsc --build tsconfig.compile.json", + "build:esm": "tsc --build tsconfig.compile.esm.json", + "test": "cross-env NODE_ENV=test jest" }, "directories": { "lib": "lib", @@ -34,15 +45,18 @@ "test": "test" }, "dependencies": { - "@tsed/core": "6.92.0", + "@tsed/core": "6.94.0", "@tsed/gphoto2-core": "3.0.3", - "@tsed/logger": "5.14.0", + "@tsed/logger": "6.0.0", "fs-extra": "10.0.0", - "source-map-support": "0.5.19", - "tslib": "2.2.0" + "source-map-support": "0.5.21", + "tslib": "2.3.1" }, "devDependencies": { - "@types/fs-extra": "9.0.11" + "@types/fs-extra": "9.0.13" }, - "peerDependencies": {} + "peerDependencies": { + "@types/ffi-napi": ">=4.0.4", + "@types/ref-napi": ">=3.0.4" + } } \ No newline at end of file diff --git a/packages/gphoto2-driver/readme.md b/packages/gphoto2-driver/readme.md index 6f7849f..6bdc75c 100644 --- a/packages/gphoto2-driver/readme.md +++ b/packages/gphoto2-driver/readme.md @@ -35,9 +35,22 @@ A Node.js wrapper for libgphoto2 written in TypeScript. Useful for remote contro - Take a liveview from camera and get binary or base64 of each frame, or write it to file, - Display info about your camera (summary, about, manual). +## Know issue + +This package isn't compatible with Node.js 13 and higher version. `@tsed/gphoto2-driver use` `ref-array-napi` which have a +bug with some node.js version related [here](https://github.com/node-ffi-napi/ref-napi/issues/47). + +The possible solutions would be: + +- Find a way not to use ref-array-napi to manipulate C++ Array in Node.js, +- That the author of the module finds a solution to correct the problem, +- Redevelop the driver directly with NAPI. + +Obviously any help is welcome to move the project forward :) + ## Prerequisite - - Node.js: any version supported by nodejs/nan + - Node.js: 12 or lower - NPM: ~7.10.0 - Nan: ~2.8.0 - libgphoto2: ~2.5.x - via `brew install libgphoto2`, `apt-get install libgphoto2-dev` or download and build from `http://www.gphoto.org/proj/libgphoto2/`, diff --git a/packages/gphoto2-driver/src/__mock__/FakeBuffer.ts b/packages/gphoto2-driver/src/__mock__/FakeBuffer.ts new file mode 100644 index 0000000..b9e4653 --- /dev/null +++ b/packages/gphoto2-driver/src/__mock__/FakeBuffer.ts @@ -0,0 +1,76 @@ +import {isString} from "@tsed/core"; + +export class FakeBuffer { + $buffer = true; + name: string; + value: any; + + constructor(name: any, value?: any) { + this.name = name; + this.value = value; + } + + deref() { + return ["CString", "string"].includes(this.name) ? this.value : new FakePointer(this); + } + + readCString() { + return this.value; + } +} + +export class FakePointer { + $pointer = true; + + constructor(readonly buffer: FakeBuffer) {} + + get name() { + return this.buffer.name; + } + + get value(): any { + return this.buffer.value; + } + + set value(value: any) { + this.buffer.value = value; + } + + ref() { + return this.buffer; + } + + deref() { + return new FakePointer(this.buffer); + } +} + +export class FakeStruct extends FakeBuffer { + #data: any = {}; + + constructor(data: any) { + super("struct"); + this.#data = data; + } + + deref(): FakePointer { + const itsOwnProp = (target: any, p: PropertyKey) => Reflect.has(target, p) || typeof p === "symbol"; + const data = this.#data; + + return new Proxy(new FakePointer(this), { + get(target: any, p: PropertyKey) { + if (itsOwnProp(target, p) && p !== "name") { + return target[p]; + } + + if (isString(data[p])) { + return {buffer: new FakeBuffer(`${this.name}:${p as string}`, data[p])}; + } + + return data[p]; + } + }) as any; + } +} + +export const FakeContextPointer = new FakeBuffer("gp_context").deref(); diff --git a/packages/gphoto2-driver/src/__mock__/createDriverFixture.ts b/packages/gphoto2-driver/src/__mock__/createDriverFixture.ts new file mode 100644 index 0000000..c0ed80a --- /dev/null +++ b/packages/gphoto2-driver/src/__mock__/createDriverFixture.ts @@ -0,0 +1,9 @@ +import {FakeContextPointer} from "./FakeBuffer"; + +export function createDriverFixture() { + return { + run: jest.fn(), + runAsync: jest.fn(), + gp_context_new: jest.fn().mockReturnValue(FakeContextPointer) + }; +} diff --git a/packages/gphoto2-driver/src/__mock__/ref-napi.ts b/packages/gphoto2-driver/src/__mock__/ref-napi.ts new file mode 100644 index 0000000..89e4279 --- /dev/null +++ b/packages/gphoto2-driver/src/__mock__/ref-napi.ts @@ -0,0 +1,9 @@ +import {FakeBuffer} from "./FakeBuffer"; + +export function alloc(refType: any, value?: any) { + return new FakeBuffer(refType.name || refType, value); +} + +export function allocCString(value: any) { + return new FakeBuffer("CString", value); +} diff --git a/packages/gphoto2-driver/src/components/AbilitiesList.spec.ts b/packages/gphoto2-driver/src/components/AbilitiesList.spec.ts new file mode 100644 index 0000000..869b658 --- /dev/null +++ b/packages/gphoto2-driver/src/components/AbilitiesList.spec.ts @@ -0,0 +1,103 @@ +import {AbilitiesList} from "./AbilitiesList"; +import {getGPhoto2Driver} from "@tsed/gphoto2-core"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {Context, List, PortInfoList} from "@tsed/gphoto2-driver"; +import {$log} from "@tsed/logger"; + +$log.stop(); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +function createAbilitiesListFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const abilitiesList = new AbilitiesList(); + + return {driver, abilitiesList}; +} + +describe("AbilitiesList", () => { + describe("size()", () => { + it("should create a new instance of AbilitiesList", () => { + const {abilitiesList, driver} = createAbilitiesListFixture(); + driver.run.mockReturnValue(10); + + expect(abilitiesList.size).toEqual(10); + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_count", abilitiesList.pointer); + }); + }); + describe("load()", () => { + it("should load abilities", () => { + const {abilitiesList, driver} = createAbilitiesListFixture(); + driver.run.mockReturnValue(undefined); + + abilitiesList.load(); + + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_new", abilitiesList.buffer); + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_load", abilitiesList.pointer, Context.get().pointer); + }); + }); + + describe("loadAsync()", () => { + it("should load abilities", async () => { + const {abilitiesList, driver} = createAbilitiesListFixture(); + driver.run.mockReturnValue(undefined); + + await abilitiesList.loadAsync(); + + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_new", abilitiesList.buffer); + expect(driver.runAsync).toHaveBeenCalledWith("gp_abilities_list_load", abilitiesList.pointer, Context.get().pointer); + }); + }); + + describe("detect()", () => { + it("should return abilities list", async () => { + const {abilitiesList, driver} = createAbilitiesListFixture(); + driver.run.mockReturnValue(undefined); + + const portInfoList = new PortInfoList(); + + const list = await abilitiesList.detect(portInfoList); + + expect(list).toBeInstanceOf(List); + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_new", abilitiesList.buffer); + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.run).toHaveBeenCalledWith( + "gp_abilities_list_detect", + abilitiesList.pointer, + portInfoList.pointer, + list.pointer, + Context.get().pointer + ); + }); + }); + + describe("detectAsync()", () => { + it("should return abilities list", async () => { + const {abilitiesList, driver} = createAbilitiesListFixture(); + driver.run.mockReturnValue(undefined); + + const portInfoList = new PortInfoList(); + + const list = await abilitiesList.detectAsync(portInfoList); + + expect(list).toBeInstanceOf(List); + expect(driver.run).toHaveBeenCalledWith("gp_abilities_list_new", abilitiesList.buffer); + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.runAsync).toHaveBeenCalledWith( + "gp_abilities_list_detect", + abilitiesList.pointer, + portInfoList.pointer, + list.pointer, + Context.get().pointer + ); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/AbilitiesList.ts b/packages/gphoto2-driver/src/components/AbilitiesList.ts index 1ec09dd..f9ed395 100644 --- a/packages/gphoto2-driver/src/components/AbilitiesList.ts +++ b/packages/gphoto2-driver/src/components/AbilitiesList.ts @@ -1,4 +1,4 @@ -import {checkCode, getGPhoto2Driver, PointerAbilitiesList, RefAbilitiesList} from "@tsed/gphoto2-core"; +import {PointerAbilitiesList, RefAbilitiesList} from "@tsed/gphoto2-core"; import {$log} from "@tsed/logger"; import {Context} from "./Context"; import {List} from "./List"; @@ -7,21 +7,7 @@ import {PortInfoList} from "./PortInfoList"; export class AbilitiesList extends PointerWrapper { constructor() { - super({method: "gp_abilities_list", refType: RefAbilitiesList}); - } - - get size(): number { - return checkCode(getGPhoto2Driver().gp_abilities_list_count(this.pointer), "gp_abilities_list_count"); - } - - /** - * - */ - load(): this { - $log.debug("Load abilities..."); - checkCode(getGPhoto2Driver().gp_abilities_list_load(this.pointer, Context.get().pointer), "gp_abilities_list_load"); - $log.debug("Load abilities... ok"); - return this; + super({method: "gp_abilities_list", refType: RefAbilitiesList, loadWithContext: true}); } /** @@ -34,10 +20,19 @@ export class AbilitiesList extends PointerWrapper { const list = new List(); - checkCode( - getGPhoto2Driver().gp_abilities_list_detect(this.pointer, portInfoList.pointer, list.pointer, Context.get().pointer), - "gp_abilities_list_detect" - ); + this.call("detect", portInfoList.pointer, list.pointer, Context.get().pointer); + + $log.debug("Get available camera list... ok"); + + return list; + } + + async detectAsync(portInfoList: PortInfoList): Promise> { + $log.debug("Get available camera list"); + + const list = new List(); + + await this.callAsync("detect", portInfoList.pointer, list.pointer, Context.get().pointer); $log.debug("Get available camera list... ok"); diff --git a/packages/gphoto2-driver/src/components/Camera.ts b/packages/gphoto2-driver/src/components/Camera.ts index ae0bfac..3eca21b 100644 --- a/packages/gphoto2-driver/src/components/Camera.ts +++ b/packages/gphoto2-driver/src/components/Camera.ts @@ -127,6 +127,10 @@ export class Camera extends PointerWrapper { return new LiveView(this, options); } + public async preview(file: CameraFile) { + return this.callAsync("capture_preview", file.pointer, Context.get().pointer); + } + /** * Captures a quick preview image on the camera. * @return camera file, never null. Must be closed afterwards. @@ -162,7 +166,7 @@ export class Camera extends PointerWrapper { this.checkNotClosed(); try { - await this.callAsync("capture_preview", file.pointer, Context.get().pointer); + await this.preview(file); if (path) { try { @@ -255,7 +259,7 @@ export class Camera extends PointerWrapper { public async triggerCaptureAsync(): Promise { this.checkNotClosed(); - const result = await this.callAsync("trigger_capture", Context.get().pointer); + const result = await this.callAsync("trigger_capture", Context.get().pointer); this.deinitialize(); this.initialize(); @@ -305,12 +309,16 @@ export class Camera extends PointerWrapper { * @returns {string} */ public getManual(): string { - const struct = new StructCameraText(); - const buffer = struct.ref(); + try { + const struct = new StructCameraText(); + const buffer = struct.ref(); - this.call("get_manual", buffer, Context.get().pointer); + this.call("get_manual", buffer, Context.get().pointer); - return struct.text.buffer.readCString(0); + return struct.text.buffer.readCString(0); + } catch (er) {} + + return ""; } /** @@ -372,26 +380,27 @@ export class Camera extends PointerWrapper { * @param path * @returns {CameraFile | undefined} */ - protected capture(type: GPCameraCaptureType, path?: string): CameraFile | undefined { + protected capture(type: GPCameraCaptureType, path?: string): CameraFile { this.checkNotClosed(); const cFilePath = new CameraFilePath(); + const cameraFile = new CameraFile(); this.call("capture", type, cFilePath.buffer, Context.get().pointer); - const cFile = cFilePath.newFile(this.pointer); + cameraFile.get(this.pointer, cFilePath); - if (path && cFile) { + if (path) { try { - cFile.save(path); + cameraFile.save(path); } finally { this.deinitialize(); this.initialize(); - cFile.closeQuietly(); + cameraFile.closeQuietly(); cFilePath.close(); } } - return cFile; + return cameraFile; } /** @@ -403,23 +412,24 @@ export class Camera extends PointerWrapper { protected async captureAsync(type: GPCameraCaptureType, path?: string): Promise { this.checkNotClosed(); const cFilePath = new CameraFilePath(); + const cameraFile = new CameraFile(); await this.callAsync("capture", type, cFilePath.buffer, Context.get().pointer); - const cFile = await cFilePath.newFileAsync(this.pointer); + await cameraFile.get(this.pointer, cFilePath); - if (path && cFile) { + if (path) { try { - await cFile.saveAsync(path); + await cameraFile.saveAsync(path); } finally { this.deinitialize(); this.initialize(); - cFile.closeQuietly(); + cameraFile.closeQuietly(); cFilePath.close(); } } - return cFile; + return cameraFile; } /** diff --git a/packages/gphoto2-driver/src/components/CameraAbilities.spec.ts b/packages/gphoto2-driver/src/components/CameraAbilities.spec.ts new file mode 100644 index 0000000..21c48b0 --- /dev/null +++ b/packages/gphoto2-driver/src/components/CameraAbilities.spec.ts @@ -0,0 +1,174 @@ +import {$log} from "@tsed/logger"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {getGPhoto2Driver, StructCameraAbilities} from "@tsed/gphoto2-core"; +import {CameraAbilities} from "./CameraAbilities"; +import {FakeStruct} from "../__mock__/FakeBuffer"; + +$log.stop(); + +const cameraAbilities = new FakeStruct({ + id: "id", + model: "model", + library: "library", + speed: [0, 10], + port: 80, + status: 0, + operation: 0, + file_operations: 0, + folder_operations: 0, + usb_vendor: 0, + usb_product: 0, + usb_class: 0, + usb_subclass: 0, + usb_protocol: 0, + device_type: 0 +}); + +(StructCameraAbilities as any).mockReturnValue(cameraAbilities.deref()); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +function createCameraAbilitiesFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const cameraAbilities = new CameraAbilities(); + + return {driver, cameraAbilities}; +} + +describe("CameraAbilities", () => { + describe("model", () => { + it("should return model name", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.model).toEqual("model"); + }); + }); + + describe("speed", () => { + it("should return speed values", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.speed).toEqual([0, 10]); + }); + }); + + describe("port", () => { + it("should return port value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.port).toEqual(80); + }); + }); + + describe("status", () => { + it("should return status value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.status).toEqual(0); + }); + }); + + describe("id", () => { + it("should return id value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.id).toEqual("id"); + }); + }); + + describe("library", () => { + it("should return library value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.library).toEqual("library"); + }); + }); + + describe("operation", () => { + it("should return operation value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.operation).toEqual(0); + }); + }); + + describe("fileOperations", () => { + it("should return fileOperations value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.fileOperations).toEqual(0); + }); + }); + + describe("folderOperations", () => { + it("should return folderOperations value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.folderOperations).toEqual(0); + }); + }); + + describe("usbVendor", () => { + it("should return usbVendor value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.usbVendor).toEqual(0); + }); + }); + + describe("usbProduct", () => { + it("should return usbProduct value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.usbProduct).toEqual(0); + }); + }); + + describe("usbClass", () => { + it("should return usbClass value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.usbClass).toEqual(0); + }); + }); + + describe("usbSubclass", () => { + it("should return usbSubclass value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.usbSubclass).toEqual(0); + }); + }); + + describe("usbProtocol", () => { + it("should return usbProtocol value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.usbProtocol).toEqual(0); + }); + }); + + describe("deviceType", () => { + it("should return deviceType value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.deviceType).toEqual(0); + }); + }); + + describe("toString", () => { + it("should return toString value", () => { + const {cameraAbilities} = createCameraAbilitiesFixture(); + + expect(cameraAbilities.toString()).toEqual("CameraAbilities{model}"); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/CameraAbilities.ts b/packages/gphoto2-driver/src/components/CameraAbilities.ts index 0651026..5706dc8 100644 --- a/packages/gphoto2-driver/src/components/CameraAbilities.ts +++ b/packages/gphoto2-driver/src/components/CameraAbilities.ts @@ -6,15 +6,16 @@ import { GPCameraOperation, GPDeviceType, GPPortType, - PointerOf, StructCameraAbilities } from "@tsed/gphoto2-core"; +import type {Pointer} from "ref-napi"; export class CameraAbilities implements Closeable { - readonly buffer: PointerOf; + readonly buffer: Pointer; constructor() { const struct = new StructCameraAbilities(); + this.buffer = struct.ref(); } diff --git a/packages/gphoto2-driver/src/components/CameraFile.ts b/packages/gphoto2-driver/src/components/CameraFile.ts index f05156c..fac1cd8 100644 --- a/packages/gphoto2-driver/src/components/CameraFile.ts +++ b/packages/gphoto2-driver/src/components/CameraFile.ts @@ -1,8 +1,22 @@ -import {checkCode, GPCodes, GPPointer, GPPointerString, PointerCameraFile, PointerOf, RefCameraFile} from "@tsed/gphoto2-core"; +import { + checkCode, + closeQuietly, + GPCameraFileType, + GPCodes, + GPPointer, + GPPointerString, + PointerCamera, + PointerCameraFile, + RefCameraFile, + runAsyncMethod, + runMethod +} from "@tsed/gphoto2-core"; +import {Context} from "./Context"; import {ensureDir, ensureDirSync} from "fs-extra"; import {dirname} from "path"; -import {reinterpret} from "ref-napi"; -import {PointerWrapperOptions, PointerWrapper} from "./PointerWrapper"; +import {CameraFilePath} from "./CameraFilePath"; +import {PointerWrapper, PointerWrapperOptions} from "./PointerWrapper"; +import type {Pointer} from "ref-napi"; export class CameraFile extends PointerWrapper { constructor(options: Partial = {}, ...args: any[]) { @@ -24,6 +38,49 @@ export class CameraFile extends PointerWrapper { return this.call("free"); } + /** + * Get File on camera + * @param pCamera + * @param file + */ + get(pCamera: PointerCamera, file: CameraFilePath = new CameraFilePath()) { + try { + runMethod( + "gp_camera_file_get", + pCamera, + file.path, + file.filename, + GPCameraFileType.GP_FILE_TYPE_NORMAL, + this.pointer, + Context.get().pointer + ); + } catch (er) { + closeQuietly(this); + throw er; + } + + return file; + } + + async getAsync(pCamera: PointerCamera, file: CameraFilePath = new CameraFilePath()) { + try { + await runAsyncMethod( + "gp_camera_file_get", + pCamera, + file.path, + file.filename, + GPCameraFileType.GP_FILE_TYPE_NORMAL, + this.pointer, + Context.get().pointer + ); + } catch (er) { + closeQuietly(this); + throw er; + } + + return file; + } + /** * Saves the file from the camera to the local file system. * @param filename OS-dependent path on the local file system. @@ -59,10 +116,10 @@ export class CameraFile extends PointerWrapper { /** * - * @param {PointerOf} mime + * @param {Pointer} mime * @returns {GPCodes} */ - public async getMimeTypeAsync(mime: PointerOf): Promise { + public async getMimeTypeAsync(mime: Pointer): Promise { const mimePointer = GPPointerString(); const code = await this.call("get_mime_type", mime); checkCode(code); @@ -87,27 +144,26 @@ export class CameraFile extends PointerWrapper { * @param encoding **/ - public async getDataAndSizeAsync( - encoding: "binary" | "base64" = "binary" - ): Promise<{ + public async getDataAndSizeAsync(encoding: "binary" | "base64" = "binary"): Promise<{ data: Buffer | string; size: number; }> { - const dataPointer: PointerOf = GPPointer("char *"); - const sizePointer: PointerOf = GPPointer("int"); + const dataPointer = GPPointerString(); + const sizePointer = GPPointer("int"); + await this.callAsync("get_data_and_size", dataPointer, sizePointer); + const size = sizePointer.deref(); - const binary = reinterpret(dataPointer.deref(), sizePointer.deref()); let data: Buffer | string = ""; switch (encoding) { case "binary": - data = binary; + data = dataPointer; break; case "base64": - data = binary.toString("base64"); + data = dataPointer.toString("base64"); break; } diff --git a/packages/gphoto2-driver/src/components/CameraFileFromFd.spec.ts b/packages/gphoto2-driver/src/components/CameraFileFromFd.spec.ts new file mode 100644 index 0000000..878f783 --- /dev/null +++ b/packages/gphoto2-driver/src/components/CameraFileFromFd.spec.ts @@ -0,0 +1,33 @@ +import {$log} from "@tsed/logger"; +import {getGPhoto2Driver} from "@tsed/gphoto2-core"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {CameraFileFromFd} from "@tsed/gphoto2-driver"; + +$log.stop(); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +function createCameraFileFromFdFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const cameraFileFromFd = new CameraFileFromFd(0); + + return {driver, cameraFileFromFd}; +} + +describe("CameraFileFromFd", () => { + describe("path", () => { + it("should return path", () => { + const {driver, cameraFileFromFd} = createCameraFileFromFdFixture(); + + expect(driver.run).toHaveBeenCalledWith("gp_file_new_from_fd", cameraFileFromFd.buffer, 0); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/CameraFilePath.spec.ts b/packages/gphoto2-driver/src/components/CameraFilePath.spec.ts new file mode 100644 index 0000000..cddb01a --- /dev/null +++ b/packages/gphoto2-driver/src/components/CameraFilePath.spec.ts @@ -0,0 +1,58 @@ +import {$log} from "@tsed/logger"; +import {FakeStruct} from "../__mock__/FakeBuffer"; +import {getGPhoto2Driver, StructCameraFilePath} from "@tsed/gphoto2-core"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {CameraFilePath} from "@tsed/gphoto2-driver"; + +$log.stop(); + +const cameraFilePath = new FakeStruct({ + name: "fileName", + folder: "path" +}); + +(StructCameraFilePath as any).mockReturnValue(cameraFilePath.deref()); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +function createCameraFilePathFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const cameraFilePath = new CameraFilePath(); + + return {driver, cameraFilePath}; +} + +describe("CameraFilePath", () => { + describe("path", () => { + it("should return path", () => { + const {cameraFilePath} = createCameraFilePathFixture(); + + expect(cameraFilePath.path).toEqual("path"); + + cameraFilePath.close(); + }); + }); + describe("filename", () => { + it("should return filename", () => { + const {cameraFilePath} = createCameraFilePathFixture(); + + expect(cameraFilePath.filename).toEqual("fileName"); + }); + }); + + describe("toString()", () => { + it("should return value", () => { + const {cameraFilePath} = createCameraFilePathFixture(); + + expect(cameraFilePath.toString()).toEqual("CameraFilePath{path fileName}"); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/CameraFilePath.ts b/packages/gphoto2-driver/src/components/CameraFilePath.ts index 2d98d5d..c6ab2c8 100644 --- a/packages/gphoto2-driver/src/components/CameraFilePath.ts +++ b/packages/gphoto2-driver/src/components/CameraFilePath.ts @@ -1,18 +1,8 @@ -import { - checkCode, - Closeable, - closeQuietly, - getGPhoto2Driver, - GPCameraFileType, - PointerCamera, - PointerOf, - StructCameraFilePath -} from "@tsed/gphoto2-core"; -import {CameraFile} from "./CameraFile"; -import {Context} from "./Context"; +import {Closeable, StructCameraFilePath} from "@tsed/gphoto2-core"; +import type {Pointer} from "ref-napi"; export class CameraFilePath implements Closeable { - readonly buffer: PointerOf; + readonly buffer: Pointer; constructor() { const struct = new StructCameraFilePath(); @@ -39,66 +29,6 @@ export class CameraFilePath implements Closeable { return "CameraFilePath{" + this.path + " " + this.filename + "}"; } - /** - * Returns a referenced camera file. - * @return camera file. - * @param pCamera - */ - public newFile(pCamera: PointerCamera): CameraFile | undefined { - const cameraFile = new CameraFile(); - - try { - const path = this.path; - const filepath = this.filename; - - const result = getGPhoto2Driver().gp_camera_file_get( - pCamera, - path, - filepath, - GPCameraFileType.GP_FILE_TYPE_NORMAL, - cameraFile.pointer, - Context.get().pointer - ); - - checkCode(result); - - return cameraFile; - } catch (er) { - closeQuietly(cameraFile); - throw er; - } - } - - /** - * - * @param {PointerCamera} pCamera - * @returns {Promise} - */ - public async newFileAsync(pCamera: PointerCamera): Promise { - const cameraFile = new CameraFile(); - - try { - const path = this.path; - const filepath = this.filename; - - const result = await getGPhoto2Driver().gp_camera_file_get_async( - pCamera, - path, - filepath, - GPCameraFileType.GP_FILE_TYPE_NORMAL, - cameraFile.pointer, - Context.get().pointer - ); - - checkCode(result); - - return cameraFile; - } catch (er) { - closeQuietly(cameraFile); - throw er; - } - } - /** * * @returns {this} diff --git a/packages/gphoto2-driver/src/components/CameraList.spec.ts b/packages/gphoto2-driver/src/components/CameraList.spec.ts new file mode 100644 index 0000000..1474a2e --- /dev/null +++ b/packages/gphoto2-driver/src/components/CameraList.spec.ts @@ -0,0 +1,68 @@ +import {$log} from "@tsed/logger"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {getGPhoto2Driver, GPPointerString} from "@tsed/gphoto2-core"; +import {CameraList, Context} from "@tsed/gphoto2-driver"; +import {alloc} from "../__mock__/ref-napi"; + +$log.stop(); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +(GPPointerString as any).mockReturnValue(alloc("string")); + +function createCameraListFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const list = new CameraList(); + + return {driver, list}; +} + +describe("CameraList", () => { + describe("autodetect()", () => { + it("should autodetect camera", () => { + const {list, driver} = createCameraListFixture(); + + list.autodetect(); + + expect(driver.run).toHaveBeenCalledWith("gp_camera_autodetect", list.pointer, Context.get().pointer); + }); + }); + + describe("autodetectAsync()", () => { + it("should autodetect camera", async () => { + const {list, driver} = createCameraListFixture(); + + await list.autodetectAsync(); + + expect(driver.runAsync).toHaveBeenCalledWith("gp_camera_autodetect", list.pointer, Context.get().pointer); + }); + }); + + describe("load()", () => { + it("should load camera list", () => { + const {list, driver} = createCameraListFixture(); + + list.load(); + + expect(driver.run).toBeCalledTimes(13); + }); + }); + + describe("loadAsync()", () => { + it("should load camera list", async () => { + const {list, driver} = createCameraListFixture(); + + await list.loadAsync(); + + expect(driver.run).toBeCalledTimes(12); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/CameraList.ts b/packages/gphoto2-driver/src/components/CameraList.ts index 80658a5..0b65cc4 100644 --- a/packages/gphoto2-driver/src/components/CameraList.ts +++ b/packages/gphoto2-driver/src/components/CameraList.ts @@ -1,6 +1,4 @@ -import {checkCode, getGPhoto2Driver, GPPointerString} from "@tsed/gphoto2-core"; import {$log} from "@tsed/logger"; -import {deref} from "ref-napi"; import {CameraOptions} from "../interfaces"; import {AbilitiesList} from "./AbilitiesList"; import {Camera} from "./Camera"; @@ -15,8 +13,18 @@ export class CameraList extends List { super(); } + static getCamera(index: number) { + const cameraList = new CameraList().load(); + + return cameraList.getCamera(index); + } + autodetect() { - getGPhoto2Driver().gp_camera_autodetect(this.pointer, Context.get().pointer); + return this.run("gp_camera_autodetect", this.pointer, Context.get().pointer); + } + + async autodetectAsync() { + return this.runAsync("gp_camera_autodetect", this.pointer, Context.get().pointer); } load(): this { @@ -34,6 +42,21 @@ export class CameraList extends List { return this; } + async loadAsync() { + const [portInfoList, abilitiesList] = await Promise.all([new PortInfoList().load(), new AbilitiesList().load()]); + + const cameraList = await abilitiesList.detectAsync(portInfoList); + + $log.debug("Found", cameraList.size, "camera(s)"); + this.getCameraListInfos(cameraList); + + portInfoList.close(); + abilitiesList.close(); + cameraList.close(); + + return this; + } + /** * * @param {number} index @@ -45,7 +68,7 @@ export class CameraList extends List { if (cameraInfo) { const portInfoList = new PortInfoList().load(); const camera = new Camera(); - const portInfo = portInfoList.findByPath(cameraInfo.port)!; + const portInfo = portInfoList.findByPath(cameraInfo.port); camera.initialize(portInfo); @@ -57,12 +80,6 @@ export class CameraList extends List { return undefined; } - static getCamera(index: number) { - const cameraList = new CameraList().load(); - - return cameraList.getCamera(index); - } - /** * * @returns {string} @@ -79,14 +96,11 @@ export class CameraList extends List { const count = cameraList.size; for (let i = 0; i < count; i++) { - const model = GPPointerString(); // alloc("string") as PointerOf; - const path = GPPointerString(); // alloc("string") as PointerOf; - - checkCode(getGPhoto2Driver().gp_list_get_name(cameraList.pointer, i, model)); - checkCode(getGPhoto2Driver().gp_list_get_value(cameraList.pointer, i, path)); + const model = cameraList.getName(i); + const path = cameraList.getValue(i); - if (deref(path).match(CameraList.USB_PATTERN)) { - this.push(deref(model), deref(path)); + if (path.match(CameraList.USB_PATTERN)) { + this.push(model, path); } } } diff --git a/packages/gphoto2-driver/src/components/CameraWidgets.ts b/packages/gphoto2-driver/src/components/CameraWidgets.ts index 7229464..ca8ba7d 100644 --- a/packages/gphoto2-driver/src/components/CameraWidgets.ts +++ b/packages/gphoto2-driver/src/components/CameraWidgets.ts @@ -316,7 +316,7 @@ export class CameraWidgets extends Map implements Closeable { throw new Error(`Parameter path: invalid value ${path}: is of type ${widget.type} which does not have any choices.`); } - return widget.choices!; + return widget.choices || []; } /** @@ -329,30 +329,31 @@ export class CameraWidgets extends Map implements Closeable { /** * Enumerate all widgets - * @param widget + * @param pWidget * @param path */ - private enumWidgets(widget: PointerCameraWidget, path: string) { + private enumWidgets(pWidget: PointerCameraWidget, path: string) { this.checkNotClosed(); const type = GPPointer("int"); - checkCode(getGPhoto2Driver().gp_widget_get_type(widget, type)); + checkCode(getGPhoto2Driver().gp_widget_get_type(pWidget, type)); const widgetType = WidgetTypes.fromCVal(type.deref()); if (widgetType.hasValue) { - if (super.has(path)) { - super.get(path)!.pointer = widget; + const widget = super.get(path); + if (widget) { + widget.pointer = pWidget; } else { - super.set(path, new Widget(path, widget, this)); + super.set(path, new Widget(path, pWidget, this)); } } - const childcount: number = checkCode(getGPhoto2Driver().gp_widget_count_children(widget)); + const childcount: number = checkCode(getGPhoto2Driver().gp_widget_count_children(pWidget)); for (let i = 0; i < childcount; i++) { const buffer = GPPointerRef(); - checkCode(getGPhoto2Driver().gp_widget_get_child(widget, i, buffer)); + checkCode(getGPhoto2Driver().gp_widget_get_child(pWidget, i, buffer)); this.enumWidgets(buffer.deref(), `${path}/${this.getBasename(buffer.deref())}`); } diff --git a/packages/gphoto2-driver/src/components/List.spec.ts b/packages/gphoto2-driver/src/components/List.spec.ts new file mode 100644 index 0000000..48ad369 --- /dev/null +++ b/packages/gphoto2-driver/src/components/List.spec.ts @@ -0,0 +1,50 @@ +import {$log} from "@tsed/logger"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {getGPhoto2Driver, GPPointerString} from "@tsed/gphoto2-core"; +import {List} from "@tsed/gphoto2-driver"; +import {alloc} from "../__mock__/ref-napi"; + +$log.stop(); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +(GPPointerString as any).mockReturnValue(alloc("string")); + +function createListFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const list = new List(); + + return {driver, list}; +} + +describe("List", () => { + it("should return the name", () => { + const {list, driver} = createListFixture(); + + driver.run.mockImplementation((...args: any[]) => { + args[3].value = "name"; + }); + + expect(list.getName(0)).toEqual("name"); + expect(driver.run).toHaveBeenCalledWith("gp_list_get_name", list.pointer, 0, expect.any(Object)); + }); + + it("should return the value", () => { + const {list, driver} = createListFixture(); + + driver.run.mockImplementation((method, pointer, index, ref) => { + ref.value = "value"; + }); + + expect(list.getValue(0)).toEqual("value"); + expect(driver.run).toHaveBeenCalledWith("gp_list_get_value", list.pointer, 0, expect.any(Object)); + }); +}); diff --git a/packages/gphoto2-driver/src/components/List.ts b/packages/gphoto2-driver/src/components/List.ts index 3b6a09d..a43e4f5 100644 --- a/packages/gphoto2-driver/src/components/List.ts +++ b/packages/gphoto2-driver/src/components/List.ts @@ -1,4 +1,4 @@ -import {checkCode, getGPhoto2Driver, GPPointerString, PointerList, RefList} from "@tsed/gphoto2-core"; +import {GPPointerString, PointerList, RefList} from "@tsed/gphoto2-core"; import {PointerWrapper} from "./PointerWrapper"; export class List extends PointerWrapper { @@ -6,14 +6,6 @@ export class List extends PointerWrapper { super({method: "gp_list", refType: RefList}); } - /** - * - * @returns {any} - */ - get size(): number { - return checkCode(getGPhoto2Driver().gp_list_count(this.pointer)); - } - /** * * @param {number} index @@ -22,7 +14,7 @@ export class List extends PointerWrapper { public getName(index: number): string { const ref = GPPointerString(); - getGPhoto2Driver().gp_list_get_name(this.pointer, index, ref); + this.call("get_name", index, ref); return ref.deref(); } @@ -35,13 +27,13 @@ export class List extends PointerWrapper { public getValue(index: number): string { const ref = GPPointerString(); - getGPhoto2Driver().gp_list_get_value(this.pointer, index, ref); + this.call("get_value", index, ref); return ref.deref(); } public push(name: string, value: string) { - checkCode(getGPhoto2Driver().gp_list_append(this.pointer, name, value)); + this.call("append", name, value); } public get(index: number): T | undefined { diff --git a/packages/gphoto2-driver/src/components/LiveView.ts b/packages/gphoto2-driver/src/components/LiveView.ts index 10ddcae..8c5effe 100644 --- a/packages/gphoto2-driver/src/components/LiveView.ts +++ b/packages/gphoto2-driver/src/components/LiveView.ts @@ -7,7 +7,6 @@ import {LiveViewOptions} from "../interfaces/LiveViewOptions"; import {Camera} from "./Camera"; import {CameraFile} from "./CameraFile"; import {CameraFileFromFd} from "./CameraFileFromFd"; -import {Context} from "./Context"; import {addInstance} from "./Garbage"; export class LiveView extends EventEmitter implements Closeable { @@ -76,7 +75,8 @@ export class LiveView extends EventEmitter implements Closeable { if (!this.file) { throw new Error("LiveView was closed"); } - await this.camera.callAsync("capture_preview", this.file.pointer, Context.get().pointer); + + await this.camera.preview(this.file); if (this.options.output === "binary" || this.options.output === "base64") { const {data, size} = await this.file.getDataAndSizeAsync(this.options.output); diff --git a/packages/gphoto2-driver/src/components/PointerWrapper.ts b/packages/gphoto2-driver/src/components/PointerWrapper.ts index 0be46eb..1453126 100644 --- a/packages/gphoto2-driver/src/components/PointerWrapper.ts +++ b/packages/gphoto2-driver/src/components/PointerWrapper.ts @@ -1,33 +1,63 @@ -import {checkCode, Closeable, closeQuietly, getGPhoto2Driver, GPCodes, PointerOf} from "@tsed/gphoto2-core"; -import {alloc, Type} from "ref-napi"; +import {classOf, nameOf} from "@tsed/core"; +import {$log} from "@tsed/logger"; +import {Closeable, closeQuietly, getGPhoto2Driver, GPCodes, GPhoto2Driver} from "@tsed/gphoto2-core"; +import {alloc, Pointer, Type} from "ref-napi"; import {addInstance, removeInstance} from "./Garbage"; +import {Context} from "./Context"; export interface PointerWrapperOptions { method: string; refType: Type; + loadWithContext?: boolean; openMethod?: string; closeMethod?: string; } -export class PointerWrapper

> implements Closeable { +export class PointerWrapper

> implements Closeable { + private _buffer: Pointer

; + constructor(private options: PointerWrapperOptions, ...args: any[]) { this.new(...args); } - private _buffer: PointerOf

; - - get buffer(): PointerOf

{ + get buffer(): Pointer

{ return this._buffer; } - get byRef(): PointerOf

{ - return this._buffer; + get size(): number { + return this.call("count"); + } + + get byRef() { + return this.buffer; } get pointer(): P { return this._buffer.deref(); } + load(): this { + $log.debug(`Load ${nameOf(classOf(this))}...`); + + this.call("load", ...[this.options.loadWithContext && Context.get().pointer].filter(Boolean)); + + this.$afterLoaded(); + + $log.debug(`Load ${nameOf(classOf(this))}... ok`); + return this; + } + + async loadAsync(): Promise { + $log.debug(`Load ${nameOf(classOf(this))}...`); + + await this.callAsync("load", ...[this.options.loadWithContext && Context.get().pointer].filter(Boolean)); + await this.$afterLoaded(); + + $log.debug(`Load ${nameOf(classOf(this))}... ok`); + + return this; + } + close(): this { const {closeMethod} = this.getOptions(); @@ -41,48 +71,40 @@ export class PointerWrapper

> implements Closeable { closeQuietly(this); } - callByRef(key: string, ...args: any[]) { - let {method} = this.getOptions(); - method = `${method}_${key}`; - const driver = getGPhoto2Driver(); + // eslint-disable-next-line @typescript-eslint/no-empty-function + protected $afterLoaded(): any {} - if (driver[method]) { - return checkCode(driver[method](this.byRef, ...args), method); - } + protected callByRef(key: string, ...args: any[]) { + let {method} = this.getOptions(); + method = `${method}_${key.replace(method, "")}`; - if (process.env.NODE_ENV !== "production") { - console.warn(`${method} on GPhoto2Driver doesn't exists`); - } + return this.run(method, this.byRef, ...args); } - call(key: string, ...args: any[]) { + protected call(key: string, ...args: any[]) { let {method} = this.getOptions(); - method = `${method}_${key}`; - const driver = getGPhoto2Driver(); + method = `${method}_${key.replace(method, "")}`; - if (driver[method]) { - return checkCode(driver[method](this.pointer, ...args), method); - } + return this.run(method, this.pointer, ...args); + } + + protected run(key: keyof GPhoto2Driver | string, ...args: any[]): T { + const driver = getGPhoto2Driver(); - if (process.env.NODE_ENV !== "production") { - console.warn(`${method} on GPhoto2Driver doesn't exists`); - } + return driver.run(key as any, ...args); } - async callAsync(key: string, ...args: any[]) { + protected async callAsync(key: string, ...args: any[]) { let {method} = this.getOptions(); - method = `${method}_${key}`; - const driver = getGPhoto2Driver(); + method = `${method}_${key.replace(method, "")}`; - if (driver[method]) { - const result = await driver[method](this.pointer, ...args); + return this.runAsync(method as any, this.pointer, ...args); + } - return checkCode(result, method); - } + protected async runAsync(key: keyof GPhoto2Driver | string, ...args: any[]): Promise { + const driver = getGPhoto2Driver(); - if (process.env.NODE_ENV !== "production") { - console.warn(`${method} on GPhoto2Driver doesn't exists`); - } + return driver.runAsync(key as any, ...args); } protected new(...args: any[]): GPCodes { @@ -91,7 +113,7 @@ export class PointerWrapper

> implements Closeable { addInstance(this); this._buffer = alloc(refType) as any; - return this.callByRef(openMethod!, ...args); + return this.callByRef(openMethod, ...args); } private getOptions() { diff --git a/packages/gphoto2-driver/src/components/PortInfoList.spec.ts b/packages/gphoto2-driver/src/components/PortInfoList.spec.ts new file mode 100644 index 0000000..7acf3b7 --- /dev/null +++ b/packages/gphoto2-driver/src/components/PortInfoList.spec.ts @@ -0,0 +1,116 @@ +import {getGPhoto2Driver, GPPointer} from "@tsed/gphoto2-core"; +import {PortInfoList} from "@tsed/gphoto2-driver"; +import {createDriverFixture} from "../__mock__/createDriverFixture"; +import {alloc} from "../__mock__/ref-napi"; +import {$log} from "@tsed/logger"; + +$log.stop(); + +jest.mock("@tsed/gphoto2-core"); +jest.mock("ref-napi", () => { + return { + ...jest.requireActual("ref-napi"), + ...jest.requireActual("@tsed/gphoto2-driver/src/__mock__/ref-napi") + }; +}); + +(GPPointer as any).mockImplementation(alloc); + +function createPortInfoListFixture() { + const driver = createDriverFixture(); + (getGPhoto2Driver as any).mockReturnValue(driver); + + const portInfoList = new PortInfoList(); + + return {driver, portInfoList}; +} + +describe("PortListInfo", () => { + describe("size()", () => { + it("should create a new instance of AbilitiesList", () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockReturnValue(10); + + expect(portInfoList.size).toEqual(10); + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_count", portInfoList.pointer); + }); + }); + describe("load()", () => { + it("should load port info", () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockReturnValue(undefined); + + portInfoList.load(); + + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_load", portInfoList.pointer); + }); + }); + describe("loadAsync()", () => { + it("should load port info", async () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockReturnValue(undefined); + + await portInfoList.loadAsync(); + + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.runAsync).toHaveBeenCalledWith("gp_port_info_list_load", portInfoList.pointer); + }); + }); + describe("getPortInfo()", () => { + it("should return port info", async () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockReturnValue(undefined); + + const index = 0; + + const portInfo = await portInfoList.getPortInfo(index); + + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_get_info", portInfoList.pointer, 0, portInfo.buffer); + }); + }); + describe("getPortInfoAsync()", () => { + it("should return port info", async () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockReturnValue(undefined); + + const index = 0; + + const portInfo = await portInfoList.getPortInfoAsync(index); + + expect(driver.run).toHaveBeenCalledWith("gp_port_info_list_new", portInfoList.buffer); + expect(driver.runAsync).toHaveBeenCalledWith("gp_port_info_list_get_info", portInfoList.pointer, 0, portInfo.buffer); + }); + }); + describe("findByPath()", () => { + it("should return port info", async () => { + const {portInfoList, driver} = createPortInfoListFixture(); + driver.run.mockImplementation((method, pointer, ref) => { + if (method.includes("count")) { + return 1; + } + + if (method.includes("get_name")) { + ref.value = "name"; + return; + } + + if (method.includes("get_path")) { + ref.value = "path"; + return; + } + }); + + portInfoList.load(); + + const portInfo = await portInfoList.findByPath("path"); + + expect(portInfo?.path).toEqual("path"); + expect(portInfo?.name).toEqual("name"); + expect(portInfo?.toString()).toEqual("PortInfo{name:path}"); + + portInfo?.close(); + }); + }); +}); diff --git a/packages/gphoto2-driver/src/components/PortInfoList.ts b/packages/gphoto2-driver/src/components/PortInfoList.ts index bf8a40c..30baeed 100644 --- a/packages/gphoto2-driver/src/components/PortInfoList.ts +++ b/packages/gphoto2-driver/src/components/PortInfoList.ts @@ -1,4 +1,4 @@ -import {checkCode, getGPhoto2Driver, PointerPortInfoList, RefPortInfoList} from "@tsed/gphoto2-core"; +import {PointerPortInfoList, RefPortInfoList} from "@tsed/gphoto2-core"; import {$log} from "@tsed/logger"; import {PointerWrapper} from "./PointerWrapper"; import {PortInfo} from "./PortInfo"; @@ -10,36 +10,29 @@ export class PortInfoList extends PointerWrapper { super({method: "gp_port_info_list", refType: RefPortInfoList}); } - get size(): number { - return checkCode(getGPhoto2Driver().gp_port_info_list_count(this.pointer), "gp_port_info_list_count"); - } - /** * + * @param {number} index + * @returns {PortInfo} */ - load(): this { - $log.debug("Load port info list..."); - - checkCode(getGPhoto2Driver().gp_port_info_list_load(this.pointer), "gp_port_info_list_load"); + getPortInfo(index: number): PortInfo { + $log.debug("Get port info..."); - this.toArray().forEach((portInfo) => { - this.map.set(portInfo.path, portInfo); - }); + const portInfo = new PortInfo(); - $log.debug("Load port info list... ok"); + this.call("get_info", index, portInfo.buffer); - return this; + $log.debug("Get port info... ok"); + return portInfo; } - /** - * - * @param {number} index - * @returns {PortInfo} - */ - getPortInfo(index: number): PortInfo { + async getPortInfoAsync(index: number): Promise { $log.debug("Get port info..."); + const portInfo = new PortInfo(); - checkCode(getGPhoto2Driver().gp_port_info_list_get_info(this.pointer, index, portInfo.buffer), "gp_port_info_list_get_info"); + + await this.callAsync("get_info", index, portInfo.buffer); + $log.debug("Get port info... ok"); return portInfo; } @@ -53,13 +46,21 @@ export class PortInfoList extends PointerWrapper { return this.map.get(path); } - public toArray(): PortInfo[] { + toArray(): PortInfo[] { const list = []; const size = this.size; + for (let i = 0; i < size; i++) { + $log.debug("Collect port info", i); list.push(this.getPortInfo(i)); } return list as any[]; } + + protected $afterLoaded() { + this.toArray().forEach((portInfo) => { + this.map.set(portInfo.path, portInfo); + }); + } } diff --git a/packages/gphoto2-driver/src/components/Widget.ts b/packages/gphoto2-driver/src/components/Widget.ts index 6016957..4a8e09e 100644 --- a/packages/gphoto2-driver/src/components/Widget.ts +++ b/packages/gphoto2-driver/src/components/Widget.ts @@ -7,7 +7,6 @@ import { GPPointerRef, GPPointerString, PointerCameraWidget, - PointerOf, pointerToString } from "@tsed/gphoto2-core"; import {WidgetProps} from "../interfaces"; @@ -119,7 +118,7 @@ export class Widget implements WidgetProps { checkCode(getGPhoto2Driver().gp_widget_get_value(this._pointer, pref)); const p = pref.deref(); - return p == null ? null : pointerToString(p as PointerOf); + return p == null ? null : pointerToString(p); } case WidgetTypes.RANGE: { @@ -245,7 +244,7 @@ export class Widget implements WidgetProps { throw new Error("Parameter type: invalid value " + type + ": unsupported"); } - checkCode(getGPhoto2Driver().gp_widget_set_value(this._pointer, ptr as PointerOf)); + checkCode(getGPhoto2Driver().gp_widget_set_value(this._pointer, ptr)); if (refresh) { try { diff --git a/packages/gphoto2-driver/src/utils/run.ts b/packages/gphoto2-driver/src/utils/run.ts index 1aca59d..a2c990a 100644 --- a/packages/gphoto2-driver/src/utils/run.ts +++ b/packages/gphoto2-driver/src/utils/run.ts @@ -26,7 +26,7 @@ export async function run(cb: any, options: RunOptions = {}) { try { await cb(); } catch (er) { - $log.error(er.message); + $log.error(er.message, er.stack); } finally { closeAll(); } diff --git a/packages/gphoto2-driver/tsconfig.compile.esm.json b/packages/gphoto2-driver/tsconfig.compile.esm.json new file mode 100644 index 0000000..33b292b --- /dev/null +++ b/packages/gphoto2-driver/tsconfig.compile.esm.json @@ -0,0 +1,24 @@ +{ + "extends": "./tsconfig.compile.json", + "compilerOptions": { + "baseUrl": ".", + "module": "ES2020", + "rootDir": "src", + "outDir": "./lib/esm", + "declaration": true, + "declarationDir": "./lib/types", + "skipLibCheck": true + }, + "exclude": [ + "node_modules", + "test", + "lib", + "benchmark", + "coverage", + "spec", + "**/*.benchmark.ts", + "**/*.spec.ts", + "keys", + "jest.config.js" + ] +} diff --git a/packages/gphoto2-driver/tsconfig.compile.json b/packages/gphoto2-driver/tsconfig.compile.json index 2cfb26f..e88aa3e 100644 --- a/packages/gphoto2-driver/tsconfig.compile.json +++ b/packages/gphoto2-driver/tsconfig.compile.json @@ -2,12 +2,19 @@ "extends": "../../tsconfig.compile.json", "compilerOptions": { "rootDir": "src", - "outDir": "lib" + "outDir": "lib/cjs", + "skipLibCheck": true }, "exclude": [ "node_modules", "test", "lib", - "**/*.spec.ts" + "benchmark", + "coverage", + "spec", + "**/*.benchmark.ts", + "**/*.spec.ts", + "keys", + "jest.config.js" ] } diff --git a/packages/ts-gphoto2-driver/.npmignore b/packages/ts-gphoto2-driver/.npmignore deleted file mode 100644 index 7f50c0f..0000000 --- a/packages/ts-gphoto2-driver/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -src -test -tsconfig.compile.json -tsconfig.json diff --git a/packages/ts-gphoto2-driver/package.json b/packages/ts-gphoto2-driver/package.json deleted file mode 100644 index 7c19edb..0000000 --- a/packages/ts-gphoto2-driver/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@typedproject/gphoto2-driver", - "version": "3.0.3", - "description": "Node.js wrapper of C library libgphoto2 written in TypeScript", - "main": "lib/index.js", - "typings": "lib/index.d.js", - "author": "Romain Lenzotti", - "contributors": [ - "Alexander Gusez (https://github.com/goooseman)" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/tsedio/ts-gphoto2-driver.git" - }, - "bugs": { - "url": "https://github.com/tsedio/ts-gphoto2-driver/issues" - }, - "homepage": "https://github.com/tsedio/ts-gphoto2-driver", - "keywords": [ - "gphoto-driver", - "typescript", - "driver", - "apn", - "reflex" - ], - "scripts": { - "build": "tsc --build tsconfig.compile.json", - "build:doc": "tsc --build tsconfig.doc.json" - }, - "dependencies": { - "@tsed/gphoto2-driver": "3.0.3" - }, - "directories": { - "lib": "lib", - "src": "src", - "test": "test" - }, - "devDependencies": {}, - "peerDependencies": {} -} \ No newline at end of file diff --git a/packages/ts-gphoto2-driver/readme.md b/packages/ts-gphoto2-driver/readme.md deleted file mode 100644 index fdda504..0000000 --- a/packages/ts-gphoto2-driver/readme.md +++ /dev/null @@ -1,120 +0,0 @@ -

- Ts.ED logo -

- -
-

Ts.ED GPhotoDriver2

- -[![Build & Release](https://github.com/tsedio/ts-gphoto2-driver/actions/workflows/build.yml/badge.svg)](https://github.com/tsedio/ts-gphoto2-driver/actions/workflows/build.yml) -[![PR Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/tsedio/ts-gphoto2-driver/blob/master/CONTRIBUTING.md) -[![Coverage Status](https://coveralls.io/repos/github/tsedio/ts-gphoto2-driver/badge.svg?branch=production)](https://coveralls.io/github/tsedio/ts-gphoto2-driver?branch=production) -[![npm version](https://badge.fury.io/js/%40tsed%2Fgphoto2-driver.svg)](https://badge.fury.io/js/%40tsed%2Fgphoto2-driver) -[![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) -[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) -[![backers](https://opencollective.com/tsed/tiers/badge.svg)](https://opencollective.com/tsed) - - -
-
- Slack -   â€¢   - Twitter -
-
-
- -A Node.js wrapper for libgphoto2 written in TypeScript. Useful for remote controlling of DSLRs and other digital cameras supported by gphoto2. - -## Features - -- Camera autodetection, -- Take a picture/movie capture, -- Take a preview, -- Retrieve camera list, -- Select camera, -- Take a liveview from camera and get binary or base64 of each frame, or write it to file, -- Display info about your camera (summary, about, manual). - -## Prerequisite - -- Node.js: any version supported by nodejs/nan -- NPM: ~7.10.0 -- Nan: ~2.8.0 -- libgphoto2: ~2.5.x - via `brew install libgphoto2`, `apt-get install libgphoto2-dev` or download and build from `http://www.gphoto.org/proj/libgphoto2/`, -- pkg-config | dpkg (used for dependency checking) -- clang compiler - -> Note: This package cannot be used in front-end context (like webpack, browserify, etc...). You have to develop your own web server and expose your API. - -## Installation - -After installing the dependencies, just install using: - -```bash -brew install libgphoto2 -// or -apt-get install libgphoto2-dev - -// then -npm install @tsed/gphoto2-driver -``` - -## Usage - -Here an example with TypeScript (works also with pure javascript in Node.js): - -```typescript -import Path from "path"; -import { CameraList, run } from "@tsed/gphoto2-driver"; - -run(() => { - const cameraList = new CameraList().load(); - - if (cameraList.size) { - const camera = cameraList.getCamera(0); - const cameraFile = camera.captureImage(); - - cameraFile.save(path.join(__dirname, 'capture.jpeg')); - } -}, {logLevel: 'debug'}) -``` - -## CameraFile - -A lot of different API's of this library returns a CameraFile object. - -This object does not contain the image, it is just a pointer to the file in camera's RAM. - -You have several options to get your image: - -1) Use `.save(filename)` of `.saveAsync(filename)` methods, that will save the image to your filesystem. -2) Use `.getDataAndSizeAsync('binary' | 'base64')` method, which returns following object: - -``` -{ - data: data, // Buffer for binary format and string for base64. - size: size -} -``` - -## Examples - -Some examples are available in the `packages/examples/src` directory, when you have cloned or downloaded the complete project from github. - -Checkout this project then run `npm run install:examples && npm run develop` and run `node examples/camera.ts`. - -## Contribute - -Contributors and PR are welcome. Before, just read [contributing guidelines here](./CONTRIBUTING.md) ;) - -## License - -The MIT License (MIT) - -Copyright (c) 2016 - 2021 Romain Lenzotti - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/ts-gphoto2-driver/src/index.ts b/packages/ts-gphoto2-driver/src/index.ts deleted file mode 100644 index 82d2d6c..0000000 --- a/packages/ts-gphoto2-driver/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "@tsed/gphoto2-driver"; diff --git a/packages/ts-gphoto2-driver/tsconfig.compile.json b/packages/ts-gphoto2-driver/tsconfig.compile.json deleted file mode 100644 index 2cfb26f..0000000 --- a/packages/ts-gphoto2-driver/tsconfig.compile.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.compile.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "exclude": [ - "node_modules", - "test", - "lib", - "**/*.spec.ts" - ] -} diff --git a/tsconfig.base.json b/tsconfig.base.json index 53ecbfd..55abd0e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "target": "es2018", + "target": "es2019", "sourceMap": true, "declaration": false, "experimentalDecorators": true, @@ -19,8 +19,9 @@ "resolveJsonModule": true, "newLine": "LF", "noEmit": true, + "allowJs": true, "lib": [ - "es7", + "ES2019", "esnext.asynciterable" ], "typeRoots": [ @@ -37,6 +38,8 @@ "exclude": [ "lib", "**/lib", - "node_modules" + "node_modules", + "coverage", + ".nyc_output" ] } diff --git a/yarn.lock b/yarn.lock index 6b0e952..dfc421c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,6 @@ # yarn lockfile v1 -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz" @@ -16,11 +9,23 @@ dependencies: "@babel/highlight" "^7.12.13" +"@babel/code-frame@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + "@babel/compat-data@^7.13.15": version "7.13.15" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz" integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== +"@babel/compat-data@^7.16.0": + version "7.16.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + "@babel/core@^7.1.0", "@babel/core@^7.7.5": version "7.13.16" resolved "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz" @@ -42,6 +47,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.7.2": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz" + integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helpers" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/generator@^7.13.16", "@babel/generator@^7.13.9": version "7.13.16" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz" @@ -51,6 +77,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz" + integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== + dependencies: + "@babel/types" "^7.16.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz" @@ -61,6 +96,16 @@ browserslist "^4.14.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.16.0": + version "7.16.3" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-function-name@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz" @@ -70,6 +115,15 @@ "@babel/template" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz" @@ -77,6 +131,20 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz" @@ -84,6 +152,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-member-expression-to-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz" + integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-imports@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz" @@ -91,6 +166,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-transforms@^7.13.14": version "7.13.14" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz" @@ -105,6 +187,20 @@ "@babel/traverse" "^7.13.13" "@babel/types" "^7.13.14" +"@babel/helper-module-transforms@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz" + integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz" @@ -112,11 +208,23 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-optimise-call-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz" + integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== +"@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + "@babel/helper-replace-supers@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz" @@ -127,6 +235,16 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.12" +"@babel/helper-replace-supers@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz" + integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz" @@ -134,6 +252,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-simple-access@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz" @@ -141,16 +266,33 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz" integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + "@babel/helpers@^7.13.16": version "7.13.16" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.16.tgz" @@ -160,7 +302,16 @@ "@babel/traverse" "^7.13.15" "@babel/types" "^7.13.16" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": +"@babel/helpers@^7.16.0": + version "7.16.3" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz" + integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== + dependencies: + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.3" + "@babel/types" "^7.16.0" + +"@babel/highlight@^7.12.13": version "7.13.10" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz" integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== @@ -169,11 +320,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.15", "@babel/parser@^7.13.16": version "7.13.16" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz" integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== +"@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2": + version "7.16.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" @@ -258,6 +423,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz" + integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz" @@ -267,6 +439,15 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/template@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15": version "7.13.15" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz" @@ -281,6 +462,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": + version "7.16.3" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.13.16" resolved "https://registry.npmjs.org/@babel/types/-/types-7.13.16.tgz" @@ -289,34 +485,60 @@ "@babel/helper-validator-identifier" "^7.12.11" to-fast-properties "^2.0.0" +"@babel/types@^7.16.0": + version "7.16.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== +"@cspotcode/source-map-consumer@0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz" + integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== + +"@cspotcode/source-map-support@0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz" + integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" + "@cspotcode/source-map-consumer" "0.8.0" -"@eslint/eslintrc@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz" - integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== +"@eslint/eslintrc@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz" + integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^12.1.0" + debug "^4.3.2" + espree "^9.2.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" - js-yaml "^3.13.1" + js-yaml "^4.1.0" minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@humanwhocodes/config-array@^0.9.2": + version "0.9.2" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz" + integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" @@ -333,93 +555,94 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== +"@jest/console@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz" + integrity sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.4.2" + jest-util "^27.4.2" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== +"@jest/core@^27.4.3": + version "27.4.3" + resolved "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz" + integrity sha512-V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ== dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.2" + "@jest/reporters" "^27.4.2" + "@jest/test-result" "^27.4.2" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" + jest-changed-files "^27.4.2" + jest-config "^27.4.3" + jest-haste-map "^27.4.2" + jest-message-util "^27.4.2" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.2" + jest-resolve-dependencies "^27.4.2" + jest-runner "^27.4.3" + jest-runtime "^27.4.2" + jest-snapshot "^27.4.2" + jest-util "^27.4.2" + jest-validate "^27.4.2" + jest-watcher "^27.4.2" + micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== +"@jest/environment@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz" + integrity sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw== dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/fake-timers" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" + jest-mock "^27.4.2" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== +"@jest/fake-timers@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz" + integrity sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg== dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" + "@jest/types" "^27.4.2" + "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.4.2" + jest-mock "^27.4.2" + jest-util "^27.4.2" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== +"@jest/globals@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz" + integrity sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew== dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" + "@jest/environment" "^27.4.2" + "@jest/types" "^27.4.2" + expect "^27.4.2" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== +"@jest/reporters@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz" + integrity sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.2" + "@jest/test-result" "^27.4.2" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" + "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -430,78 +653,75 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" + jest-haste-map "^27.4.2" + jest-resolve "^27.4.2" + jest-util "^27.4.2" + jest-worker "^27.4.2" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" + v8-to-istanbul "^8.1.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== +"@jest/source-map@^27.4.0": + version "27.4.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz" + integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== +"@jest/test-result@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz" + integrity sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA== dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.2" + "@jest/types" "^27.4.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== +"@jest/test-sequencer@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz" + integrity sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ== dependencies: - "@jest/test-result" "^26.6.2" + "@jest/test-result" "^27.4.2" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" + jest-haste-map "^27.4.2" + jest-runtime "^27.4.2" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== +"@jest/transform@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz" + integrity sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" + jest-haste-map "^27.4.2" + jest-regex-util "^27.4.0" + jest-util "^27.4.2" + micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== +"@jest/types@^27.4.2": + version "27.4.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz" + integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" - "@types/yargs" "^15.0.0" + "@types/yargs" "^16.0.0" chalk "^4.0.0" "@lerna/add@4.0.0": @@ -1444,7 +1664,7 @@ "@semantic-release/commit-analyzer@^8.0.0": version "8.0.1" - resolved "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz#5d2a37cd5a3312da0e3ac05b1ca348bf60b90bca" integrity sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A== dependencies: conventional-changelog-angular "^5.0.0" @@ -1461,9 +1681,9 @@ integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== "@semantic-release/github@^7.0.0": - version "7.2.1" - resolved "https://registry.npmjs.org/@semantic-release/github/-/github-7.2.1.tgz" - integrity sha512-+gOhbaG4T3xJb6aTZu1/7KvCmYKRChkasdIyFWdaGaTWVeGpdl4o0zMviV1z3kRcgPOSXeqjHSQ6SOQAfHQiDw== + version "7.2.3" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-7.2.3.tgz#20a83abd42dca43d97f03553de970eac72856c85" + integrity sha512-lWjIVDLal+EQBzy697ayUNN8MoBpp+jYIyW2luOdqn5XBH4d9bQGfTnjuLyzARZBHejqh932HVjiH/j4+R7VHw== dependencies: "@octokit/rest" "^18.0.0" "@semantic-release/error" "^2.2.0" @@ -1471,7 +1691,7 @@ bottleneck "^2.18.1" debug "^4.0.0" dir-glob "^3.0.0" - fs-extra "^9.0.0" + fs-extra "^10.0.0" globby "^11.0.0" http-proxy-agent "^4.0.0" https-proxy-agent "^5.0.0" @@ -1483,14 +1703,14 @@ url-join "^4.0.0" "@semantic-release/npm@^7.0.0": - version "7.1.1" - resolved "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.1.1.tgz" - integrity sha512-zTYAno1j49XiH+uAVCY47dKOJAagA/MaJb26FFIfNujNHw3GYXk3ygsFa5CSa55xsO0qEMLcsDX3f3ByCg6nZw== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-7.1.3.tgz#1d64c41ff31b100299029c766ecc4d1f03aa5f5b" + integrity sha512-x52kQ/jR09WjuWdaTEHgQCvZYMOTx68WnS+TZ4fya5ZAJw4oRtJETtrvUw10FdfM28d/keInQdc66R1Gw5+OEQ== dependencies: "@semantic-release/error" "^2.2.0" aggregate-error "^3.0.0" execa "^5.0.0" - fs-extra "^9.0.0" + fs-extra "^10.0.0" lodash "^4.17.15" nerf-dart "^1.0.0" normalize-url "^6.0.0" @@ -1502,16 +1722,16 @@ tempy "^1.0.0" "@semantic-release/release-notes-generator@^9.0.0": - version "9.0.2" - resolved "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.2.tgz" - integrity sha512-xGFSidhGqB27uwgWCU6y0gbf4r/no5flOAkJyFFc4+bPf8S+LfAVm7xhhlK5VPXLt2Iu1RBH8F+IgMK2ah5YpA== + version "9.0.3" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.3.tgz#d541221c6512e9619f25ba8079527e34288e6904" + integrity sha512-hMZyddr0u99OvM2SxVOIelHzly+PP3sYtJ8XOLHdMp8mrluN5/lpeTnIO27oeCYdupY/ndoGfvrqDjHqkSyhVg== dependencies: conventional-changelog-angular "^5.0.0" conventional-changelog-writer "^4.0.0" conventional-commits-filter "^2.0.0" conventional-commits-parser "^3.0.0" debug "^4.0.0" - get-stream "^5.0.0" + get-stream "^6.0.0" import-from "^3.0.0" into-stream "^6.0.0" lodash "^4.17.4" @@ -1529,10 +1749,10 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== dependencies: "@sinonjs/commons" "^1.7.0" @@ -1548,32 +1768,50 @@ resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@tsed/core@6.92.0": - version "6.92.0" - resolved "https://registry.yarnpkg.com/@tsed/core/-/core-6.92.0.tgz#0977b445f058fb136d2b42d2723f398530db373e" - integrity sha512-ZnM72I0ZXO7MCbnPDswZYhcqMy2rePF9wV7j92DIYXGWdPlgBJWCuL1uypAHPBLlM6eEqG3h5j9cNloXL1tgfQ== +"@tsconfig/node10@^1.0.7": + version "1.0.8" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + +"@tsconfig/node12@^1.0.7": + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + +"@tsconfig/node14@^1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + +"@tsconfig/node16@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + +"@tsed/core@6.94.0": + version "6.94.0" + resolved "https://registry.npmjs.org/@tsed/core/-/core-6.94.0.tgz" + integrity sha512-InVrGkZkpEExuSTgDxuUVuTrJ2X9GC0vndi6m8jpBzJVIV2wL9Kcz2v++jSWIQAeUJv1f06+jMtKG7UH+8VAlQ== dependencies: reflect-metadata "^0.1.13" tslib "2.2.0" -"@tsed/logger@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@tsed/logger/-/logger-5.14.0.tgz#32ae224757d784af11541f98dd00ac1914813777" - integrity sha512-kBR/4y+HzmXJq/lTijtYlTkkOgfyBlPf6nGH5fikT6pEVut1KRUsoRrSvjgfeJ6k9QlZ6/CKOC5ve8lahfWZeA== +"@tsed/logger@6.0.0": + version "6.0.0" + resolved "https://registry.npmjs.org/@tsed/logger/-/logger-6.0.0.tgz" + integrity sha512-h1dia9hIhtLIahJuD6mXfW/qgAbACoK+m2Bc43b0EvKMYjfEuZbb0SZ+W3fO1xAIS9oUIG3rm96s8gVMbckXfg== dependencies: colors "^1.3.3" date-format "^3.0.0" - lodash "^4.17.21" semver "^7.3.2" - streamroller "^1.0.3" - tslib "2.1.0" + tslib "2.3.0" -"@tsed/monorepo-utils@1.17.0": - version "1.17.0" - resolved "https://registry.npmjs.org/@tsed/monorepo-utils/-/monorepo-utils-1.17.0.tgz" - integrity sha512-Nj04oGRCvPqHFMo+6wKoAfNV3DJqEBZWYLweg/WhAEefl8oGKI5LeFgewKcRogBwcH6XMi87Z7VI+Ja8UbOhtw== +"@tsed/monorepo-utils@1.19.3": + version "1.19.3" + resolved "https://registry.npmjs.org/@tsed/monorepo-utils/-/monorepo-utils-1.19.3.tgz" + integrity sha512-dDWK4gtyK/lECDz/pzPYMGHP7D6xxHe+HQNwUwIPBrZrCQsVHfeMYgWhS4vpPoUmcbwGB+jbRbrtL42Zv9DuFw== dependencies: - axios "0.19.2" + axios "0.21.1" chalk "3.0.0" commander "5.1.0" esm "3.2.25" @@ -1581,16 +1819,16 @@ fancy-log "1.3.3" figures "3.2.0" fs-extra "9.0.0" - globby "11.0.0" + globby "11.0.3" has-yarn "^2.1.0" inquirer "7.1.0" listr "0.14.3" - lodash "4.17.19" + lodash "4.17.21" normalize-path "3.0.0" - read-package-json "2.1.1" + read-package-json "2.1.2" semver "7.3.2" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": +"@types/babel__core@^7.0.0": version "7.1.14" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz" integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== @@ -1601,6 +1839,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.14": + version "7.1.16" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz" + integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.6.2" resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz" @@ -1623,19 +1872,19 @@ dependencies: "@babel/types" "^7.3.0" -"@types/ffi-napi@2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@types/ffi-napi/-/ffi-napi-2.4.3.tgz#8e0194a47f1fc9a2d1e00dcae66c919ae97faa2d" - integrity sha512-lkSpnVM3252+IAxwqmX5zPh8Nugzz7rtTcLC8tnGaY48n/5kmrO0AV3OVQDMgSKPI5X4I3vx0yeArfGV6PlwCQ== +"@types/ffi-napi@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/ffi-napi/-/ffi-napi-4.0.4.tgz#2136fb9f4c211336da6d3e24c4567fd9182cd4b4" + integrity sha512-okbJHGWpRsZTKudP9StCsxe8sWJozdF0WwXC2CLrfKWb9fkwc7nJaSJRfGQ9OeF9lQ9ihZEaOpcsuUvkdZ8Ksw== dependencies: "@types/node" "*" "@types/ref-napi" "*" "@types/ref-struct-di" "*" -"@types/fs-extra@9.0.11": - version "9.0.11" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" - integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== +"@types/fs-extra@9.0.13": + version "9.0.13" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" @@ -1665,22 +1914,22 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@26.0.22": - version "26.0.22" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6" - integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw== +"@types/jest@27.0.3": + version "27.0.3" + resolved "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz" + integrity sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg== dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" + jest-diff "^27.0.0" + pretty-format "^27.0.0" -"@types/json-schema@^7.0.7": +"@types/json-schema@^7.0.9": version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/minimatch@^3.0.3": @@ -1695,7 +1944,7 @@ "@types/node@*", "@types/node@16.11.11": version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz" integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== "@types/normalize-package-data@^2.4.0": @@ -1708,22 +1957,22 @@ resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.0.0": - version "2.2.3" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== +"@types/prettier@^2.1.5": + version "2.4.2" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz" + integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== -"@types/ref-napi@*", "@types/ref-napi@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@types/ref-napi/-/ref-napi-1.4.1.tgz#cf5a5ae6a90f6cb2a1d4db21ad32ce0e7c59a6fb" - integrity sha512-30A5bpOd+403PJCyyarGH8AOW2IowJ5AZySiGG1B4Sad5CRHt8O+cALEbSUZT+0sE456yAwB2+UjXpH+BIVN1g== +"@types/ref-napi@*", "@types/ref-napi@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/ref-napi/-/ref-napi-3.0.4.tgz#d7edc063b244c85767867ce1167ec2d7051728a1" + integrity sha512-ng8SCmdZbz1GHaW3qgGoX9IaHoIvgMqgBHLe3sv18NbAkHVgnjRW8fJq51VTUm4lnJyLu60q9/002o7qjOg13g== dependencies: "@types/node" "*" "@types/ref-struct-di@*": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/ref-struct-di/-/ref-struct-di-1.1.0.tgz#4e7a20c8b2f25a6e4b3cb4a0d615835b61ab8d84" - integrity sha512-obdtTOGqfV/3MdouZEe2hup7fZwAK6RvusqLIL0hK/MuEBKHWpC3j/NXiC5N6zXdj7p52QB0wsnUEsdkFc+DOw== + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/ref-struct-di/-/ref-struct-di-1.1.5.tgz#68a85436744108b2834f567e0500a9400b21b804" + integrity sha512-8pPFcSyw+jI7tvUC5Du9NqOhZeKOvt2LxvPN+9aKnXAu68URpWYrwY99LaraH58+XQIYWbD8tw3SH+h4/1A5vA== dependencies: "@types/ref-napi" "*" @@ -1742,116 +1991,82 @@ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz" integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== -"@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.3.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@typescript-eslint/eslint-plugin@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz" + integrity sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" + "@typescript-eslint/experimental-utils" "5.5.0" + "@typescript-eslint/scope-manager" "5.5.0" + debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== +"@typescript-eslint/experimental-utils@5.5.0", "@typescript-eslint/experimental-utils@^5.0.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz" + integrity sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A== dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.5.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/typescript-estree" "5.5.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.3.0": - version "4.22.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz" - integrity sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q== - dependencies: - "@typescript-eslint/scope-manager" "4.22.0" - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/typescript-estree" "4.22.0" - debug "^4.1.1" - -"@typescript-eslint/scope-manager@4.22.0": - version "4.22.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz" - integrity sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q== +"@typescript-eslint/parser@^5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.5.0.tgz" + integrity sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg== dependencies: - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/visitor-keys" "4.22.0" + "@typescript-eslint/scope-manager" "5.5.0" + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/typescript-estree" "5.5.0" + debug "^4.3.2" -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== +"@typescript-eslint/scope-manager@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz" + integrity sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg== dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@4.22.0": - version "4.22.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz" - integrity sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA== + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/visitor-keys" "5.5.0" -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@4.22.0": - version "4.22.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz" - integrity sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg== - dependencies: - "@typescript-eslint/types" "4.22.0" - "@typescript-eslint/visitor-keys" "4.22.0" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - semver "^7.3.2" - tsutils "^3.17.1" +"@typescript-eslint/types@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz" + integrity sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg== -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" +"@typescript-eslint/typescript-estree@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz" + integrity sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ== + dependencies: + "@typescript-eslint/types" "5.5.0" + "@typescript-eslint/visitor-keys" "5.5.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.22.0": - version "4.22.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz" - integrity sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw== - dependencies: - "@typescript-eslint/types" "4.22.0" - eslint-visitor-keys "^2.0.0" - -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@typescript-eslint/visitor-keys@5.5.0": + version "5.5.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz" + integrity sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" + "@typescript-eslint/types" "5.5.0" + eslint-visitor-keys "^3.0.0" JSONStream@^1.0.4: version "1.3.5" @@ -1889,15 +2104,20 @@ acorn-walk@^7.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.1.1, acorn@^7.4.0: +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^7.1.1: version "7.4.1" resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.6.0: + version "8.6.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz" + integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== add-stream@^1.0.0: version "1.0.0" @@ -1938,16 +2158,6 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.1.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz" - integrity sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" @@ -1999,6 +2209,16 @@ ansi-regex@^5.0.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" @@ -2018,6 +2238,16 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + ansi-wrap@0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" @@ -2043,14 +2273,6 @@ any-observable@^0.4.0: resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.4.0.tgz" integrity sha512-63ve+0jP87qPo9Pgp52K0Hy1y4t1T5vcUoTQrOtZ5M2uC1dRI6fWaUbqKmf2tvrZEIbNVLZYbKyvQju3vCwJuA== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - anymatch@^3.0.3: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" @@ -2059,6 +2281,13 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +append-transform@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" + integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== + dependencies: + default-require-extensions "^3.0.0" + aproba@^1.0.3: version "1.2.0" resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" @@ -2069,9 +2298,9 @@ aproba@^2.0.0: resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -archy@~1.0.0: +archy@^1.0.0, archy@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= are-we-there-yet@~1.1.2: @@ -2094,26 +2323,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + argv-formatter@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz" integrity sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk= -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - array-differ@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" @@ -2131,7 +2350,7 @@ array-ify@^1.0.0: array-index@1: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-index/-/array-index-1.0.0.tgz#ec56a749ee103e4e08c790b9c353df16055b97f9" + resolved "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz" integrity sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k= dependencies: debug "^2.2.0" @@ -2142,11 +2361,6 @@ array-union@^2.1.0: resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - arrify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" @@ -2174,23 +2388,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -2201,11 +2403,6 @@ at-least-node@^1.0.0: resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" @@ -2216,23 +2413,23 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@0.19.2: - version "0.19.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== +axios@0.21.1: + version "0.21.1" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== dependencies: - follow-redirects "1.5.10" + follow-redirects "^1.10.0" -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== +babel-jest@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz" + integrity sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA== dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" + "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" + babel-preset-jest "^27.4.0" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -2248,10 +2445,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== +babel-plugin-jest-hoist@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz" + integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2276,12 +2473,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz" + integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== dependencies: - babel-plugin-jest-hoist "^26.6.2" + babel-plugin-jest-hoist "^27.4.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -2289,19 +2486,6 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" @@ -2365,22 +2549,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.1: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -2404,9 +2572,20 @@ browserslist@^4.14.5: escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.17.5: + version "4.18.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz" + integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== + dependencies: + caniuse-lite "^1.0.30001280" + electron-to-chromium "^1.3.896" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + bs-logger@0.x: version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== dependencies: fast-json-stable-stringify "2.x" @@ -2418,7 +2597,7 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-from@1.x, buffer-from@^1.0.0: +buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -2461,21 +2640,6 @@ cacache@^15.0.3, cacache@^15.0.5, cacache@^15.0.6: tar "^6.0.2" unique-filename "^1.1.1" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" @@ -2489,6 +2653,16 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +caching-transform@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" + integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== + dependencies: + hasha "^5.0.0" + make-dir "^3.0.0" + package-hash "^4.0.0" + write-file-atomic "^3.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" @@ -2524,27 +2698,30 @@ camelcase@^2.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelcase@^6.2.0: + version "6.2.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz" + integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== caniuse-lite@^1.0.30001208: version "1.0.30001214" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz" integrity sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg== -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" +caniuse-lite@^1.0.30001280: + version "1.0.30001284" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001284.tgz" + integrity sha512-t28SKa7g6kiIQi6NHeOcKrOrGMzCRrXvlasPwWC26TH2QNdglgzQIRUuJ0cR3NeQPH+5jpuveeeSFDLm2zbkEw== cardinal@^2.1.1: version "2.1.1" @@ -2625,6 +2802,11 @@ ci-info@^2.0.0: resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + cidr-regex@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/cidr-regex/-/cidr-regex-3.1.1.tgz" @@ -2632,20 +2814,10 @@ cidr-regex@^3.1.1: dependencies: ip-regex "^4.1.0" -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== clean-stack@^2.0.0: version "2.2.0" @@ -2712,6 +2884,14 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cli-width@^2.0.0: version "2.2.1" resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" @@ -2722,9 +2902,18 @@ cli-width@^3.0.0: resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -2783,14 +2972,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -2825,6 +3006,11 @@ colorette@^1.2.2: resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^2.0.16: + version "2.0.16" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + colors@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" @@ -2843,7 +3029,7 @@ columnify@^1.5.4, columnify@~1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2860,16 +3046,21 @@ commander@^3.0.1: resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + compare-func@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" @@ -2878,11 +3069,6 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -2981,7 +3167,19 @@ conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.7: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7, conventional-commits-parser@^3.2.0: +conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7: + version "3.2.3" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz#fc43704698239451e3ef35fd1d8ed644f46bd86e" + integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +conventional-commits-parser@^3.2.0: version "3.2.1" resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz" integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== @@ -3015,11 +3213,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" @@ -3057,17 +3250,6 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -3118,7 +3300,7 @@ currently-unhandled@^0.4.1: d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" @@ -3150,11 +3332,6 @@ date-fns@^1.27.2: resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - date-format@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz" @@ -3165,34 +3342,34 @@ dateformat@^3.0.0: resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2, debug@^2.2.0, debug@^2.3.3: +debug@2, debug@^2.2.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.6: +debug@^3.1.0: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +debug@^4.3.2: + version "4.3.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" @@ -3206,9 +3383,9 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decimal.js@^10.2.1: @@ -3248,6 +3425,13 @@ deepmerge@^4.2.2: resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-require-extensions@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" + integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== + dependencies: + strip-bom "^4.0.0" + defaults@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" @@ -3267,28 +3451,6 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - del@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/del/-/del-6.0.0.tgz" @@ -3346,10 +3508,10 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz" + integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== diff@^4.0.1: version "4.0.2" @@ -3433,15 +3595,20 @@ electron-to-chromium@^1.3.712: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz" integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== +electron-to-chromium@^1.3.896: + version "1.4.11" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz" + integrity sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== emoji-regex@^7.0.1: version "7.0.3" @@ -3453,6 +3620,11 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encoding@^0.1.12: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" @@ -3537,16 +3709,21 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.3" next-tick "~1.0.0" +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -3555,7 +3732,7 @@ es6-iterator@~2.0.3: es6-symbol@^3.0.2, es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" @@ -3576,6 +3753,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" @@ -3590,20 +3772,20 @@ escodegen@^2.0.0: eslint-config-prettier@8.3.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz" integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== -eslint-plugin-jest@24.3.5: - version "24.3.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.3.5.tgz#71f0b580f87915695c286c3f0eb88cf23664d044" - integrity sha512-XG4rtxYDuJykuqhsOqokYIR84/C8pRihRtEpVskYLbIIKGwPNW2ySxdctuVzETZE+MbF/e7wmsnbNVpzM0rDug== +eslint-plugin-jest@25.3.0: + version "25.3.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.0.tgz" + integrity sha512-79WQtuBsTN1S8Y9+7euBYwxIOia/k7ykkl9OCBHL3xuww5ecursHy/D8GCIlvzHVWv85gOkS5Kv6Sh7RxOgK1Q== dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" + "@typescript-eslint/experimental-utils" "^5.0.0" -eslint-plugin-prettier@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== +eslint-plugin-prettier@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -3615,70 +3797,72 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz" + integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - eslint-visitor-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.10.0: - version "7.24.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz" - integrity sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz" + integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== + +eslint@^8.4.0: + version "8.4.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.4.0.tgz" + integrity sha512-kv0XQcAQJL/VD9THQKhTQZVqkJKA+tIj/v2ZKNaIHRAADcJWFb+B/BAewUYuF6UVg1s2xC5qXVoDk0G8sKGeTA== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.0" + "@eslint/eslintrc" "^1.0.5" + "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" enquirer "^2.3.5" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.0" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.1.0" + espree "^9.2.0" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^6.0.1" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" progress "^2.0.0" - regexpp "^3.1.0" + regexpp "^3.2.0" semver "^7.2.1" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" strip-json-comments "^3.1.0" - table "^6.0.4" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -3687,14 +3871,14 @@ esm@3.2.25: resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz" + integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg== dependencies: - acorn "^7.4.0" + acorn "^8.6.0" acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^3.1.0" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -3735,11 +3919,6 @@ eventemitter3@^4.0.4: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - execa@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz" @@ -3768,19 +3947,6 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^2.0.4: version "2.1.0" resolved "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz" @@ -3796,7 +3962,7 @@ execa@^2.0.4: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^4.0.0, execa@^4.1.0: +execa@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -3826,58 +3992,45 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" +expect@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz" + integrity sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg== + dependencies: + "@jest/types" "^27.4.2" + ansi-styles "^5.0.0" + jest-get-type "^27.4.0" + jest-matcher-utils "^27.4.2" + jest-message-util "^27.4.2" + jest-regex-util "^27.4.0" ext@^1.1.2: version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz" integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== dependencies: type "^2.0.0" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" @@ -3892,20 +4045,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" @@ -3921,7 +4060,7 @@ fancy-log@1.3.3, fancy-log@^1.3.2: parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3969,7 +4108,7 @@ fb-watchman@^2.0.0: ffi-napi@4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/ffi-napi/-/ffi-napi-4.0.3.tgz#27a8d42a8ea938457154895c59761fbf1a10f441" + resolved "https://registry.npmjs.org/ffi-napi/-/ffi-napi-4.0.3.tgz" integrity sha512-PMdLCIvDY9mS32RxZ0XGb95sonPRal8aqRhLbeEtWKZTe2A87qRFG9HjOhvG8EX2UmQw5XNRMIOT+1MYlWmdeg== dependencies: debug "^4.1.1" @@ -3979,7 +4118,7 @@ ffi-napi@4.0.3: ref-napi "^2.0.1 || ^3.0.2" ref-struct-di "^1.1.0" -figures@3.2.0, figures@^3.0.0, figures@^3.2.0: +figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -4013,16 +4152,6 @@ file-uri-to-path@1.0.0: resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -4035,6 +4164,15 @@ filter-obj@^1.1.0: resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= +find-cache-dir@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" @@ -4078,23 +4216,38 @@ flatted@^3.1.0: resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" +follow-redirects@^1.10.0: + version "1.14.5" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz" + integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" @@ -4104,13 +4257,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - from2@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" @@ -4119,9 +4265,14 @@ from2@^2.3.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@10.0.0: +fromentries@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" + integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== + +fs-extra@10.0.0, fs-extra@^10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== dependencies: graceful-fs "^4.2.0" @@ -4138,15 +4289,6 @@ fs-extra@9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" @@ -4156,7 +4298,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.1.0: +fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -4185,7 +4327,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2: +fsevents@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -4219,9 +4361,14 @@ gensync@^1.0.0-beta.2: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: @@ -4233,11 +4380,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" @@ -4269,7 +4411,7 @@ get-stream@^3.0.0: resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -4295,16 +4437,11 @@ get-symbol-from-current-process-h@^1.0.1, get-symbol-from-current-process-h@^1.0 get-uv-event-loop-napi-h@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz#42b0b06b74c3ed21fbac8e7c72845fdb7a200208" + resolved "https://registry.npmjs.org/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz" integrity sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg== dependencies: get-symbol-from-current-process-h "^1.0.1" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - getpass@^0.1.1: version "0.1.7" resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -4397,13 +4534,20 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1: +glob-parent@^5.1.0, glob-parent@^5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" @@ -4416,6 +4560,18 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.5: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" @@ -4428,13 +4584,6 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - globals@^13.6.0: version "13.8.0" resolved "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz" @@ -4442,19 +4591,14 @@ globals@^13.6.0: dependencies: type-fest "^0.20.2" -globby@11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz" - integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== +globals@^13.9.0: + version "13.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz" + integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" + type-fest "^0.20.2" -globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: +globby@11.0.3, globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: version "11.0.3" resolved "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz" integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== @@ -4466,9 +4610,9 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.0.3: +globby@^11.0.4: version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== dependencies: array-union "^2.1.0" @@ -4500,14 +4644,9 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - handlebars@^4.7.6: version "4.7.7" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== dependencies: minimist "^1.2.5" @@ -4567,37 +4706,6 @@ has-unicode@^2.0.0, has-unicode@^2.0.1: resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has-yarn@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" @@ -4610,6 +4718,14 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasha@^5.0.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hook-std@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz" @@ -4689,7 +4805,7 @@ humanize-ms@^1.2.1: husky@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e" + resolved "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz" integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ== iconv-lite@0.4.24, iconv-lite@^0.4.24: @@ -4733,7 +4849,7 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: import-from@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== dependencies: resolve-from "^5.0.0" @@ -4866,6 +4982,11 @@ into-stream@^6.0.0: from2 "^2.3.0" p-is-promise "^3.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + ip-regex@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" @@ -4876,20 +4997,6 @@ ip@^1.1.5: resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -4907,7 +5014,7 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.0" -is-buffer@^1.1.5, is-buffer@~1.1.6: +is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -4938,60 +5045,11 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -5019,6 +5077,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" @@ -5031,6 +5094,13 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz" @@ -5059,19 +5129,12 @@ is-number-object@^1.0.4: resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz" integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0, is-obj@^1.0.1: +is-obj@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= @@ -5115,7 +5178,7 @@ is-plain-obj@^2.0.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -5127,7 +5190,7 @@ is-plain-object@^5.0.0: resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-potential-custom-element-name@^1.0.0: +is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== @@ -5145,11 +5208,6 @@ is-regex@^1.1.2: call-bind "^1.0.2" has-symbols "^1.0.1" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - is-ssh@^1.3.0: version "1.3.2" resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz" @@ -5191,11 +5249,6 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" @@ -5203,22 +5256,15 @@ is-utf8@^0.2.0: is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -5228,14 +5274,7 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= @@ -5256,11 +5295,28 @@ issue-parser@^6.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" +istanbul-lib-coverage@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== + istanbul-lib-coverage@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== +istanbul-lib-coverage@^3.0.0-alpha.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-hook@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" + integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== + dependencies: + append-transform "^2.0.0" + istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" @@ -5271,6 +5327,19 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-processinfo@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" + integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== + dependencies: + archy "^1.0.0" + cross-spawn "^7.0.0" + istanbul-lib-coverage "^3.0.0-alpha.1" + make-dir "^3.0.0" + p-map "^3.0.0" + rimraf "^3.0.0" + uuid "^3.3.3" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" @@ -5289,6 +5358,17 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" +istanbul-merge@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-merge/-/istanbul-merge-1.1.1.tgz#75be643436d4de723e03a94d1ca5f5f994b0bd72" + integrity sha1-db5kNDbU3nI+A6lNHKX1+ZSwvXI= + dependencies: + foreach "^2.0.5" + glob "^7.0.5" + istanbul-lib-coverage "^1.0.0" + mkdirp "^0.5.1" + yargs "^4.8.1" + istanbul-reports@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz" @@ -5302,200 +5382,227 @@ java-properties@^1.0.0: resolved "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== +jest-changed-files@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz" + integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" + "@jest/types" "^27.4.2" + execa "^5.0.0" + throat "^6.0.1" -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== +jest-circus@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz" + integrity sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A== dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.2" + "@jest/test-result" "^27.4.2" + "@jest/types" "^27.4.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.4.2" + is-generator-fn "^2.0.0" + jest-each "^27.4.2" + jest-matcher-utils "^27.4.2" + jest-message-util "^27.4.2" + jest-runtime "^27.4.2" + jest-snapshot "^27.4.2" + jest-util "^27.4.2" + pretty-format "^27.4.2" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.4.3: + version "27.4.3" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz" + integrity sha512-zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw== + dependencies: + "@jest/core" "^27.4.3" + "@jest/test-result" "^27.4.2" + "@jest/types" "^27.4.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-config "^27.4.3" + jest-util "^27.4.2" + jest-validate "^27.4.2" prompts "^2.0.1" - yargs "^15.4.1" + yargs "^16.2.0" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== +jest-config@^27.4.3: + version "27.4.3" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz" + integrity sha512-DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" + "@jest/test-sequencer" "^27.4.2" + "@jest/types" "^27.4.2" + babel-jest "^27.4.2" chalk "^4.0.0" + ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" + jest-circus "^27.4.2" + jest-environment-jsdom "^27.4.3" + jest-environment-node "^27.4.2" + jest-get-type "^27.4.0" + jest-jasmine2 "^27.4.2" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.2" + jest-runner "^27.4.3" + jest-util "^27.4.2" + jest-validate "^27.4.2" + micromatch "^4.0.4" + pretty-format "^27.4.2" + slash "^3.0.0" -jest-diff@^26.0.0, jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== +jest-diff@^27.0.0, jest-diff@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz" + integrity sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q== dependencies: chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + diff-sequences "^27.4.0" + jest-get-type "^27.4.0" + pretty-format "^27.4.2" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== +jest-docblock@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz" + integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== dependencies: detect-newline "^3.0.0" -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== +jest-each@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz" + integrity sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + jest-get-type "^27.4.0" + jest-util "^27.4.2" + pretty-format "^27.4.2" + +jest-environment-jsdom@^27.4.3: + version "27.4.3" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz" + integrity sha512-x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw== + dependencies: + "@jest/environment" "^27.4.2" + "@jest/fake-timers" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + jest-mock "^27.4.2" + jest-util "^27.4.2" + jsdom "^16.6.0" + +jest-environment-node@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz" + integrity sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg== + dependencies: + "@jest/environment" "^27.4.2" + "@jest/fake-timers" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-mock "^27.4.2" + jest-util "^27.4.2" -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== +jest-get-type@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz" + integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== +jest-haste-map@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz" + integrity sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" + jest-regex-util "^27.4.0" + jest-serializer "^27.4.0" + jest-util "^27.4.2" + jest-worker "^27.4.2" + micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: - fsevents "^2.1.2" + fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== +jest-jasmine2@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz" + integrity sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.4.2" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.2" + expect "^27.4.2" is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + jest-each "^27.4.2" + jest-matcher-utils "^27.4.2" + jest-message-util "^27.4.2" + jest-runtime "^27.4.2" + jest-snapshot "^27.4.2" + jest-util "^27.4.2" + pretty-format "^27.4.2" + throat "^6.0.1" + +jest-leak-detector@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz" + integrity sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw== + dependencies: + jest-get-type "^27.4.0" + pretty-format "^27.4.2" + +jest-matcher-utils@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz" + integrity sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ== dependencies: chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + jest-diff "^27.4.2" + jest-get-type "^27.4.0" + pretty-format "^27.4.2" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== +jest-message-util@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz" + integrity sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.4.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" + micromatch "^4.0.4" + pretty-format "^27.4.2" slash "^3.0.0" - stack-utils "^2.0.2" + stack-utils "^2.0.3" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== +jest-mock@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz" + integrity sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -5503,177 +5610,188 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz" + integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== +jest-resolve-dependencies@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz" + integrity sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw== dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" + "@jest/types" "^27.4.2" + jest-regex-util "^27.4.0" + jest-snapshot "^27.4.2" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== +jest-resolve@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz" + integrity sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" chalk "^4.0.0" graceful-fs "^4.2.4" + jest-haste-map "^27.4.2" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" + jest-util "^27.4.2" + jest-validate "^27.4.2" + resolve "^1.20.0" + resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== +jest-runner@^27.4.3: + version "27.4.3" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz" + integrity sha512-JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.4.2" + "@jest/environment" "^27.4.2" + "@jest/test-result" "^27.4.2" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" - emittery "^0.7.1" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" + jest-docblock "^27.4.0" + jest-environment-jsdom "^27.4.3" + jest-environment-node "^27.4.2" + jest-haste-map "^27.4.2" + jest-leak-detector "^27.4.2" + jest-message-util "^27.4.2" + jest-resolve "^27.4.2" + jest-runtime "^27.4.2" + jest-util "^27.4.2" + jest-worker "^27.4.2" source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" + throat "^6.0.1" + +jest-runtime@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz" + integrity sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ== + dependencies: + "@jest/console" "^27.4.2" + "@jest/environment" "^27.4.2" + "@jest/globals" "^27.4.2" + "@jest/source-map" "^27.4.0" + "@jest/test-result" "^27.4.2" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" + "@types/yargs" "^16.0.0" chalk "^4.0.0" - cjs-module-lexer "^0.6.0" + cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" + execa "^5.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-haste-map "^27.4.2" + jest-message-util "^27.4.2" + jest-mock "^27.4.2" + jest-regex-util "^27.4.0" + jest-resolve "^27.4.2" + jest-snapshot "^27.4.2" + jest-util "^27.4.2" + jest-validate "^27.4.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.4.1" + yargs "^16.2.0" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== +jest-serializer@^27.4.0: + version "27.4.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz" + integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== +jest-snapshot@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz" + integrity sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ== dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" + "@jest/transform" "^27.4.2" + "@jest/types" "^27.4.2" "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^26.6.2" + expect "^27.4.2" graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" + jest-diff "^27.4.2" + jest-get-type "^27.4.0" + jest-haste-map "^27.4.2" + jest-matcher-utils "^27.4.2" + jest-message-util "^27.4.2" + jest-resolve "^27.4.2" + jest-util "^27.4.2" natural-compare "^1.4.0" - pretty-format "^26.6.2" + pretty-format "^27.4.2" semver "^7.3.2" -jest-util@^26.1.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== +jest-util@^27.0.0, jest-util@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" + integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.4.2" "@types/node" "*" chalk "^4.0.0" + ci-info "^3.2.0" graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" + picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== +jest-validate@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz" + integrity sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A== dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" + "@jest/types" "^27.4.2" + camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^26.3.0" + jest-get-type "^27.4.0" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "^27.4.2" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== +jest-watcher@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz" + integrity sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg== dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/test-result" "^27.4.2" + "@jest/types" "^27.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.2" + jest-util "^27.4.2" string-length "^4.0.1" -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz" + integrity sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" -jest@26.6.3: - version "26.6.3" - resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== +jest@27.4.3: + version "27.4.3" + resolved "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz" + integrity sha512-jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA== dependencies: - "@jest/core" "^26.6.3" + "@jest/core" "^27.4.3" import-local "^3.0.2" - jest-cli "^26.6.3" + jest-cli "^27.4.3" js-tokens@^4.0.0: version "4.0.0" @@ -5682,24 +5800,31 @@ js-tokens@^4.0.0: js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^16.4.0: - version "16.5.3" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz" - integrity sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA== +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== dependencies: abab "^2.0.5" - acorn "^8.1.0" + acorn "^8.2.4" acorn-globals "^6.0.0" cssom "^0.4.4" cssstyle "^2.3.0" @@ -5707,12 +5832,13 @@ jsdom@^16.4.0: decimal.js "^10.2.1" domexception "^2.0.1" escodegen "^2.0.0" + form-data "^3.0.0" html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" nwsapi "^2.2.0" parse5 "6.0.1" - request "^2.88.2" - request-promise-native "^1.0.9" saxes "^5.0.1" symbol-tree "^3.2.4" tough-cookie "^4.0.0" @@ -5722,7 +5848,7 @@ jsdom@^16.4.0: whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" whatwg-url "^8.5.0" - ws "^7.4.4" + ws "^7.4.6" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -5750,11 +5876,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-schema@0.2.3: version "0.2.3" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" @@ -5784,7 +5905,7 @@ json5@2.x, json5@^2.1.2: json5@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" @@ -5837,26 +5958,7 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -5873,6 +5975,13 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + lerna@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz" @@ -6011,31 +6120,35 @@ libnpmversion@^1.2.0: semver "^7.3.5" stringify-package "^1.0.1" +lilconfig@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@10.5.4: - version "10.5.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== +lint-staged@12.1.2: + version "12.1.2" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz" + integrity sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A== dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" + cli-truncate "^3.1.0" + colorette "^2.0.16" + commander "^8.3.0" + debug "^4.3.2" enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" + execa "^5.1.1" + lilconfig "2.0.4" + listr2 "^3.13.3" + micromatch "^4.0.4" normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" + object-inspect "^1.11.0" + string-argv "^0.3.1" + supports-color "^9.0.2" + yaml "^1.10.2" listr-silent-renderer@^1.1.1: version "1.1.1" @@ -6066,18 +6179,17 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" -listr2@^3.2.2: - version "3.7.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.7.1.tgz#ff0c410b10eb1c5c76735e4814128ec8f7d2b983" - integrity sha512-cNd368GTrk8351/ov/IV+BSwyf9sJRgI0UIvfORonCZA1u9UHAtAlqSEv9dgafoQIA1CgB3nu4No79pJtK2LHw== +listr2@^3.13.3: + version "3.13.5" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz" + integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== dependencies: - chalk "^4.1.0" cli-truncate "^2.1.0" - figures "^3.2.0" - indent-string "^4.0.0" + colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" - rxjs "^6.6.7" + rfdc "^1.3.0" + rxjs "^7.4.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -6147,25 +6259,25 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz" integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= -lodash.flatten@^4.4.0: +lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= lodash.ismatch@^4.4.0: version "4.4.0" @@ -6182,6 +6294,16 @@ lodash.isstring@^4.0.1: resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" @@ -6202,22 +6324,12 @@ lodash.toarray@^4.4.0: resolved "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz" integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz" integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= -lodash@4.17.19: - version "4.17.19" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -lodash@4.x, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6229,14 +6341,6 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - log-update@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz" @@ -6304,7 +6408,7 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -6344,11 +6448,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" @@ -6359,13 +6458,6 @@ map-obj@^4.0.0: resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz" integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - marked-terminal@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.1.tgz" @@ -6435,26 +6527,7 @@ merge2@^1.3.0: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -6475,9 +6548,9 @@ mime-types@^2.1.12, mime-types@~2.1.19: mime-db "1.47.0" mime@^2.4.3: - version "2.5.2" - resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mimic-fn@^1.0.0: version "1.2.0" @@ -6515,7 +6588,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -6597,14 +6670,6 @@ minizlib@^2.0.0, minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mkdirp-infer-owner@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz" @@ -6614,18 +6679,18 @@ mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" -mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz" @@ -6667,23 +6732,6 @@ nan@^2.14.0: resolved "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" @@ -6701,22 +6749,12 @@ nerf-dart@^1.0.0: next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - node-addon-api@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz" integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== node-emoji@^1.10.0: @@ -6779,23 +6817,23 @@ node-modules-regexp@^1.0.0: resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== +node-preload@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" + integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" + process-on-spawn "^1.0.0" node-releases@^1.1.71: version "1.1.71" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz" integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + nopt@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" @@ -6836,13 +6874,6 @@ normalize-path@3.0.0, normalize-path@^3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" @@ -7066,6 +7097,39 @@ nwsapi@^2.2.0: resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +nyc@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" + integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== + dependencies: + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + caching-transform "^4.0.0" + convert-source-map "^1.7.0" + decamelize "^1.2.0" + find-cache-dir "^3.2.0" + find-up "^4.1.0" + foreground-child "^2.0.0" + get-package-type "^0.1.0" + glob "^7.1.6" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-hook "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-processinfo "^2.0.2" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + make-dir "^3.0.0" + node-preload "^0.2.1" + p-map "^3.0.0" + process-on-spawn "^1.0.0" + resolve-from "^5.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + spawn-wrap "^2.0.0" + test-exclude "^6.0.0" + yargs "^15.0.2" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" @@ -7076,14 +7140,10 @@ object-assign@^4.0.1, object-assign@^4.1.0: resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" +object-inspect@^1.11.0: + version "1.11.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-inspect@^1.9.0: version "1.10.2" @@ -7095,13 +7155,6 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - object.assign@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" @@ -7121,13 +7174,6 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -7183,6 +7229,13 @@ os-homedir@^1.0.0: resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" @@ -7266,6 +7319,13 @@ p-map@^2.0.0: resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" @@ -7323,6 +7383,16 @@ p-waterfall@^2.1.1: dependencies: p-reduce "^2.0.0" +package-hash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" + integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== + dependencies: + graceful-fs "^4.1.15" + hasha "^5.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + package-json@^6.3.0: version "6.5.0" resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" @@ -7434,11 +7504,6 @@ parse5@6.0.1: resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - path-exists@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" @@ -7466,7 +7531,7 @@ path-is-inside@^1.0.1: resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -7507,6 +7572,11 @@ performance-now@^2.1.0: resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz" @@ -7559,25 +7629,13 @@ pkg-conf@^2.1.0: find-up "^2.0.0" load-json-file "^4.0.0" -pkg-dir@^4.2.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" @@ -7585,7 +7643,7 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^2.0.0: @@ -7600,19 +7658,19 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +prettier@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== +pretty-format@^27.0.0, pretty-format@^27.4.2: + version "27.4.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz" + integrity sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw== dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" + "@jest/types" "^27.4.2" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" react-is "^17.0.1" process-nextick-args@~2.0.0: @@ -7620,6 +7678,13 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process-on-spawn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" + integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== + dependencies: + fromentries "^1.2.0" + progress@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" @@ -7698,7 +7763,7 @@ punycode@^2.1.0, punycode@^2.1.1: q@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qrcode-terminal@^0.12.0: @@ -7766,19 +7831,7 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz" - integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== - dependencies: - glob "^7.1.1" - json-parse-better-errors "^1.0.1" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-json@^2.0.0: +read-package-json@2.1.2, read-package-json@^2.0.0: version "2.1.2" resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz" integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== @@ -7940,42 +7993,33 @@ redeyed@~2.1.0: ref-array-napi@1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/ref-array-napi/-/ref-array-napi-1.2.2.tgz#8b172b375aa04441860973c262ac8a557e3d368e" + resolved "https://registry.npmjs.org/ref-array-napi/-/ref-array-napi-1.2.2.tgz" integrity sha512-EGQzUQpyqD/hN9eIn3uF68UPBmwJXdWkumHCmvK3ncjw128bkjd8TbJ51ur+2PZ4UrfCOQCcPQkuWZ6mNHch9A== dependencies: array-index "1" debug "2" ref-napi "^3.0.1" -ref-napi@3.0.2, "ref-napi@^2.0.1 || ^3.0.2", ref-napi@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/ref-napi/-/ref-napi-3.0.2.tgz" - integrity sha512-5YE0XrvWteoTr5DR2sEqxefL06aml7c6qS7hGv3u27do4HlGQphwvB+zD1NYep9utMKScvwOZsSs9EPYdGBVsg== +ref-napi@3.0.3, ref-napi@^1.4.2, "ref-napi@^2.0.1 || ^3.0.2", ref-napi@^3.0.1: + version "3.0.3" + resolved "https://registry.npmjs.org/ref-napi/-/ref-napi-3.0.3.tgz" + integrity sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA== dependencies: debug "^4.1.1" get-symbol-from-current-process-h "^1.0.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.1" - -ref-napi@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ref-napi/-/ref-napi-1.5.2.tgz#a29f9a0c1aff02f01e023199e4aa8fe7f11f25b9" - integrity sha512-hwyNmWpUkt1bDWDW4aiwCoC+SJfJO69UIdjqssNqdaS0sYJpgqzosGg/rLtk69UoQ8drZdI9yyQefM7eEMM3Gw== - dependencies: - debug "^3.1.0" - node-addon-api "^2.0.0" + node-addon-api "^3.0.0" node-gyp-build "^4.2.1" ref-struct-di@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ref-struct-di/-/ref-struct-di-1.1.1.tgz#5827b1d3b32372058f177547093db1fe1602dc10" + resolved "https://registry.npmjs.org/ref-struct-di/-/ref-struct-di-1.1.1.tgz" integrity sha512-2Xyn/0Qgz89VT+++WP0sTosdm9oeowLP23wRJYhG4BFdMUrLj3jhwHZNEytYNYgtPKLNTP3KJX4HEgBvM1/Y2g== dependencies: debug "^3.1.0" ref-struct-napi@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ref-struct-napi/-/ref-struct-napi-1.1.1.tgz#272a870a0ccb8244bd06ac851ffafbfc33dcd951" + resolved "https://registry.npmjs.org/ref-struct-napi/-/ref-struct-napi-1.1.1.tgz" integrity sha512-YgS5/d7+kT5zgtySYI5ieH0hREdv+DabgDvoczxsui0f9VLm0rrDcWEj4DHKehsH+tJnVMsLwuyctWgvdEcVRw== dependencies: debug "2" @@ -7986,18 +8030,10 @@ reflect-metadata@^0.1.13: resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== registry-auth-token@^4.0.0: version "4.2.1" @@ -8013,20 +8049,12 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= + dependencies: + es6-error "^4.0.1" repeating@^2.0.0: version "2.0.1" @@ -8035,22 +8063,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" @@ -8082,14 +8094,14 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== resolve-cwd@^3.0.0: @@ -8109,12 +8121,12 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1, resolve@^1.20.0: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0: version "1.20.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -8145,11 +8157,6 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" @@ -8160,6 +8167,11 @@ reusify@^1.0.4: resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" @@ -8174,11 +8186,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - run-async@^2.4.0: version "2.4.1" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" @@ -8191,13 +8198,20 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.7: +rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.6.0: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" +rxjs@^7.4.0: + version "7.4.0" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== + dependencies: + tslib "~2.1.0" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" @@ -8208,33 +8222,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - saxes@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" @@ -8250,10 +8242,10 @@ segfault-handler@1.3.0: bindings "^1.2.1" nan "^2.14.0" -semantic-release@17.4.2: - version "17.4.2" - resolved "https://registry.npmjs.org/semantic-release/-/semantic-release-17.4.2.tgz" - integrity sha512-TPLWuoe2L2DmgnQEh+OLWW5V1T+ZAa1xWuHXsuPAWEko0BqSdLPl+5+BlQ+D5Bp27S5gDJ1//Y1tgbmvUhnOCw== +semantic-release@17.4.7: + version "17.4.7" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-17.4.7.tgz#88e1dce7294cc43acc54c4e0a83f582264567206" + integrity sha512-3Ghu8mKCJgCG3QzE5xphkYWM19lGE3XjFdOXQIKBM2PBpBvgFQ/lXv31oX0+fuN/UjNFO/dqhNs8ATLBhg6zBg== dependencies: "@semantic-release/commit-analyzer" "^8.0.0" "@semantic-release/error" "^2.2.0" @@ -8271,7 +8263,7 @@ semantic-release@17.4.2: git-log-parser "^1.2.0" hook-std "^2.0.0" hosted-git-info "^4.0.0" - lodash "^4.17.15" + lodash "^4.17.21" marked "^2.0.0" marked-terminal "^4.1.1" micromatch "^4.0.2" @@ -8284,11 +8276,6 @@ semantic-release@17.4.2: signale "^1.2.1" yargs "^16.2.0" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz" @@ -8308,7 +8295,7 @@ semver-regex@^3.1.2: resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -8332,19 +8319,9 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" @@ -8385,11 +8362,6 @@ shelljs@^0.8.3: interpret "^1.0.0" rechoir "^0.6.2" -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -8446,6 +8418,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + slide@^1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" @@ -8456,36 +8436,6 @@ smart-buffer@^4.1.0: resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz" integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - socks-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz" @@ -8517,18 +8467,15 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== +source-map-support@0.5.21: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" + buffer-from "^1.0.0" + source-map "^0.6.0" -source-map-support@0.5.19, source-map-support@^0.5.17, source-map-support@^0.5.6: +source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -8536,12 +8483,7 @@ source-map-support@0.5.19, source-map-support@^0.5.17, source-map-support@^0.5.6 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -8561,6 +8503,18 @@ spawn-error-forwarder@~1.0.0: resolved "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz" integrity sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk= +spawn-wrap@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" + integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== + dependencies: + foreground-child "^2.0.0" + is-windows "^1.0.2" + make-dir "^3.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + which "^2.0.1" + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" @@ -8592,13 +8546,6 @@ split-on-first@^1.0.0: resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - split2@^3.0.0: version "3.2.2" resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" @@ -8647,26 +8594,13 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -stack-utils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz" @@ -8675,23 +8609,12 @@ stream-combiner2@~1.1.1: duplexer2 "~0.1.0" readable-stream "^2.0.2" -streamroller@^1.0.3: - version "1.0.6" - resolved "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= -string-argv@0.3.1: +string-argv@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== @@ -8739,6 +8662,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz" + integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g== + dependencies: + emoji-regex "^9.2.2" + is-fullwidth-code-point "^4.0.0" + strip-ansi "^7.0.1" + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" @@ -8769,15 +8701,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - stringify-package@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz" @@ -8811,6 +8734,20 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" @@ -8890,6 +8827,18 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.0.2: + version "9.2.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz" + integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ== + supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.1.0: version "2.2.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" @@ -8908,21 +8857,6 @@ symbol-tree@^3.2.4: resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.0.4: - version "6.3.2" - resolved "https://registry.npmjs.org/table/-/table-6.3.2.tgz" - integrity sha512-I9/Ca6Huf2oxFag7crD0DhA+arIdfLtWunSn0NIXSzjtUlDgIBGVZY7SsMkNPNT3Psd/z4gza0nuEpmra9eRbg== - dependencies: - ajv "^8.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - lodash.clonedeep "^4.5.0" - lodash.flatten "^4.4.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.0" - tar@^4.4.12: version "4.4.13" resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz" @@ -9014,10 +8948,10 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== through2@^2.0.0, through2@~2.0.0: version "2.0.5" @@ -9066,26 +9000,11 @@ to-fast-properties@^2.0.0: resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -9093,24 +9012,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" @@ -9120,6 +9021,14 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz" @@ -9152,60 +9061,74 @@ trim-off-newlines@^1.0.0: resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -ts-jest@26.5.6: - version "26.5.6" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" - integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== +ts-jest@27.0.7: + version "27.0.7" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz" + integrity sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q== dependencies: bs-logger "0.x" - buffer-from "1.x" fast-json-stable-stringify "2.x" - jest-util "^26.1.0" + jest-util "^27.0.0" json5 "2.x" - lodash "4.x" + lodash.memoize "4.x" make-error "1.x" - mkdirp "1.x" semver "7.x" yargs-parser "20.x" -ts-node@9.1.1: - version "9.1.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: +ts-node@10.4.0: + version "10.4.0" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz" + integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + dependencies: + "@cspotcode/source-map-support" "0.7.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== +tsconfig-paths@3.12.0: + version "3.12.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz" + integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" minimist "^1.2.0" strip-bom "^3.0.0" -tslib@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tslib@2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz" integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== +tslib@2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tslib@2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tsutils@^3.17.1, tsutils@^3.21.0: +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -9233,7 +9156,7 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" @@ -9283,19 +9206,19 @@ type-fest@^0.6.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + resolved "https://registry.npmjs.org/type/-/type-2.5.0.tgz" integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typedarray-to-buffer@^3.1.5: @@ -9310,10 +9233,10 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@4.2.4: - version "4.2.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz" - integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== +typescript@4.5.2: + version "4.5.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz" + integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== uglify-js@^3.1.4: version "3.13.4" @@ -9340,16 +9263,6 @@ unbox-primitive@^1.0.0: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" @@ -9398,14 +9311,6 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - upath@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz" @@ -9436,11 +9341,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - url-join@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz" @@ -9453,11 +9353,6 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" @@ -9470,25 +9365,20 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -uuid@^3.3.2: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^7.0.0: - version "7.1.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz" - integrity sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA== +v8-to-istanbul@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz" + integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -9537,7 +9427,7 @@ walk-up-path@^1.0.0: resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz" integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== -walker@^1.0.7, walker@~1.0.5: +walker@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -9593,9 +9483,14 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.9, which@^1.3.1: @@ -9626,6 +9521,11 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" @@ -9636,6 +9536,14 @@ wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz" @@ -9719,10 +9627,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^7.4.4: - version "7.4.5" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== +ws@^7.4.6: + version "7.5.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== xdg-basedir@^3.0.0: version "3.0.0" @@ -9744,9 +9652,14 @@ xtend@~4.0.1: resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + y18n@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: @@ -9769,7 +9682,7 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -9786,15 +9699,23 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^15.4.1: +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs@^15.0.2: version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -9822,6 +9743,26 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + yn@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"