diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..198a57df1 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,11 @@ +module.exports = { + extends: ['prettier/@typescript-eslint', 'plugin:prettier/recommended'], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 6, + sourceType: 'module', + ecmaFeatures: { + modules: true, + }, + }, +}; diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..89c3cc94d --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "printWidth": 80, + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "trailingComma": "all" +} diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 000000000..84dcb122a --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], +}; diff --git a/package.json b/package.json index cc5b2ad09..c32c7a09e 100644 --- a/package.json +++ b/package.json @@ -28,13 +28,22 @@ "rollup": "rollup -c rollup.config.js", "prebuild": "rimraf ./lib && mkdir lib", "build": "tsc && yarn rollup", - "lint": "tslint src/**/*.ts --project .", + "lint": "eslint src/**/*.ts", + "format": "prettier --write 'src/**/*.{js,ts}'", "examples": "run-p example:*", "example:github": "node lib/bin/orval.js import --input https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v3.0/petstore.yaml --output examples/petstoreFromGithubSpec.ts", "example:file": "node lib/bin/orval.js import --input examples/petstore.yaml --output examples/petstoreFromFileSpec.ts", "example:advanced": "node lib/bin/orval.js import --config examples/orval.config.js" }, + "husky": { + "hooks": { + "pre-commit": "yarn lint", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, "devDependencies": { + "@commitlint/cli": "^8.3.5", + "@commitlint/config-conventional": "^8.3.4", "@types/chalk": "^2.2.0", "@types/commander": "^2.12.2", "@types/faker": "^4.1.8", @@ -43,12 +52,17 @@ "@types/node": "^13.7.7", "@types/request": "^2.48.4", "@types/yamljs": "^0.2.30", + "@typescript-eslint/eslint-plugin": "^2.25.0", + "@typescript-eslint/parser": "^2.25.0", "axios": "^0.19.2", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-prettier": "^3.1.2", "faker": "^4.1.0", "husky": "^4.2.3", "lint-staged": "^10.0.8", "npm-run-all": "^4.1.5", - "prettier": "^1.19.1", + "prettier": "^2.0.2", "rimraf": "^3.0.2", "rollup": "^1.32.0", "rollup-plugin-typescript2": "^0.26.0", @@ -63,7 +77,6 @@ "inquirer": "^7.0.6", "lodash": "^4.17.15", "openapi3-ts": "^1.3.0", - "request": "^2.88.2", "swagger2openapi": "^5.3.3", "yamljs": "^0.3.0" }, diff --git a/src/bin/orval-import.ts b/src/bin/orval-import.ts index 22c9ced6e..60c42df26 100644 --- a/src/bin/orval-import.ts +++ b/src/bin/orval-import.ts @@ -1,15 +1,15 @@ import program from 'commander'; import difference from 'lodash/difference'; -import {join} from 'path'; -import {importSpecs} from '../core/importers/specs'; -import {writeSpecs} from '../core/writers/specs'; -import {ExternalConfigFile, Options} from '../types'; -import {errorMessage, mismatchArgsMessage} from '../utils/messages/logs'; +import { join } from 'path'; +import { importSpecs } from '../core/importers/specs'; +import { writeSpecs } from '../core/writers/specs'; +import { ExternalConfigFile, Options } from '../types'; +import { errorMessage, mismatchArgsMessage } from '../utils/messages/logs'; program.option('-o, --output [value]', 'output file destination'); program.option( '-f, --input [value]', - 'input file (yaml or json openapi specs)' + 'input file (yaml or json openapi specs)', ); program.option('--config [value]', 'override flags by a config file'); program.parse(process.argv); @@ -25,7 +25,7 @@ if (program.config) { // tslint:disable-next-line: no-var-requires const config: ExternalConfigFile = require(join( process.cwd(), - program.config + program.config, )); const mismatchArgs = difference(program.args, Object.keys(config)); @@ -35,12 +35,10 @@ if (program.config) { Object.entries(config) .filter(([backend]) => - program.args.length === 0 ? true : program.args.includes(backend) + program.args.length === 0 ? true : program.args.includes(backend), ) .forEach(([backend, options]) => { - importSpecs(options) - .then(writeSpecs(options, backend)) - .catch(catchError); + importSpecs(options).then(writeSpecs(options, backend)).catch(catchError); }); } else { // Use flags as configuration diff --git a/src/bin/orval.ts b/src/bin/orval.ts index bc20ac06c..00514d2b7 100644 --- a/src/bin/orval.ts +++ b/src/bin/orval.ts @@ -1,15 +1,15 @@ import program from 'commander'; -import {startMessage} from '../utils/messages/logs'; -import {getPackage} from '../utils/packages'; +import { startMessage } from '../utils/messages/logs'; +import { getPackage } from '../utils/packages'; -const {name, version, description} = getPackage(); +const { name, version, description } = getPackage(); -startMessage({name, version, description}); +startMessage({ name, version, description }); program .version(version) .command( 'import [open-api-file]', - 'generate orval type-safe from OpenAPI specs' + 'generate orval type-safe from OpenAPI specs', ) .parse(process.argv); diff --git a/src/constants/index.ts b/src/constants/index.ts index 8980cc2e4..7680286b7 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,4 +1,4 @@ -import {Verbs} from '../types'; +import { Verbs } from '../types'; export const generalJSTypes = [ 'number', @@ -7,12 +7,12 @@ export const generalJSTypes = [ 'unknown', 'undefined', 'object', - 'blob' + 'blob', ]; export const generalJSTypesWithArray = generalJSTypes.reduce( (acc, type) => [...acc, type, `Array<${type}>`, `${type}[]`], - [] + [], ); export const VERBS_WITH_BODY = [Verbs.POST, Verbs.PUT, Verbs.PATCH]; diff --git a/src/core/generators/api.ts b/src/core/generators/api.ts index f0797044a..e3d5e584c 100644 --- a/src/core/generators/api.ts +++ b/src/core/generators/api.ts @@ -1,12 +1,12 @@ -import {OpenAPIObject, PathItemObject} from 'openapi3-ts'; -import {OverrideOutput} from '../../types'; -import {GeneratorApiResponse, GeneratorSchema} from '../../types/generator'; -import {generateClient} from './client'; -import {generateVerbsOptions} from './verbsOptions'; +import { OpenAPIObject, PathItemObject } from 'openapi3-ts'; +import { OverrideOutput } from '../../types'; +import { GeneratorApiResponse, GeneratorSchema } from '../../types/generator'; +import { generateClient } from './client'; +import { generateVerbsOptions } from './verbsOptions'; export const generateApi = ( specs: OpenAPIObject, - override?: OverrideOutput + override?: OverrideOutput, ) => { return Object.entries(specs.paths).reduce( (acc, [pathRoute, verbs]: [string, PathItemObject]) => { @@ -16,28 +16,28 @@ export const generateApi = ( verbs, override, route, - components: specs.components + components: specs.components, }); const schemas = verbsOptions.reduce( - (acc, {queryParams}) => (queryParams ? [...acc, queryParams] : acc), - [] + (acc, { queryParams }) => (queryParams ? [...acc, queryParams] : acc), + [], ); const client = generateClient(verbsOptions, { route, specs, - override + override, }); return { schemas: [...acc.schemas, ...schemas], - operations: {...acc.operations, ...client} + operations: { ...acc.operations, ...client }, }; }, { operations: {}, - schemas: [] - } + schemas: [], + }, ); }; diff --git a/src/core/generators/axios.ts b/src/core/generators/axios.ts index 96d4ce924..d0601fbe4 100644 --- a/src/core/generators/axios.ts +++ b/src/core/generators/axios.ts @@ -1,12 +1,12 @@ -import {camel} from 'case'; -import {VERBS_WITH_BODY} from '../../constants'; -import {Verbs} from '../../types'; +import { camel } from 'case'; +import { VERBS_WITH_BODY } from '../../constants'; +import { Verbs } from '../../types'; import { GeneratorOptions, GeneratorSchema, - GeneratorVerbOptions + GeneratorVerbOptions, } from '../../types/generator'; -import {GetterBody, GetterResponse} from '../../types/getters'; +import { GetterBody, GetterResponse } from '../../types/getters'; const generateBodyProps = (body: GetterBody, verb: Verbs) => { if (!VERBS_WITH_BODY.includes(verb)) { @@ -22,7 +22,7 @@ const generateBodyProps = (body: GetterBody, verb: Verbs) => { const generateQueryParamsProps = ( response: GetterResponse, - queryParams?: GeneratorSchema + queryParams?: GeneratorSchema, ) => { if (!queryParams && !response.isBlob) { return ''; @@ -52,7 +52,7 @@ const generateAxiosProps = ({ body, queryParams, response, - verb + verb, }: { route: string; body: GetterBody; @@ -62,7 +62,7 @@ const generateAxiosProps = ({ }) => { return `\`${route}\` ${generateBodyProps( body, - verb + verb, )} ${generateQueryParamsProps(response, queryParams)}`; }; @@ -70,7 +70,7 @@ const generateAxiosDefinition = ({ props, definitionName, response, - summary + summary, }: GeneratorVerbOptions) => { let value = ''; @@ -89,7 +89,7 @@ const generateFormData = (body: GetterBody) => { } return `const formData = new FormData(); formData.append('file', ${camel( - body.implementation + body.implementation, )});`; }; @@ -101,16 +101,16 @@ const generateAxiosImplementation = ( transformer, body, props, - verb + verb, }: GeneratorVerbOptions, - {route}: GeneratorOptions + { route }: GeneratorOptions, ) => { const axiosProps = generateAxiosProps({ route, body, queryParams, response, - verb + verb, }); return ` ${definitionName}(${props.implementation}): AxiosPromise<${ @@ -126,25 +126,25 @@ const generateAxiosImplementation = ( const generateImports = ({ response, body, - queryParams + queryParams, }: GeneratorVerbOptions) => [ ...response.imports, ...body.imports, - ...(queryParams ? [queryParams.name] : []) + ...(queryParams ? [queryParams.name] : []), ]; export const generateAxiosHeader = (title: string) => ({ definition: `export interface ${title} {`, - implementation: `export const get${title} = (axios: AxiosInstance): ${title} => ({\n` + implementation: `export const get${title} = (axios: AxiosInstance): ${title} => ({\n`, }); export const generateAxios = ( verbOptions: GeneratorVerbOptions, - options: GeneratorOptions + options: GeneratorOptions, ) => { const imports = generateImports(verbOptions); const definition = generateAxiosDefinition(verbOptions); const implementation = generateAxiosImplementation(verbOptions, options); - return {definition, implementation, imports}; + return { definition, implementation, imports }; }; diff --git a/src/core/generators/client.ts b/src/core/generators/client.ts index da5aaee0b..87c5b7f5f 100644 --- a/src/core/generators/client.ts +++ b/src/core/generators/client.ts @@ -1,21 +1,25 @@ -import {GeneratorOptions, GeneratorVerbsOptions} from '../../types/generator'; -import {generateAxios, generateAxiosHeader} from './axios'; -import {generateMock} from './mocks'; +import { GeneratorOptions, GeneratorVerbsOptions } from '../../types/generator'; +import { generateAxios, generateAxiosHeader } from './axios'; +import { generateMock } from './mocks'; export const generateClientHeader = (title: string) => { return { ...generateAxiosHeader(title), - implementationMock: `export const get${title}Mock = (): ${title} => ({\n` + implementationMock: `export const get${title}Mock = (): ${title} => ({\n`, }; }; export const generateClientFooter = () => { - return {definition: '\n};', implementation: '});', implementationMock: '})'}; + return { + definition: '\n};', + implementation: '});', + implementationMock: '})', + }; }; export const generateClient = ( verbsOptions: GeneratorVerbsOptions, - options: GeneratorOptions + options: GeneratorOptions, ) => { return verbsOptions.reduce((acc, verbOption) => { const axios = generateAxios(verbOption, options); @@ -29,8 +33,8 @@ export const generateClient = ( imports: axios.imports, implementationMocks: mock.implementation, importsMocks: mock.imports, - tags: verbOption.tags - } + tags: verbOption.tags, + }, }; }, {}); }; diff --git a/src/core/generators/imports.ts b/src/core/generators/imports.ts index 805279f9f..3c279c3c7 100644 --- a/src/core/generators/imports.ts +++ b/src/core/generators/imports.ts @@ -1,9 +1,9 @@ -import {camel} from 'case'; +import { camel } from 'case'; export const generateImports = ( imports: string[] = [], path: string = '.', - pathOnly: boolean = false + pathOnly: boolean = false, ) => { if (pathOnly) { return `import {\n ${imports @@ -12,6 +12,6 @@ export const generateImports = ( } return imports .sort() - .map(imp => `import { ${imp} } from \'${path}/${camel(imp)}\';`) + .map((imp) => `import { ${imp} } from \'${path}/${camel(imp)}\';`) .join('\n'); }; diff --git a/src/core/generators/interface.ts b/src/core/generators/interface.ts index 962e180a1..d06f1bf83 100644 --- a/src/core/generators/interface.ts +++ b/src/core/generators/interface.ts @@ -1,7 +1,7 @@ -import {pascal} from 'case'; -import {SchemaObject} from 'openapi3-ts'; -import {generalTypesFilter} from '../../utils/filters'; -import {getScalar} from '../getters/scalar'; +import { pascal } from 'case'; +import { SchemaObject } from 'openapi3-ts'; +import { generalTypesFilter } from '../../utils/filters'; +import { getScalar } from '../getters/scalar'; /** * Generate the interface string @@ -11,7 +11,7 @@ import {getScalar} from '../getters/scalar'; * @param schema */ export const generateInterface = (name: string, schema: SchemaObject) => { - const {value, imports, schemas} = getScalar(schema, name); + const { value, imports, schemas } = getScalar(schema, name); const isEmptyObject = value === '{}'; return [ @@ -22,7 +22,7 @@ export const generateInterface = (name: string, schema: SchemaObject) => { ? `// tslint:disable-next-line:no-empty-interface export interface ${pascal(name)} ${value}` : `export interface ${pascal(name)} ${value}`, - imports: generalTypesFilter(imports) - } + imports: generalTypesFilter(imports), + }, ]; }; diff --git a/src/core/generators/mocks.ts b/src/core/generators/mocks.ts index bd815edca..5fa1a479b 100644 --- a/src/core/generators/mocks.ts +++ b/src/core/generators/mocks.ts @@ -1,33 +1,33 @@ -import {OpenAPIObject, SchemaObject} from 'openapi3-ts'; -import {generalJSTypesWithArray} from '../../constants'; -import {MockOptions, OverrideOutput} from '../../types'; -import {GeneratorVerbOptions} from '../../types/generator'; -import {GetterResponse} from '../../types/getters'; -import {isFunction} from '../../utils/is'; -import {stringify} from '../../utils/stringify'; -import {getMockScalar} from '../getters/scalar.mock'; +import { OpenAPIObject, SchemaObject } from 'openapi3-ts'; +import { generalJSTypesWithArray } from '../../constants'; +import { MockOptions, OverrideOutput } from '../../types'; +import { GeneratorVerbOptions } from '../../types/generator'; +import { GetterResponse } from '../../types/getters'; +import { isFunction } from '../../utils/is'; +import { stringify } from '../../utils/stringify'; +import { getMockScalar } from '../getters/scalar.mock'; const getMockPropertiesWithoutFunc = (properties: any, specs: OpenAPIObject) => Object.entries( - isFunction(properties) ? properties(specs) : properties + isFunction(properties) ? properties(specs) : properties, ).reduce( (acc, [key, value]) => ({ ...acc, - [key]: isFunction(value) ? `(${value})()` : stringify(value as string) + [key]: isFunction(value) ? `(${value})()` : stringify(value as string), }), - {} + {}, ); const getMockWithoutFunc = ( specs: OpenAPIObject, - override?: OverrideOutput + override?: OverrideOutput, ): MockOptions => ({ ...(override?.mock?.properties ? { properties: getMockPropertiesWithoutFunc( override.mock.properties, - specs - ) + specs, + ), } : {}), ...(override?.operations @@ -39,15 +39,15 @@ const getMockWithoutFunc = ( ? { properties: getMockPropertiesWithoutFunc( value.mock.properties, - specs - ) + specs, + ), } - : {} + : {}, }), - {} - ) + {}, + ), } - : {}) + : {}), }); const toAxiosPromiseMock = (value: unknown, definition: string) => @@ -59,42 +59,42 @@ const getResponsesMockDefinition = ( schemas: { [key: string]: SchemaObject; }, - mockOptionsWithoutFunc: {[key: string]: unknown} + mockOptionsWithoutFunc: { [key: string]: unknown }, ) => { return response.types.reduce( - (acc, {value: type}) => { + (acc, { value: type }) => { if (!type || generalJSTypesWithArray.includes(type)) { acc.definitions = [ ...acc.definitions, - toAxiosPromiseMock(undefined, response.definition) + toAxiosPromiseMock(undefined, response.definition), ]; return acc; } - const schema = {name: type, ...schemas[type]}; + const schema = { name: type, ...schemas[type] }; if (!schema) { return acc; } - const {value, imports} = getMockScalar({ + const { value, imports } = getMockScalar({ item: schema, schemas, mockOptions: mockOptionsWithoutFunc, - operationId + operationId, }); acc.imports = [...acc.imports, ...imports]; acc.definitions = [ ...acc.definitions, - toAxiosPromiseMock(value, response.definition) + toAxiosPromiseMock(value, response.definition), ]; return acc; }, { definitions: [] as string[], - imports: [] as string[] - } + imports: [] as string[], + }, ); }; @@ -102,32 +102,32 @@ const getMockDefinition = ( operationId: string, response: GetterResponse, specs: OpenAPIObject, - override?: OverrideOutput + override?: OverrideOutput, ) => { const schemas = Object.entries(specs.components?.schemas || []).reduce( - (acc, [name, type]) => ({...acc, [name]: type}), - {} - ) as {[key: string]: SchemaObject}; + (acc, [name, type]) => ({ ...acc, [name]: type }), + {}, + ) as { [key: string]: SchemaObject }; const mockOptionsWithoutFunc = getMockWithoutFunc(specs, override); - const {definitions, imports} = getResponsesMockDefinition( + const { definitions, imports } = getResponsesMockDefinition( operationId, response, schemas, - mockOptionsWithoutFunc + mockOptionsWithoutFunc, ); return { definition: '[' + definitions.join(', ') + ']', definitions, - imports + imports, }; }; const getMockOptionsDataOverride = ( operationId: string, - override?: OverrideOutput + override?: OverrideOutput, ) => { const responseOverride = override?.operations?.[operationId]?.mock?.data; return isFunction(responseOverride) @@ -136,15 +136,15 @@ const getMockOptionsDataOverride = ( }; export const generateMock = ( - {operationId, response, definitionName, props}: GeneratorVerbOptions, + { operationId, response, definitionName, props }: GeneratorVerbOptions, specs: OpenAPIObject, - override?: OverrideOutput + override?: OverrideOutput, ) => { - const {definition, definitions, imports} = getMockDefinition( + const { definition, definitions, imports } = getMockDefinition( operationId, response, specs, - override + override, ); const mockData = getMockOptionsDataOverride(operationId, override); @@ -162,5 +162,5 @@ export const generateMock = ( }, `; - return {implementation, imports}; + return { implementation, imports }; }; diff --git a/src/core/generators/modelsInline.ts b/src/core/generators/modelsInline.ts index 489d7d2b8..f1d7a0713 100644 --- a/src/core/generators/modelsInline.ts +++ b/src/core/generators/modelsInline.ts @@ -1,7 +1,7 @@ -import {GeneratorSchema} from '../../types/generator'; +import { GeneratorSchema } from '../../types/generator'; export const generateModelInline = (acc: string, model: string): string => acc + `${model}\n\n`; export const generateModelsInline = (array: GeneratorSchema[]): string => - array.reduce((acc, {model}) => generateModelInline(acc, model), ''); + array.reduce((acc, { model }) => generateModelInline(acc, model), ''); diff --git a/src/core/generators/responsesDefinition.ts b/src/core/generators/responsesDefinition.ts index 073fe2960..9abb1b099 100644 --- a/src/core/generators/responsesDefinition.ts +++ b/src/core/generators/responsesDefinition.ts @@ -1,9 +1,9 @@ -import {pascal} from 'case'; +import { pascal } from 'case'; import isEmpty from 'lodash/isEmpty'; -import {ComponentsObject} from 'openapi3-ts'; -import {GeneratorSchema} from '../../types/generator'; -import {generalTypesFilter} from '../../utils/filters'; -import {getResReqTypes} from '../getters/resReqTypes'; +import { ComponentsObject } from 'openapi3-ts'; +import { GeneratorSchema } from '../../types/generator'; +import { generalTypesFilter } from '../../utils/filters'; +import { getResReqTypes } from '../getters/resReqTypes'; /** * Extract all types from #/components/responses @@ -11,7 +11,7 @@ import {getResReqTypes} from '../getters/resReqTypes'; * @param responses */ export const generateResponsesDefinition = ( - responses: ComponentsObject['responses'] = {} + responses: ComponentsObject['responses'] = {}, ): Array => { if (isEmpty(responses)) { return []; @@ -20,15 +20,15 @@ export const generateResponsesDefinition = ( const models = Object.entries(responses).map(([name, response]) => { const allResponseTypes = getResReqTypes([['', response]]); const imports = allResponseTypes.reduce( - (acc, {imports = []}) => [...acc, ...imports], - [] + (acc, { imports = [] }) => [...acc, ...imports], + [], ); - const type = allResponseTypes.map(({value}) => value).join(' | '); + const type = allResponseTypes.map(({ value }) => value).join(' | '); const isEmptyInterface = type === '{}'; let model = ''; if (isEmptyInterface) { model = `// tslint:disable-next-line:no-empty-interface \nexport interface ${pascal( - name + name, )}Response ${type}`; } else if ( type.includes('{') && @@ -43,7 +43,7 @@ export const generateResponsesDefinition = ( return { name: `${pascal(name)}Response`, model, - imports: generalTypesFilter(imports) + imports: generalTypesFilter(imports), }; }); diff --git a/src/core/generators/schemaDefinition.ts b/src/core/generators/schemaDefinition.ts index 35cc02792..375fc629f 100644 --- a/src/core/generators/schemaDefinition.ts +++ b/src/core/generators/schemaDefinition.ts @@ -1,11 +1,11 @@ -import {pascal, upper} from 'case'; +import { pascal, upper } from 'case'; import isEmpty from 'lodash/isEmpty'; -import {SchemaObject} from 'openapi3-ts'; -import {GeneratorSchema} from '../../types/generator'; -import {generalTypesFilter} from '../../utils/filters'; -import {isReference} from '../../utils/is'; -import {resolveValue} from '../resolvers/value'; -import {generateInterface} from './interface'; +import { SchemaObject } from 'openapi3-ts'; +import { GeneratorSchema } from '../../types/generator'; +import { generalTypesFilter } from '../../utils/filters'; +import { isReference } from '../../utils/is'; +import { resolveValue } from '../resolvers/value'; +import { generateInterface } from './interface'; /** * Extract all types from #/components/schemas @@ -13,7 +13,7 @@ import {generateInterface} from './interface'; * @param schemas */ export const generateSchemasDefinition = ( - schemas: SchemaObject = {} + schemas: SchemaObject = {}, ): Array => { if (isEmpty(schemas)) { return []; @@ -30,9 +30,9 @@ export const generateSchemasDefinition = ( ) { return [...acc, ...generateInterface(name, schema)]; } else { - const {value, imports, isEnum, type, schemas = []} = resolveValue( + const { value, imports, isEnum, type, schemas = [] } = resolveValue( schema, - name + name, ); let output = ''; @@ -59,12 +59,12 @@ export const generateSchemasDefinition = ( { name: pascal(name), model: output, - imports: generalTypesFilter(imports) - } + imports: generalTypesFilter(imports), + }, ]; } }, - [] + [], ); return models; diff --git a/src/core/generators/target.ts b/src/core/generators/target.ts index 097f478c8..dfe4e608a 100644 --- a/src/core/generators/target.ts +++ b/src/core/generators/target.ts @@ -1,12 +1,12 @@ -import {pascal} from 'case'; -import {InfoObject} from 'openapi3-ts'; -import {GeneratorOperations} from '../../types/generator'; -import {generalTypesFilter} from '../../utils/filters'; -import {generateClientFooter, generateClientHeader} from './client'; +import { pascal } from 'case'; +import { InfoObject } from 'openapi3-ts'; +import { GeneratorOperations } from '../../types/generator'; +import { generalTypesFilter } from '../../utils/filters'; +import { generateClientFooter, generateClientHeader } from './client'; export const generateTarget = ( operations: GeneratorOperations, - info: InfoObject + info: InfoObject, ) => Object.values(operations).reduce( (acc, operation, index, arr) => { @@ -20,7 +20,7 @@ export const generateTarget = ( acc.imports = [ ...acc.imports, ...operation.imports, - ...operation.importsMocks + ...operation.importsMocks, ]; acc.definition += operation.definition; acc.implementation += operation.implementation; @@ -39,6 +39,6 @@ export const generateTarget = ( imports: [] as string[], definition: '', implementation: '', - implementationMocks: '' - } + implementationMocks: '', + }, ); diff --git a/src/core/generators/transformer.ts b/src/core/generators/transformer.ts index 4f9a8e35d..e6fffa89e 100644 --- a/src/core/generators/transformer.ts +++ b/src/core/generators/transformer.ts @@ -1,10 +1,10 @@ -import {OperationOptions} from '../../types'; -import {GetterBody} from '../../types/getters'; -import {dynamicImport} from '../../utils/imports'; +import { OperationOptions } from '../../types'; +import { GetterBody } from '../../types/getters'; +import { dynamicImport } from '../../utils/imports'; export const generateTransformer = ({ body, - overrideOperation + overrideOperation, }: { body: GetterBody; overrideOperation?: OperationOptions; diff --git a/src/core/generators/verbsOptions.ts b/src/core/generators/verbsOptions.ts index 4cd9ff20c..9dbdffec2 100644 --- a/src/core/generators/verbsOptions.ts +++ b/src/core/generators/verbsOptions.ts @@ -1,23 +1,23 @@ -import {camel} from 'case'; +import { camel } from 'case'; import { ComponentsObject, OperationObject, ParameterObject, PathItemObject, - ReferenceObject + ReferenceObject, } from 'openapi3-ts'; -import {OverrideOutput, Verbs} from '../../types'; +import { OverrideOutput, Verbs } from '../../types'; import { GeneratorVerbOptions, - GeneratorVerbsOptions + GeneratorVerbsOptions, } from '../../types/generator'; -import {getBody} from '../getters/body'; -import {getParameters} from '../getters/parameters'; -import {getParams} from '../getters/params'; -import {getProps} from '../getters/props'; -import {getQueryParams} from '../getters/queryParams'; -import {getResponse} from '../getters/response'; -import {generateTransformer} from './transformer'; +import { getBody } from '../getters/body'; +import { getParameters } from '../getters/parameters'; +import { getParams } from '../getters/params'; +import { getProps } from '../getters/props'; +import { getQueryParams } from '../getters/queryParams'; +import { getResponse } from '../getters/response'; +import { generateTransformer } from './transformer'; const generateVerbOptions = ({ verb, @@ -25,7 +25,7 @@ const generateVerbOptions = ({ operation, route, verbParameters = [], - components + components, }: { verb: string; override?: OverrideOutput; @@ -39,7 +39,7 @@ const generateVerbOptions = ({ responses, requestBody, parameters: operationParameters, - tags = [] + tags = [], } = operation; const overrideOperation = override?.operations?.[operation.operationId!]; @@ -52,7 +52,7 @@ const generateVerbOptions = ({ const parameters = getParameters( [...verbParameters, ...(operationParameters || [])], - components + components, ); const queryParams = getQueryParams(parameters.query, definitionName); @@ -60,14 +60,14 @@ const generateVerbOptions = ({ const params = getParams({ route, pathParams: parameters.path, - operation + operation, }); - const props = getProps({body, queryParams, params}); + const props = getProps({ body, queryParams, params }); const transformer = generateTransformer({ body, - overrideOperation + overrideOperation, }); return { @@ -83,7 +83,7 @@ const generateVerbOptions = ({ queryParams, params, props, - transformer + transformer, }; }; @@ -91,7 +91,7 @@ export const generateVerbsOptions = ({ verbs, override, route, - components + components, }: { verbs: PathItemObject; override?: OverrideOutput; @@ -106,7 +106,7 @@ export const generateVerbsOptions = ({ if (!operation.operationId) { throw new Error( - `Every path must have a operationId - No operationId set for ${verb} ${route}` + `Every path must have a operationId - No operationId set for ${verb} ${route}`, ); } @@ -118,9 +118,9 @@ export const generateVerbsOptions = ({ verbParameters: verbs.parameters, route, components, - operation - }) + operation, + }), ]; }, - [] + [], ); diff --git a/src/core/getters/array.ts b/src/core/getters/array.ts index 78986cbb1..f3903526b 100644 --- a/src/core/getters/array.ts +++ b/src/core/getters/array.ts @@ -1,6 +1,6 @@ -import {SchemaObject} from 'openapi3-ts'; -import {ResolverValue} from '../../types/resolvers'; -import {resolveObject} from '../resolvers/object'; +import { SchemaObject } from 'openapi3-ts'; +import { ResolverValue } from '../../types/resolvers'; +import { resolveObject } from '../resolvers/object'; /** * Return the output type from an array @@ -9,13 +9,16 @@ import {resolveObject} from '../resolvers/object'; */ export const getArray = (item: SchemaObject, name?: string): ResolverValue => { if (item.items) { - const {value, imports, schemas} = resolveObject(item.items, name + 'Item'); + const { value, imports, schemas } = resolveObject( + item.items, + name + 'Item', + ); return { value: `${value}[]`, imports, schemas, isEnum: false, - type: 'array' + type: 'array', }; } else { throw new Error('All arrays must have an `items` key define'); diff --git a/src/core/getters/body.ts b/src/core/getters/body.ts index 845f06fe4..95e8d6743 100644 --- a/src/core/getters/body.ts +++ b/src/core/getters/body.ts @@ -1,18 +1,18 @@ -import {camel} from 'case'; -import {ReferenceObject, RequestBodyObject} from 'openapi3-ts'; -import {generalJSTypesWithArray} from '../../constants'; -import {GetterBody} from '../../types/getters'; -import {getResReqTypes} from './resReqTypes'; +import { camel } from 'case'; +import { ReferenceObject, RequestBodyObject } from 'openapi3-ts'; +import { generalJSTypesWithArray } from '../../constants'; +import { GetterBody } from '../../types/getters'; +import { getResReqTypes } from './resReqTypes'; export const getBody = ( - requestBody: ReferenceObject | RequestBodyObject + requestBody: ReferenceObject | RequestBodyObject, ): GetterBody => { const allBodyTypes = getResReqTypes([['body', requestBody]]); const imports = allBodyTypes.reduce( - (acc, {imports = []}) => [...acc, ...imports], - [] + (acc, { imports = [] }) => [...acc, ...imports], + [], ); - const definition = allBodyTypes.map(({value}) => value).join(' | '); + const definition = allBodyTypes.map(({ value }) => value).join(' | '); const implementation = generalJSTypesWithArray.includes(definition) ? 'payload' : camel(definition); @@ -21,6 +21,6 @@ export const getBody = ( imports, definition, implementation, - isBlob: definition === 'Blob' + isBlob: definition === 'Blob', }; }; diff --git a/src/core/getters/definitionName.ts b/src/core/getters/definitionName.ts deleted file mode 100644 index 262132506..000000000 --- a/src/core/getters/definitionName.ts +++ /dev/null @@ -1,3 +0,0 @@ -import {camel} from 'case'; - -export const getApiDefinitionName = (operationId: string) => camel(operationId); diff --git a/src/core/getters/object.mock.ts b/src/core/getters/object.mock.ts index 10648ae39..a8e33b9ff 100644 --- a/src/core/getters/object.mock.ts +++ b/src/core/getters/object.mock.ts @@ -1,30 +1,30 @@ import cuid from 'cuid'; import get from 'lodash/get'; -import {ReferenceObject, SchemaObject} from 'openapi3-ts'; -import {MockOptions} from '../../types'; -import {MockDefinition} from '../../types/mocks'; -import {isBoolean, isReference} from '../../utils/is'; -import {resolveMockValue} from '../resolvers/value.mock'; +import { ReferenceObject, SchemaObject } from 'openapi3-ts'; +import { MockOptions } from '../../types'; +import { MockDefinition } from '../../types/mocks'; +import { isBoolean, isReference } from '../../utils/is'; +import { resolveMockValue } from '../resolvers/value.mock'; export const getMockObject = ({ item, schemas, allOf, mockOptions, - operationId + operationId, }: { - item: SchemaObject & {name: string; parent?: string}; - schemas: {[key: string]: SchemaObject}; + item: SchemaObject & { name: string; parent?: string }; + schemas: { [key: string]: SchemaObject }; operationId: string; allOf?: boolean; mockOptions?: MockOptions; }): MockDefinition => { if (isReference(item)) { return resolveMockValue({ - schema: {...item, schemas, name: item.name}, + schema: { ...item, schemas, name: item.name }, schemas, mockOptions, - operationId + operationId, }); } @@ -32,11 +32,11 @@ export const getMockObject = ({ let imports: string[] = []; const value = item.allOf.reduce((acc, val, index, arr) => { const resolvedValue = resolveMockValue({ - schema: {...val, name: item.name}, + schema: { ...val, name: item.name }, schemas, allOf: true, mockOptions, - operationId + operationId, }); imports = [...imports, ...resolvedValue.imports]; @@ -58,7 +58,7 @@ export const getMockObject = ({ return { value, imports, - name: item.name + name: item.name, }; } @@ -66,11 +66,11 @@ export const getMockObject = ({ let imports: string[] = []; const value = item.oneOf.reduce((acc, val, index, arr) => { const resolvedValue = resolveMockValue({ - schema: {...val, name: item.name}, + schema: { ...val, name: item.name }, schemas, allOf: true, mockOptions, - operationId + operationId, }); imports = [...imports, ...resolvedValue.imports]; @@ -92,7 +92,7 @@ export const getMockObject = ({ return { value, imports, - name: item.name + name: item.name, }; } @@ -128,27 +128,27 @@ export const getMockObject = ({ item.parent && get( mockOptions?.operations?.[operationId]?.properties, - `${item.parent}.${key}` + `${item.parent}.${key}`, ) ) { if (!isRequired) { return `${key}: faker.helpers.randomize([${get( mockOptions?.operations?.[operationId]?.properties, - `${item.parent}.${key}` + `${item.parent}.${key}`, )}, undefined])`; } return `${key}: ${get( mockOptions?.operations?.[operationId]?.properties, - `${item.parent}.${key}` + `${item.parent}.${key}`, )}`; } const resolvedValue = resolveMockValue({ - schema: {...prop, name: key}, + schema: { ...prop, name: key }, schemas, mockOptions, - operationId + operationId, }); imports = [...imports, ...resolvedValue.imports]; if (!isRequired) { @@ -159,27 +159,27 @@ export const getMockObject = ({ }) .join(', '); value += !allOf ? '}' : ''; - return {value, imports, name: item.name}; + return { value, imports, name: item.name }; } if (item.additionalProperties) { if (isBoolean(item.additionalProperties)) { - return {value: `{}`, imports: [], name: item.name}; + return { value: `{}`, imports: [], name: item.name }; } const resolvedValue = resolveMockValue({ - schema: {...item.additionalProperties, name: item.name}, + schema: { ...item.additionalProperties, name: item.name }, schemas, mockOptions, - operationId + operationId, }); return { ...resolvedValue, value: `{ '${cuid()}': ${resolvedValue.value} - }` + }`, }; } - return {value: '{}', imports: [], name: item.name}; + return { value: '{}', imports: [], name: item.name }; }; diff --git a/src/core/getters/object.ts b/src/core/getters/object.ts index 96ec5bf13..b860301fb 100644 --- a/src/core/getters/object.ts +++ b/src/core/getters/object.ts @@ -1,10 +1,10 @@ -import {pascal} from 'case'; -import {ReferenceObject, SchemaObject} from 'openapi3-ts'; -import {ResolverValue} from '../../types/resolvers'; -import {isBoolean, isReference} from '../../utils/is'; -import {resolveObject} from '../resolvers/object'; -import {resolveValue} from '../resolvers/value'; -import {getRef} from './ref'; +import { pascal } from 'case'; +import { ReferenceObject, SchemaObject } from 'openapi3-ts'; +import { ResolverValue } from '../../types/resolvers'; +import { isBoolean, isReference } from '../../utils/is'; +import { resolveObject } from '../resolvers/object'; +import { resolveValue } from '../resolvers/value'; +import { getRef } from './ref'; /** * Return the output type from an object @@ -19,7 +19,7 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { imports: [value], schemas: [], isEnum: false, - type: 'object' + type: 'object', }; } @@ -35,10 +35,10 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { ? `${acc.value} & ${resolvedValue.value}` : resolvedValue.value, imports: [...acc.imports, ...resolvedValue.imports], - schemas: [...acc.schemas, ...resolvedValue.schemas] + schemas: [...acc.schemas, ...resolvedValue.schemas], }; }, - {value: '', imports: [], schemas: [], isEnum: false, type: 'object'} + { value: '', imports: [], schemas: [], isEnum: false, type: 'object' }, ); } @@ -53,10 +53,10 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { ? `${acc.value} | ${resolvedValue.value}` : resolvedValue.value, imports: [...acc.imports, ...resolvedValue.imports], - schemas: [...acc.schemas, ...resolvedValue.schemas] + schemas: [...acc.schemas, ...resolvedValue.schemas], }; }, - {value: '', imports: [], schemas: [], isEnum: false, type: 'object'} + { value: '', imports: [], schemas: [], isEnum: false, type: 'object' }, ); } @@ -66,7 +66,7 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { acc, [key, prop]: [string, ReferenceObject | SchemaObject], index, - arr + arr, ) => { const isRequired = (item.required || []).includes(key); const propName = name ? name + pascal(key) : undefined; @@ -90,8 +90,8 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { schemas: [], value: '', isEnum: false, - type: 'object' - } + type: 'object', + }, ); } @@ -102,19 +102,19 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { imports: [], schemas: [], isEnum: false, - type: 'object' + type: 'object', }; } - const {value, imports = [], schemas = []} = resolveValue( + const { value, imports = [], schemas = [] } = resolveValue( item.additionalProperties, - name + name, ); return { value: `{[key: string]: ${value}}`, imports, schemas, isEnum: false, - type: 'object' + type: 'object', }; } @@ -123,6 +123,6 @@ export const getObject = (item: SchemaObject, name?: string): ResolverValue => { imports: [], schemas: [], isEnum: false, - type: 'object' + type: 'object', }; }; diff --git a/src/core/getters/parameters.ts b/src/core/getters/parameters.ts index e93aa4d06..d3efa8273 100644 --- a/src/core/getters/parameters.ts +++ b/src/core/getters/parameters.ts @@ -1,24 +1,28 @@ import get from 'lodash/get'; import groupBy from 'lodash/groupBy'; -import {ComponentsObject, ParameterObject, ReferenceObject} from 'openapi3-ts'; -import {GetterParameters} from '../../types/getters'; -import {isReference} from '../../utils/is'; +import { + ComponentsObject, + ParameterObject, + ReferenceObject, +} from 'openapi3-ts'; +import { GetterParameters } from '../../types/getters'; +import { isReference } from '../../utils/is'; export const getParameters = ( parameters: (ReferenceObject | ParameterObject)[] = [], - components?: ComponentsObject + components?: ComponentsObject, ): GetterParameters => { return groupBy( - parameters.map(p => { + parameters.map((p) => { if (isReference(p)) { return get( components, - p.$ref.replace('#/components/', '').replace('/', '.') + p.$ref.replace('#/components/', '').replace('/', '.'), ); } else { return p; } }), - 'in' + 'in', ); }; diff --git a/src/core/getters/params.ts b/src/core/getters/params.ts index dca827a9e..711ab59ec 100644 --- a/src/core/getters/params.ts +++ b/src/core/getters/params.ts @@ -1,6 +1,6 @@ -import {OperationObject, ParameterObject, SchemaObject} from 'openapi3-ts'; -import {GetterParams} from '../../types/getters'; -import {resolveValue} from '../resolvers/value'; +import { OperationObject, ParameterObject, SchemaObject } from 'openapi3-ts'; +import { GetterParams } from '../../types/getters'; +import { resolveValue } from '../resolvers/value'; /** * Return every params in a path @@ -27,16 +27,18 @@ export const getParamsInPath = (path: string) => { export const getParams = ({ route, pathParams = [], - operation + operation, }: { route: string; pathParams?: ParameterObject[]; operation: OperationObject; }): GetterParams => { const params = getParamsInPath(route); - return params.map(p => { + return params.map((p) => { try { - const {name, required, schema} = pathParams.find(i => i.name === p) as { + const { name, required, schema } = pathParams.find( + (i) => i.name === p, + ) as { name: string; required: boolean; schema: SchemaObject; @@ -57,11 +59,11 @@ export const getParams = ({ definition, implementation, default: schema.default, - required + required, }; } catch (err) { throw new Error( - `The path params ${p} can't be found in parameters (${operation.operationId})` + `The path params ${p} can't be found in parameters (${operation.operationId})`, ); } }); diff --git a/src/core/getters/props.ts b/src/core/getters/props.ts index 32a8fa970..eaf6f3c1c 100644 --- a/src/core/getters/props.ts +++ b/src/core/getters/props.ts @@ -1,11 +1,11 @@ -import {GeneratorSchema} from '../../types/generator'; -import {GetterBody, GetterParams, GetterProps} from '../../types/getters'; -import {sortByPriority} from '../../utils/sort'; +import { GeneratorSchema } from '../../types/generator'; +import { GetterBody, GetterParams, GetterProps } from '../../types/getters'; +import { sortByPriority } from '../../utils/sort'; export const getProps = ({ body, queryParams, - params + params, }: { body: GetterBody; queryParams?: GeneratorSchema; @@ -15,29 +15,29 @@ export const getProps = ({ definition: `${body.implementation}: ${body.definition}`, implementation: `${body.implementation}: ${body.definition}`, default: false, - required: true + required: true, }; const queryParamsProp = { definition: `params?: ${queryParams?.name}`, implementation: `params?: ${queryParams?.name}`, default: false, - required: false + required: false, }; const props = [ ...params, ...(body.definition ? [bodyProp] : []), - ...(queryParams ? [queryParamsProp] : []) + ...(queryParams ? [queryParamsProp] : []), ]; const sortedProps = sortByPriority(props); - const definition = sortedProps.map(({definition}) => definition).join(', '); + const definition = sortedProps.map(({ definition }) => definition).join(', '); const implementation = sortedProps - .map(({implementation}) => implementation) + .map(({ implementation }) => implementation) .join(', '); - return {definition, implementation}; + return { definition, implementation }; }; diff --git a/src/core/getters/queryParams.ts b/src/core/getters/queryParams.ts index 5f9eadfe9..eed13a4d4 100644 --- a/src/core/getters/queryParams.ts +++ b/src/core/getters/queryParams.ts @@ -1,18 +1,18 @@ -import {ParameterObject, ReferenceObject, SchemaObject} from 'openapi3-ts'; -import {GeneratorSchema} from '../../types/generator'; -import {resolveValue} from '../resolvers/value'; +import { ParameterObject, ReferenceObject, SchemaObject } from 'openapi3-ts'; +import { GeneratorSchema } from '../../types/generator'; +import { resolveValue } from '../resolvers/value'; const getQueryParamsTypes = ( - queryParams: (ParameterObject | ReferenceObject)[] + queryParams: (ParameterObject | ReferenceObject)[], ) => { - return queryParams.map(p => { - const {name, required, schema} = p as { + return queryParams.map((p) => { + const { name, required, schema } = p as { name: string; required: boolean; schema: SchemaObject; }; - const {value, imports} = resolveValue(schema!); + const { value, imports } = resolveValue(schema!); const definition = `${name}${ !required || schema.default ? '?' : '' @@ -28,31 +28,31 @@ const getQueryParamsTypes = ( implementation, default: schema.default, required, - imports + imports, }; }); }; export const getQueryParams = ( queryParams: (ParameterObject | ReferenceObject)[] = [], - definitionName: string + definitionName: string, ): GeneratorSchema | undefined => { if (!queryParams.length) { return; } const types = getQueryParamsTypes(queryParams); const imports = types.reduce( - (acc, {imports = []}) => [...acc, ...imports], - [] + (acc, { imports = [] }) => [...acc, ...imports], + [], ); const name = `${definitionName}Params`; const schema = { name, model: `export type ${name} = { ${types - .map(({definition}) => definition) + .map(({ definition }) => definition) .join('; ')} }`, - imports + imports, }; return schema; diff --git a/src/core/getters/ref.ts b/src/core/getters/ref.ts index 3d9415d84..1315a7250 100644 --- a/src/core/getters/ref.ts +++ b/src/core/getters/ref.ts @@ -14,8 +14,12 @@ export const getRef = ($ref: ReferenceObject['$ref']) => { } else if ($ref.startsWith('#/components/parameters')) { return pascal($ref.replace('#/components/parameters/', '')) + 'Parameter'; } else if ($ref.startsWith('#/components/requestBodies')) { - return pascal($ref.replace('#/components/requestBodies/', '')) + 'RequestBody'; + return ( + pascal($ref.replace('#/components/requestBodies/', '')) + 'RequestBody' + ); } else { - throw new Error('This library only resolve $ref that are include into `#/components/*` for now'); + throw new Error( + 'This library only resolve $ref that are include into `#/components/*` for now', + ); } }; diff --git a/src/core/getters/resReqTypes.ts b/src/core/getters/resReqTypes.ts index 9341c99a4..20fd49368 100644 --- a/src/core/getters/resReqTypes.ts +++ b/src/core/getters/resReqTypes.ts @@ -3,18 +3,18 @@ import { MediaTypeObject, ReferenceObject, RequestBodyObject, - ResponseObject + ResponseObject, } from 'openapi3-ts'; -import {ResolverValue} from '../../types/resolvers'; -import {isReference} from '../../utils/is'; -import {resolveValue} from '../resolvers/value'; -import {getRef} from './ref'; +import { ResolverValue } from '../../types/resolvers'; +import { isReference } from '../../utils/is'; +import { resolveValue } from '../resolvers/value'; +import { getRef } from './ref'; const CONTENT_TYPES = [ 'application/json', 'application/octet-stream', 'application/pdf', - 'multipart/form-data' + 'multipart/form-data', ]; const getResReqContentTypes = (type: string, mediaType: MediaTypeObject) => { @@ -24,7 +24,7 @@ const getResReqContentTypes = (type: string, mediaType: MediaTypeObject) => { imports: [], schemas: [], type: 'unknow', - isEnum: false + isEnum: false, }; } @@ -39,7 +39,7 @@ const getResReqContentTypes = (type: string, mediaType: MediaTypeObject) => { export const getResReqTypes = ( responsesOrRequests: Array< [string, ResponseObject | ReferenceObject | RequestBodyObject] - > + >, ): Array => uniq( responsesOrRequests @@ -52,19 +52,19 @@ export const getResReqTypes = ( imports: [value], schemas: [], type: 'ref', - isEnum: false + isEnum: false, }; } else { return res.content ? Object.entries(res.content).map(([type, mediaType]) => - getResReqContentTypes(type, mediaType) + getResReqContentTypes(type, mediaType), ) : { value: 'unknown', imports: [], schemas: [], type: 'unknow', - isEnum: false + isEnum: false, }; } }) @@ -73,5 +73,5 @@ export const getResReqTypes = ( return [...acc, ...it]; } return [...acc, it]; - }, []) + }, []), ); diff --git a/src/core/getters/response.ts b/src/core/getters/response.ts index 4ef3d25ac..1218df803 100644 --- a/src/core/getters/response.ts +++ b/src/core/getters/response.ts @@ -1,23 +1,23 @@ -import {pascal} from 'case'; -import {ReferenceObject, ResponseObject, ResponsesObject} from 'openapi3-ts'; -import {GetterResponse} from '../../types/getters'; -import {getResReqTypes} from './resReqTypes'; +import { pascal } from 'case'; +import { ReferenceObject, ResponseObject, ResponsesObject } from 'openapi3-ts'; +import { GetterResponse } from '../../types/getters'; +import { getResReqTypes } from './resReqTypes'; const isOk = ([statusCode]: [string, ResponseObject | ReferenceObject]) => statusCode.toString().startsWith('2'); export const getResponse = ( responses: ResponsesObject, - operationId: string + operationId: string, ): GetterResponse => { const types = getResReqTypes(Object.entries(responses).filter(isOk)); const imports = types.reduce( - (acc, {imports = []}) => [...acc, ...imports], - [] + (acc, { imports = [] }) => [...acc, ...imports], + [], ); - const definition = types.map(({value}) => value).join(' | '); + const definition = types.map(({ value }) => value).join(' | '); const isSchema = definition.includes('{'); @@ -25,6 +25,6 @@ export const getResponse = ( imports, definition: isSchema ? `${pascal(operationId)}Response` : definition, isBlob: definition === 'Blob', - types + types, }; }; diff --git a/src/core/getters/scalar.mock.ts b/src/core/getters/scalar.mock.ts index 585b06837..f53458b93 100644 --- a/src/core/getters/scalar.mock.ts +++ b/src/core/getters/scalar.mock.ts @@ -1,13 +1,13 @@ -import {pascal} from 'case'; -import {SchemaObject} from 'openapi3-ts'; -import {MockOptions} from '../../types'; -import {MockDefinition} from '../../types/mocks'; -import {resolveMockValue} from '../resolvers/value.mock'; -import {getMockObject} from './object.mock'; +import { pascal } from 'case'; +import { SchemaObject } from 'openapi3-ts'; +import { MockOptions } from '../../types'; +import { MockDefinition } from '../../types/mocks'; +import { resolveMockValue } from '../resolvers/value.mock'; +import { getMockObject } from './object.mock'; const resolveMockProperties = ( properties: any = {}, - item: SchemaObject & {name: string; parent?: string} + item: SchemaObject & { name: string; parent?: string }, ) => Object.entries(properties).reduce((acc, [key, value]) => { const regex = @@ -21,7 +21,7 @@ const resolveMockProperties = ( return { value: getNullable(value as string, item.nullable), imports: [], - name: item.name + name: item.name, }; }, undefined as any); @@ -33,17 +33,17 @@ export const getMockScalar = ({ schemas, allOf, mockOptions, - operationId + operationId, }: { - item: SchemaObject & {name: string; parent?: string}; - schemas: {[key: string]: SchemaObject}; + item: SchemaObject & { name: string; parent?: string }; + schemas: { [key: string]: SchemaObject }; allOf?: boolean; mockOptions?: MockOptions; operationId: string; }): MockDefinition => { const rProperty = resolveMockProperties( mockOptions?.operations?.[operationId]?.properties, - item + item, ); if (rProperty) { @@ -67,25 +67,25 @@ export const getMockScalar = ({ return { value: getNullable('faker.random.number()', item.nullable), imports: [], - name: item.name + name: item.name, }; } case 'boolean': { - return {value: 'faker.random.boolean()', imports: [], name: item.name}; + return { value: 'faker.random.boolean()', imports: [], name: item.name }; } case 'array': { if (!item.items) { - return {value: [], imports: [], name: item.name}; + return { value: [], imports: [], name: item.name }; } - const {value, enums, imports, name} = resolveMockValue({ - schema: {...item.items, name: item.name}, + const { value, enums, imports, name } = resolveMockValue({ + schema: { ...item.items, name: item.name }, schemas, allOf, mockOptions, - operationId + operationId, }); if (enums) { @@ -98,14 +98,14 @@ export const getMockScalar = ({ } },{ values: [], enums: Object.values(${name})})`, imports, - name: item.name + name: item.name, }; } return { value: `[...Array(faker.random.number({min: 1, max: 10}))].map(() => (${value}))`, imports, - name: item.name + name: item.name, }; } @@ -126,13 +126,13 @@ export const getMockScalar = ({ value: getNullable(value, item.nullable), enums: item.enum, name: item.name, - imports: item.enum ? [pascal(item.name)] : [] + imports: item.enum ? [pascal(item.name)] : [], }; } case 'object': default: { - return getMockObject({item, schemas, allOf, mockOptions, operationId}); + return getMockObject({ item, schemas, allOf, mockOptions, operationId }); } } }; diff --git a/src/core/getters/scalar.ts b/src/core/getters/scalar.ts index 1c90c7deb..64cad722f 100644 --- a/src/core/getters/scalar.ts +++ b/src/core/getters/scalar.ts @@ -1,7 +1,7 @@ -import {SchemaObject} from 'openapi3-ts'; -import {ResolverValue} from '../../types/resolvers'; -import {getArray} from './array'; -import {getObject} from './object'; +import { SchemaObject } from 'openapi3-ts'; +import { ResolverValue } from '../../types/resolvers'; +import { getArray } from './array'; +import { getObject } from './object'; /** * Return the typescript equivalent of open-api data type @@ -33,7 +33,7 @@ export const getScalar = (item: SchemaObject, name?: string): ResolverValue => { isEnum, type: 'number', schemas: [], - imports: [] + imports: [], }; } @@ -43,14 +43,14 @@ export const getScalar = (item: SchemaObject, name?: string): ResolverValue => { type: 'boolean', isEnum: false, schemas: [], - imports: [] + imports: [], }; case 'array': { - const {value, ...rest} = getArray(item, name); + const { value, ...rest } = getArray(item, name); return { value: value + nullable, - ...rest + ...rest, }; } @@ -78,14 +78,14 @@ export const getScalar = (item: SchemaObject, name?: string): ResolverValue => { isEnum, type: 'string', imports: [], - schemas: [] + schemas: [], }; } case 'object': default: { - const {value, ...rest} = getObject(item, name); - return {value: value + nullable, ...rest}; + const { value, ...rest } = getObject(item, name); + return { value: value + nullable, ...rest }; } } }; diff --git a/src/core/importers/openApi.ts b/src/core/importers/openApi.ts index e85a6b2bf..273338f2b 100644 --- a/src/core/importers/openApi.ts +++ b/src/core/importers/openApi.ts @@ -1,14 +1,14 @@ -import {OpenAPIObject} from 'openapi3-ts'; +import { OpenAPIObject } from 'openapi3-ts'; import swagger2openapi from 'swagger2openapi'; import YAML from 'yamljs'; -import {ImportOpenApi} from '../../types'; -import {WriteSpecsProps} from '../../types/writers'; -import {dynamicImport} from '../../utils/imports'; -import {generateApi} from '../generators/api'; -import {generateResponsesDefinition} from '../generators/responsesDefinition'; -import {generateSchemasDefinition} from '../generators/schemaDefinition'; -import {resolveDiscriminator} from '../resolvers/dscriminator'; -import {ibmOpenapiValidator} from '../validators/ibm-openapi-validator'; +import { ImportOpenApi } from '../../types'; +import { WriteSpecsProps } from '../../types/writers'; +import { dynamicImport } from '../../utils/imports'; +import { generateApi } from '../generators/api'; +import { generateResponsesDefinition } from '../generators/responsesDefinition'; +import { generateSchemasDefinition } from '../generators/schemaDefinition'; +import { resolveDiscriminator } from '../resolvers/dscriminator'; +import { ibmOpenapiValidator } from '../validators/ibm-openapi-validator'; /** * Import and parse the openapi spec from a yaml/json @@ -18,13 +18,13 @@ import {ibmOpenapiValidator} from '../validators/ibm-openapi-validator'; */ const importSpecs = ( data: string, - extension: 'yaml' | 'json' + extension: 'yaml' | 'json', ): Promise => { const schema = extension === 'yaml' ? YAML.parse(data) : JSON.parse(data); return new Promise((resolve, reject) => { if (!schema.openapi || !schema.openapi.startsWith('3.0')) { - swagger2openapi.convertObj(schema, {}, (err, {openapi}) => { + swagger2openapi.convertObj(schema, {}, (err, { openapi }) => { if (err) { reject(err); } else { @@ -49,7 +49,7 @@ export const importOpenApi = async ({ data, format, input, - output + output, }: ImportOpenApi): Promise => { let specs = await importSpecs(data, format); @@ -69,12 +69,12 @@ export const importOpenApi = async ({ const schemaDefinition = generateSchemasDefinition(specs.components?.schemas); const responseDefinition = generateResponsesDefinition( - specs.components?.responses + specs.components?.responses, ); const api = generateApi(specs, output?.override); const schemas = [...schemaDefinition, ...responseDefinition, ...api.schemas]; - return {...api, schemas, info: specs.info}; + return { ...api, schemas, info: specs.info }; }; diff --git a/src/core/importers/specs.ts b/src/core/importers/specs.ts index 2d2d0d5a5..e675ea3ff 100644 --- a/src/core/importers/specs.ts +++ b/src/core/importers/specs.ts @@ -1,16 +1,16 @@ -import {URL_REGEX} from '../../constants'; -import {Options} from '../../types'; -import {WriteSpecsProps} from '../../types/writers'; -import {getExtension} from '../../utils/extension'; -import {getGithubOpenApi} from '../../utils/github'; -import {isObject, isString} from '../../utils/is'; -import {dynamicReader} from '../../utils/reader'; -import {importOpenApi} from './openApi'; +import { URL_REGEX } from '../../constants'; +import { Options } from '../../types'; +import { WriteSpecsProps } from '../../types/writers'; +import { getExtension } from '../../utils/extension'; +import { getGithubOpenApi } from '../../utils/github'; +import { isObject, isString } from '../../utils/is'; +import { dynamicReader } from '../../utils/reader'; +import { importOpenApi } from './openApi'; export const importSpecs = async ( - options: Options + options: Options, ): Promise => { - const {input, output} = options; + const { input, output } = options; const path = isString(input) ? input : input?.target; @@ -32,10 +32,10 @@ export const importSpecs = async ( data, format, ...(isObject(input) && { - input + input, }), ...(isObject(output) && { - output - }) + output, + }), }); }; diff --git a/src/core/resolvers/dscriminator.ts b/src/core/resolvers/dscriminator.ts index 53b2aff03..ceb874d40 100644 --- a/src/core/resolvers/dscriminator.ts +++ b/src/core/resolvers/dscriminator.ts @@ -17,15 +17,17 @@ export const resolveDiscriminator = (specs: OpenAPIObject) => { Object.entries(mapping).map(([name, ref]) => { if (!ref.startsWith('#/components/schemas/')) { - throw new Error('Discriminator mapping outside of `#/components/schemas` is not supported'); + throw new Error( + 'Discriminator mapping outside of `#/components/schemas` is not supported', + ); } - if ( - !(specs?.components?.schemas?.[ref.slice('#/components/schemas/'.length)] as SchemaObject).properties![ - propertyName - ]?.$ref - ) { - // @ts-ignore This is check on runtime - specs.components.schemas[ref.slice('#/components/schemas/'.length)].properties![propertyName].enum = [name]; + + const schemaObjectProperties = (specs?.components?.schemas?.[ + ref.slice('#/components/schemas/'.length) + ] as SchemaObject).properties as SchemaObject; + + if (!schemaObjectProperties![propertyName]?.$ref) { + schemaObjectProperties![propertyName].enum = [name]; } }); }); diff --git a/src/core/resolvers/object.ts b/src/core/resolvers/object.ts index 444279757..7b3c946c2 100644 --- a/src/core/resolvers/object.ts +++ b/src/core/resolvers/object.ts @@ -1,6 +1,6 @@ -import {SchemaObject} from 'openapi3-ts'; -import {generalTypesFilter} from '../../utils/filters'; -import {resolveValue} from './value'; +import { SchemaObject } from 'openapi3-ts'; +import { generalTypesFilter } from '../../utils/filters'; +import { resolveValue } from './value'; export const resolveObject = (schema: SchemaObject, propName?: string) => { const resolvedValue = resolveValue(schema, propName); @@ -18,15 +18,15 @@ export const resolveObject = (schema: SchemaObject, propName?: string) => { { name: propName, model: `export type ${propName} = ${resolvedValue.value}`, - imports: generalTypesFilter(resolvedValue.imports) - } - ] + imports: generalTypesFilter(resolvedValue.imports), + }, + ], }; } return { value: resolvedValue.value, imports: resolvedValue.imports, - schemas: resolvedValue.schemas + schemas: resolvedValue.schemas, }; }; diff --git a/src/core/resolvers/value.mock.ts b/src/core/resolvers/value.mock.ts index f3fe827a7..7a20fe6cc 100644 --- a/src/core/resolvers/value.mock.ts +++ b/src/core/resolvers/value.mock.ts @@ -1,19 +1,19 @@ -import {SchemaObject} from 'openapi3-ts'; -import {MockOptions} from '../../types'; -import {MockDefinition} from '../../types/mocks'; -import {isReference} from '../../utils/is'; -import {getRef} from '../getters/ref'; -import {getMockScalar} from '../getters/scalar.mock'; +import { SchemaObject } from 'openapi3-ts'; +import { MockOptions } from '../../types'; +import { MockDefinition } from '../../types/mocks'; +import { isReference } from '../../utils/is'; +import { getRef } from '../getters/ref'; +import { getMockScalar } from '../getters/scalar.mock'; export const resolveMockValue = ({ schema, schemas, allOf, mockOptions, - operationId + operationId, }: { - schema: SchemaObject & {name: string; parent?: string}; - schemas: {[key: string]: SchemaObject}; + schema: SchemaObject & { name: string; parent?: string }; + schemas: { [key: string]: SchemaObject }; operationId: string; allOf?: boolean; mockOptions?: MockOptions; @@ -23,11 +23,11 @@ export const resolveMockValue = ({ const newSchema = { ...schemas[value], name: value, - parent: schema.parent ? `${schema.parent}.${schema.name}` : schema.name + parent: schema.parent ? `${schema.parent}.${schema.name}` : schema.name, }; if (!newSchema) { - return {value: 'undefined', imports: [], name: value}; + return { value: 'undefined', imports: [], name: value }; } return getMockScalar({ @@ -35,7 +35,7 @@ export const resolveMockValue = ({ schemas, allOf, mockOptions, - operationId + operationId, }); } @@ -44,6 +44,6 @@ export const resolveMockValue = ({ schemas, allOf, mockOptions, - operationId + operationId, }); }; diff --git a/src/core/resolvers/value.ts b/src/core/resolvers/value.ts index 6c8cd470b..bade0ac56 100644 --- a/src/core/resolvers/value.ts +++ b/src/core/resolvers/value.ts @@ -1,8 +1,8 @@ -import {SchemaObject} from 'openapi3-ts'; -import {ResolverValue} from '../../types/resolvers'; -import {isReference} from '../../utils/is'; -import {getRef} from '../getters/ref'; -import {getScalar} from '../getters/scalar'; +import { SchemaObject } from 'openapi3-ts'; +import { ResolverValue } from '../../types/resolvers'; +import { isReference } from '../../utils/is'; +import { getRef } from '../getters/ref'; +import { getScalar } from '../getters/scalar'; /** * Resolve the value of a schema object to a proper type definition. @@ -10,7 +10,7 @@ import {getScalar} from '../getters/scalar'; */ export const resolveValue = ( schema: SchemaObject, - name?: string + name?: string, ): ResolverValue => { if (isReference(schema)) { const value = getRef(schema.$ref); @@ -19,7 +19,7 @@ export const resolveValue = ( imports: [value], type: 'object', schemas: [], - isEnum: false + isEnum: false, }; } diff --git a/src/core/validators/ibm-openapi-validator.ts b/src/core/validators/ibm-openapi-validator.ts index 3068a640e..c6235b56f 100644 --- a/src/core/validators/ibm-openapi-validator.ts +++ b/src/core/validators/ibm-openapi-validator.ts @@ -1,8 +1,8 @@ import openApiValidator from 'ibm-openapi-validator'; -import {OpenAPIObject} from 'openapi3-ts'; +import { OpenAPIObject } from 'openapi3-ts'; import { ibmOpenapiValidatorErrors, - ibmOpenapiValidatorWarnings + ibmOpenapiValidatorWarnings, } from '../../utils/messages/logs'; /** @@ -11,7 +11,7 @@ import { * @param specs openAPI spec */ export const ibmOpenapiValidator = async (specs: OpenAPIObject) => { - const {errors, warnings} = await openApiValidator(specs); + const { errors, warnings } = await openApiValidator(specs); if (warnings.length) { ibmOpenapiValidatorWarnings(warnings); diff --git a/src/core/writers/models.ts b/src/core/writers/models.ts index 00355b880..83f88d45c 100644 --- a/src/core/writers/models.ts +++ b/src/core/writers/models.ts @@ -1,14 +1,14 @@ -import {camel} from 'case'; -import {appendFileSync, writeFileSync} from 'fs'; -import {InfoObject} from 'openapi3-ts'; -import {join} from 'path'; -import {GeneratorSchema} from '../../types/generator'; -import {getFilesHeader} from '../../utils/messages/inline'; -import {generateImports} from '../generators/imports'; +import { camel } from 'case'; +import { appendFileSync, writeFileSync } from 'fs'; +import { InfoObject } from 'openapi3-ts'; +import { join } from 'path'; +import { GeneratorSchema } from '../../types/generator'; +import { getFilesHeader } from '../../utils/messages/inline'; +import { generateImports } from '../generators/imports'; const getModel = ( info: InfoObject, - {imports, model}: GeneratorSchema + { imports, model }: GeneratorSchema, ): string => { let file = getFilesHeader(info); file += generateImports(imports); @@ -23,12 +23,12 @@ export const writeModelInline = (acc: string, model: string): string => acc + `${model}\n\n`; export const writeModelsInline = (array: GeneratorSchema[]): string => - array.reduce((acc, {model}) => writeModelInline(acc, model), ''); + array.reduce((acc, { model }) => writeModelInline(acc, model), ''); export const writeModel = ( path: string, info: InfoObject, - spec: GeneratorSchema + spec: GeneratorSchema, ) => { const name = camel(spec.name); writeFileSync(getPath(path, name), getModel(info, spec)); @@ -38,5 +38,5 @@ export const writeModel = ( export const writeModels = ( models: GeneratorSchema[], path: string, - info: InfoObject -) => models.forEach(model => writeModel(path, info, model)); + info: InfoObject, +) => models.forEach((model) => writeModel(path, info, model)); diff --git a/src/core/writers/schemas.ts b/src/core/writers/schemas.ts index 6923d36d1..17a54c4ad 100644 --- a/src/core/writers/schemas.ts +++ b/src/core/writers/schemas.ts @@ -1,14 +1,14 @@ -import {existsSync, mkdirSync, writeFileSync} from 'fs'; -import {InfoObject} from 'openapi3-ts'; -import {join} from 'path'; -import {OutputOptions} from '../../types'; -import {GeneratorSchema} from '../../types/generator'; -import {writeModels} from './models'; +import { existsSync, mkdirSync, writeFileSync } from 'fs'; +import { InfoObject } from 'openapi3-ts'; +import { join } from 'path'; +import { OutputOptions } from '../../types'; +import { GeneratorSchema } from '../../types/generator'; +import { writeModels } from './models'; export const writeSchemas = ({ output, schemas, - info + info, }: { output: OutputOptions; schemas: GeneratorSchema[]; diff --git a/src/core/writers/singleMode.ts b/src/core/writers/singleMode.ts index 1c156eccb..063c0f772 100644 --- a/src/core/writers/singleMode.ts +++ b/src/core/writers/singleMode.ts @@ -1,24 +1,24 @@ -import {camel} from 'case'; -import {existsSync, mkdirSync, writeFileSync} from 'fs'; -import {OutputOptions} from '../../types'; -import {WriteSpecsProps} from '../../types/writers'; -import {getFileInfo} from '../../utils/file'; -import {isObject, isString} from '../../utils/is'; -import {getFilesHeader} from '../../utils/messages/inline'; -import {generateImports} from '../generators/imports'; -import {generateModelsInline} from '../generators/modelsInline'; -import {generateTarget} from '../generators/target'; -import {resolvePath} from '../resolvers/path'; +import { camel } from 'case'; +import { existsSync, mkdirSync, writeFileSync } from 'fs'; +import { OutputOptions } from '../../types'; +import { WriteSpecsProps } from '../../types/writers'; +import { getFileInfo } from '../../utils/file'; +import { isObject, isString } from '../../utils/is'; +import { getFilesHeader } from '../../utils/messages/inline'; +import { generateImports } from '../generators/imports'; +import { generateModelsInline } from '../generators/modelsInline'; +import { generateTarget } from '../generators/target'; +import { resolvePath } from '../resolvers/path'; export const writeSingleMode = ({ operations, schemas, info, - output -}: WriteSpecsProps & {output: string | OutputOptions}) => { - const {path, dirname} = getFileInfo( + output, +}: WriteSpecsProps & { output: string | OutputOptions }) => { + const { path, dirname } = getFileInfo( isString(output) ? output : output.target, - camel(info.title) + camel(info.title), ); if (!existsSync(dirname)) { @@ -29,7 +29,7 @@ export const writeSingleMode = ({ definition, imports, implementation, - implementationMocks + implementationMocks, } = generateTarget(operations, info); let data = getFilesHeader(info); diff --git a/src/core/writers/specs.ts b/src/core/writers/specs.ts index f12883071..71e4625e5 100644 --- a/src/core/writers/specs.ts +++ b/src/core/writers/specs.ts @@ -1,11 +1,11 @@ -import {Options, OutputMode, OutputOptions} from '../../types'; -import {WriteSpecsProps} from '../../types/writers'; -import {isObject, isString} from '../../utils/is'; -import {createSuccessMessage} from '../../utils/messages/logs'; -import {writeSchemas} from './schemas'; -import {writeSingleMode} from './singleMode'; -import {writeSplitMode} from './splitMode'; -import {writeTagsMode} from './tagsMode'; +import { Options, OutputMode, OutputOptions } from '../../types'; +import { WriteSpecsProps } from '../../types/writers'; +import { isObject, isString } from '../../utils/is'; +import { createSuccessMessage } from '../../utils/messages/logs'; +import { writeSchemas } from './schemas'; +import { writeSingleMode } from './singleMode'; +import { writeSplitMode } from './splitMode'; +import { writeTagsMode } from './tagsMode'; const isSingleMode = (output: string | OutputOptions): output is string => isString(output) || !output.mode || output.mode === OutputMode.SINGLE; @@ -13,16 +13,16 @@ const isSingleMode = (output: string | OutputOptions): output is string => export const writeSpecs = (options: Options, backend?: string) => ({ operations, schemas, - info + info, }: WriteSpecsProps) => { - const {output} = options; + const { output } = options; if (!output || (isObject(output) && !output.target && !output.schemas)) { throw new Error('You need to provide an output'); } if (isObject(output)) { - writeSchemas({output, schemas, info}); + writeSchemas({ output, schemas, info }); } if (isObject(output) && !output.target) { @@ -31,11 +31,11 @@ export const writeSpecs = (options: Options, backend?: string) => ({ } if (isSingleMode(output)) { - writeSingleMode({operations, output, info, schemas}); + writeSingleMode({ operations, output, info, schemas }); } else if (output.mode === OutputMode.SPLIT) { - writeSplitMode({operations, output, info, schemas}); + writeSplitMode({ operations, output, info, schemas }); } else if (output.mode === OutputMode.TAGS) { - writeTagsMode({operations, output, info, schemas}); + writeTagsMode({ operations, output, info, schemas }); } createSuccessMessage(backend); diff --git a/src/core/writers/splitMode.ts b/src/core/writers/splitMode.ts index 8df04d2a0..b5e1edf7f 100644 --- a/src/core/writers/splitMode.ts +++ b/src/core/writers/splitMode.ts @@ -1,24 +1,24 @@ -import {camel, pascal} from 'case'; -import {existsSync, mkdirSync, writeFileSync} from 'fs'; -import {join} from 'path'; -import {OutputOptions} from '../../types'; -import {WriteSpecsProps} from '../../types/writers'; -import {getFileInfo} from '../../utils/file'; -import {getFilesHeader} from '../../utils/messages/inline'; -import {generateImports} from '../generators/imports'; -import {generateModelsInline} from '../generators/modelsInline'; -import {generateTarget} from '../generators/target'; -import {resolvePath} from '../resolvers/path'; +import { camel, pascal } from 'case'; +import { existsSync, mkdirSync, writeFileSync } from 'fs'; +import { join } from 'path'; +import { OutputOptions } from '../../types'; +import { WriteSpecsProps } from '../../types/writers'; +import { getFileInfo } from '../../utils/file'; +import { getFilesHeader } from '../../utils/messages/inline'; +import { generateImports } from '../generators/imports'; +import { generateModelsInline } from '../generators/modelsInline'; +import { generateTarget } from '../generators/target'; +import { resolvePath } from '../resolvers/path'; export const writeSplitMode = ({ operations, schemas, info, - output -}: WriteSpecsProps & {output: OutputOptions}) => { - const {path, filename, dirname, extension} = getFileInfo( + output, +}: WriteSpecsProps & { output: OutputOptions }) => { + const { path, filename, dirname, extension } = getFileInfo( output.target, - camel(info.title) + camel(info.title), ); if (!existsSync(dirname)) { @@ -29,7 +29,7 @@ export const writeSplitMode = ({ definition, imports, implementation, - implementationMocks + implementationMocks, } = generateTarget(operations, info); const header = getFilesHeader(info); @@ -44,7 +44,7 @@ export const writeSplitMode = ({ const definitionImport = generateImports( [pascal(info.title)], definitionPath, - true + true, ); implementationData += `import { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'\n${definitionImport}`; diff --git a/src/core/writers/tagsMode.ts b/src/core/writers/tagsMode.ts index 60ad80b2a..af36da1d1 100644 --- a/src/core/writers/tagsMode.ts +++ b/src/core/writers/tagsMode.ts @@ -1,27 +1,30 @@ -import {camel, kebab, pascal} from 'case'; -import {existsSync, mkdirSync, writeFileSync} from 'fs'; -import {InfoObject} from 'openapi3-ts'; -import {join} from 'path'; -import {OutputOptions} from '../../types'; +import { camel, kebab, pascal } from 'case'; +import { existsSync, mkdirSync, writeFileSync } from 'fs'; +import { InfoObject } from 'openapi3-ts'; +import { join } from 'path'; +import { OutputOptions } from '../../types'; import { GeneratorOperation, GeneratorOperations, - GeneratorTarget + GeneratorTarget, } from '../../types/generator'; -import {WriteSpecsProps} from '../../types/writers'; -import {getFileInfo} from '../../utils/file'; -import {generalTypesFilter} from '../../utils/filters'; -import {isObject} from '../../utils/is'; -import {getFilesHeader} from '../../utils/messages/inline'; -import {generateClientFooter, generateClientHeader} from '../generators/client'; -import {generateImports} from '../generators/imports'; -import {generateModelsInline} from '../generators/modelsInline'; -import {resolvePath} from '../resolvers/path'; +import { WriteSpecsProps } from '../../types/writers'; +import { getFileInfo } from '../../utils/file'; +import { generalTypesFilter } from '../../utils/filters'; +import { isObject } from '../../utils/is'; +import { getFilesHeader } from '../../utils/messages/inline'; +import { + generateClientFooter, + generateClientHeader, +} from '../generators/client'; +import { generateImports } from '../generators/imports'; +import { generateModelsInline } from '../generators/modelsInline'; +import { resolvePath } from '../resolvers/path'; const generateTargetTags = ( - currentAcc: {[key: string]: GeneratorTarget}, + currentAcc: { [key: string]: GeneratorTarget }, operation: GeneratorOperation, - info: InfoObject + info: InfoObject, ) => operation.tags.reduce((acc, tag) => { const currentOperation = acc[tag]; @@ -35,8 +38,8 @@ const generateTargetTags = ( definition: header.definition + operation.definition, implementation: header.implementation + operation.implementation, implementationMocks: - header.implementationMock + operation.implementationMocks - } + header.implementationMock + operation.implementationMocks, + }, }; } @@ -49,17 +52,17 @@ const generateTargetTags = ( imports: [ ...currentOperation.imports, ...operation.imports, - ...operation.importsMocks + ...operation.importsMocks, ], implementationMocks: - currentOperation.implementationMocks + operation.implementationMocks - } + currentOperation.implementationMocks + operation.implementationMocks, + }, }; }, currentAcc); export const generateTarget = ( operations: GeneratorOperations, - info: InfoObject + info: InfoObject, ) => Object.values(operations).reduce((acc, operation, index, arr) => { const targetTags = generateTargetTags(acc, operation, info); @@ -75,24 +78,24 @@ export const generateTarget = ( implementation: target.implementation + footer.implementation, implementationMocks: target.implementationMocks + footer.implementationMock, - imports: generalTypesFilter(target.imports) - } + imports: generalTypesFilter(target.imports), + }, }; }, {}); } return targetTags; - }, {} as {[key: string]: GeneratorTarget}); + }, {} as { [key: string]: GeneratorTarget }); export const writeTagsMode = ({ operations, schemas, info, - output -}: WriteSpecsProps & {output: OutputOptions}) => { - const {path, filename, dirname, extension} = getFileInfo( + output, +}: WriteSpecsProps & { output: OutputOptions }) => { + const { path, filename, dirname, extension } = getFileInfo( output.target, - camel(info.title) + camel(info.title), ); if (!existsSync(dirname)) { @@ -102,7 +105,7 @@ export const writeTagsMode = ({ const target = generateTarget(operations, info); Object.entries(target).forEach(([tag, target]) => { - const {definition, imports, implementation, implementationMocks} = target; + const { definition, imports, implementation, implementationMocks } = target; const header = getFilesHeader(info); let data = header; data += diff --git a/src/types/generator.ts b/src/types/generator.ts index 4004d9c5d..a4e40cf3f 100644 --- a/src/types/generator.ts +++ b/src/types/generator.ts @@ -1,14 +1,18 @@ -import {OpenAPIObject} from 'openapi3-ts'; +import { OpenAPIObject } from 'openapi3-ts'; import { GetterBody, GetterParameters, GetterParams, GetterProps, - GetterResponse + GetterResponse, } from './getters'; -import {OperationOptions, OverrideOutput, Verbs} from './index'; +import { OperationOptions, OverrideOutput, Verbs } from './index'; -export type GeneratorSchema = {name: string; model: string; imports: string[]}; +export type GeneratorSchema = { + name: string; + model: string; + imports: string[]; +}; export type GeneratorApiResponse = { operations: GeneratorOperations; diff --git a/src/types/getters.ts b/src/types/getters.ts index 9cb79f56f..5bbff3a53 100644 --- a/src/types/getters.ts +++ b/src/types/getters.ts @@ -1,5 +1,5 @@ -import {ParameterObject} from 'openapi3-ts'; -import {ResolverValue} from './resolvers'; +import { ParameterObject } from 'openapi3-ts'; +import { ResolverValue } from './resolvers'; export type GetterResponse = { imports: string[]; @@ -30,4 +30,4 @@ export type GetterParam = { export type GetterParams = GetterParam[]; -export type GetterProps = {definition: string; implementation: string}; +export type GetterProps = { definition: string; implementation: string }; diff --git a/src/types/ibm-openapi-validator.d.ts b/src/types/ibm-openapi-validator.d.ts index 0a2de5279..7e0ee1115 100644 --- a/src/types/ibm-openapi-validator.d.ts +++ b/src/types/ibm-openapi-validator.d.ts @@ -1,4 +1,4 @@ -declare module "ibm-openapi-validator" { +declare module 'ibm-openapi-validator' { interface OpenAPIError { path: string; message: string; @@ -15,7 +15,10 @@ declare module "ibm-openapi-validator" { * @param openApiDoc An object that represents an OpenAPI document. * @param defaultMode If set to true, the validator will ignore the .validaterc file and will use the configuration defaults. */ - function validator(openApiDoc: any, defaultMode = false): Promise; + function validator( + openApiDoc: any, + defaultMode = false, + ): Promise; export default validator; } diff --git a/src/types/index.ts b/src/types/index.ts index 7a6273f3e..2493ed94e 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,4 +1,4 @@ -import {OpenAPIObject} from 'openapi3-ts'; +import { OpenAPIObject } from 'openapi3-ts'; export interface Options { output?: string | OutputOptions; @@ -23,24 +23,24 @@ export type OutputMode = 'single' | 'split' | 'tags'; export const OutputMode = { SINGLE: 'single' as OutputMode, SPLIT: 'split' as OutputMode, - TAGS: 'tags' as OutputMode + TAGS: 'tags' as OutputMode, }; export type MockOptions = { - properties?: {[key: string]: unknown}; - operations?: {[key: string]: {[key: string]: any}}; + properties?: { [key: string]: unknown }; + operations?: { [key: string]: { [key: string]: any } }; }; export type MockProperties = - | {[key: string]: unknown} - | ((specs: OpenAPIObject) => {[key: string]: unknown}); + | { [key: string]: unknown } + | ((specs: OpenAPIObject) => { [key: string]: unknown }); export interface ExternalConfigFile { [backend: string]: Options; } export type OverrideOutput = { - operations?: {[key: string]: OperationOptions}; + operations?: { [key: string]: OperationOptions }; mock?: { properties?: MockProperties; }; @@ -65,7 +65,7 @@ export const Verbs = { PUT: 'put' as Verbs, GET: 'get' as Verbs, PATCH: 'patch' as Verbs, - DELETE: 'delete' as Verbs + DELETE: 'delete' as Verbs, }; export type ImportOpenApi = { diff --git a/src/types/mocks.ts b/src/types/mocks.ts index 75fd14b2c..1b4de9c6e 100644 --- a/src/types/mocks.ts +++ b/src/types/mocks.ts @@ -1,5 +1,5 @@ export interface MockDefinition { - value: string | string[] | {[key: string]: MockDefinition}; + value: string | string[] | { [key: string]: MockDefinition }; enums?: string[]; imports: string[]; name: string; diff --git a/src/types/resolvers.ts b/src/types/resolvers.ts index 928eae9f0..1657b2aa2 100644 --- a/src/types/resolvers.ts +++ b/src/types/resolvers.ts @@ -1,4 +1,4 @@ -import {GeneratorSchema} from './generator'; +import { GeneratorSchema } from './generator'; export type ResolverValue = { value: string; diff --git a/src/types/swagger2openapi.d.ts b/src/types/swagger2openapi.d.ts index 580f7ea7e..c9551e1c5 100644 --- a/src/types/swagger2openapi.d.ts +++ b/src/types/swagger2openapi.d.ts @@ -1,7 +1,11 @@ -declare module "swagger2openapi" { - import { OpenAPIObject } from "openapi3-ts"; +declare module 'swagger2openapi' { + import { OpenAPIObject } from 'openapi3-ts'; interface ConverObjCallbackData { openapi: OpenAPIObject; } - function convertObj(schema: unknown, options: {}, callback: (err: Error, data: ConverObjCallbackData) => void): void; + function convertObj( + schema: unknown, + options: {}, + callback: (err: Error, data: ConverObjCallbackData) => void, + ): void; } diff --git a/src/types/writers.ts b/src/types/writers.ts index 9279eb5c7..00a7ae9db 100644 --- a/src/types/writers.ts +++ b/src/types/writers.ts @@ -1,5 +1,5 @@ -import {InfoObject} from 'openapi3-ts'; -import {GeneratorApiResponse, GeneratorSchema} from './generator'; +import { InfoObject } from 'openapi3-ts'; +import { GeneratorApiResponse, GeneratorSchema } from './generator'; export type WriteSpecsProps = GeneratorApiResponse & { schemas: GeneratorSchema[]; diff --git a/src/utils/file.ts b/src/utils/file.ts index 866c5a8f0..02af0e217 100644 --- a/src/utils/file.ts +++ b/src/utils/file.ts @@ -1,5 +1,5 @@ -import {basename, dirname, join} from 'path'; -import {isDirectory} from './is'; +import { basename, dirname, join } from 'path'; +import { isDirectory } from './is'; export const getFileInfo = (target: string = '', backupFilename: string) => { const isDir = isDirectory(target); @@ -13,6 +13,6 @@ export const getFileInfo = (target: string = '', backupFilename: string) => { extension, isDirectory: isDir, dirname: dir, - filename + filename, }; }; diff --git a/src/utils/filters.ts b/src/utils/filters.ts index 9a79c08dd..fa3dcd272 100644 --- a/src/utils/filters.ts +++ b/src/utils/filters.ts @@ -1,6 +1,8 @@ import uniq from 'lodash/uniq'; -import {generalJSTypesWithArray} from '../constants'; +import { generalJSTypesWithArray } from '../constants'; export const generalTypesFilter = (values: string[] = []) => { - return uniq(values.filter(value => !generalJSTypesWithArray.includes(value))); + return uniq( + values.filter((value) => !generalJSTypesWithArray.includes(value)), + ); }; diff --git a/src/utils/github.ts b/src/utils/github.ts index 1b7d11258..05d0e1bf2 100644 --- a/src/utils/github.ts +++ b/src/utils/github.ts @@ -1,14 +1,14 @@ -import {existsSync, readFileSync, unlinkSync, writeFileSync} from 'fs'; +import { existsSync, readFileSync, unlinkSync, writeFileSync } from 'fs'; import https from 'https'; import inquirer from 'inquirer'; -import {join} from 'path'; -import {request} from './request'; +import { join } from 'path'; +import { request } from './request'; export const getGithubSpecReq = ({ accessToken, repo, owner, branch, - path + path, }: { accessToken: string; repo: string; @@ -25,7 +25,7 @@ export const getGithubSpecReq = ({ } } } - }` + }`, }); return [ @@ -37,10 +37,10 @@ export const getGithubSpecReq = ({ 'content-type': 'application/json', 'user-agent': 'orval-importer', authorization: `bearer ${accessToken}`, - 'Content-Length': payload.length - } + 'Content-Length': payload.length, + }, }, - payload + payload, ]; }; @@ -56,14 +56,14 @@ export const getGithubAcessToken = async (githubTokenPath: string) => { type: 'input', name: 'githubToken', message: - 'Please provide a GitHub token with `repo` rules checked (https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/)' + 'Please provide a GitHub token with `repo` rules checked (https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/)', }, { type: 'confirm', name: 'saveToken', message: - 'Would you like to store your token for the next time? (stored in your node_modules)' - } + 'Would you like to store your token for the next time? (stored in your node_modules)', + }, ]); if (answers.saveToken) { writeFileSync(githubTokenPath, answers.githubToken); @@ -86,8 +86,8 @@ export const getGithubOpenApi = async (url: string) => { console.log(info.split('/')); try { - const {body} = await request<{data?: {repository: any}}>( - ...getGithubSpecReq({accessToken, repo, owner, branch, path}) + const { body } = await request<{ data?: { repository: any } }>( + ...getGithubSpecReq({ accessToken, repo, owner, branch, path }), ); return body.data?.repository.object.text; @@ -97,13 +97,13 @@ export const getGithubOpenApi = async (url: string) => { } if (e.body.message === 'Bad credentials') { - const answers = await inquirer.prompt<{removeToken: boolean}>([ + const answers = await inquirer.prompt<{ removeToken: boolean }>([ { type: 'confirm', name: 'removeToken', message: - "Your token doesn't have the correct permissions, should we remove it?" - } + "Your token doesn't have the correct permissions, should we remove it?", + }, ]); if (answers.removeToken) { unlinkSync(githubTokenPath); diff --git a/src/utils/imports.ts b/src/utils/imports.ts index 779e02616..b0cf55961 100644 --- a/src/utils/imports.ts +++ b/src/utils/imports.ts @@ -1,4 +1,4 @@ -import {join} from 'path'; +import { join } from 'path'; export const dynamicImport = (path: string, from = process.cwd()) => require(join(from, path)); diff --git a/src/utils/is.ts b/src/utils/is.ts index 871f41c6a..e6634693d 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -1,5 +1,5 @@ -import {ReferenceObject} from 'openapi3-ts'; -import {extname} from 'path'; +import { ReferenceObject } from 'openapi3-ts'; +import { extname } from 'path'; /** * Discriminator helper for `ReferenceObject` diff --git a/src/utils/messages/inline.ts b/src/utils/messages/inline.ts index 4a027422c..989649c06 100644 --- a/src/utils/messages/inline.ts +++ b/src/utils/messages/inline.ts @@ -1,9 +1,9 @@ -import {InfoObject} from 'openapi3-ts'; -import {getPackage} from '../packages'; +import { InfoObject } from 'openapi3-ts'; +import { getPackage } from '../packages'; -const {name: packageName, version: packageVersion} = getPackage(); +const { name: packageName, version: packageVersion } = getPackage(); -export const getFilesHeader = ({title, description, version}: InfoObject) => +export const getFilesHeader = ({ title, description, version }: InfoObject) => `/*\n* Generated by ${packageName} v${packageVersion} 🍺\n* Do not edit manually.\n${ title ? `* ${title}\n` : '' }${description ? `* ${description}\n` : ''}${ diff --git a/src/utils/messages/logs.ts b/src/utils/messages/logs.ts index 93224a4fd..e21c4970f 100644 --- a/src/utils/messages/logs.ts +++ b/src/utils/messages/logs.ts @@ -1,12 +1,12 @@ import chalk from 'chalk'; -import {PackageJson} from '../packages'; +import { PackageJson } from '../packages'; export const log = console.log; // tslint:disable-line:no-console -export const startMessage = ({name, version, description}: PackageJson) => +export const startMessage = ({ name, version, description }: PackageJson) => log( `🍻 Start ${chalk.cyan.bold(name)} ${chalk.green(`v${version}`)}${ description ? ` - ${description}` : '' - }` + }`, ); export const errorMessage = (err: string) => log(chalk.red(err)); @@ -16,27 +16,27 @@ export const mismatchArgsMessage = (mismatchArgs: string[]) => chalk.yellow( `${mismatchArgs.join(', ')} ${ mismatchArgs.length === 1 ? 'is' : 'are' - } not defined in your configuration!` - ) + } not defined in your configuration!`, + ), ); export const createSuccessMessage = (backend?: string) => log( `🎉 ${ backend ? `${chalk.green(backend)} - ` : '' - }Your OpenAPI spec has been converted into ready to use orval!` + }Your OpenAPI spec has been converted into ready to use orval!`, ); export const ibmOpenapiValidatorWarnings = ( warnings: { path: string; message: string; - }[] + }[], ) => { log(chalk.yellow('(!) Warnings')); - warnings.forEach(i => - log(chalk.yellow(`Message : ${i.message}\nPath : ${i.path}`)) + warnings.forEach((i) => + log(chalk.yellow(`Message : ${i.message}\nPath : ${i.path}`)), ); }; @@ -44,11 +44,11 @@ export const ibmOpenapiValidatorErrors = ( errors: { path: string; message: string; - }[] + }[], ) => { log(chalk.red('(!) Errors')); - errors.forEach(i => - log(chalk.red(`Message : ${i.message}\nPath : ${i.path}`)) + errors.forEach((i) => + log(chalk.red(`Message : ${i.message}\nPath : ${i.path}`)), ); }; diff --git a/src/utils/packages.ts b/src/utils/packages.ts index 703e76e36..4db74489f 100644 --- a/src/utils/packages.ts +++ b/src/utils/packages.ts @@ -1,5 +1,5 @@ -import {readFileSync} from 'fs'; -import {join} from 'path'; +import { readFileSync } from 'fs'; +import { join } from 'path'; export type PackageJson = { name: string; @@ -18,5 +18,5 @@ export type PackageJson = { export const getPackage = () => JSON.parse( - readFileSync(join(__dirname, '../../package.json'), 'utf-8') + readFileSync(join(__dirname, '../../package.json'), 'utf-8'), ) as PackageJson; diff --git a/src/utils/reader.ts b/src/utils/reader.ts index 49a6e77e3..ecfd5aa6c 100644 --- a/src/utils/reader.ts +++ b/src/utils/reader.ts @@ -1,5 +1,5 @@ -import {readFileSync} from 'fs'; -import {join} from 'path'; +import { readFileSync } from 'fs'; +import { join } from 'path'; export const dynamicReader = (path: string, from = process.cwd()) => readFileSync(join(from, path), 'utf-8'); diff --git a/src/utils/request.ts b/src/utils/request.ts index 9d1530f40..1280427be 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,7 +1,7 @@ import http from 'http'; import https from 'https'; -export type Response = { +export type Response = { status: http.IncomingMessage['statusCode']; headers: http.IncomingMessage['headers']; body: T; @@ -9,18 +9,18 @@ export type Response = { export const request = ( urlOptions: string | https.RequestOptions | URL, - data?: string + data?: string, ): Promise> => { return new Promise((resolve, reject) => { - const req = https.request(urlOptions, res => { + const req = https.request(urlOptions, (res) => { let body = ''; - res.on('data', chunk => (body += chunk.toString())); + res.on('data', (chunk) => (body += chunk.toString())); res.on('error', reject); res.on('end', () => { const response = { status: res.statusCode, headers: res.headers, - body: JSON.parse(body) + body: JSON.parse(body), }; if (res.statusCode && res.statusCode >= 200 && res.statusCode <= 299) { resolve(response); diff --git a/src/utils/sort.ts b/src/utils/sort.ts index 8ab908802..e0b527616 100644 --- a/src/utils/sort.ts +++ b/src/utils/sort.ts @@ -1,5 +1,5 @@ export const sortByPriority = ( - arr: (T & {default?: boolean; required?: boolean})[] + arr: (T & { default?: boolean; required?: boolean })[], ) => arr.sort((a, b) => { if (a.default) { diff --git a/src/utils/stringify.ts b/src/utils/stringify.ts index 446043086..6706579d0 100644 --- a/src/utils/stringify.ts +++ b/src/utils/stringify.ts @@ -4,11 +4,11 @@ import { isNull, isNumber, isString, - isUndefined + isUndefined, } from './is'; export const stringify = ( - data?: string | any[] | {[key: string]: any} + data?: string | any[] | { [key: string]: any }, ): string | undefined => { if (isUndefined(data) || isNull(data)) { return; diff --git a/yarn.lock b/yarn.lock index 07e0ead29..35ecf110e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,6 +25,145 @@ dependencies: regenerator-runtime "^0.13.2" +"@commitlint/cli@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-8.3.5.tgz#6d93a3a8b2437fa978999d3f6a336bcc70be3fd3" + integrity sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w== + dependencies: + "@commitlint/format" "^8.3.4" + "@commitlint/lint" "^8.3.5" + "@commitlint/load" "^8.3.5" + "@commitlint/read" "^8.3.4" + babel-polyfill "6.26.0" + chalk "2.4.2" + get-stdin "7.0.0" + lodash "4.17.15" + meow "5.0.0" + resolve-from "5.0.0" + resolve-global "1.0.0" + +"@commitlint/config-conventional@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz#fed13b3711690663b176c1f6b39c205a565618d2" + integrity sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g== + dependencies: + conventional-changelog-conventionalcommits "4.2.1" + +"@commitlint/ensure@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-8.3.4.tgz#6931677e4ca0fde71686ae3b7a367261647a341d" + integrity sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw== + dependencies: + lodash "4.17.15" + +"@commitlint/execute-rule@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz#1b63f0713b197889d90b76f9eea1abc010d256b1" + integrity sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ== + +"@commitlint/format@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-8.3.4.tgz#7cd1f0ba5a3289c8d14d7dac29ee1fc1597fe1d9" + integrity sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw== + dependencies: + chalk "^2.0.1" + +"@commitlint/is-ignored@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz#e6f59496e1b1ce58020d519cd578ad0f43169199" + integrity sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA== + dependencies: + semver "6.3.0" + +"@commitlint/lint@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-8.3.5.tgz#627e75adb1cc803cc723e33cc2ba4aa27cbb9f0c" + integrity sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ== + dependencies: + "@commitlint/is-ignored" "^8.3.5" + "@commitlint/parse" "^8.3.4" + "@commitlint/rules" "^8.3.4" + babel-runtime "^6.23.0" + lodash "4.17.15" + +"@commitlint/load@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-8.3.5.tgz#3f059225ede92166ba94cf4c48e3d67c8b08b18a" + integrity sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw== + dependencies: + "@commitlint/execute-rule" "^8.3.4" + "@commitlint/resolve-extends" "^8.3.5" + babel-runtime "^6.23.0" + chalk "2.4.2" + cosmiconfig "^5.2.0" + lodash "4.17.15" + resolve-from "^5.0.0" + +"@commitlint/message@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-8.3.4.tgz#b4e50d14aa6e15a5ad0767b952a7953f3681d768" + integrity sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA== + +"@commitlint/parse@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-8.3.4.tgz#d741f8b9104b35d0f4c10938165b20cbf167f81e" + integrity sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw== + dependencies: + conventional-changelog-angular "^1.3.3" + conventional-commits-parser "^3.0.0" + lodash "^4.17.11" + +"@commitlint/read@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-8.3.4.tgz#81a34283d8cd7b2acdf57829a91761e9c7791455" + integrity sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw== + dependencies: + "@commitlint/top-level" "^8.3.4" + "@marionebl/sander" "^0.6.0" + babel-runtime "^6.23.0" + git-raw-commits "^2.0.0" + +"@commitlint/resolve-extends@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz#8fff800f292ac217ae30b1862f5f9a84b278310a" + integrity sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ== + dependencies: + import-fresh "^3.0.0" + lodash "4.17.15" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-8.3.4.tgz#41da7e16c6b89af268fe81c87a158c1fd2ac82b1" + integrity sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg== + dependencies: + "@commitlint/ensure" "^8.3.4" + "@commitlint/message" "^8.3.4" + "@commitlint/to-lines" "^8.3.4" + babel-runtime "^6.23.0" + +"@commitlint/to-lines@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-8.3.4.tgz#ce24963b6d86dbe51d88d5e3028ab28f38562e2e" + integrity sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA== + +"@commitlint/top-level@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-8.3.4.tgz#803fc6e8f5be5efa5f3551761acfca961f1d8685" + integrity sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg== + dependencies: + find-up "^4.0.0" + +"@marionebl/sander@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" + integrity sha1-GViWWHTyS8Ub5Ih1/rUNZC/EH3s= + dependencies: + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -98,6 +237,11 @@ dependencies: commander "*" +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + "@types/estree@*": version "0.0.42" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.42.tgz#8d0c1f480339efedb3e46070e22dd63e0430dd11" @@ -116,6 +260,11 @@ "@types/through" "*" rxjs "^6.4.0" +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + "@types/lodash@^4.14.149": version "4.14.149" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" @@ -158,7 +307,63 @@ resolved "https://registry.yarnpkg.com/@types/yamljs/-/yamljs-0.2.30.tgz#d034e1d329e46e8d0f737c9a8db97f68f81b5382" integrity sha1-0DTh0ynkbo0Pc3yajbl/aPgbU4I= -acorn@^7.1.0: +"@typescript-eslint/eslint-plugin@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz#0b60917332f20dcff54d0eb9be2a9e9f4c9fbd02" + integrity sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw== + dependencies: + "@typescript-eslint/experimental-utils" "2.25.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz#13691c4fe368bd377b1e5b1e4ad660b220bf7714" + integrity sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.25.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.25.0.tgz#abfb3d999084824d9a756d9b9c0f36fba03adb76" + integrity sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.25.0" + "@typescript-eslint/typescript-estree" "2.25.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz#b790497556734b7476fa7dd3fa539955a5c79e2c" + integrity sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^6.3.0" + tsutils "^3.17.1" + +JSONStream@^1.0.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^7.1.0, acorn@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== @@ -173,7 +378,7 @@ ajv@^5.5.2: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.5.5: +ajv@^6.10.0, ajv@^6.10.2: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== @@ -212,6 +417,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -222,7 +432,7 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -264,6 +474,16 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -286,23 +506,16 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -313,16 +526,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - axios@^0.19.2: version "0.19.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" @@ -330,6 +533,23 @@ axios@^0.19.2: dependencies: follow-redirects "1.5.10" +babel-polyfill@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + backslash@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/backslash/-/backslash-0.2.0.tgz#6c3c1fce7e7e714ccfc10fd74f0f73410677375f" @@ -353,13 +573,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - better-ajv-errors@^0.6.1, better-ajv-errors@^0.6.7: version "0.6.7" resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz#b5344af1ce10f434fe02fc4390a5a9c811e470d1" @@ -437,12 +650,40 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^4.0.0: +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= @@ -462,12 +703,7 @@ case@^1.6.2: resolved "https://registry.yarnpkg.com/case/-/case-1.6.2.tgz#2ea68af6956752cd69c349c8b3e6bc860d1cba95" integrity sha512-ll380ZRoraT7mUK2G92UbH+FJVD5AwdVIAYk9xhV1tauh0carDgYByUD1HhjCWsWgxrfQvCeHvtfj7IYR6TKeg== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@*, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@*, chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -613,7 +849,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -640,6 +876,14 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + compare-versions@^3.5.1: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" @@ -667,21 +911,66 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +conventional-changelog-angular@^1.3.3: + version "1.6.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" + integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-conventionalcommits@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz#d6cb2e2c5d7bfca044a08b9dba84b4082e1a1bd9" + integrity sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q== + dependencies: + compare-func "^1.3.1" + lodash "^4.2.1" + q "^1.5.1" + +conventional-commits-parser@^3.0.0: + version "3.0.8" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" + integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^5.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + core-js@^3.2.1: version "3.6.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== -core-util-is@1.0.2: +core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -739,12 +1028,19 @@ cuid@^2.1.8: resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= dependencies: - assert-plus "^1.0.0" + number-is-nan "^1.0.0" date-fns@^1.27.2: version "1.30.1" @@ -772,14 +1068,22 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.1.1: +debug@^4.0.1, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -decamelize@^1.2.0: +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -799,6 +1103,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + deepmerge@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" @@ -858,6 +1167,20 @@ dir-glob@2.0.0: arrify "^1.0.1" path-type "^3.0.0" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + dependencies: + is-obj "^1.0.0" + dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -870,19 +1193,16 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -937,11 +1257,128 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +eslint-config-prettier@^6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a" + integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ== + dependencies: + get-stdin "^6.0.0" + +eslint-plugin-prettier@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba" + integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.2.0.tgz#a010a519c0288f2530b3404124bfb5f02e9797fe" + integrity sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + dependencies: + estraverse "^5.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.0.0.tgz#ac81750b482c11cca26e4b07e83ed8f75fbcdc22" + integrity sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -1022,11 +1459,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1050,16 +1482,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - faker@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" @@ -1075,6 +1497,11 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + fast-glob@^2.0.2: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -1092,6 +1519,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -1114,6 +1546,13 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -1140,6 +1579,13 @@ find-cache-dir@^3.2.0: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -1162,6 +1608,20 @@ find-versions@^3.2.0: dependencies: semver-regex "^2.0.0" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" @@ -1174,11 +1634,6 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - form-data@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -1188,15 +1643,6 @@ form-data@^2.5.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - format-util@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" @@ -1228,6 +1674,11 @@ function-bind@^1.0.2, function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + 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" @@ -1238,6 +1689,16 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== +get-stdin@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -1262,12 +1723,16 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= +git-raw-commits@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.3.tgz#f040e67b8445962d4d168903a9e84c4240c17655" + integrity sha512-SoSsFL5lnixVzctGEi2uykjA7B5I0AhO9x6kdzvGRHbxsa6JSEgrgy1esRKsfOKE1cgyOJ/KDR2Trxu157sb8w== dependencies: - assert-plus "^1.0.0" + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^5.0.0" + split2 "^2.0.0" + through2 "^3.0.0" glob-parent@^3.1.0: version "3.1.0" @@ -1277,6 +1742,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -1294,7 +1766,7 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.2, glob@^7.1.3: +glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -1306,13 +1778,20 @@ glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: +global-dirs@^0.1.0, global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= dependencies: ini "^1.3.4" +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globby@^8.0.1: version "8.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" @@ -1343,7 +1822,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.2.0: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== @@ -1358,19 +1837,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -1436,15 +1902,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - http2-client@^1.2.5: version "1.3.3" resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.3.tgz#90fc15d646cca86956b156d07c83947d57d659a9" @@ -1507,7 +1964,20 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -import-fresh@^3.1.0: +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -1538,7 +2008,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1548,6 +2018,25 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + inquirer@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.6.tgz#ee4ff0ea7ecda5324656fe665878790f66df7d0c" @@ -1645,6 +2134,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -1686,7 +2180,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -1737,6 +2231,11 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -1788,10 +2287,12 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^1.0.0" is-windows@^1.0.2: version "1.0.2" @@ -1803,7 +2304,7 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -1825,11 +2326,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -1843,11 +2339,6 @@ js-yaml@^3.12.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - json-dup-key-validator@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-dup-key-validator/-/json-dup-key-validator-1.0.2.tgz#4e5e1c32c93ede16a8424d28162e5e183b5d8ee5" @@ -1880,15 +2371,10 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-to-ast@^2.0.3: version "2.1.0" @@ -1905,6 +2391,11 @@ jsonfile@^4.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" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + jsonpointer@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -1915,16 +2406,6 @@ jsonschema@^1.2.4: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.5.tgz#bab69d97fa28946aec0a56a9cc266d23fe80ae61" integrity sha512-kVTF+08x25PQ0CjuVc0gRM9EUPb0Fe9Ln/utFOgcdxEIOHuU7ooBk/UPTd7t1M91pP35m0MU1T8M5P7vP1bRRw== -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - just-extend@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" @@ -1973,6 +2454,14 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -2051,6 +2540,14 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -2066,12 +2563,32 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash@^4.17.15: +lodash.template@^4.0.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -2106,6 +2623,14 @@ lolex@^5.0.1, lolex@^5.1.2: dependencies: "@sinonjs/commons" "^1.7.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -2145,6 +2670,16 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -2173,6 +2708,21 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= +meow@5.0.0, meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -2215,7 +2765,7 @@ mime-db@1.43.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12: version "2.1.26" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== @@ -2239,7 +2789,15 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0: +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +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== @@ -2252,6 +2810,13 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp@^0.5.1: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -2284,6 +2849,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -2315,7 +2885,7 @@ node-readfiles@^0.2.0: dependencies: es6-promise "^3.2.1" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -2411,11 +2981,6 @@ oas-validator@^3.3.3: should "^13.2.1" yaml "^1.7.2" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -2497,6 +3062,18 @@ opencollective-postinstall@^2.0.2: resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -2531,6 +3108,13 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" @@ -2545,6 +3129,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -2564,6 +3155,11 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w== +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -2675,11 +3271,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picomatch@^2.0.5: version "2.1.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" @@ -2714,26 +3305,43 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.2.tgz#1ba8f3eb92231e769b7fcd7cb73ae1b6b74ade08" + integrity sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28: - version "1.7.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2742,15 +3350,20 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= rc@^1.0.1, rc@^1.1.6: version "1.2.8" @@ -2762,6 +3375,14 @@ rc@^1.0.1, rc@^1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -2771,11 +3392,51 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +"readable-stream@2 || 3": + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + reftools@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.0.10.tgz#c7835c567ea1334c5399cd83f67fb1c3c010a0ed" integrity sha512-ZWFZp5mi+MhJE4TvgwzuxlwnVw+6COn1MRKWljjvhlzGc/ltufCNyMVUStD+iMC/lr89Pb1HyrOHIGGSv64ZjA== +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regenerator-runtime@^0.13.2: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" @@ -2789,6 +3450,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + registry-auth-token@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" @@ -2814,32 +3485,6 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-all@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/require-all/-/require-all-3.0.0.tgz#473d49704be310115ce124f77383b1ebd8671312" @@ -2855,11 +3500,28 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -2900,6 +3562,20 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -2955,11 +3631,16 @@ rxjs@^6.4.0, rxjs@^6.5.3: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-json-stringify@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" @@ -2972,7 +3653,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -2999,16 +3680,16 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== +semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.5.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -3130,6 +3811,15 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -3214,26 +3904,18 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -3264,6 +3946,15 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" @@ -3298,6 +3989,20 @@ string.prototype.trimright@^2.0.0: define-properties "^1.1.3" function-bind "^1.1.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -3321,6 +4026,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -3343,6 +4055,16 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -3389,6 +4111,16 @@ symbol-observable@^1.1.0: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" @@ -3396,7 +4128,32 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -through@^2.3.6: +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -3445,35 +4202,39 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= tslib@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: - safe-buffer "^5.0.1" + tslib "^1.8.1" -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" type-detect@4.0.8, type-detect@^4.0.8: version "4.0.8" @@ -3485,6 +4246,11 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + typescript@^3.8.3: version "3.8.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" @@ -3565,10 +4331,15 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -3583,15 +4354,6 @@ validator@^11.0.0: resolved "https://registry.yarnpkg.com/validator/-/validator-11.1.0.tgz#ac18cac42e0aa5902b603d7a5d9b7827e2346ac4" integrity sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -3630,6 +4392,11 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -3660,11 +4427,23 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + "y18n@^3.2.1 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -3695,6 +4474,13 @@ yamljs@^0.3.0: argparse "^1.0.7" glob "^7.0.5" +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"