From aa1c00b31830075e5a666434d2046ab881a5df42 Mon Sep 17 00:00:00 2001 From: Maxim Pismenskiy Date: Mon, 23 Mar 2020 20:31:46 +0300 Subject: [PATCH] feat(p3): add p3 decorator draft --- packages/p3/CHANGELOG.md | 0 packages/p3/LICENSE | 21 + packages/p3/README.md | 46 ++ packages/p3/jest.config.json | 34 ++ packages/p3/package.json | 105 ++++ .../p3/src/main/ts/classDecorators/index.ts | 141 +++++ packages/p3/src/main/ts/guards/index.ts | 48 ++ packages/p3/src/main/ts/index.ts | 4 + .../p3/src/main/ts/methodDecorators/index.ts | 4 + .../src/main/ts/parameterDecorators/index.ts | 29 ++ packages/p3/src/test/ts/index.ts | 277 ++++++++++ packages/p3/tsconfig.es5.json | 18 + packages/p3/tsconfig.es6.json | 18 + packages/p3/tsconfig.json | 21 + packages/p3/tsconfig.test.json | 9 + packages/p3/tslint.json | 3 + packages/p3/typedoc.json | 15 + tsconfig.json | 3 +- yarn.lock | 489 +++++++++++------- 19 files changed, 1091 insertions(+), 194 deletions(-) create mode 100644 packages/p3/CHANGELOG.md create mode 100644 packages/p3/LICENSE create mode 100644 packages/p3/README.md create mode 100644 packages/p3/jest.config.json create mode 100644 packages/p3/package.json create mode 100644 packages/p3/src/main/ts/classDecorators/index.ts create mode 100644 packages/p3/src/main/ts/guards/index.ts create mode 100644 packages/p3/src/main/ts/index.ts create mode 100644 packages/p3/src/main/ts/methodDecorators/index.ts create mode 100644 packages/p3/src/main/ts/parameterDecorators/index.ts create mode 100644 packages/p3/src/test/ts/index.ts create mode 100644 packages/p3/tsconfig.es5.json create mode 100644 packages/p3/tsconfig.es6.json create mode 100644 packages/p3/tsconfig.json create mode 100644 packages/p3/tsconfig.test.json create mode 100644 packages/p3/tslint.json create mode 100644 packages/p3/typedoc.json diff --git a/packages/p3/CHANGELOG.md b/packages/p3/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/p3/LICENSE b/packages/p3/LICENSE new file mode 100644 index 0000000..66b0936 --- /dev/null +++ b/packages/p3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 QIWI + +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/p3/README.md b/packages/p3/README.md new file mode 100644 index 0000000..54941c4 --- /dev/null +++ b/packages/p3/README.md @@ -0,0 +1,46 @@ +# p3-json-rpc +Nestjs JSON RPC 2.0 Controller + +## Install +```bash +yarn add p3-json-rpc +npm add p3-json-rpc +``` + +## Usage +```typescript +import { + Auth, + Client, + ClientAuth, + P3Provider, Security, SecurityLevelGuard, + SinapContext, + SinapContextValue, + TClient, TSecurity, + TSinapContext, + ClientTypeGuard, +} from '@qiwi/p3-json-rpc' +import {RpcId} from 'expressjs-json-rpc' + +@P3Provider('/p3-jsonrpc/endpoint') +class CustomController { + + @SecurityLevelGuard(7) + @ClientTypeGuard('client') + @SinapContext('method') + bar( + @RpcId() id: string, + @SinapContextValue() value: TSinapContext, + @Auth() auth: string, + @ClientAuth() clientAuth: string, + @Client() client: TClient, + @Security() security: TSecurity, + ) { + return {id, value, auth, clientAuth, client, security} + } + +} +``` + +## Specification +[https://www.jsonrpc.org/specification](https://www.jsonrpc.org/specification) diff --git a/packages/p3/jest.config.json b/packages/p3/jest.config.json new file mode 100644 index 0000000..284435d --- /dev/null +++ b/packages/p3/jest.config.json @@ -0,0 +1,34 @@ +{ + "transform": { + "^.+\\.tsx?$": "ts-jest", + "^.+\\.jsx?$": "@swissquote/crafty-preset-jest/src/esm-transformer" + }, + "collectCoverage": true, + "coveragePathIgnorePatterns": [ + ], + "collectCoverageFrom": [ + "/src/main/**/*.(j|t)s" + ], + "testMatch": [ + "/src/test/js/*.js", + "/src/test/ts/*.ts" + ], + "testPathIgnorePatterns": [ + "/node_modules/" + ], + "moduleFileExtensions": [ + "ts", + "tsx", + "js", + "jsx", + "json", + "node" + ], + "preset": "ts-jest", + "globals": { + "ts-jest": { + "tsConfig": "tsconfig.test.json" + } + } + +} diff --git a/packages/p3/package.json b/packages/p3/package.json new file mode 100644 index 0000000..d5ea883 --- /dev/null +++ b/packages/p3/package.json @@ -0,0 +1,105 @@ +{ + "name": "p3-json-rpc", + "version": "1.0.3", + "description": "P3 Controller", + "main": "target/es5/index.js", + "source": "target/ts/index.ts", + "types": "target/es5/index.d.ts", + "typescript": { + "definition": "target/es5/index.d.ts" + }, + "files": [ + "README.md", + "CHANGELOG.md", + "target", + "typings", + "flow-typed" + ], + "scripts": { + "test": "yarn lint && yarn test:spec", + "test:gen": "yarn jest --updateSnapshot", + "test:spec": "yarn jest", + "jest": "jest -w=1 --config=jest.config.json", + "lint": "tslint -p tsconfig.test.json src/**/*.ts", + "lint:fix": "yarn lint --fix", + "clean": "rimraf target typings buildcache", + "build": "yarn build:es5 && yarn build:es6 && yarn build:ts && yarn libdef && yarn docs && yarn uglify", + "build:es5": "mkdir -p target/es5 && tsc -p tsconfig.es5.json", + "build:es6": "mkdir -p target/es6 && tsc -p tsconfig.es6.json", + "build:ts": "cp -r src/main/ts/ target/ts/", + "build:bundle": "microbundle build src/main/ts/index.ts -o target/bundle", + "dtsgen": "dts-generator --project ./ --out typings/index.d.ts --prefix p3-json-rpc/target/es5 --name p3-json-rpc --main p3-json-rpc/target/es5/index", + "flowgen": "flowgen typings/index.d.ts --output-file flow-typed/index.flow.js", + "libdef": "yarn dtsgen && yarn libdeffix && yarn flowgen", + "libdeffix": "node -r esm ../../scripts/js/libdef-fix.js --dts=./typings/index.d.ts", + "test:report": "yarn test && yarn push:report", + "push:report": "yarn coveralls:push", + "coveralls:push": "cat ./coverage/lcov.info | coveralls", + "docs": "typedoc --readme README.md --tsconfig tsconfig.json src/main --ignoreCompilerErrors || exit 0", + "uglify": "for f in $(find target -name '*.js'); do short=${f%.js}; terser -c -m -o $short.js -- $f; done", + "postupdate": "yarn && yarn build && yarn test" + }, + "dependencies": { + "@nestjs/common": "^6.11.11", + "@nestjs/core": "^6.11.11", + "@qiwi/json-rpc-common": "^1.0.2", + "@qiwi/substrate": "^1.18.14", + "@types/express": "^4.17.3", + "@types/lodash": "^4.14.149", + "jsonrpc-lite": "^2.1.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^6.5.4", + "tslib": "^1.11.1" + }, + "devDependencies": { + "@nestjs/platform-express": "^6.11.11", + "@nestjs/testing": "^6.11.11", + "@qiwi/semantic-release-gh-pages-plugin": "^1.15.9", + "@semantic-release/changelog": "^5.0.0", + "@semantic-release/git": "^9.0.0", + "@semantic-release/github": "^7.0.4", + "@semantic-release/npm": "^7.0.4", + "@swissquote/crafty-preset-jest": "^1.10.0", + "@types/bluebird": "^3.5.30", + "@types/jest": "^25.1.4", + "@types/jest-json-schema": "^2.1.1", + "@types/supertest": "^2.0.8", + "bluebird": "^3.7.2", + "class-transformer": "^0.2.3", + "class-validator": "^0.11.0", + "coveralls": "^3.0.9", + "dts-generator": "^3.0.0", + "eslint-plugin-typescript": "^0.14.0", + "esm": "^3.2.25", + "flowgen": "1.10.0", + "jest": "^25.1.0", + "lodash": "^4.17.15", + "microbundle": "^0.12.0-next.3", + "replace-in-file": "^5.0.2", + "rimraf": "^3.0.2", + "semantic-release": "^17.0.4", + "supertest": "^4.0.2", + "terser": "^4.6.6", + "ts-jest": "^25.2.1", + "tslint": "^6.0.0", + "tslint-config-qiwi": "^1.3.2", + "typedoc": "^0.16.11", + "typedoc-plugin-external-module-name": "^3.0.0", + "typescript": "^3.8.3", + "typescript-eslint-parser": "^22.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/qiwi/json-rpc.git" + }, + "keywords": [ + "json rpc", + "json-rpc" + ], + "author": "Anton Golub ", + "license": "MIT", + "bugs": { + "url": "https://github.com/qiwi/json-rpc/issues" + }, + "homepage": "https://github.com/qiwi/json-rpc#readme" +} diff --git a/packages/p3/src/main/ts/classDecorators/index.ts b/packages/p3/src/main/ts/classDecorators/index.ts new file mode 100644 index 0000000..5e28703 --- /dev/null +++ b/packages/p3/src/main/ts/classDecorators/index.ts @@ -0,0 +1,141 @@ +import 'reflect-metadata' +import {ControllerOptions} from '@nestjs/common' +import { + Extender, + TRpcMethodParam, + IParsedObject, + parseJsonRpcObject, + JSON_RPC_METADATA, + TRpcMethodEntry, +} from '@qiwi/json-rpc-common' +import {JsonRpcController} from 'nestjs-json-rpc' +import {Request} from 'express' +import {SecurityLevel} from '../guards' +import {IMetaTypedValue} from '@qiwi/substrate' + +export type TP3Meta = { + securityLevel?: number + clientType?: Array +} +export type TP3RpcMethodEntry = TRpcMethodEntry & { meta: TP3Meta } + +export type TSinapMeta = { + auth?: string + clientAuth?: string | string[] + client?: { + clientType: string + clientId?: string + } + security?: { + level: number + } +} + +type IP3MetaTypedValue = IMetaTypedValue + +export const P3Provider = (path: ControllerOptions | string): ClassDecorator => { + return (target: TFunction) => { + const extend: Extender = base => { + @JsonRpcController(path) + class JsonRpcBase extends base {} + + class Extended extends JsonRpcBase { + + static resolveParam(boxedP3JsonRpc: IP3MetaTypedValue, Param: any, {type}: TRpcMethodParam) { + if (boxedP3JsonRpc.value.type !== 'request') { + return + } + + const {value, meta} = boxedP3JsonRpc + const paramMap = { + // @ts-ignore + locale: value.payload.params?.locale, + // @ts-ignore + query: value.payload.params?.query, + // @ts-ignore + fields: value.payload.params?.fields, + id: value.payload.id, + client: meta.client, + security: meta.security, + auth: meta.auth, + clientAuth: meta.clientAuth, + } + + // @ts-ignore + const data = paramMap[type] + + return typeof Param === 'function' ? new Param(data) : data + } + + static parseRequest(req: Request): IP3MetaTypedValue | undefined { + // @ts-ignore + const jsonRpc = parseJsonRpcObject(req.body) + + if (Array.isArray(jsonRpc)) { + // TODO + throw new Error('unexpected error') + } + + if (req.body.client.clientType === undefined || req.body.security.level === undefined) { + throw new Error('unexpected error') + } + + return { + meta: { + client: req.body.client, + security: req.body.security, + auth: req.get('authorization'), + clientAuth: req.get('client-authorization'), + }, + value: jsonRpc, + type: 'jsonRpcP3', + } + } + + static resolveHandler(instance: Extended, boxedJsonRpc: IP3MetaTypedValue): {handler: Function, params: any[]} | {[key: string]: any} { + // @ts-ignore + const _method = boxedJsonRpc.value.payload.method + + const meta = Reflect.getMetadata(JSON_RPC_METADATA, this) || {} + const methodMeta: TP3RpcMethodEntry | undefined = (Object as any).values(meta) + .find(({method, meta}: TP3RpcMethodEntry) => { + if (_method !== method) { + return + } + + if ((meta?.securityLevel ?? SecurityLevel.INSECURE) > boxedJsonRpc.meta.security?.level!) { + return + } + + if (meta?.clientType !== undefined && !(meta?.clientType.includes(boxedJsonRpc.meta.client?.clientType!))) { + return + } + + return true + }) + + if (!methodMeta) { + return {} + } + + const propKey = methodMeta.key + '' + const handler = this.prototype[propKey] + const paramTypes = Reflect.getMetadata('design:paramtypes', instance, propKey) + const params = (methodMeta.params || []).map((param: TRpcMethodParam, index: number) => { + return this.resolveParam(boxedJsonRpc, paramTypes[index], param) + }) + + return { + params, + handler, + } + } + + } + + return Extended + } + + return extend(target as any) + } +} diff --git a/packages/p3/src/main/ts/guards/index.ts b/packages/p3/src/main/ts/guards/index.ts new file mode 100644 index 0000000..ec3ffd4 --- /dev/null +++ b/packages/p3/src/main/ts/guards/index.ts @@ -0,0 +1,48 @@ +import {TP3RpcMethodEntry} from '../classDecorators' +import {JSON_RPC_METADATA} from '@qiwi/json-rpc-common' + +export const enum ClientTypes { + SINAP = 'SINAP', + QD_PROCESSING = 'QD_PROCESSING', + QW_PROCESSING = 'QW_PROCESSING', + SCHEDULER = 'SCHEDULER', + ONE_C = 'ONE_C', +} + +export const enum SecurityLevel { + INSECURE = 0, + SECURE = 9, +} + +export const SecurityLevelGuard = (securityLevel: number) => { + return ( + target: any, + propertyKey: string, + ) => { + const meta = Reflect.getOwnMetadata(JSON_RPC_METADATA, target.constructor) || {} + const methodMeta: TP3RpcMethodEntry = meta[propertyKey] || {} + methodMeta.meta = { + ...methodMeta.meta, + securityLevel, + } + meta[propertyKey] = methodMeta + Reflect.defineMetadata(JSON_RPC_METADATA, meta, target.constructor) + } +} + +export const ClientTypeGuard = (clientType: string[] | string) => { + return ( + target: any, + propertyKey: string, + _descriptor?: TypedPropertyDescriptor, + ) => { + const meta = Reflect.getOwnMetadata(JSON_RPC_METADATA, target.constructor) || {} + const methodMeta: TP3RpcMethodEntry = meta[propertyKey] || {} + methodMeta.meta = { + ...methodMeta.meta, + clientType: Array.isArray(clientType) ? clientType : [clientType], + } + meta[propertyKey] = methodMeta + Reflect.defineMetadata(JSON_RPC_METADATA, meta, target.constructor) + } +} diff --git a/packages/p3/src/main/ts/index.ts b/packages/p3/src/main/ts/index.ts new file mode 100644 index 0000000..99ad1d5 --- /dev/null +++ b/packages/p3/src/main/ts/index.ts @@ -0,0 +1,4 @@ +export * from './parameterDecorators' +export * from './classDecorators' +export * from './methodDecorators' +export * from './guards' diff --git a/packages/p3/src/main/ts/methodDecorators/index.ts b/packages/p3/src/main/ts/methodDecorators/index.ts new file mode 100644 index 0000000..98cd097 --- /dev/null +++ b/packages/p3/src/main/ts/methodDecorators/index.ts @@ -0,0 +1,4 @@ +import {JsonRpcMethod} from 'nestjs-json-rpc' + +export const SinapSuggest = (method: string) => JsonRpcMethod(`suggest.${method}`) +export const SinapContext = (method: string) => JsonRpcMethod(`context.${method}`) diff --git a/packages/p3/src/main/ts/parameterDecorators/index.ts b/packages/p3/src/main/ts/parameterDecorators/index.ts new file mode 100644 index 0000000..2060ba2 --- /dev/null +++ b/packages/p3/src/main/ts/parameterDecorators/index.ts @@ -0,0 +1,29 @@ +import {JsonRpcData} from 'expressjs-json-rpc' + +// @ts-ignore +export const Auth = () => JsonRpcData('auth') +// @ts-ignore +export const ClientAuth = () => JsonRpcData('clientAuth') +// @ts-ignore +export const SinapQuery = () => JsonRpcData('query') +// @ts-ignore +export const SinapLocale = () => JsonRpcData('locale') +// @ts-ignore +export const SinapFields = () => JsonRpcData('fields') +// @ts-ignore +export const Client = () => JsonRpcData('client') +// @ts-ignore +export const Security = () => JsonRpcData('security') + +export type TSinapQuery = string +export type TSinapFields = Record | undefined +export type TSinapLocale = string + +export type TClient = { + clientId: string, + clientType: string +} + +export type TSecurity = { + security: { level: number } +} diff --git a/packages/p3/src/test/ts/index.ts b/packages/p3/src/test/ts/index.ts new file mode 100644 index 0000000..8d6bcff --- /dev/null +++ b/packages/p3/src/test/ts/index.ts @@ -0,0 +1,277 @@ +import {Test, TestingModule} from '@nestjs/testing' +import {HttpStatus} from '@nestjs/common' +import {NestApplication} from '@nestjs/core' +import request from 'supertest' +import {RpcId} from 'nestjs-json-rpc' +import { + P3Provider, + Auth, + ClientAuth, + SinapSuggest, + SinapContext, + Client, + Security, + SinapFields, + SinapLocale, + SinapQuery, + TSinapFields, + TSinapLocale, + TSinapQuery, + TClient, + TSecurity, + SecurityLevelGuard, + ClientTypeGuard, + ClientTypes, + SecurityLevel, +} from '../../main/ts' + +describe('P3', () => { + describe('P3Provider', () => { + @P3Provider('/p3') + class CustomController { + + @SinapSuggest('test2') + bar( + @RpcId() id: string, + @SinapFields() fields: TSinapFields, + @SinapLocale() locale: TSinapLocale, + @SinapQuery() query: TSinapQuery, + @Auth() auth: string, + @ClientAuth() clientAuth: string, + @Client() client: TClient, + @Security() security: TSecurity, + ) { + return {foo: 'bar', id, fields, locale, query, auth, clientAuth, client, security} + } + + } + + let module: TestingModule + let app: NestApplication + + beforeAll(async() => { + module = await Test.createTestingModule({ + providers: [], + controllers: [CustomController], + }).compile() + app = module.createNestApplication() + + await app.init() + }) + + it('returns 200 on valid request', () => { + return request(app.getHttpServer()) + .post('/p3') + .set({ + Authorization: 'Authorization test2', + 'Client-Authorization': 'Client-Authorization test3344', + }) + .send({ + jsonrpc: '2.0', + method: 'suggest.test2', + id: '123', + params: { + fields: {a: '123', foo: 'bar'}, + locale: 'baz', + query: 'qwe', + }, + client: { + clientId: 'SINAP-CLIENT', + clientType: 'SINAP', + }, + security: { + level: 0, + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + result: { + foo: 'bar', + id: '123', + fields: {a: '123', foo: 'bar'}, + locale: 'baz', + query: 'qwe', + auth: 'Authorization test2', + clientAuth: 'Client-Authorization test3344', + client: {clientId: 'SINAP-CLIENT', clientType: 'SINAP'}, + security: {level: 0}, + }, + }) + }) + }) + describe('guards', () => { + describe('SecurityLevelGuard', () => { + @P3Provider('/p3') + class CustomController { + + @SecurityLevelGuard(SecurityLevel.SECURE) + @SinapContext('test2') + bar() { + return {foo: 'bar'} + } + + @SinapContext('test1') + baz() { + return {foo: 'bar'} + } + + } + + let module: TestingModule + let app: NestApplication + + beforeAll(async() => { + module = await Test.createTestingModule({ + providers: [], + controllers: [CustomController], + }).compile() + app = module.createNestApplication() + + await app.init() + }) + + it('return "Method not found" on unsupported security level', () => { + return request(app.getHttpServer()) + .post('/p3') + .send({ + jsonrpc: '2.0', + method: 'context.test2', + id: '123', + params: {}, + client: { + clientType: 'foo', + }, + security: { + level: '3', + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + error: {message: 'Method not found', code: -32601, data: 'context.test2'}, + }) + }) + + it('return data on supported security level', () => { + return request(app.getHttpServer()) + .post('/p3') + .send({ + jsonrpc: '2.0', + method: 'context.test2', + id: '123', + params: {}, + client: { + clientType: 'foo', + }, + security: { + level: '9', + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + result: {foo: 'bar'}, + }) + }) + + it('return data on method without guard', () => { + return request(app.getHttpServer()) + .post('/p3') + .send({ + jsonrpc: '2.0', + method: 'context.test1', + id: '123', + params: {}, + client: { + clientType: 'foo', + }, + security: { + level: '7', + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + result: {foo: 'bar'}, + }) + }) + }) + + describe('ClientTypeGuard', () => { + @P3Provider('/p3') + class CustomController { + + @ClientTypeGuard(ClientTypes.SINAP) + @SinapContext('test2') + bar() { + return {foo: 'bar'} + } + + } + + let module: TestingModule + let app: NestApplication + + beforeAll(async() => { + module = await Test.createTestingModule({ + providers: [], + controllers: [CustomController], + }).compile() + app = module.createNestApplication() + + await app.init() + }) + + it('return "Method not found" on unsupported client type', () => { + return request(app.getHttpServer()) + .post('/p3') + .send({ + jsonrpc: '2.0', + method: 'context.test2', + id: '123', + params: {}, + client: { + clientType: 'baz', + }, + security: { + level: '7', + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + error: {message: 'Method not found', code: -32601, data: 'context.test2'}, + }) + }) + + it('return data on supported client type', () => { + return request(app.getHttpServer()) + .post('/p3') + .send({ + jsonrpc: '2.0', + method: 'context.test2', + id: '123', + params: {}, + client: { + clientType: 'SINAP', + }, + security: { + level: '7', + }, + }) + .expect(HttpStatus.OK) + .expect({ + jsonrpc: '2.0', + id: '123', + result: {foo: 'bar'}, + }) + }) + }) + }) +}) diff --git a/packages/p3/tsconfig.es5.json b/packages/p3/tsconfig.es5.json new file mode 100644 index 0000000..86da255 --- /dev/null +++ b/packages/p3/tsconfig.es5.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "outDir": "target/es5" + }, + "references": [ + { "path": "../common/tsconfig.es5.json" }, + { "path": "../expressjs/tsconfig.es5.json" }, + { "path": "../nestjs/tsconfig.es5.json" } + ], + "include": [ + "src/main/**/*" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/p3/tsconfig.es6.json b/packages/p3/tsconfig.es6.json new file mode 100644 index 0000000..6773eb3 --- /dev/null +++ b/packages/p3/tsconfig.es6.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es6", + "outDir": "target/es6" + }, + "references": [ + { "path": "../common/tsconfig.es6.json" }, + { "path": "../expressjs/tsconfig.es6.json" }, + { "path": "../nestjs/tsconfig.es6.json" } + ], + "include": [ + "src/main/**/*" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/p3/tsconfig.json b/packages/p3/tsconfig.json new file mode 100644 index 0000000..a04c9ab --- /dev/null +++ b/packages/p3/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "./src/main/ts/", + "baseUrl": "./src/main/ts/", + "target": "es5", + "outDir": "target/es5", + "tsBuildInfoFile": "./buildcache/.tsbuildinfo" + }, + "references": [ + { "path": "../common" }, + { "path": "../expressjs" }, + { "path": "../nestjs" } + ], + "include": [ + "src/main/**/*" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/p3/tsconfig.test.json b/packages/p3/tsconfig.test.json new file mode 100644 index 0000000..91ad3ef --- /dev/null +++ b/packages/p3/tsconfig.test.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/p3/tslint.json b/packages/p3/tslint.json new file mode 100644 index 0000000..1a5074e --- /dev/null +++ b/packages/p3/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "tslint-config-qiwi" +} diff --git a/packages/p3/typedoc.json b/packages/p3/typedoc.json new file mode 100644 index 0000000..6a36a82 --- /dev/null +++ b/packages/p3/typedoc.json @@ -0,0 +1,15 @@ +{ + "name": "p3-json-rpc", + "mode": "file", + "out": "./docs", + "target": "ES6", + "exclude": ["test", "node_modules", "paralleljs"], + "externalPattern": "**/node_modules/**", + "excludePrivate": true, + "excludeNotExported": true, + "moduleResolution": "node", + "module": "commonjs", + "hideGenerator": true, + "readme": "none", + "ignoreCompilerErrors": true +} diff --git a/tsconfig.json b/tsconfig.json index 4873c3f..cacca4c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,8 @@ "nestjs-json-rpc": ["./nestjs/src/main/ts"], "@qiwi/json-rpc": ["./facade/src/main/ts"], "@qiwi/json-rpc-common": ["./common/src/main/ts"], - "@qiwi/json-rpc-open-rpc": ["./open-rpc/src/main/ts"] + "@qiwi/json-rpc-open-rpc": ["./open-rpc/src/main/ts"], + "@qiwi/p3-json-rpc": ["./p3/src/main/ts"] } } } diff --git a/yarn.lock b/yarn.lock index ecf775e..e617206 100644 --- a/yarn.lock +++ b/yarn.lock @@ -61,9 +61,9 @@ source-map "^0.5.0" "@babel/generator@^7.4.0", "@babel/generator@^7.8.3", "@babel/generator@^7.8.6", "@babel/generator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" - integrity sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e" + integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg== dependencies: "@babel/types" "^7.8.7" jsesc "^2.5.1" @@ -125,14 +125,14 @@ "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-split-export-declaration" "^7.8.3" -"@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz#7fa040c97fb8aebe1247a5c645330c32d083066b" - integrity sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A== +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.6.0" + regexpu-core "^4.7.0" "@babel/helper-define-map@^7.8.3": version "7.8.3" @@ -285,9 +285,9 @@ js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.3.3", "@babel/parser@^7.4.3", "@babel/parser@^7.7.5", "@babel/parser@^7.8.3", "@babel/parser@^7.8.6", "@babel/parser@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" - integrity sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" + integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" @@ -355,11 +355,11 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" - integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.8.8" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-async-generators@^7.8.0": @@ -492,9 +492,9 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" - integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -618,9 +618,9 @@ "@babel/helper-replace-supers" "^7.8.3" "@babel/plugin-transform-parameters@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz#66fa2f1de4129b4e0447509223ac71bda4955395" - integrity sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g== + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz#0381de466c85d5404565243660c4496459525daf" + integrity sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA== dependencies: "@babel/helper-call-delegate" "^7.8.7" "@babel/helper-get-function-arity" "^7.8.3" @@ -2069,10 +2069,10 @@ "@octokit/types" "^2.0.1" deprecation "^2.3.1" -"@octokit/plugin-rest-endpoint-methods@^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.2.0.tgz#ecc4bc594a57ebfb418b8c4a8c0f200455759004" - integrity sha512-k+RLsegQn4s0wvAFYuk3R18FVKRg3ktvzIGW6MkmrSiSXBwYfaEsv4CuPysyef0DL+74DRj/X9MLJYlbleUO+Q== +"@octokit/plugin-rest-endpoint-methods@^3.3.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.3.1.tgz#279920ee391bd7e944ae4aa7fa435ba0c51fbb6a" + integrity sha512-iLAXPLWBZaP6ocy1GFfZUCzyN4cwg3y2JE6yZjQo0zLE3UaewC3TI68/TnS4ilyhXDxh81Jr1qwPN1AqTp8t3w== dependencies: "@octokit/types" "^2.0.1" deprecation "^2.3.1" @@ -2123,19 +2123,19 @@ universal-user-agent "^4.0.0" "@octokit/rest@^17.0.0": - version "17.0.1" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.0.1.tgz#0d8a179996ce71fe18e519b904ee1f05ec3067a6" - integrity sha512-5ANlzTxKxkYjh1xLRAJFATv6Lt73WgmUHGZJCPDmKjt/EN4sSaNbdELKnacuUPgkA2COkWtR8eUViWY9SMN1Bg== + version "17.1.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.1.0.tgz#32df64d9dd4855339e9957524a84ced72762a53b" + integrity sha512-L5YtpxHZSHZCh2xETbzxz8clBGmcpT+5e78JLZQ+VfuHrHJ1J/r+R2PGwKHwClUEECTeWFMMdAtIik+OCkANBg== dependencies: "@octokit/core" "^2.4.0" "@octokit/plugin-paginate-rest" "^2.0.0" "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "^3.0.0" + "@octokit/plugin-rest-endpoint-methods" "^3.3.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.3.2.tgz#63c1a786c65236a8b059024d0343353e260d5215" - integrity sha512-3nyOEch20ISn6MbVt/mBeDOkxO4ljx3oV+CnYNUT8n0JtUuMs0LpewZXpZ4ZWarI72qKc/YkxK9dkfjpncxuvg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.5.0.tgz#f1bbd147e662ae2c79717d518aac686e58257773" + integrity sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww== dependencies: "@types/node" ">= 8" @@ -2186,23 +2186,18 @@ "@qiwi/substrate-types" "^1.30.0" "@qiwi/substrate-std@*": - version "1.0.15" - resolved "https://registry.yarnpkg.com/@qiwi/substrate-std/-/substrate-std-1.0.15.tgz#d82ee2a1f86d54ac1f6826dbcded89c9d73c36a3" - integrity sha512-Sxb4gXXEXQGurL7sHce923XpVS7QmGum9ubl7Artlgkp7XcM+k2j52NND/iY5OrH+11TZlB5xdJhrhs234Q4Yw== + version "1.0.17" + resolved "https://registry.yarnpkg.com/@qiwi/substrate-std/-/substrate-std-1.0.17.tgz#cd6cd5154ce6f2c2a450ddf192a08b1b0a7a80d8" + integrity sha512-EJ/2murMmQRkTkFRcO8NLCi+gNGU8Ym0b1AV3LvY8jwP5ojpemwekNbDvby7BEnrpt2wlzAvrQAcEMbMPeuYoQ== dependencies: - "@qiwi/substrate-types" "^1.28.0" - -"@qiwi/substrate-types@^1.28.0": - version "1.29.0" - resolved "https://registry.yarnpkg.com/@qiwi/substrate-types/-/substrate-types-1.29.0.tgz#463b46480fbc6c63d31ab6eae6b21ebacda2130d" - integrity sha512-h+MgXgHl96E2tlgD+k5JBhxiq7NvkcXUDduSAmb0DHUpwBZLYU39vGaXfCwCIeZgqhzqdBUPhWxVFSJKvLHPdA== + "@qiwi/substrate-types" "^1.30.0" "@qiwi/substrate-types@^1.30.0": - version "1.30.0" - resolved "https://registry.yarnpkg.com/@qiwi/substrate-types/-/substrate-types-1.30.0.tgz#2cc33e5dd74c34469cfd4be6b319cfc116902f02" - integrity sha512-BaKbBF0ko1rR51Mk4S7X3++mabGF+JBpwYjCxW3RAayiySli/epv72LBT40akBKey43xLnwDHoNf5dQYc05UUw== + version "1.30.1" + resolved "https://registry.yarnpkg.com/@qiwi/substrate-types/-/substrate-types-1.30.1.tgz#063c99dd69966c3975e08fecf5c2e7715c89cdf1" + integrity sha512-tnRvRrX/b/icJP8FeKqFSuK4BOHIv16ERNE0r0mAtiYDIqMEWZnTic+5dY36lfZ2MqgPUVC05KrxjhS2HA0Hqw== -"@qiwi/substrate@^1.18.16": +"@qiwi/substrate@^1.18.14", "@qiwi/substrate@^1.18.16": version "1.18.16" resolved "https://registry.yarnpkg.com/@qiwi/substrate/-/substrate-1.18.16.tgz#2e28652346f9da88ac778800f152f6f1c36a4cb9" integrity sha512-+RFmiORtAc33b5/AHXnfDxgj6zeTbSTtvj+pvuo4eXSvoTdeP4bQrSwMDF2Nw+003LZ78iWWXYq7VO1nmFx5+w== @@ -2318,7 +2313,7 @@ p-retry "^4.0.0" url-join "^4.0.0" -"@semantic-release/npm@7.0.4", "@semantic-release/npm@^7.0.0", "@semantic-release/npm@^7.0.4": +"@semantic-release/npm@7.0.4": version "7.0.4" resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-7.0.4.tgz#45e87a57aaa0db2d838fedfc0bf4f9f8abfe2d5e" integrity sha512-+Loi8ZpGn1OrnHMa96cGJviCcsSIfXTb18J9OlwQTzCnw62ofQTph9Ty3DY3QlyxArJTz/IAz2d68fUEVdE7YA== @@ -2337,6 +2332,25 @@ semver "^7.1.2" tempy "^0.5.0" +"@semantic-release/npm@^7.0.0", "@semantic-release/npm@^7.0.4": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-7.0.5.tgz#61c45691abb863f6939cca6aac958d3c22508632" + integrity sha512-D+oEmsx9aHE1q806NFQwSC9KdBO8ri/VO99eEz0wWbX2jyLqVyWr7t0IjKC8aSnkkQswg/4KN/ZjfF6iz1XOpw== + dependencies: + "@semantic-release/error" "^2.2.0" + aggregate-error "^3.0.0" + execa "^4.0.0" + fs-extra "^9.0.0" + lodash "^4.17.15" + nerf-dart "^1.0.0" + normalize-url "^5.0.0" + npm "^6.10.3" + rc "^1.2.8" + read-pkg "^5.0.0" + registry-auth-token "^4.0.0" + semver "^7.1.2" + tempy "^0.5.0" + "@semantic-release/release-notes-generator@9.0.1", "@semantic-release/release-notes-generator@^9.0.0": version "9.0.1" resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.1.tgz#732d285d103064f2a64f08a32031551ebb4f918b" @@ -2446,9 +2460,9 @@ integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== "@types/estree@*": - version "0.0.42" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" - integrity sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ== + version "0.0.43" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.43.tgz#b73abf9f5db97540cd69815fd65c5b1198526c4e" + integrity sha512-WfOySUnBpyKXbkC9QuZguwOGhGnugDXT2f2P6X8EIis7qlnd5NI1Nr4kRi357NtguxezyizIcaFlQe0wx23XnA== "@types/estree@0.0.39": version "0.0.39" @@ -2555,9 +2569,9 @@ integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*", "@types/node@>= 8", "@types/node@^13.9.0": - version "13.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589" - integrity sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ== + version "13.9.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349" + integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg== "@types/node@^10.0.3": version "10.17.17" @@ -3023,6 +3037,11 @@ asyncro@^3.0.0: resolved "https://registry.yarnpkg.com/asyncro/-/asyncro-3.0.0.tgz#3c7a732e263bc4a42499042f48d7d858e9c0134e" integrity sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob-lite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" @@ -3351,13 +3370,14 @@ browser-resolve@^1.11.3: resolve "1.1.7" browserslist@^4.0.0, browserslist@^4.8.3, browserslist@^4.8.5, browserslist@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" - integrity sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" + integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== dependencies: - caniuse-lite "^1.0.30001030" - electron-to-chromium "^1.3.363" - node-releases "^1.1.50" + caniuse-lite "^1.0.30001035" + electron-to-chromium "^1.3.378" + node-releases "^1.1.52" + pkg-up "^3.1.0" bs-logger@0.x: version "0.2.6" @@ -3542,10 +3562,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: - version "1.0.30001033" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001033.tgz#60c328fb56860de60f9a2cb419c31fb80587cba0" - integrity sha512-8Ibzxee6ibc5q88cM1usPsMpJOG5CTq0s/dKOmlekPbDGKt+UrnOOTPSjQz3kVo6yL7N4SB5xd+FGLHQmbzh6A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001035: + version "1.0.30001035" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" + integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== capture-exit@^2.0.0: version "2.0.0" @@ -3648,9 +3668,9 @@ class-utils@^0.3.5: static-extend "^0.1.1" class-validator@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.11.0.tgz#5fca8b8a957c738a6749391e03ee81fad375dc4a" - integrity sha512-niAmmSPFku9xsnpYYrddy8NZRrCX3yyoZ/rgPKOilE5BG0Ma1eVCIxpR4X0LasL/6BzbYzsutG+mSbAXlh4zNw== + version "0.11.1" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.11.1.tgz#9033b9ebdc3883e826dfc0c545a45935e3298553" + integrity sha512-6CGdjwJLmKw+sQbK5ZDo1v1yTajkqfPOUDWSYVIlhUiCh6Phy8sAnMFE2XKHAcKAdoOz4jJUQhjPQWPYUuHxrA== dependencies: "@types/validator" "10.11.3" google-libphonenumber "^3.1.6" @@ -4435,14 +4455,14 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -debug@^3.1.0: +debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= @@ -4546,6 +4566,11 @@ detect-indent@^5.0.0, detect-indent@~5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -4731,10 +4756,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.363: - version "1.3.373" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.373.tgz#645de7a1c093cb614e2716738347818f930923ff" - integrity sha512-an1SVTwALJisKbNt11LNs6quecjAt8qtnKFdDq37VVHIIjmdD1mpdcI00e+wM3gWyMWAdTYNtTArz3xodX0zqg== +electron-to-chromium@^1.3.378: + version "1.3.379" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.379.tgz#81dc5e82a3e72bbb830d93e15bc35eda2bbc910e" + integrity sha512-NK9DBBYEBb5f9D7zXI0hiE941gq3wkBeQmXs1ingigA/jnTg5mhwY2Z5egwA+ZI8OLGKCx0h1Cl8/xeuIBuLlg== email-addresses@^3.0.1: version "3.1.0" @@ -4874,9 +4899,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-promisify@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.2.tgz#525c23725b8510f5f1f2feb5a1fbad93a93e29b4" - integrity sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.0.tgz#32e3e7e796f924a6723f09ded24e71100ea57472" + integrity sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw== es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" @@ -5518,6 +5543,16 @@ fs-extra@8.1.0, fs-extra@^8.0.0, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" + integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -5550,9 +5585,9 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + version "1.2.12" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== dependencies: bindings "^1.5.0" nan "^2.12.1" @@ -5847,9 +5882,9 @@ globrex@^0.1.1: integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== google-libphonenumber@^3.1.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.7.tgz#1a8d790206631cd9a56a0f79dc4aa086e17b6f5b" - integrity sha512-8Es+gIaGoBddq/tqegG52iuzHOV+VU+de2mvkIOVlDkg/bnJlNdVZcof6iMPChy9Dte+si7BJeDaaueBtFoV6Q== + version "3.2.8" + resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.8.tgz#fb5898cbae18104d456e0fd80df52d860a3eb2b8" + integrity sha512-iWs1KcxOozmKQbCeGjvU0M7urrkNjBYOSBtb819RjkUNJHJLfn7DADKkKwdJTOMPLcLOE11/4h/FyFwJsTiwLg== got@^6.7.1: version "6.7.1" @@ -6157,7 +6192,7 @@ humanize-url@^1.0.0: normalize-url "^1.0.0" strip-url-auth "^1.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -6254,7 +6289,7 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= @@ -7657,11 +7692,11 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@2.x, json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" json5@^1.0.1: version "1.0.1" @@ -7677,6 +7712,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -8040,6 +8084,11 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw= + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -8048,12 +8097,29 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI= + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM= + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= -lodash._getnative@^3.0.0: +lodash._getnative@*, lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= @@ -8149,6 +8215,11 @@ lodash.pairs@^3.0.1: dependencies: lodash.keys "^3.0.0" +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -8385,9 +8456,9 @@ marked-terminal@^4.0.0: supports-hyperlinks "^2.0.0" marked@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" - integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== + version "0.8.1" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.1.tgz#a233f39572fab15ede53a3c3be8a139bff86d2dd" + integrity sha512-tZfJS8uE0zpo7xpTffwFwYRfW9AzNcdo04Qcjs+C9+oCy8MSRD2reD5iDVtYx8mtLaqsGughw/YLlcwNxAHA1g== maxmin@^2.1.0: version "2.1.0" @@ -8657,15 +8728,10 @@ minimist-options@^4.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minimist@~0.0.1: version "0.0.10" @@ -8723,12 +8789,12 @@ mkdirp@*: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" + integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== dependencies: - minimist "0.0.8" + minimist "^1.2.5" modify-values@^1.0.0: version "1.0.1" @@ -8842,6 +8908,15 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +needle@^2.2.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" + integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -8880,9 +8955,9 @@ node-emoji@^1.10.0: lodash.toarray "^4.4.0" node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz#efae4aacb0500444e449a51fc1467397775ebc38" + integrity sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -8942,10 +9017,26 @@ node-notifier@^6.0.0: shellwords "^0.1.1" which "^1.3.1" -node-releases@^1.1.50: - version "1.1.51" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.51.tgz#70d0e054221343d2966006bfbd4d98622cc00bd0" - integrity sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw== +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-releases@^1.1.52: + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: semver "^6.3.0" @@ -9065,7 +9156,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.4.4, npm-packlist@^1.4.8: +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.4, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -9125,9 +9216,9 @@ npm-user-validate@~1.0.0: integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE= npm@^6.10.3: - version "6.14.2" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.2.tgz#f057d35cd4792c4c511bb1fa332edb43143d07b0" - integrity sha512-eBVjzvGJ9v2/jRJZFtIkvUVKmJ0sCJNNwc9Z1gI6llwaT7EBYWJe5o61Ipc1QR0FaDCKM3l1GizI09Ro3STJEw== + version "6.14.3" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.3.tgz#a122618543c6670765cf5e827cd996b5552f9b65" + integrity sha512-3tQYVEEdSGQGYoXhZvNqW8faqCidfMMaL387RdDo4Uu5kQy4IgvJ13NIsWVMQ6e3QWlbicNMSpFiyzYfMUuPDw== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -9187,7 +9278,7 @@ npm@^6.10.3: lru-cache "^5.1.1" meant "~1.0.1" mississippi "^3.0.0" - mkdirp "~0.5.1" + mkdirp "^0.5.3" move-concurrently "^1.0.1" node-gyp "^5.1.0" nopt "~4.0.1" @@ -9221,7 +9312,7 @@ npm@^6.10.3: readdir-scoped-modules "^1.1.0" request "^2.88.0" retry "^0.12.0" - rimraf "^2.6.3" + rimraf "^2.7.1" safe-buffer "^5.1.2" semver "^5.7.1" sha "^3.0.0" @@ -9245,7 +9336,7 @@ npm@^6.10.3: worker-farm "^1.7.0" write-file-atomic "^2.4.3" -npmlog@^4.1.2, npmlog@~4.1.2: +npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -9894,6 +9985,13 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -10344,9 +10442,9 @@ promise@^8.0.0: asap "~2.0.6" prompts@^2.0.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.1.tgz#b63a9ce2809f106fa9ae1277c275b167af46ea05" - integrity sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== dependencies: kleur "^3.0.3" sisteransi "^1.0.4" @@ -10500,7 +10598,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -10734,10 +10832,10 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -10747,14 +10845,14 @@ regenerate@^1.4.0: integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.13.4: - version "0.13.4" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz#e96bf612a3362d12bb69f7e8f74ffeab25c7ac91" - integrity sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g== + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== regenerator-transform@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.2.tgz#949d9d87468ff88d5a7e4734ebb994a892de1ff2" - integrity sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ== + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: "@babel/runtime" "^7.8.4" private "^0.1.8" @@ -10767,17 +10865,17 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +regexpu-core@^4.6.0, regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" + unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^3.0.1: version "3.4.0" @@ -10801,15 +10899,15 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" -regjsgen@^0.5.0: +regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz#74192c5805d35e9f5ebe3c1fb5b40d40a8a38460" - integrity sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -11015,7 +11113,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -11053,9 +11151,9 @@ rollup-plugin-es3@^1.1.0: magic-string "^0.22.4" rollup-plugin-postcss@^2.0.3: - version "2.4.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-2.4.1.tgz#c6ba84dea7a29ed00ce5ddf0d333f9efd96283df" - integrity sha512-wlx8V/ic0bTlVXITWKyhDRuOyQiIdVewM2+KP+tKu2Y9j559uoTsk9F6oXFvyaXA5LiYv3VuOH7cjhRHLR2Ocg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-2.5.0.tgz#54ef2487cda498d8bca69aaca3b55b30dee0106b" + integrity sha512-tBba0iMOY+eH1bP2rUhO/WK45uTRdRbuM5yWViO7tUChUrgA+JSQJscpCpStebPZoFxRwfkJRk2PZHd1q+JY2A== dependencies: chalk "^2.4.2" concat-with-sourcemaps "^1.0.5" @@ -11419,9 +11517,9 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" sisteransi@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" - integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slash@^2.0.0: version "2.0.0" @@ -12063,7 +12161,7 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -12133,9 +12231,9 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser@^4.6.2, terser@^4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.6.tgz#da2382e6cafbdf86205e82fb9a115bd664d54863" - integrity sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g== + version "4.6.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" + integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -12435,9 +12533,9 @@ tslint-react@^4.2.0: tsutils "^3.9.1" tslint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.0.0.tgz#1c0148beac4779924216302f192cdaa153618310" - integrity sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.0.tgz#c6c611b8ba0eed1549bf5a59ba05a7732133d851" + integrity sha512-fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ== dependencies: "@babel/code-frame" "^7.0.0" builtin-modules "^1.1.1" @@ -12654,15 +12752,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -12731,6 +12829,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -13165,9 +13268,9 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yaml@^1.7.2: - version "1.8.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.0.tgz#169fbcfa2081302dc9441d02b0b6fe667e4f74c9" - integrity sha512-6qI/tTx7OVtA4qNqD0OyutbM6Z9EKu4rxWm/2Y3FDEBQ4/2X2XAnyuRXMzAE2+1BPyqzksJZtrIwblOHg0IEzA== + version "1.8.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.2.tgz#a29c03f578faafd57dcb27055f9a5d569cb0c3d9" + integrity sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg== dependencies: "@babel/runtime" "^7.8.7" @@ -13178,18 +13281,18 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" - integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -13202,10 +13305,10 @@ yargs-parser@^16.1.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.0.tgz#1b0ab1118ebd41f68bb30e729f4c83df36ae84c3" - integrity sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ== +yargs-parser@^18.1.1: + version "18.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.1.tgz#bf7407b915427fc760fcbbccc6c82b4f0ffcbd37" + integrity sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -13243,9 +13346,9 @@ yargs@^11.0.0: yargs-parser "^9.0.2" yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -13256,12 +13359,12 @@ yargs@^13.3.0: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^13.1.2" yargs@^14.2.2: - version "14.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.2.tgz#2769564379009ff8597cdd38fba09da9b493c4b5" - integrity sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA== + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== dependencies: cliui "^5.0.0" decamelize "^1.2.0" @@ -13273,12 +13376,12 @@ yargs@^14.2.2: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^15.0.0" + yargs-parser "^15.0.1" yargs@^15.0.0, yargs@^15.0.1, yargs@^15.0.2, yargs@^15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" - integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -13290,7 +13393,7 @@ yargs@^15.0.0, yargs@^15.0.1, yargs@^15.0.2, yargs@^15.3.0: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^18.1.0" + yargs-parser "^18.1.1" yargs@^8.0.2: version "8.0.2"