diff --git a/bin/index.ts b/bin/index.ts index b002801..398c184 100755 --- a/bin/index.ts +++ b/bin/index.ts @@ -7,18 +7,16 @@ import packages from '../package.json' import { CommandInvoker, type Command, - LsCommand, - SyncCommand, - UpdateAllCommand, - CompareCommand, - UpdateCommand, - RevertCommand, - RestoreCommand + CommandFactory } from '../lib/command' +import { CommandTypes } from '../lib/const' + const program = new CommanderCommand() inquirer.registerPrompt('autocomplete', inquirerPrompt) +const factory: CommandFactory = new CommandFactory() + program .version(packages.version) .description(packages.description) @@ -27,16 +25,16 @@ program .command('ls') .description(`${chalk.yellow('LIST')} environment variables in an .env file for a specific service. Select a service and view its environment variables.`) .action(async () => { - const command: Command = new LsCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.LS) + command !== null && CommandInvoker.executeCommands(command) }) program .command('sync') .description(`${chalk.yellow('SYNC')} backs up your current project's .env file, restores the variables from a global .env file, and creates a symbolic link to the latest environment settings.`) .action(async () => { - const command: Command = new SyncCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.SYNC) + command !== null && CommandInvoker.executeCommands(command) }) program @@ -44,8 +42,8 @@ program .description(`${chalk.yellow('UPDATE-ALL')} occurrences of a specific environment variable across multiple service-specific .env files.`) .alias('ua') .action(async () => { - const command: Command = new UpdateAllCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.UPDATE_ALL) + command !== null && CommandInvoker.executeCommands(command) }) program @@ -53,8 +51,8 @@ program .description(`${chalk.yellow('COMPARE')} command is a handy utility for differences in two different files with the same variable.`) .alias('comp') .action(async () => { - const command: Command = new CompareCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.COMPARE) + command !== null && CommandInvoker.executeCommands(command) }) program @@ -62,8 +60,8 @@ program .description(`${chalk.yellow('UPDATE')} a single field in .env file and create a version.`) .alias('u') .action(async () => { - const command: Command = new UpdateCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.UPDATE) + command !== null && CommandInvoker.executeCommands(command) }) program @@ -71,16 +69,16 @@ program .description(`${chalk.yellow('REVERT')} a field in .env file to a specific version`) .alias('r') .action(async () => { - const command: Command = new RevertCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.REVERT) + command !== null && CommandInvoker.executeCommands(command) }) program .command('restore-env') .description(`${chalk.yellow('RESTORE')} the .env file based on the latest changes in the version.json file.`) .action(async () => { - const command: Command = new RestoreCommand() - CommandInvoker.executeCommands(command) + const command: Command | null = factory.createCommand(CommandTypes.RESTORE_ENV) + command !== null && CommandInvoker.executeCommands(command) }) program.parse(process.argv) diff --git a/lib/command/Command.ts b/lib/command/Command.ts index bbfdd71..a0f8c14 100644 --- a/lib/command/Command.ts +++ b/lib/command/Command.ts @@ -1,4 +1,4 @@ -import { getBaseFolder } from '../fileHandler' +import { getBaseFolder } from '../handler/fileHandler' import inquirer from 'inquirer' export abstract class Command { diff --git a/lib/command/CommandInvoker.ts b/lib/command/CommandInvoker.ts index 5660a53..04a0d72 100644 --- a/lib/command/CommandInvoker.ts +++ b/lib/command/CommandInvoker.ts @@ -1,4 +1,4 @@ -import { type Command } from './Command' +import { type Command } from './command' // eslint-disable-next-line @typescript-eslint/no-extraneous-class export class CommandInvoker { diff --git a/lib/command/commandFactory.ts b/lib/command/commandFactory.ts new file mode 100644 index 0000000..64ac63f --- /dev/null +++ b/lib/command/commandFactory.ts @@ -0,0 +1,35 @@ +import { CommandTypes } from '../const' +import { + type Command, + LsCommand, + SyncCommand, + UpdateAllCommand, + CompareCommand, + UpdateCommand, + RevertCommand, + RestoreCommand +} from '.' + +export class CommandFactory { + createCommand (commandType: number): Command | null { + switch (commandType) { + case CommandTypes.LS: + return new LsCommand() + case CommandTypes.SYNC: + return new SyncCommand() + case CommandTypes.COMPARE: + return new CompareCommand() + case CommandTypes.UPDATE: + return new UpdateCommand() + case CommandTypes.UPDATE_ALL: + return new UpdateAllCommand() + case CommandTypes.REVERT: + return new RevertCommand() + case CommandTypes.RESTORE_ENV: + return new RestoreCommand() + + default: + return null + } + } +} diff --git a/lib/command/commandTypes/CompareCommand.ts b/lib/command/commandTypes/CompareCommand.ts index a301a7b..90fba8a 100644 --- a/lib/command/commandTypes/CompareCommand.ts +++ b/lib/command/commandTypes/CompareCommand.ts @@ -1,6 +1,6 @@ -import { Command } from '../Command' -import { compareEnvFiles } from '../../envHandler' -import { getEnvFilesRecursively } from '../../fileHandler' +import { Command } from '../command' +import { compareEnvFiles } from '../../handler/envHandler' +import { getEnvFilesRecursively } from '../../handler/fileHandler' import Table from 'cli-table3' import chalk from 'chalk' import inquirer from 'inquirer' @@ -10,9 +10,7 @@ export class CompareCommand extends Command { const files: string [] = await getEnvFilesRecursively({ directory: this.baseFolder }) if (files.length < 2) { - console.log(`You must have a minimum of ${chalk.blue('2')} services registered to compare.`) - - return + throw new Error(`You must have a minimum of ${chalk.blue('2')} services registered to compare.`) } const answers = await inquirer.prompt([ @@ -39,27 +37,31 @@ export class CompareCommand extends Command { } async execute (): Promise { - const { source, destination } = await this.beforeExecute() + try { + const { source, destination } = await this.beforeExecute() - const { - differentVariables, - sourceServiceName, - destinationServiceName - } = await compareEnvFiles({ source, destination }) + const { + differentVariables, + sourceServiceName, + destinationServiceName + } = await compareEnvFiles({ source, destination }) - const table = new Table({ - head: ['VALUES', sourceServiceName, destinationServiceName], - wordWrap: true, - colWidths: [20, 30, 30], - wrapOnWordBoundary: false - }) + const table = new Table({ + head: ['VALUES', sourceServiceName, destinationServiceName], + wordWrap: true, + colWidths: [20, 30, 30], + wrapOnWordBoundary: false + }) - differentVariables.forEach(row => { - table.push(row) - }) + differentVariables.forEach(row => { + table.push(row) + }) - if (differentVariables.length > 0) { - console.log(table.toString()) + if (differentVariables.length > 0) { + console.log(table.toString()) + } + } catch (error) { + console.log(error.message) } } } diff --git a/lib/command/commandTypes/LsCommand.ts b/lib/command/commandTypes/LsCommand.ts index f8d13bb..e2a8ba0 100644 --- a/lib/command/commandTypes/LsCommand.ts +++ b/lib/command/commandTypes/LsCommand.ts @@ -1,6 +1,6 @@ -import { Command } from '../Command' -import { getValuesInEnv } from '../../envHandler' -import { getEnvFilesRecursively } from '../../fileHandler' +import { Command } from '../command' +import { getValuesInEnv } from '../../handler/envHandler' +import { getEnvFilesRecursively } from '../../handler/fileHandler' import Table from 'cli-table3' import chalk from 'chalk' import inquirer from 'inquirer' @@ -10,9 +10,7 @@ export class LsCommand extends Command { const files = await getEnvFilesRecursively({ directory: this.baseFolder }) if (files.length === 0) { - console.log(`You have not registered any service yet. Go to the file path of the request with your ${chalk.blue('.env')} file in it and run the ${chalk.blue('sync')} command.`) - - return + throw new Error(`You have not registered any service yet. Go to the file path of the request with your ${chalk.blue('.env')} file in it and run the ${chalk.blue('sync')} command.`) } const { targetPath } = await inquirer.prompt({ @@ -26,21 +24,25 @@ export class LsCommand extends Command { } async execute (): Promise { - const targetPath: string = await this.beforeExecute() + try { + const targetPath: string = await this.beforeExecute() - const { data } = await getValuesInEnv({ targetPath }) + const { data } = await getValuesInEnv({ targetPath }) - const table = new Table({ - head: ['ENV', 'VALUE'], - colWidths: [20, 30], - wrapOnWordBoundary: false, - wordWrap: true - }) + const table = new Table({ + head: ['ENV', 'VALUE'], + colWidths: [20, 30], + wrapOnWordBoundary: false, + wordWrap: true + }) - data.forEach(row => { - table.push(row) - }) + data.forEach(row => { + table.push(row) + }) - console.log(table.toString()) + console.log(table.toString()) + } catch (error) { + console.log(error.message) + } } } diff --git a/lib/command/commandTypes/RestoreCommand.ts b/lib/command/commandTypes/RestoreCommand.ts index 56f56f5..bad7711 100644 --- a/lib/command/commandTypes/RestoreCommand.ts +++ b/lib/command/commandTypes/RestoreCommand.ts @@ -1,5 +1,5 @@ -import { Command } from '../Command' -import { restoreEnvFile } from '../../envHandler' +import { Command } from '../command' +import { restoreEnvFile } from '../../handler/envHandler' import chalk from 'chalk' export class RestoreCommand extends Command { diff --git a/lib/command/commandTypes/RevertCommand.ts b/lib/command/commandTypes/RevertCommand.ts index 1b2a173..b86eb6e 100644 --- a/lib/command/commandTypes/RevertCommand.ts +++ b/lib/command/commandTypes/RevertCommand.ts @@ -1,7 +1,7 @@ -import { Command } from '../Command' -import { updateEnvFile, getUniqueEnvNames } from '../../envHandler' -import { getEnvFilesRecursively } from '../../fileHandler' -import { getEnvVersions } from '../../historyHandler' +import { Command } from '../command' +import { updateEnvFile, getUniqueEnvNames } from '../../handler/envHandler' +import { getEnvFilesRecursively } from '../../handler/fileHandler' +import { getEnvVersions } from '../../handler/historyHandler' import chalk from 'chalk' import inquirer from 'inquirer' import { format } from 'date-fns' diff --git a/lib/command/commandTypes/SyncCommand.ts b/lib/command/commandTypes/SyncCommand.ts index 94345ac..0b002d6 100644 --- a/lib/command/commandTypes/SyncCommand.ts +++ b/lib/command/commandTypes/SyncCommand.ts @@ -1,5 +1,5 @@ -import { Command } from '../Command' -import { syncEnvFile } from '../../envHandler' +import { Command } from '../command' +import { syncEnvFile } from '../../handler/envHandler' import chalk from 'chalk' export class SyncCommand extends Command { diff --git a/lib/command/commandTypes/UpdateAllCommand.ts b/lib/command/commandTypes/UpdateAllCommand.ts index 29505d2..f967d95 100644 --- a/lib/command/commandTypes/UpdateAllCommand.ts +++ b/lib/command/commandTypes/UpdateAllCommand.ts @@ -1,5 +1,5 @@ -import { Command } from '../Command' -import { updateAllEnvFile, promptForEnvVariable } from '../../envHandler' +import { Command } from '../command' +import { updateAllEnvFile, promptForEnvVariable } from '../../handler/envHandler' import chalk from 'chalk' import inquirer from 'inquirer' diff --git a/lib/command/commandTypes/UpdateCommand.ts b/lib/command/commandTypes/UpdateCommand.ts index 292f02f..007395c 100644 --- a/lib/command/commandTypes/UpdateCommand.ts +++ b/lib/command/commandTypes/UpdateCommand.ts @@ -1,6 +1,6 @@ -import { Command } from '../Command' -import { getUniqueEnvNames, updateEnvFile } from '../../envHandler' -import { getEnvFilesRecursively } from '../../fileHandler' +import { Command } from '../command' +import { getUniqueEnvNames, updateEnvFile } from '../../handler/envHandler' +import { getEnvFilesRecursively } from '../../handler/fileHandler' import chalk from 'chalk' import inquirer from 'inquirer' diff --git a/lib/command/index.ts b/lib/command/index.ts index 8014c01..6d38c84 100644 --- a/lib/command/index.ts +++ b/lib/command/index.ts @@ -1,9 +1,10 @@ -export * from './commandTypes/LsCommand' -export * from './commandTypes/SyncCommand' -export * from './commandTypes/UpdateAllCommand' -export * from './commandTypes/UpdateCommand' -export * from './commandTypes/CompareCommand' -export * from './commandTypes/RevertCommand' -export * from './commandTypes/RestoreCommand' -export * from './CommandInvoker' -export * from './Command' +export * from './commandTypes/lsCommand' +export * from './commandTypes/syncCommand' +export * from './commandTypes/updateAllCommand' +export * from './commandTypes/updateCommand' +export * from './commandTypes/compareCommand' +export * from './commandTypes/revertCommand' +export * from './commandTypes/restoreCommand' +export * from './commandInvoker' +export * from './command' +export * from './commandFactory' diff --git a/lib/const.ts b/lib/const.ts new file mode 100644 index 0000000..f206277 --- /dev/null +++ b/lib/const.ts @@ -0,0 +1,9 @@ +export enum CommandTypes { + LS = 1, + SYNC = 2, + UPDATE_ALL = 3, + COMPARE = 4, + UPDATE = 5, + REVERT = 6, + RESTORE_ENV = 7 +} diff --git a/lib/envHandler.ts b/lib/handler/envHandler.ts similarity index 100% rename from lib/envHandler.ts rename to lib/handler/envHandler.ts diff --git a/lib/fileHandler.ts b/lib/handler/fileHandler.ts similarity index 100% rename from lib/fileHandler.ts rename to lib/handler/fileHandler.ts diff --git a/lib/historyHandler.ts b/lib/handler/historyHandler.ts similarity index 97% rename from lib/historyHandler.ts rename to lib/handler/historyHandler.ts index 2ee3c8c..075ff4a 100644 --- a/lib/historyHandler.ts +++ b/lib/handler/historyHandler.ts @@ -1,6 +1,6 @@ import * as path from 'path' -import { type IEnvVersion } from './interfaces/env-version' +import { type IEnvVersion } from '../interfaces/env-version' import { createFileIfNotExists, diff --git a/package-lock.json b/package-lock.json index c28a543..3015777 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "envolve", - "version": "1.1.1", + "version": "1.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "envolve", - "version": "1.1.1", + "version": "1.1.2", "license": "ISC", "dependencies": { "chalk": "4.0.0", @@ -15,8 +15,7 @@ "date-fns": "^2.30.0", "inquirer": "^8.2.6", "inquirer-autocomplete-prompt": "^2.0.1", - "table": "^6.8.1", - "zx": "^7.2.3" + "table": "^6.8.1" }, "bin": { "envolve": "dist/index.js" @@ -1311,6 +1310,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1323,6 +1323,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -1331,6 +1332,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1444,15 +1446,6 @@ "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", "dev": true }, - "node_modules/@types/fs-extra": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.3.tgz", - "integrity": "sha512-sF59BlXtUdzEAL1u0MSvuzWd7PdZvZEtnaVkzX5mjpdWTJ8brG0jUqve3jPCzSzvAKKMHTG8F8o/WMQLtleZdQ==", - "dependencies": { - "@types/jsonfile": "*", - "@types/node": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", @@ -1527,32 +1520,15 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/jsonfile": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.3.tgz", - "integrity": "sha512-/yqTk2SZ1wIezK0hiRZD7RuSf4B3whFxFamB1kGStv+8zlWScTMcHanzfc0XKWs5vA1TkHeckBlOyM8jxU8nHA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz", - "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==" - }, "node_modules/@types/node": { "version": "20.8.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@types/ps-tree": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/ps-tree/-/ps-tree-1.1.4.tgz", - "integrity": "sha512-CJyu2BqU/aZN/s8Ili3jiMctqXfTjCaWXirEcjRD8y1lUQZJ8eNohnal8+LXeWFs1VbdAOrCIdgATFsv+lnQ5Q==" - }, "node_modules/@types/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", @@ -1574,11 +1550,6 @@ "@types/node": "*" } }, - "node_modules/@types/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/which/-/which-3.0.1.tgz", - "integrity": "sha512-OJWjr4k8gS1HXuOnCmQbBrQez+xqt/zqfp5PhgbKtsmEFEuojAg23arr+TiTZZ1TORdUF9RKXb/WKEpT1dwgSg==" - }, "node_modules/@types/yargs": { "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", @@ -2325,6 +2296,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -2749,14 +2721,6 @@ "node": ">= 8" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, "node_modules/date-fns": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", @@ -2891,6 +2855,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -2910,11 +2875,6 @@ "node": ">=6.0.0" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, "node_modules/electron-to-chromium": { "version": "1.4.569", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.569.tgz", @@ -3493,20 +3453,6 @@ "node": ">=0.10.0" } }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -3577,6 +3523,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3604,6 +3551,7 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -3617,28 +3565,6 @@ "bser": "2.1.1" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -3669,6 +3595,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3721,35 +3648,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==" - }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3806,14 +3704,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fx": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/fx/-/fx-30.2.0.tgz", - "integrity": "sha512-rIYQBmx85Jfhd3pkSw06YPgvSvfTi022ZXTeFDkcCZGCs5nt3sjqFBGtcMFe1TR2S00RDz63be0ab5mhCiOLBw==", - "bin": { - "fx": "index.js" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3920,6 +3810,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -3969,24 +3860,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -4002,7 +3875,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -4139,6 +4013,7 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, "engines": { "node": ">= 4" } @@ -4365,6 +4240,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4390,6 +4266,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -4421,6 +4298,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -4555,7 +4433,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -5354,17 +5233,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5561,11 +5429,6 @@ "tmpl": "1.0.5" } }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==" - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5576,6 +5439,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { "node": ">= 8" } @@ -5584,6 +5448,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -5616,6 +5481,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5637,41 +5503,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5989,18 +5820,11 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dependencies": { - "through": "~2.3" - } - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -6010,6 +5834,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -6138,20 +5963,6 @@ "node": ">= 6" } }, - "node_modules/ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -6180,6 +5991,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -6334,6 +6146,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -6366,6 +6179,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -6532,17 +6346,6 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, - "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -6578,17 +6381,6 @@ "source-map": "^0.6.0" } }, - "node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6616,14 +6408,6 @@ "node": ">=8" } }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", - "dependencies": { - "duplexer": "~0.1.1" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -6837,6 +6621,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -7141,15 +6926,8 @@ "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, "node_modules/update-browserslist-db": { "version": "1.0.13", @@ -7231,36 +7009,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpod": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/webpod/-/webpod-0.0.2.tgz", - "integrity": "sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==", - "bin": { - "webpod": "dist/index.js" - } - }, - "node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -7343,14 +7091,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", - "engines": { - "node": ">= 14" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -7398,53 +7138,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zx": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/zx/-/zx-7.2.3.tgz", - "integrity": "sha512-QODu38nLlYXg/B/Gw7ZKiZrvPkEsjPN3LQ5JFXM7h0JvwhEdPNNl+4Ao1y4+o3CLNiDUNcwzQYZ4/Ko7kKzCMA==", - "dependencies": { - "@types/fs-extra": "^11.0.1", - "@types/minimist": "^1.2.2", - "@types/node": "^18.16.3", - "@types/ps-tree": "^1.1.2", - "@types/which": "^3.0.0", - "chalk": "^5.2.0", - "fs-extra": "^11.1.1", - "fx": "*", - "globby": "^13.1.4", - "minimist": "^1.2.8", - "node-fetch": "3.3.1", - "ps-tree": "^1.2.0", - "webpod": "^0", - "which": "^3.0.0", - "yaml": "^2.2.2" - }, - "bin": { - "zx": "build/cli.js" - }, - "engines": { - "node": ">= 16.0.0" - } - }, - "node_modules/zx/node_modules/@types/node": { - "version": "18.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", - "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/zx/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } } } } diff --git a/package.json b/package.json index 14c82a0..04143be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "envolve", - "version": "1.1.2", + "version": "1.1.3", "description": "Envolve CLI is a powerful tool for managing environment variables in your projects. It allows you to easily create, update, compare, and sync environment files across different services.", "main": "index.ts", "scripts": { @@ -29,8 +29,7 @@ "date-fns": "^2.30.0", "inquirer": "^8.2.6", "inquirer-autocomplete-prompt": "^2.0.1", - "table": "^6.8.1", - "zx": "^7.2.3" + "table": "^6.8.1" }, "devDependencies": { "@types/eslint": "^8.44.6",