diff --git a/.eslintrc.js b/.eslintrc.js index f71effa..ec36ee1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,23 +2,23 @@ * Copyright (C) Sapphirecode - All Rights Reserved * This file is part of console-app which is released under MIT. * See file 'LICENSE' for full license details. - * Created by Timo Hocker , May 2020 + * Created by Timo Hocker , May 2020 */ +/* eslint-disable */ + +'use strict'; + module.exports = { env: { commonjs: true, - es6: true, - node: true + es6: true, + node: true }, - extends: [ - '@sapphirecode' - ], + extends: [ '@sapphirecode' ], globals: { - Atomics: 'readonly', + Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, - parserOptions: { - ecmaVersion: 2018 - } -} + parserOptions: { ecmaVersion: 2018 } +}; diff --git a/AppTest.js b/AppTest.js index 5fc29cb..cd74cfd 100644 --- a/AppTest.js +++ b/AppTest.js @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + // @ts-nocheck /* eslint-disable no-console */ 'use strict'; diff --git a/README.md b/README.md new file mode 100644 index 0000000..8b9feef --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# @sapphirecode/console-app + +version: 1.1.x + +read parameters from env, console args or interactively + +## Installation + +npm: + +> npm i --save @sapphirecode/console-app + +yarn: + +> yarn add @sapphirecode/console-app + +## Usage + +```js +const {InteractiveOptions} = require('@sapphirecode/console-app'); + +const reader = new InteractiveOptions([ + { + name: 'foo', // name of the option + type: 'boolean', // data type + required: true, // require option to be specified (optional) + default: false, // default value (optional) + alias: 'f', // shorthand alias in the console (optional) + env: 'fooenv', // environment variable to read from (optional) + description: 'the switch foo', // description in the help page (optional) + message: 'should foo be true?', // message when asking interactively (optional) + }, +]); + +const result = await reader.parse(); +console.log(result.foo); +``` + +available data types: + +- string +- number +- boolean +- path: expects a path that exists +- file: expects a path that exists and is a file +- folder: expects a path that exists and is a folder +- array: arrays made out of strings, numbers and booleans + +the console reader automatically adds the options --help (-h) and --quiet (-q) + +- help: shows the yargs help screen +- quiet: prevents interactive queries and throws an error when not all required + parameters are specified + +the reader can also be constructed with additional options that specify which +sources should be used. It reads from all by default + +```js +const reader = new InteractiveOptions([], { + args: true, + env: true, + interactive: true, +}); +``` + +## License + +MIT © Timo Hocker diff --git a/jenkins.js b/jenkins.js index 865de5a..aeb3be2 100644 --- a/jenkins.js +++ b/jenkins.js @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + 'use strict'; const https = require ('https'); diff --git a/lib/.eslintrc.js b/lib/.eslintrc.js index feb840e..8ba5c94 100644 --- a/lib/.eslintrc.js +++ b/lib/.eslintrc.js @@ -2,23 +2,23 @@ * Copyright (C) Sapphirecode - All Rights Reserved * This file is part of console-app which is released under MIT. * See file 'LICENSE' for full license details. - * Created by Timo Hocker , May 2020 + * Created by Timo Hocker , May 2020 */ +/* eslint-disable */ + +'use strict'; + module.exports = { env: { commonjs: true, - es6: true, - node: true + es6: true, + node: true }, - extends: [ - '@sapphirecode/eslint-config-ts' - ], + extends: [ '@sapphirecode/eslint-config-ts' ], globals: { - Atomics: 'readonly', + Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, - parserOptions: { - ecmaVersion: 2018 - } -} + parserOptions: { ecmaVersion: 2018 } +}; diff --git a/lib/Option.ts b/lib/Option.ts index 6b2c931..8193c47 100644 --- a/lib/Option.ts +++ b/lib/Option.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import { TypeValidation } from './Types/TypeValidation'; import { OptionType } from './OptionType'; diff --git a/lib/OptionType.ts b/lib/OptionType.ts index ca96a5d..4d00713 100644 --- a/lib/OptionType.ts +++ b/lib/OptionType.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + export type OptionType = 'string' | 'number' diff --git a/lib/Sources/ArgSource.ts b/lib/Sources/ArgSource.ts index 1615ff3..141eb5d 100644 --- a/lib/Sources/ArgSource.ts +++ b/lib/Sources/ArgSource.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + /* eslint-disable no-console */ /* eslint-disable no-process-exit */ import yargs, { Options } from 'yargs'; diff --git a/lib/Sources/EnvSource.ts b/lib/Sources/EnvSource.ts index 0eb0f52..2f978b6 100644 --- a/lib/Sources/EnvSource.ts +++ b/lib/Sources/EnvSource.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + /* eslint-disable no-process-env */ import { OptionProcess } from '../Option'; import { OptionSource } from './OptionSource'; diff --git a/lib/Sources/InteractiveSource.ts b/lib/Sources/InteractiveSource.ts index 20dd9c3..412e282 100644 --- a/lib/Sources/InteractiveSource.ts +++ b/lib/Sources/InteractiveSource.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + /* eslint-disable no-console */ /* eslint-disable no-process-exit */ import { Confirm, Input, List } from 'enquirer'; diff --git a/lib/Sources/OptionSource.ts b/lib/Sources/OptionSource.ts index 91494f7..81661fd 100644 --- a/lib/Sources/OptionSource.ts +++ b/lib/Sources/OptionSource.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import { OptionProcess } from '../Option'; export abstract class OptionSource { diff --git a/lib/Types/PathType.ts b/lib/Types/PathType.ts index f4732b0..1d02a8e 100644 --- a/lib/Types/PathType.ts +++ b/lib/Types/PathType.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import fs from 'fs-extra'; import { TypeValidation } from './TypeValidation'; diff --git a/lib/Types/TypeValidation.ts b/lib/Types/TypeValidation.ts index 49b90e2..5129764 100644 --- a/lib/Types/TypeValidation.ts +++ b/lib/Types/TypeValidation.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import { OptionType } from '../OptionType'; export class TypeValidation { diff --git a/package.json b/package.json index 52a4d08..ea0a754 100644 --- a/package.json +++ b/package.json @@ -2,17 +2,22 @@ "name": "@sapphirecode/console-app", "version": "1.0.0", "main": "dist/lib/index.js", - "author": "Timo Hocker ", + "author": "Timo Hocker ", "license": "MIT", + "repository": { + "type": "git", + "url": "git@git.scode.ovh:timo/console-app" + }, + "description": "read parameters from env, console args or interactively", "devDependencies": { "@ava/typescript": "^1.1.1", - "@sapphirecode/eslint-config-ts": "^1.0.31", + "@sapphirecode/eslint-config-ts": "^1.1.4", "@types/fs-extra": "^8.1.0", - "@types/yargs": "^15.0.4", + "@types/yargs": "^15.0.5", "ava": "^3.8.2", - "eslint": "^6.8.0", + "eslint": "^7.0.0", "nyc": "^15.0.1", - "typescript": "^3.8.3" + "typescript": "^3.9.2" }, "scripts": { "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.vue,.mjs", @@ -25,9 +30,9 @@ "/dist/lib/" ], "dependencies": { - "@sapphirecode/modelling": "^1.0.26", + "@sapphirecode/modelling": "^1.0.35", "enquirer": "^2.3.5", "fs-extra": "^9.0.0", "yargs": "^15.3.1" } -} +} \ No newline at end of file diff --git a/test/.eslintrc.js b/test/.eslintrc.js index feb840e..8ba5c94 100644 --- a/test/.eslintrc.js +++ b/test/.eslintrc.js @@ -2,23 +2,23 @@ * Copyright (C) Sapphirecode - All Rights Reserved * This file is part of console-app which is released under MIT. * See file 'LICENSE' for full license details. - * Created by Timo Hocker , May 2020 + * Created by Timo Hocker , May 2020 */ +/* eslint-disable */ + +'use strict'; + module.exports = { env: { commonjs: true, - es6: true, - node: true + es6: true, + node: true }, - extends: [ - '@sapphirecode/eslint-config-ts' - ], + extends: [ '@sapphirecode/eslint-config-ts' ], globals: { - Atomics: 'readonly', + Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, - parserOptions: { - ecmaVersion: 2018 - } -} + parserOptions: { ecmaVersion: 2018 } +}; diff --git a/test/PathType.ts b/test/PathType.ts index 0fff65d..78bd85e 100644 --- a/test/PathType.ts +++ b/test/PathType.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import test from 'ava'; import { PathType } from '../lib/Types/PathType'; diff --git a/test/TypeValidation.ts b/test/TypeValidation.ts index c6d99bc..272eeb3 100644 --- a/test/TypeValidation.ts +++ b/test/TypeValidation.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of console-app which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import test from 'ava'; import { TypeValidation } from '../lib/Types/TypeValidation'; diff --git a/yarn.lock b/yarn.lock index 47bbb13..2f9a98e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -242,36 +242,36 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@sapphirecode/eslint-config-es6@^1.0.1": - version "1.0.37" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-es6/-/eslint-config-es6-1.0.37.tgz#c54a99bb9de225e866cb7a9b57f1b9342047ed2c" - integrity sha512-gCWF5usY0rvILzuiWPg9qYs8lc+/vUGSM3AETFEtp8njDc4mDdUU3GO7dzOwCDk68CUjgPIH8iPEFkybOflNBw== +"@sapphirecode/eslint-config-es6@^1.1.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-es6/-/eslint-config-es6-1.1.3.tgz#351688d2f0eb71dccde4fabb7995b3f8702f3060" + integrity sha512-D0GAlflDFOqcCLWdzlrlp//eBzyuBQuUVDW0UT2LedwvFJvOHpRtA2xCuG4VHEoozD66OSlqWHixVC3aUkeJoA== dependencies: - "@sapphirecode/eslint-config" "^2.0.1" - eslint-plugin-import "^2.20.1" + "@sapphirecode/eslint-config" "^2.1.2" + eslint-plugin-import "^2.20.2" -"@sapphirecode/eslint-config-ts@^1.0.31": - version "1.0.45" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-ts/-/eslint-config-ts-1.0.45.tgz#f6207b1154e873416ff6d2857ffd9023c3440979" - integrity sha512-HUi1i+lpltT72Bsr1QGWsh375gk0WDO0zsCUhWV+UeFejTs1K3lcSGgFw6oEPu+6/Kwwaia+UqMm1bSG46fbbA== +"@sapphirecode/eslint-config-ts@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-ts/-/eslint-config-ts-1.1.4.tgz#7dad2797599d12e2bf5303f777c635347bba8e02" + integrity sha512-stQgigU/udvQqOUseTNjAEo8enRcImz1OpDlXkHAHlRpU/m2JwBC+8ikkjuUw5x4MROjxBxXYxWPOoUUML2jLQ== dependencies: - "@sapphirecode/eslint-config-es6" "^1.0.1" - "@typescript-eslint/eslint-plugin" "^2.26.0" - "@typescript-eslint/parser" "^2.26.0" + "@sapphirecode/eslint-config-es6" "^1.1.1" + "@typescript-eslint/eslint-plugin" "^2.33.0" + "@typescript-eslint/parser" "^2.33.0" eslint-plugin-tsdoc "^0.2.4" -"@sapphirecode/eslint-config@^2.0.1": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config/-/eslint-config-2.0.25.tgz#c323e81faadba23dbe2edfe2c6e97497d0a44d25" - integrity sha512-SIu/n6KrNkk4zdKWSnPVNijdayiwbxNwBNWP29s3M3wHRR9DsgCED4gMQjbyQa+Ny4cfm2J6n3fuovjSB3Xryw== +"@sapphirecode/eslint-config@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config/-/eslint-config-2.1.4.tgz#0c1f53fcb7ce0a4296786dfc58036fa7a20cab46" + integrity sha512-PUPQUvvMQGnSRnYrXd/nMGKu2dj2TTzBGPa6Czt5RAAj4oG00a+5I1TVm10Ds55apmSFdHdW79+E+MUVmy7IMQ== dependencies: - eslint-plugin-node "^11.0.0" + eslint-plugin-node "^11.1.0" eslint-plugin-sort-requires-by-path "^1.0.2" -"@sapphirecode/modelling@^1.0.26": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@sapphirecode/modelling/-/modelling-1.0.34.tgz#809f6bf5f1000d307e6822bfe176c0eb8472ea61" - integrity sha512-b7ZIrdcpYvBp9tpVhYijtIWuYOUQYKZ4r1Oerelw686cjVH8DnthPOwhEuswxP1L3RaFpLE/zgkZGQ7bI0sZnw== +"@sapphirecode/modelling@^1.0.35": + version "1.0.35" + resolved "https://registry.yarnpkg.com/@sapphirecode/modelling/-/modelling-1.0.35.tgz#c9615edcbee431fbf9216a8bcdf6b1ccb2b581e7" + integrity sha512-C9oKssuhdFihh9gQtT/T90InEJpLrXDsJxzu7uj1+3eFdewv/UwqSs/H4erccwu8Zgmt2KCs3BThidW2+JZNSQ== dependencies: "@sapphirecode/utilities" "^1.0.39" @@ -348,14 +348,14 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^15.0.4": - version "15.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== +"@types/yargs@^15.0.5": + version "15.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" + integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.26.0": +"@typescript-eslint/eslint-plugin@^2.33.0": version "2.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz#d6c8319d5011b4783bb3d2dadf105d8bdd499bd5" integrity sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ== @@ -375,7 +375,7 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.26.0": +"@typescript-eslint/parser@^2.33.0": version "2.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.33.0.tgz#395c0ef229ebef883608f8632a34f0acf02b9bdd" integrity sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA== @@ -717,7 +717,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +chalk@^2.0.0, 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== @@ -930,18 +930,7 @@ convert-to-spaces@^1.0.1: resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" integrity sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU= -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== @@ -1000,7 +989,7 @@ 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: +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= @@ -1195,7 +1184,7 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.20.1: +eslint-plugin-import@^2.20.2: version "2.20.2" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== @@ -1213,7 +1202,7 @@ eslint-plugin-import@^2.20.1: read-pkg-up "^2.0.0" resolve "^1.12.0" -eslint-plugin-node@^11.0.0: +eslint-plugin-node@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== @@ -1246,13 +1235,6 @@ eslint-scope@^5.0.0: 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" @@ -1265,22 +1247,22 @@ eslint-visitor-keys@^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== +eslint@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" + integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.3" + eslint-utils "^2.0.0" eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + espree "^7.0.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -1293,25 +1275,24 @@ eslint@^6.8.0: is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" + levn "^0.4.1" lodash "^4.17.14" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" 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== +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" @@ -1322,7 +1303,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -1392,7 +1373,7 @@ 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: +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= @@ -2072,13 +2053,13 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" -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= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" lines-and-columns@^1.1.6: version "1.1.6" @@ -2286,11 +2267,6 @@ natural-compare@^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" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-preload@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" @@ -2394,17 +2370,17 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 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" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" ora@^4.0.4: version "4.0.4" @@ -2566,11 +2542,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -2637,10 +2608,10 @@ plur@^4.0.0: dependencies: irregular-plurals "^3.2.0" -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= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prepend-http@^2.0.0: version "2.0.0" @@ -2730,12 +2701,7 @@ readdirp@~3.4.0: dependencies: picomatch "^2.2.1" -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: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -2870,17 +2836,17 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, 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, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, 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@^7.3.2: +semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -2895,13 +2861,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2909,11 +2868,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -3074,7 +3028,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -3098,7 +3052,7 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -3218,12 +3172,12 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -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= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@^0.11.0: version "0.11.0" @@ -3252,7 +3206,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^3.8.3: +typescript@^3.9.2: version "3.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9" integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== @@ -3337,13 +3291,6 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -3358,7 +3305,7 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -word-wrap@~1.2.3: +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==