diff --git a/README.md b/README.md index fd55b12..c0ad124 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,21 @@ Dzeio Save/Restore Menu: - Quick save - Manual save ``` + +## Build it 🥇 + + +run the following +```bash +yarn +``` + +next you will have to change the file node_modules/enquirer/index.d.ts to [this](https://raw.githubusercontent.com/enquirer/enquirer/a128486736e20b439599d438ede2d92be737cadd/index.d.ts) else Typescript will show errors + +finnally run + +```bash +yarn build +``` + +and you will be able to launch it from `dist/cjs/cli.js` diff --git a/backups/Fish/functions/fish_prompt.fish b/backups/Fish/functions/fish_prompt.fish new file mode 100644 index 0000000..34c50bc --- /dev/null +++ b/backups/Fish/functions/fish_prompt.fish @@ -0,0 +1,69 @@ +function fish_prompt + # Cache exit status + set -l last_status $status + + # Just calculate these once, to save a few cycles when displaying the prompt + if not set -q __fish_prompt_hostname + set -g __fish_prompt_hostname (hostname|cut -d . -f 1) + end + if not set -q __fish_prompt_char + switch (id -u) + case 0 + set -g __fish_prompt_char \u276f\u276f + case '*' + set -g __fish_prompt_char » + end + end + + # Setup colors + set -l normal (set_color normal) + set -l cyan (set_color cyan) + set -l yellow (set_color yellow) + set -l bpurple (set_color -o purple) + set -l bred (set_color -o red) + set -l bcyan (set_color -o cyan) + set -l bwhite (set_color -o white) + + # Configure __fish_git_prompt + set -g __fish_git_prompt_show_informative_status true + set -g __fish_git_prompt_showcolorhints true + + # Color prompt char red for non-zero exit status + set -l pcolor $bpurple + if [ $last_status -ne 0 ] + set pcolor $bred + end + + # Top + echo -n $cyan$USER$normal at $yellow$__fish_prompt_hostname$normal in $bred(prompt_pwd)$normal + __fish_git_prompt + + echo + + # Bottom + echo -n $pcolor$__fish_prompt_char $normal +end + + +# wakatime for fish +# +# Add this to the fish_prompt function in +# ~/.config/fish/functions/fish_prompt.fish +# (or if it doesn't exist, create it). + + +# We've also included an example of how +# to determine the current project from the pwd. +# It'll only work without alterations if +# you happen to keep all your projects in +# ~/Sites/ on a Mac, but it's easy to modify + +set -l project + +if echo (pwd) | grep -qEi "^/Users/$USER/Sites/" + set project (echo (pwd) | sed "s#^/Users/$USER/Sites/\\([^/]*\\).*#\\1#") + else + set project "Terminal" + end + + wakatime --write --plugin "fish-wakatime/0.0.1" --entity-type app --project "$project" --entity (echo $history[1] | cut -d ' ' -f1) 2>&1 > /dev/null& diff --git a/backups/Fish/functions/ll.fish b/backups/Fish/functions/ll.fish new file mode 100755 index 0000000..cbfaf40 --- /dev/null +++ b/backups/Fish/functions/ll.fish @@ -0,0 +1,4 @@ +# Defined in - @ line 0 +function ll --description 'alias ll=ls' + ls $argv; +end diff --git a/backups/Fish/functions/ls.fish b/backups/Fish/functions/ls.fish new file mode 100755 index 0000000..5a8cc62 --- /dev/null +++ b/backups/Fish/functions/ls.fish @@ -0,0 +1,4 @@ +# Defined in - @ line 0 +function ls --description 'alias ls exa -lgha --time-style long-iso --grid --long --binary --classify --git' + exa -lgha --time-style long-iso --grid --long --binary --classify --git $argv; +end diff --git a/backups/Fish/functions/lsa.fish b/backups/Fish/functions/lsa.fish new file mode 100755 index 0000000..19aaf02 --- /dev/null +++ b/backups/Fish/functions/lsa.fish @@ -0,0 +1,4 @@ +# Defined in - @ line 0 +function lsa --description 'alias lsa=ls' + ls $argv; +end diff --git a/package.json b/package.json index 1848f81..5796eeb 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,11 @@ "dependencies": { "colors": "^1.4.0", "enquirer": "^2.3.2", + "inquirer": "^7.0.6", "listr": "^0.14.3" }, "devDependencies": { + "@types/inquirer": "^6.5.0", "@types/node": "^13.1.1", "ts-node": "^8.5.4", "typescript": "^3.7.4" diff --git a/src/Functions.ts b/src/Functions.ts index 06500a5..7b31c3b 100644 --- a/src/Functions.ts +++ b/src/Functions.ts @@ -5,7 +5,6 @@ import util from 'util' import readline from 'readline' import Options from './Options'; import Logger from './Logger'; -import Statics from './Statics'; const { Confirm } = require('enquirer') const exec = util.promisify(execSync) @@ -145,6 +144,7 @@ export async function processCommand(command: string, location: string, filename export async function getModules(): Promise> { + // Temporary fix before the modules are externalized return ['Fish', 'HyperJS', 'Nano', 'OhMyFish', 'VSCode', 'Yarn'] const res = [] console.log(`${__dirname}/modules`) @@ -158,7 +158,6 @@ export async function getModules(): Promise> { } return res } catch { - console.log(`${__dirname}/modules`) throw new Error(`${__dirname}/modules`) } } @@ -166,3 +165,26 @@ export async function getModules(): Promise> { export function capitalize(str: string) { return str[0].toUpperCase + str.substr(1).toLowerCase() } + + +/************************* + * Exec Wrapper * + *************************/ + +export async function cmdExist(cmd: string): Promise { + try { + await exec(`which ${cmd} 2> /dev/null`) + return true + } catch { + return false + } +} + +export function cmdExistSync(cmd: string): boolean { + try { + execSync(`which ${cmd} 2> /dev/null`) + return true + } catch { + return false + } +} diff --git a/src/Git.ts b/src/Git.ts new file mode 100644 index 0000000..11af762 --- /dev/null +++ b/src/Git.ts @@ -0,0 +1,65 @@ +import { promises as fs} from 'fs' +import Statics from './Statics' +import { exec, ChildProcess } from 'child_process' +import { cmdExistSync } from './Functions' +import { Readable } from 'stream' + +export default class Git { + + private isInstalled: boolean + + public constructor() { + this.isInstalled = cmdExistSync('git') + } + + public async isInitiated(): Promise { + if (!this.isInstalled) return false + try { + await this.run('git status') + return true + } catch { + return false + } + } + + // public async show() { + // const res = new Select({ + + // }).run() + // } + + public async hasChanges(): Promise { + if (!await this.isInitiated()) throw new Error('Repo is not initied !') + const { stdout } = await this.run('git status --porcelain') + const res = stdout ? await streamToString(stdout) : '' + return res.length > 0 + } + + public async init() { + const gitFolder = `${Statics.folder}/.git` + try { + await fs.access(gitFolder) + } catch { + await this.run("git init") + } + } + + public async getRemote() { + + } + + private async run(cmd: string): Promise { + return exec(cmd, { + cwd: Statics.folder + }) + } +} + +function streamToString (stream: Readable): Promise { + const chunks: any[] = [] + return new Promise((resolve, reject) => { + stream.on('data', chunk => chunks.push(chunk)) + stream.on('error', reject) + stream.on('end', () => resolve(chunks.join(""))) + }) +} diff --git a/src/Options.ts b/src/Options.ts index 232d54e..00d62da 100644 --- a/src/Options.ts +++ b/src/Options.ts @@ -2,6 +2,7 @@ import { getModules } from "./Functions" import fs, { promises as fsp } from "fs" import 'colors' import Statics from './Statics' +import inquirer, { DistinctChoice } from "inquirer" const { MultiSelect, Select } = require('enquirer') @@ -61,21 +62,28 @@ _This dotfiles was generated using https://www.npmjs.com/package/@dzeio/dotfiles } public async manager() { - const res = await new Select({ - name: 'select', - message: 'Select an option', + const resp = await inquirer.prompt({ + type: 'list', + name: 't', + message: 'Select an option'.white, choices: [ - 'Quick backup elements', - 'default file override', + { + name: 'Quick Backup Elements', + value: 'qbe' + }, + { + name: 'Default file override', + value: 'dfo' + }, 'Back' ] - }).run() - switch (res) { - case 'Quick backup elements': + }) + switch (resp.t) { + case 'qbe': await this.enabled() break - case 'default file override': + case 'dfo': await this.override() break default: @@ -86,23 +94,43 @@ _This dotfiles was generated using https://www.npmjs.com/package/@dzeio/dotfiles public async override() { let config = this.getConfig() - const res = await new Select({ + // const res = await new Select({ + // name: 'select', + // message: 'Default Override action ?'.white, + // footer: `current: ${this.getConfig().override}`, + // choices: [ + // {message: "Override", value: true}, + // {message: "Ask", value: undefined}, + // {message: "Skip", value: false} + // ] + // }).run() + const res = await inquirer.prompt({ + type: 'list', name: 'select', - message: 'Default Override action ?', - footer: `current: ${this.getConfig().override}`, + message: 'Default Override action ?'.white, + default: this.getConfig().override, choices: [ - {message: "Override", value: true}, - {message: "Ask", value: undefined}, - {message: "Skip", value: false} + { + name: "Override", + value: true + }, + { + name: "Ask", + value: undefined + }, + { + name: "Skip", + value: false + } ] - }).run() - config.override = res + }) + config.override = res.select this.setConfig(config) this.save() } public async enabled() { - let choices: Array = [] + let choices: Array<{name: string, value: string}> = [] const els = await getModules() let config = this.getConfig() for (const value of els) { @@ -111,20 +139,16 @@ _This dotfiles was generated using https://www.npmjs.com/package/@dzeio/dotfiles value }) } - const t = await new MultiSelect({ - name: 'enabled', - message: 'Select wich one to Backup/Restore when selecting quick'.white, - initial: this.getConfig().enabled.filter((el) => els.includes(el)), + + const t = await inquirer.prompt({ + type: 'checkbox', + name: 't', + message: 'Select which one to Backup/Restore when selecting quick'.white, choices, - footer: 'space to select, enter to confirm' - }).run() - config.enabled = t + default: this.getConfig().enabled.filter((el) => els.includes(el)) + }) + config.enabled = t.t this.setConfig(config) this.save() } } - -interface choice { - name: string, - value: string -} diff --git a/src/cli.ts b/src/cli.ts index 830f8f0..a6ca7e1 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -1,9 +1,10 @@ #!/usr/bin/env node console.clear() -const pkg = require('../package.json') +import pkg from './package.alias.json' +import 'colors' -console.log(`[${pkg.name}] version ${pkg.version}`) +console.log(`${pkg.name.white} > ${pkg.version.cyan}`) import Logger from './Logger' import ModuleInterface from './interfaces/ModuleInterface' @@ -11,6 +12,8 @@ import Options from './Options' import { getModules } from './Functions' import ListI, { ListrInterface } from './interfaces/Listr' import Statics from './Statics' +import Git from './Git' +import inquirer from 'inquirer' const logger = Logger.getInstance() const options = new Options() @@ -60,7 +63,6 @@ async function saveModule(moduleName: string, save = false): Promise { async function bootstrap(): Promise { const { MultiSelect } = await require('enquirer'); const Listr: ListI = await require('listr') - console.log(`${__dirname}`) let response: string = "" try { @@ -69,6 +71,10 @@ async function bootstrap(): Promise { process.exit(process.exitCode) } + if (response === "exit") { + return process.exit(0) + } + const config = options.getConfig() const modules = await getModules() const quick = config.enabled.filter((el) => modules.includes(el)) @@ -108,7 +114,10 @@ async function bootstrap(): Promise { await bootstrap() break case "git": - console.log(`cd ${Statics.folder}`) + // console.log(`cd ${Statics.folder}`) + const git = new Git() + await git.hasChanges() + // await git.init() // execSync(`git push`) default: break; diff --git a/src/package.alias.json b/src/package.alias.json new file mode 120000 index 0000000..4e26811 --- /dev/null +++ b/src/package.alias.json @@ -0,0 +1 @@ +../package.json \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index bcd7ca8..3e49456 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "include": ["src/cli.ts", "src/modules/*"], + "include": ["src/"], "exclude": [ ".vscode/", "node_modules/", @@ -21,7 +21,7 @@ "declarationDir": "./dist/types", "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./dotfiles.js", /* Concatenate and emit output to single file. */ + // "outFile": "", /* Concatenate and emit output to single file. */ "outDir": "./dist/cjs", /* Redirect output structure to the directory. */ "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ // "composite": true, /* Enable project compilation */ diff --git a/yarn.lock b/yarn.lock index 2baa484..0d645b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,11 +9,36 @@ dependencies: any-observable "^0.3.0" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/inquirer@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be" + integrity sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw== + dependencies: + "@types/through" "*" + rxjs "^6.4.0" + +"@types/node@*": + version "13.7.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" + integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== + "@types/node@^13.1.1": version "13.1.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.1.tgz#6d11a8c2d58405b3db9388ab740106cbfa64c3c9" integrity sha512-hx6zWtudh3Arsbl3cXay+JnkvVgCKzCWKv42C9J01N2T2np4h8w5X8u6Tpz5mj38kE3M9FM0Pazx8vKFFMnjLQ== +"@types/through@*": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" + integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== + dependencies: + "@types/node" "*" + ansi-colors@^3.2.1: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -24,6 +49,13 @@ ansi-escapes@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -34,6 +66,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@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -46,6 +83,14 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -81,6 +126,19 @@ chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -88,6 +146,13 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -96,6 +161,11 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -108,11 +178,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -133,6 +215,11 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + enquirer@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.2.tgz#1c30284907cadff5ed2404bd8396036dd3da070e" @@ -145,6 +232,15 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -160,6 +256,13 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -172,11 +275,42 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +inquirer@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.6.tgz#ee4ff0ea7ecda5324656fe665878790f66df7d0c" + integrity sha512-7SVO4h+QIdMq6XcqIqrNte3gS5MzCCKZdsq9DO4PJziBFNYzP3PGFbDjgadDb//MCahzgjCxvQ/O2wa7kx9o4w== + 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" + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -189,6 +323,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -250,6 +389,11 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" +lodash@^4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -276,6 +420,16 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -293,6 +447,18 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -306,13 +472,33 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -rxjs@^6.3.3: +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +run-async@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + dependencies: + is-promise "^2.1.0" + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.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== + signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -353,6 +539,15 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -367,6 +562,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -379,11 +581,30 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +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= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + ts-node@^8.5.4: version "8.5.4" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.5.4.tgz#a152add11fa19c221d0b48962c210cf467262ab2" @@ -400,6 +621,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + typescript@^3.7.4: version "3.7.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19"