diff --git a/.gitignore b/.gitignore index f1fa230..7abbad1 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,9 @@ Thumbs.db # Compiled Files and Build Dirs # ########## +Cli Build +Dist # VSCode related files # ########## diff --git a/.husky/pre-commit b/.husky/pre-publish similarity index 100% rename from .husky/pre-commit rename to .husky/pre-publish diff --git a/Bin/Hyper b/Bin/Hyper index e37e41f..3db04a4 100644 --- a/Bin/Hyper +++ b/Bin/Hyper @@ -7,4 +7,4 @@ * @author SharkSV */ -require('../Build/Lib/Cli') +require('../Cli'); diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..add61ae --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,99 @@ +# Change Log + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/) +and this project adheres to [Semantic Versioning](http://semver.org/). + +## [Berry] + +### Headline + +- Major tweaks to the codebase +- Moved from "ncp" to "fs-extra" +- Hopefully fixed some various bugs + +### Added + +- A CHANGELOG file :> +- A couple new functions @(commitFiles(), listTemplates()) +- reAdded the createLicense() function +- More user prompt questions +- Confirmational prompt (Abort, Overwrite, Change-Dir, Continue) +- "-y, --default" flag for default user selection + +### Changes + +- Folder structure +- Target template location + +## [v2.2.0] + +### Added + +- Auto-update checking module + +### Changes + +- Tweaked the Rust template + +## [v2.1.0] + +### Added + +- Added/tweaked new & existing templates + +### Changes + +- Small tweaks to the codebase +- Updated Docs to be more descriptive +- Fixed some bugs/issues + +## [v2.0.0] + +### Headline + +- Migrated to Typescript +- Major & Minor tweaks to the codebase +- Hopefully optimized startup performance + +### Changes + +- Switched from 'Javascript' to 'Typescript' + +### Removed + +- Aloooooot of dependencies + +## [v1.2.1] + +- Fixed a critical bug + +## [v1.2.0] + +`Deprecated` + +### Added + +- Multi-template support +- Automatic module publishing + +### Changes + +- Minor tweaks to the codebase +- Some code refactoring + +## [v1.1.0] + +### Added + +- New user-info prompt + +### Changes + +- Folder structure +- Various small bug fixes + +## [v1.0.0] + +- Initial release diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 890da86..adef69d 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -15,7 +15,7 @@ These guidelines will ensure the pull request process is easy and traceable for ### Setting up your environment 1. Fork this repository. -2. Installing dependencies. Check [ReadMe](../README.md) for more info. +2. Setting up dev environment. Check [ReadMe](../README.md) for more info. ### Publishing your change diff --git a/LICENSE b/LICENSE index 7b74ce7..c9801dd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021-Present Shorky +Copyright (c) 2021-Present Shorky Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Lib/Args.ts b/Lib/Args.ts index e2d3af9..47a4a4f 100644 --- a/Lib/Args.ts +++ b/Lib/Args.ts @@ -1,33 +1,36 @@ -import meow from 'meow' -import { Clrs } from './Utils/Clrs' +import * as meow from 'meow'; +import Clrs from './Utils/Clrs'; + +// prettier-ignore const { - Dim, + dim, gray, cyan, green, yellow, - blueInverse, - greenInverse, - yellowInverse -} = Clrs + bgCyan, + bgGreen, + bgYellow +} = Clrs; const helpTxt = ` - ${greenInverse(` USAGE `)}\n - ${gray('$')} ${green('hyper')} ${cyan('')} ${yellow('[options]')} +${bgGreen(` USAGE `)}\n +${gray('$')} ${green('hyper')} ${cyan('')} ${yellow('[options]')} - ${blueInverse(` COMMANDS `)}\n - ${cyan('help')} ${Dim('Print help info')} - ${cyan('init')} ${Dim('Initialize a new project')} - ${cyan('ls')} ${Dim('List available templates')} +${bgCyan(` COMMANDS `)}\n +${cyan('help')} ${dim('Print help info')} +${cyan('init')} ${dim('Initialize a new project')} +${cyan('ls')} ${dim('List available templates')} - ${yellowInverse(` OPTIONS `)}\n - ${yellow('-c, --clear')} ${Dim('Clear terminal (default)')} - ${yellow('-v, --version')} ${Dim('Print version')} - ${yellow('-y, --install')} ${Dim('Install dependencies')} - ${yellow('-r, --rainbow')} ${Dim('I wonder🏳️‍🌈')} +${bgYellow(` OPTIONS `)}\n +${yellow('-c, --clear')} ${dim('Clear terminal')} ${gray('(default)')} +${yellow('-v, --version')} ${dim('Print Cli version')} +${yellow('-y, --default')} ${dim('Roll with default selection')} +${yellow('-i, --install')} ${dim('Install dependencies')} +${yellow('-r, --rainbow')} ${dim('I wonder🏳️‍🌈')} +`; -` -export const Args = meow(helpTxt, { +const Args = meow(helpTxt, { flags: { clear: { type: 'boolean', @@ -39,7 +42,13 @@ export const Args = meow(helpTxt, { type: 'boolean', default: false, alias: 'v', - description: 'Print version' + description: 'Print Cli version' + }, + default: { + type: 'boolean', + default: false, + alias: 'y', + description: 'Roll with default selection' }, install: { type: 'boolean', @@ -57,4 +66,6 @@ export const Args = meow(helpTxt, { inferType: true, description: false, hardRejection: false -}) +}); + +export default Args; diff --git a/Lib/Cli.ts b/Lib/Cli.ts deleted file mode 100644 index 6e0e40f..0000000 --- a/Lib/Cli.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Info } from './Modules/Info' -import { Args } from './Args' -import { Init } from './Init/cProject' -import updateNotifier from 'update-notifier' -import pkg from '../package.json' - -// prettier-ignore -(async (): Promise => { - Info({ - title: 'Hyper', - tagLine: 'by Shorky', - description: 'A CLI to bootstrap new projects!', - version: pkg.version, - bold: false, - clear: true - }) - - updateNotifier({ - pkg, - updateCheckInterval: 0, - }).notify({isGlobal: true}) - - const input: string[] = Args.input - - // Cmds - input.includes('help') && Args.showHelp(0) - input.includes('init') && Init() -})() diff --git a/Lib/Init/Inquire.ts b/Lib/Init/Inquire.ts deleted file mode 100644 index be0eb18..0000000 --- a/Lib/Init/Inquire.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { DistinctQuestion, Separator, prompt } from 'inquirer' -import { Args } from '../Args' - -const flags = Args.flags -const { install, rainbow } = flags - -export async function inquire(): Promise { - const authorName: DistinctQuestion = { - type: 'input', - name: 'aName', - message: "Author's Name:", - default: 'Someone', - filter: (answer: string) => answer.trim() - } - - enum pTemplate { - Static = 'Static', - Jumpstart = 'Jumpstart', - Node = 'Node', - Rust = 'Rust' - } - - const projectTemplate: DistinctQuestion = { - type: 'list', - name: 'projTemplate', - message: 'Project Template?', - default: pTemplate.Jumpstart, - choices: [ - { - name: 'Jumpstart (bootstrap existing projects)', - value: pTemplate.Jumpstart - }, - new Separator(), - { name: 'A Node.js project', value: pTemplate.Node }, - { name: 'Static site biolerplate', value: pTemplate.Static }, - { name: 'Oxidized-C project (Rust)', value: pTemplate.Rust } - ] - } - - enum pManager { - Npm = 'Npm', - Yarn = 'Yarn' - } - - const packageManager: DistinctQuestion = { - type: 'list', - name: 'pkgManager', - message: 'Package Manager?', - default: pManager.Npm, - choices: [ - { name: 'Npm', value: pManager.Npm }, - { name: 'Yarn', value: pManager.Yarn } - ], - when: () => install == true - } - - const initilizeGit = { - type: 'confirm', - name: 'gitInit', - message: 'Initilize Git?', - default: true - } - - const createLicense = { - type: 'confirm', - name: 'cLicense', - message: 'Create License?', - default: true - } - - const areYou = { - type: 'confirm', - name: 'areU', - message: 'Do you listen to girl in red?', - default: true, - when: () => rainbow == true - } - - return prompt([ - authorName, - projectTemplate, - packageManager, - initilizeGit, - createLicense, - areYou - ]) -} diff --git a/Lib/Init/Tasks.ts b/Lib/Init/Tasks.ts deleted file mode 100644 index ab78fd5..0000000 --- a/Lib/Init/Tasks.ts +++ /dev/null @@ -1,62 +0,0 @@ -import execa from 'execa' -import { ncp } from 'ncp' -import { join } from 'path' -import { writeFile } from 'fs' -import { Print } from '../Modules/Print' -import { MIT } from './Json/LicenseList.json' - -// Global variables -const currentDir: string = process.cwd() - -// Functions -export async function copyTemplateFiles( - Template: string, - overWriteFiles?: boolean -): Promise { - const templateDir: string = join(__dirname, '../../../Templates', Template) - - ncp( - templateDir, - currentDir, - { clobber: overWriteFiles || false }, - (err: Error[] | null) => { - return err ? Print('error', err.toString()) : null - } - ) -} - -export async function initGit(): Promise { - const result = await execa('git', ['init']) - - switch (result.failed) { - case true: - Print('error', 'An error occured while initializing git') - break - default: - Promise.resolve() - } -} - -export async function iDependencies(pkgManager: string): Promise { - switch (pkgManager) { - case 'Npm': - await execa('npm', ['install']) - break - case 'Yarn': - await execa('yarn', ['install']) - break - default: - Print('error', "Couldn't install dependencies") - } -} - -export async function createLicense(Author: string): Promise { - const targetPath = join(currentDir, 'LICENSE') - const licenseContent = MIT.licenseTxt - .replace('', `${new Date().getFullYear()}`) - .replace('', `${Author}`) - - return writeFile(targetPath, licenseContent, 'utf8', (err) => { - return err ? Print('error', err.toString()) : null - }) -} diff --git a/Lib/Init/cProject.ts b/Lib/Init/cProject.ts deleted file mode 100644 index 81e2323..0000000 --- a/Lib/Init/cProject.ts +++ /dev/null @@ -1,64 +0,0 @@ -import Listr from 'listr' -import inquirer from 'inquirer' -import { Args } from '../Args' -import { inquire } from './Inquire' -import { Print } from '../Modules/Print' -import { - copyTemplateFiles, - initGit, - iDependencies, - createLicense -} from './Tasks' - -async function createProject(options: inquirer.Answers): Promise { - const { - // Inquirer answers - aName, - projTemplate, - gitInit, - pkgManager, - cLicense - } = options - - const flags = Args.flags - const { install } = flags - - const Tasks = new Listr( - [ - { - title: 'Copy project files', - task: () => copyTemplateFiles(projTemplate) - }, - { - title: 'Create a License', - task: () => createLicense(aName), - skip: () => !cLicense - }, - { - title: 'Initialize git', - task: () => initGit(), - skip: () => !gitInit - }, - { - title: 'Install dependencies', - task: () => iDependencies(pkgManager), - skip: () => - !install - ? 'Pass -i to automatically install dependencies' - : undefined - } - ], - { - exitOnError: false - } - ) - - await Tasks.run() - Print('pass', 'Project initilized successfully!') -} - -export async function Init(): Promise { - const options = await inquire() - Print('info', 'Initializing project...') - await createProject(options) -} diff --git a/Lib/Inquire.ts b/Lib/Inquire.ts new file mode 100644 index 0000000..e76e897 --- /dev/null +++ b/Lib/Inquire.ts @@ -0,0 +1,120 @@ +import { DistinctQuestion, Separator, prompt, Answers } from 'inquirer'; +import Args from './Args'; + +export enum pTemplate { + Jumpstart = 'Jumpstart', + Static = 'Static', + Rust = 'Rust', + Node = 'Node' +} + +enum pManager { + Npm = 'Npm', + Yarn = 'Yarn' +} + +async function Inquire(): Promise { + const { install, rainbow } = Args.flags; + + const authorName: DistinctQuestion = { + type: 'input', + name: 'aName', + message: "Author's Name:", + default: 'Someone', + filter: (answer: string) => answer.trim() + }; + + const projectTemplate: DistinctQuestion = { + type: 'list', + name: 'projTemplate', + message: 'Project Template?', + default: pTemplate.Node, + choices: [ + { + name: 'Jumpstart', + value: pTemplate.Jumpstart + }, + new Separator(), + { name: 'A Node.js project', value: pTemplate.Node }, + { name: 'Static site biolerplate', value: pTemplate.Static }, + { name: 'Oxidized-C project (Rust)', value: pTemplate.Rust } + ] + }; + + const initilizeGit = { + type: 'confirm', + name: 'gitInit', + message: 'Initilize Git?', + default: true + }; + + const firstCommit = { + type: 'confirm', + name: 'fstCommit', + message: 'Commit current files?', + default: true, + when: (answers: Answers) => answers.gitInit === true + }; + + const packageManager: DistinctQuestion = { + type: 'list', + name: 'pkgManager', + message: 'Package Manager?', + default: pManager.Npm, + choices: [ + { name: 'Npm', value: pManager.Npm }, + { name: 'Yarn', value: pManager.Yarn } + ], + when: (answers: Answers) => + install && answers.projTemplate === pTemplate.Node + }; + + const areYou = { + type: 'confirm', + name: 'areU', + message: 'Do you listen to girl in red?', + default: true, + when: () => rainbow + }; + + const Confirm = { + type: 'expand', + name: 'confirm', + message: 'Confirm selection: (generating proj in currentDir)', + choices: [ + { + key: 'y', + name: 'Confirm selection', + value: 'yes' + }, + { + key: 'c', + name: 'Change directory', + value: 'change' + }, + { + key: 'a', + name: 'Overwrite conflicting files (if any)', + value: 'overwrite' + }, + new Separator(), + { + key: 'x', + name: 'Abort', + value: 'abort' + } + ] + }; + + return prompt([ + authorName, + projectTemplate, + packageManager, + initilizeGit, + firstCommit, + areYou, + Confirm + ]); +} + +export default Inquire; diff --git a/Lib/Modules/Clear.ts b/Lib/Modules/Clear.ts index c1a8d59..bab4df8 100644 --- a/Lib/Modules/Clear.ts +++ b/Lib/Modules/Clear.ts @@ -7,16 +7,18 @@ * ``` */ -export function Clear(): void { - let arg: string +function clearConsole(): void { + let arg: string; switch (process.platform) { case 'win32': - arg = '\x1B[2J\x1B[0f' - break + arg = '\x1B[2J\x1B[0f'; + break; default: - arg = '\x1B[2J\x1B[3J\x1B[H' + arg = '\x1B[2J\x1B[3J\x1B[H'; } - process.stdout.write(arg) + process.stdout.write(arg); } + +export default clearConsole; diff --git a/Lib/Modules/Info.ts b/Lib/Modules/Info.ts index 70ae57d..5c6f45c 100644 --- a/Lib/Modules/Info.ts +++ b/Lib/Modules/Info.ts @@ -1,7 +1,6 @@ -import { Chalk } from 'chalk' -import { Clear } from './Clear' -import { Clrs } from '../Utils/Clrs' -const { Dim, BoldDim, greenInverse } = Clrs +import { optionsInterface } from '../Utils/Interfaces'; +import clearConsole from './Clear'; +import Clrs from '../Utils/Clrs'; /** * 📟 Prints out an info header for Node.js CLIs @@ -13,60 +12,41 @@ const { Dim, BoldDim, greenInverse } = Clrs * tagLine: 'by ✨@author✨', * description: 'A very useful description!', * version: '1.0', - * bold: false, * clear: true, * }) * ``` */ -export function Info(uOptions: object): void { - interface optionsInterface { - title: string - tagLine: string - description: string - version: string - bold: boolean - clear: boolean - } +function Info(uOptions: object): void { + const { dim, bgGreen } = Clrs; const defaultOptions: optionsInterface = { - title: 'Heading', - tagLine: 'Tagline', - description: 'Description', - version: '', - bold: false, + title: 'Hallo', + tagLine: 'by @Shorky', + description: 'An awesome description!', + version: 'v3-Mil', clear: true - } + }; - const options = { ...defaultOptions, ...uOptions } + const options = { ...defaultOptions, ...uOptions }; // prettier-ignore const { title, tagLine, description, version, - bold, clear } = options - let Dimmed: Chalk - - switch (bold) { - case true: - Dimmed = BoldDim - break - case false: - Dimmed = Dim - break - } - /** @param {boolean} clear - Clear the terminal before printing */ - clear && Clear() + clear && clearConsole(); /** @returns */ console.log( - `\n${greenInverse(` ${title} `)} v${version} ${Dimmed( - tagLine - )} \n${Dimmed(description)}\n` - ) + `\n${bgGreen(` ${title} `)} v${version} ${dim(tagLine)} \n${dim( + description + )}\n` + ); } + +export default Info; diff --git a/Lib/Modules/Print.ts b/Lib/Modules/Print.ts index c36e93c..3ce0868 100644 --- a/Lib/Modules/Print.ts +++ b/Lib/Modules/Print.ts @@ -1,35 +1,30 @@ -import { Chalk } from 'chalk' -import { Clrs } from '../Utils/Clrs' +import { Chalk } from 'chalk'; +import { symbolsInterface } from '../Utils/Interfaces'; +import Clrs from '../Utils/Clrs'; + +// prettier-ignore const { red, cyan, green, yellow, - redInverse, - blueInverse, - greenInverse, - yellowInverse -} = Clrs - -interface SymbolsInterface { - Info: string - Pass: string - Error: string - Warning: string -} + bgRed, + bgCyan, + bgGreen, + bgYellow +} = Clrs; -export const Symbols: SymbolsInterface = { +const Symbols: symbolsInterface = { Info: cyan('ℹ'), Pass: green('✔'), Error: red('✖'), Warning: yellow('⚠') -} +}; /** * 📟 Prints out a prettified message to the console. * @param {string} type Print type (pass, error, warning, info) - * @param {string} msg Message to print (optional) - * @param {string} title Msg title (optional) + * @param {string} msg Message to print * @example * ```ts * import { Print } from '...' @@ -37,37 +32,37 @@ export const Symbols: SymbolsInterface = { * ``` */ -export function Print(type: string, msg?: string, title?: string): void { - const pType = type.toLowerCase() - const Title = title ? title : type.toUpperCase() - const Msg = msg ? msg : '' +function Print(Type: string, Msg: string): void { + const pType = Type.toLowerCase(); - let Sym: string - let Clr: Chalk - let Inverse: Chalk + let Sym: string; + let Clr: Chalk; + let Bg: Chalk; switch (pType) { case 'pass': - Inverse = greenInverse - Sym = Symbols.Pass - Clr = green - break + Bg = bgGreen; + Sym = Symbols.Pass; + Clr = green; + break; case 'error': - Inverse = redInverse - Sym = Symbols.Error - Clr = red - break + Bg = bgRed; + Sym = Symbols.Error; + Clr = red; + break; case 'warning': - Inverse = yellowInverse - Sym = Symbols.Warning - Clr = yellow - break + Bg = bgYellow; + Sym = Symbols.Warning; + Clr = yellow; + break; default: - Inverse = blueInverse - Sym = Symbols.Info - Clr = cyan - break + Bg = bgCyan; + Sym = Symbols.Info; + Clr = cyan; + break; } - console.log(`\n${Sym} ${Inverse(` ${Title} `)} ${Clr(Msg)}\n`) + console.log(`\n${Sym} ${Bg(` ${Type} `)} ${Clr(Msg)}\n`); } + +export default Print; diff --git a/Lib/Tasks/Commit.ts b/Lib/Tasks/Commit.ts new file mode 100644 index 0000000..607e8ba --- /dev/null +++ b/Lib/Tasks/Commit.ts @@ -0,0 +1,17 @@ +import * as execa from 'execa'; + +async function commitFiles(): Promise { + try { + await execa('git', ['add', '.']); + // prettier-ignore + await execa('git', [ + 'commit', + '-m', + 'Initial-commit' + ]); + } catch (error) { + Promise.reject(new Error("Couldn't commit changes")); + } +} + +export default commitFiles; diff --git a/Lib/Tasks/Copy.ts b/Lib/Tasks/Copy.ts new file mode 100644 index 0000000..952ae6b --- /dev/null +++ b/Lib/Tasks/Copy.ts @@ -0,0 +1,22 @@ +import { join } from 'path'; +import { copy } from 'fs-extra'; + +async function copyTemplateFiles( + Template: string, + OverwriteFiles: boolean +): Promise { + const currentDir = process.cwd(); + // prettier-ignore + const templateDir: string = join( + __dirname, + '../../Templates', + Template + ); + + copy(templateDir, currentDir, { + overwrite: OverwriteFiles || false, + preserveTimestamps: false + }); +} + +export default copyTemplateFiles; diff --git a/Lib/Tasks/Git.ts b/Lib/Tasks/Git.ts new file mode 100644 index 0000000..e2e8700 --- /dev/null +++ b/Lib/Tasks/Git.ts @@ -0,0 +1,11 @@ +import * as execa from 'execa'; + +async function initGit(): Promise { + try { + await execa('git', ['init']); + } catch (error) { + Promise.reject(new Error("Couldn't initialize git")); + } +} + +export default initGit; diff --git a/Lib/Tasks/InstallDep.ts b/Lib/Tasks/InstallDep.ts new file mode 100644 index 0000000..6043b89 --- /dev/null +++ b/Lib/Tasks/InstallDep.ts @@ -0,0 +1,16 @@ +import * as execa from 'execa'; + +async function iDependencies(pkgManager: string): Promise { + switch (pkgManager) { + case 'Npm': + await execa('npm', ['install']); + break; + case 'Yarn': + await execa('yarn', ['install']); + break; + default: + Promise.reject(new Error("Couldn't install dependencies")); + } +} + +export default iDependencies; diff --git a/Lib/Init/Json/LicenseList.json b/Lib/Tasks/Json/LicenseList.json similarity index 100% rename from Lib/Init/Json/LicenseList.json rename to Lib/Tasks/Json/LicenseList.json diff --git a/Lib/Tasks/License.ts b/Lib/Tasks/License.ts new file mode 100644 index 0000000..f592201 --- /dev/null +++ b/Lib/Tasks/License.ts @@ -0,0 +1,20 @@ +import Print from '../Modules/Print'; +import { join } from 'path'; +import { writeFile } from 'fs'; +import { MIT } from './Json/LicenseList.json'; + +async function createLicense(Author: string): Promise { + const currentDir = process.cwd(); + const targetPath = join(currentDir, 'LICENSE'); + const licenseContent = MIT.licenseTxt + .replace('', `${new Date().getFullYear()}`) + .replace('', `${Author}`); + + writeFile(targetPath, licenseContent, 'utf8', (err) => { + err + ? Print('error', "Couldn't setup up License file") + : Promise.resolve(); + }); +} + +export default createLicense; diff --git a/Lib/Tasks/List.ts b/Lib/Tasks/List.ts new file mode 100644 index 0000000..323e030 --- /dev/null +++ b/Lib/Tasks/List.ts @@ -0,0 +1,24 @@ +import Print from '../Modules/Print'; +import Clrs from '../Utils/Clrs'; +import { pTemplate } from '../Inquire'; + +const { dim, yellow } = Clrs; + +async function listTemplates(): Promise { + try { + Print('Info', 'Available templates:'); + + for (let i = 0; i < Object.keys(pTemplate).length; i++) { + console.log( + `${dim(`${i}-`)} ${yellow(Object.values(pTemplate)[i])}` + ); + } + } catch (err) { + Print('Error', "Error: Couldn't list templates"); + } finally { + // Prints an empty newline + console.log(''); + } +} + +export default listTemplates; diff --git a/Lib/Tasks/index.ts b/Lib/Tasks/index.ts new file mode 100644 index 0000000..b0ecadc --- /dev/null +++ b/Lib/Tasks/index.ts @@ -0,0 +1,78 @@ +import * as Listr from 'listr'; +import Args from '../Args'; +import initGit from './Git'; +import commitFiles from './Commit'; +import Print from '../Modules/Print'; +import createLicence from './License'; +import copyTemplateFiles from './Copy'; +import iDependencies from './InstallDep'; +import { Answers } from 'inquirer'; + +async function Init(options: Answers): Promise { + const flags = Args.flags; + // prettier-ignore + const { + aName, + projTemplate, + gitInit, + fstCommit, + pkgManager, + confirm + } = options; + + let overWriteFiles = false; + + const Tasks = new Listr( + [ + { + title: 'Copy project files', + task: () => copyTemplateFiles(projTemplate, overWriteFiles) + }, + { + title: 'Setting up License', + task: () => createLicence(aName) + }, + { + title: 'Initialize git', + task: () => initGit(), + skip: () => !gitInit + }, + { + title: 'Commit files', + task: () => commitFiles(), + skip: () => !fstCommit + }, + { + title: 'Install dependencies', + task: () => iDependencies(pkgManager), + skip: () => + !flags.install && projTemplate == 'Node' + ? 'Pass -i to automatically install dependencies' + : 'Coming soon!' + } + ], + { + exitOnError: false + } + ); + + switch (confirm) { + case 'yes': + await Tasks.run(); + break; + case 'overwrite': + overWriteFiles = true; + await Tasks.run(); + break; + case 'change': + Print('Warning', "Couldn't change project dir (Coming soon!)"); + break; + case 'abort': + Print('Warning', 'Aborting project initialization...'); + process.exit(0); + default: + Print('Error', "Couldn't get user input"); + } +} + +export default Init; diff --git a/Lib/Utils/Clrs.ts b/Lib/Utils/Clrs.ts index 1c5b668..b1533fb 100644 --- a/Lib/Utils/Clrs.ts +++ b/Lib/Utils/Clrs.ts @@ -1,8 +1,7 @@ -import chalk from 'chalk' +import * as chalk from 'chalk'; -export const Clrs = { - Dim: chalk.dim, - BoldDim: chalk.dim.bold, +const Clrs = { + dim: chalk.dim, // Clrs red: chalk.red, @@ -11,10 +10,11 @@ export const Clrs = { green: chalk.green, yellow: chalk.yellow, - // Inverse - redInverse: chalk.bold.inverse.red, - blueInverse: chalk.bold.inverse.blue, - cyanInverse: chalk.bold.inverse.cyan, - greenInverse: chalk.bold.inverse.green, - yellowInverse: chalk.bold.inverse.yellow -} + // Bgs + bgRed: chalk.inverse.red, + bgCyan: chalk.inverse.cyan, + bgGreen: chalk.inverse.green, + bgYellow: chalk.inverse.yellow +}; + +export default Clrs; diff --git a/Lib/Utils/Interfaces/index.ts b/Lib/Utils/Interfaces/index.ts new file mode 100644 index 0000000..3f92cfc --- /dev/null +++ b/Lib/Utils/Interfaces/index.ts @@ -0,0 +1,14 @@ +export interface optionsInterface { + title: string; + tagLine: string; + description: string; + version: string; + clear: boolean; +} + +export interface symbolsInterface { + Info: string; + Pass: string; + Error: string; + Warning: string; +} diff --git a/Lib/index.ts b/Lib/index.ts new file mode 100644 index 0000000..c481249 --- /dev/null +++ b/Lib/index.ts @@ -0,0 +1,62 @@ +import Args from './Args'; +import Init from './Tasks'; +import Inquire from './Inquire'; +import Info from './Modules/Info'; +import Print from './Modules/Print'; +import listTemplates from './Tasks/List'; +import * as updateNotifier from 'update-notifier'; + +(async (): Promise => { + Info({ + title: 'Hyper', + tagLine: 'by @Shorky', + description: 'A Cli to bootstrap new projects', + version: '2.3', + clear: true + }); + + const pkg = { + name: '@sharksv/hyper', + version: '2.3.0' + }; + + updateNotifier({ + pkg, + updateCheckInterval: 0 + }).notify({ isGlobal: true }); + + const input: string[] = Args.input; + const flags = Args.flags; + + // Cmds + input.includes('help') && Args.showHelp(0); + input.includes('ls') && listTemplates(); + + if (input.includes('init')) { + const defaultSelection = { + aName: 'Someone', + projTemplate: 'Node', + overWriteFiles: false, + gitInit: true, + fstCommit: true, + pkgManager: 'npm', + confirm: 'yes' + }; + + const userSelection = + flags.default === true + ? defaultSelection + : { + ...(await (async () => { + return Inquire(); + })()) + }; + + Init(userSelection); + } + + // Handle errors +})().catch((err: Error) => { + Print('Error', err.message); + process.exit(1); +}); diff --git a/README.md b/README.md index 6dc6723..8a9a21c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ -# Hyper + `yper` A CLI to bootstrap new projects! ---- - Generate an Advanced Project Template in seconds. ## Prerequisites @@ -35,7 +33,7 @@ $ npm i -g . # to add it as a global variable ```bash $ hyper help -Hyper v2.1 by Shorky +Hyper v2.3 by Shorky A CLI to bootstrap new projects! USAGE: @@ -49,6 +47,7 @@ COMMANDS: OPTIONS: -c, --clear Clear Terminal (on by Default) -v, --version Prints CLI version + -y, --default Roll with default selection -y, --install Install project dependencies -r, --rainbow I wonder?! ``` @@ -58,13 +57,13 @@ OPTIONS: ```bash $ hyper ls --------------------------------------------------------- -LANGUAGE Size(kb) NAME +LANGUAGE Size(kb) NAME --------------------------------------------------------- -(-) 14.4 Jumpstart -Typescript 15.0 Node-Proj -Javascript 12.2 Static-Web -Rust-Lang 11.2 Rust-Crate -Java - Java-Proj (Coming soon) +(-) 14.01 Jumpstart +Typescript 14.62 Node-Proj +Javascript 12.01 Static-Web +Rust-Lang 10.97 Rust-Crate +Java - Java-Proj (Coming soon) --------------------------------------------------------- ``` diff --git a/Templates/Node/Src/App.ts b/Templates/Node/Src/App.ts index d0a91ab..351502f 100644 --- a/Templates/Node/Src/App.ts +++ b/Templates/Node/Src/App.ts @@ -1 +1 @@ -console.log('Heyo!') +console.log('Heyo!'); diff --git a/package.json b/package.json index 06f5500..873f36f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@sharksv/hyper", + "version": "2.3.0", "description": "A CLI to bootstrap new projects!", - "version": "2.2.3", "keywords": [ "Cli", "Hyper", @@ -11,10 +11,11 @@ "bin": { "hyper": "Bin/Hyper" }, - "main": "Build/Cli.js", + "main": "Cli/index.js", + "type": "commonjs", "files": [ "Bin", - "Build/**/*", + "Cli/**/*", "Templates", "LICENSE", "README.md" @@ -47,7 +48,7 @@ "printWidth": 80, "useTabs": true, "tabWidth": 4, - "semi": false + "semi": true }, "eslintConfig": { "root": true, @@ -65,7 +66,7 @@ "node": true }, "ignorePatterns": [ - "Build", + "Cli", "node_modules" ] }, @@ -77,17 +78,18 @@ "dependencies": { "chalk": "4.1.2", "execa": "5.1.1", + "fs-extra": "^10.0.0", "inquirer": "^8.2.0", "listr": "^0.14.3", "meow": "9.0.0", - "ncp": "^2.0.0", "update-notifier": "^5.1.0" }, "devDependencies": { - "@types/inquirer": "^8.1.3", + "@types/chalk": "^2.2.0", + "@types/fs-extra": "^9.0.13", + "@types/inquirer": "^8.2.0", "@types/listr": "^0.14.4", "@types/meow": "^6.0.0", - "@types/ncp": "^2.0.5", "@types/node": "^17.0.2", "@types/update-notifier": "^5.1.0", "@typescript-eslint/eslint-plugin": "^5.8.0", diff --git a/tsconfig.json b/tsconfig.json index 3f9d392..ec69603 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,12 @@ { "compilerOptions": { - "target": "es2021", - "outDir": "Build", - "rootDir": ".", - "module": "commonjs", + "target": "es6", + "outDir": "Cli", + "rootDir": "Lib", + "module": "CommonJS", "moduleResolution": "node", "resolveJsonModule": true, - "esModuleInterop": true, "declaration": false, - "allowSyntheticDefaultImports": true, "strict": true, // Checks diff --git a/yarn.lock b/yarn.lock index 5c06f27..3aa1ee7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,23 +3,23 @@ "@babel/code-frame@^7.0.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: - "@babel/highlight" "^7.16.0" + "@babel/highlight" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" @@ -39,9 +39,9 @@ strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + version "0.9.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e" + integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -92,15 +92,29 @@ dependencies: defer-to-connect "^1.0.1" +"@types/chalk@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" + integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== + dependencies: + chalk "*" + "@types/configstore@*": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/configstore/-/configstore-5.0.1.tgz#7be34d28ce29a408c98e717ada0488664eaf6173" integrity sha512-c/QCznvk7bLKGhHETj29rqKufui3jaAxjBhK4R2zUrMG5UG0qTwfWYxBoUbH8JCyDjdCWMIxPJ7/Fdz1UcAnWg== -"@types/inquirer@^8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe" - integrity sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ== +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/inquirer@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.0.tgz#b9566d048f5ff65159f2ed97aff45fe0f00b35ec" + integrity sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ== dependencies: "@types/through" "*" rxjs "^7.2.0" @@ -130,17 +144,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/ncp@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/ncp/-/ncp-2.0.5.tgz#5c53b229a321946102a188b603306162137f4fb9" - integrity sha512-ocK0p8JuFmX7UkMabFPjY0F7apPvQyLWt5qtdvuvQEBz9i4m2dbzV+6L1zNaUp042RfnL6pHnxDE53OH6XQ9VQ== - dependencies: - "@types/node" "*" - "@types/node@*", "@types/node@^17.0.2": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.2.tgz#a4c07d47ff737e8ee7e586fe636ff0e1ddff070a" - integrity sha512-JepeIUPFDARgIs0zD/SKPgFsJEAF0X5/qO80llx59gOxFTboS9Amv3S+QfB7lqBId5sFXJ99BN0J6zFRvL9dDA== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.13.tgz#5ed7ed7c662948335fcad6c412bb42d99ea754e3" + integrity sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -163,12 +170,13 @@ boxen "^4.2.0" "@typescript-eslint/eslint-plugin@^5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.0.tgz#52cd9305ceef98a5333f9492d519e6c6c7fe7d43" - integrity sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA== + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.1.tgz#870195d0f2146b36d11fc71131b75aba52354c69" + integrity sha512-xN3CYqFlyE/qOcy978/L0xLR2HlcAGIyIK5sMOasxaaAPfQRj/MmMV6OC3I7NZO84oEUdWCOju34Z9W8E0pFDQ== dependencies: - "@typescript-eslint/experimental-utils" "5.8.0" - "@typescript-eslint/scope-manager" "5.8.0" + "@typescript-eslint/scope-manager" "5.10.1" + "@typescript-eslint/type-utils" "5.10.1" + "@typescript-eslint/utils" "5.10.1" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -176,60 +184,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.0.tgz#0916ffe98d34b3c95e3652efa0cace61a7b25728" - integrity sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.8.0" - "@typescript-eslint/types" "5.8.0" - "@typescript-eslint/typescript-estree" "5.8.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - "@typescript-eslint/parser@^5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.8.0.tgz#b39970b21c1d7bc4a6018507fb29b380328d2587" - integrity sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw== + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.1.tgz#4ce9633cc33fc70bc13786cb793c1a76fe5ad6bd" + integrity sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA== dependencies: - "@typescript-eslint/scope-manager" "5.8.0" - "@typescript-eslint/types" "5.8.0" - "@typescript-eslint/typescript-estree" "5.8.0" + "@typescript-eslint/scope-manager" "5.10.1" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/typescript-estree" "5.10.1" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.8.0.tgz#2371095b4fa4c7be6a80b380f4e1b49c715e16f4" - integrity sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg== +"@typescript-eslint/scope-manager@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809" + integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg== dependencies: - "@typescript-eslint/types" "5.8.0" - "@typescript-eslint/visitor-keys" "5.8.0" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" -"@typescript-eslint/types@5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.8.0.tgz#e7fa74ec35d9dbe3560d039d3d8734986c3971e0" - integrity sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg== +"@typescript-eslint/type-utils@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.10.1.tgz#5e526c00142585e40ab1503e83f1ff608c367405" + integrity sha512-AfVJkV8uck/UIoDqhu+ptEdBoQATON9GXnhOpPLzkQRJcSChkvD//qsz9JVffl2goxX+ybs5klvacE9vmrQyCw== + dependencies: + "@typescript-eslint/utils" "5.10.1" + debug "^4.3.2" + tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.0.tgz#900469ba9d5a37f4482b014ecce4a5dbb86cb4dd" - integrity sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ== +"@typescript-eslint/types@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea" + integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q== + +"@typescript-eslint/typescript-estree@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15" + integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ== dependencies: - "@typescript-eslint/types" "5.8.0" - "@typescript-eslint/visitor-keys" "5.8.0" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@5.8.0": - version "5.8.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.0.tgz#22d4ed96fe2451135299239feedb9fe1dcec780c" - integrity sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug== +"@typescript-eslint/utils@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.1.tgz#fa682a33af47080ba2c4368ee0ad2128213a1196" + integrity sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.10.1" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/typescript-estree" "5.10.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/visitor-keys@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b" + integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ== dependencies: - "@typescript-eslint/types" "5.8.0" + "@typescript-eslint/types" "5.10.1" eslint-visitor-keys "^3.0.0" acorn-jsx@^5.3.1: @@ -237,10 +254,10 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== +acorn@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -259,11 +276,6 @@ ansi-align@^3.0.0: dependencies: string-width "^4.1.0" -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -443,9 +455,14 @@ camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@*: + version "5.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.0.tgz#bd96c6bb8e02b96e08c0c3ee2a9d90e050c7b832" + integrity sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ== chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" @@ -704,13 +721,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -773,15 +783,15 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" - integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" + integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== eslint@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.5.0.tgz#ddd2c1afd8f412036f87ae2a063d2aa296d3175f" - integrity sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg== + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.8.0.tgz#9762b49abad0cb4952539ffdb0a046392e571a2d" + integrity sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ== dependencies: "@eslint/eslintrc" "^1.0.5" "@humanwhocodes/config-array" "^0.9.2" @@ -790,12 +800,11 @@ eslint@^8.5.0: cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" eslint-scope "^7.1.0" eslint-utils "^3.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.2.0" + eslint-visitor-keys "^3.2.0" + espree "^9.3.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -803,7 +812,7 @@ eslint@^8.5.0: functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.6.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" @@ -814,20 +823,18 @@ eslint@^8.5.0: minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" - progress "^2.0.0" regexpp "^3.2.0" - semver "^7.2.1" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc" - integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg== +espree@^9.2.0, espree@^9.3.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.0.tgz#c1240d79183b72aaee6ccfa5a90bc9111df085a8" + integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ== dependencies: - acorn "^8.6.0" + acorn "^8.7.0" acorn-jsx "^5.3.1" eslint-visitor-keys "^3.1.0" @@ -894,10 +901,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -983,9 +990,18 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs.realpath@^1.0.0: version "1.0.0" @@ -1062,15 +1078,15 @@ globals@^13.6.0, globals@^13.9.0: type-fest "^0.20.2" globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" got@^9.6.0: @@ -1090,7 +1106,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -1135,9 +1151,9 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" @@ -1173,7 +1189,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4, ignore@^5.1.8: +ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -1266,10 +1282,10 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.2.0, is-core-module@^2.5.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -1414,6 +1430,15 @@ json-stable-stringify-without-jsonify@^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= +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -1613,7 +1638,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -1682,11 +1707,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -ncp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= - normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -1867,7 +1887,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -1878,9 +1898,9 @@ path-type@^4.0.0: integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== prelude-ls@^1.2.1: version "1.2.1" @@ -1904,11 +1924,6 @@ prettier@^2.5.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== -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== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2042,12 +2057,13 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.10.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" @@ -2104,11 +2120,11 @@ rxjs@^6.3.3, rxjs@^6.5.1: tslib "^1.9.0" rxjs@^7.2.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== + version "7.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b" + integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== dependencies: - tslib "~2.1.0" + tslib "^2.1.0" safe-buffer@~5.2.0: version "5.2.1" @@ -2137,7 +2153,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: +semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -2299,6 +2315,11 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -2353,10 +2374,10 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +tslib@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== tsutils@^3.21.0: version "3.21.0" @@ -2410,9 +2431,9 @@ typedarray-to-buffer@^3.1.5: is-typedarray "^1.0.0" typescript@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== unique-string@^2.0.0: version "2.0.0" @@ -2421,6 +2442,11 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + update-notifier@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"