From 47f60a1626a070b77d37a898a40d72015fab6bad Mon Sep 17 00:00:00 2001 From: devlikepro Date: Sun, 26 Oct 2025 12:54:47 +0700 Subject: [PATCH] [core] cli --- package.json | 5 +- src/apps/chatwoot/cli/BufferedOutput.ts | 26 +++ src/apps/chatwoot/cli/cmd.disabled.ts | 7 + src/apps/chatwoot/cli/cmd.server.ts | 22 ++ src/apps/chatwoot/cli/cms.session.ts | 54 +++++ src/apps/chatwoot/cli/help.ts | 132 +++++++++++ src/apps/chatwoot/cli/index.ts | 167 ++++++++++++++ src/apps/chatwoot/cli/types.ts | 12 + src/apps/chatwoot/consumers/inbox/commands.ts | 214 ++---------------- src/apps/chatwoot/i18n/locale.ts | 5 + src/apps/chatwoot/i18n/locales/ar-AE.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/bn-BD.yaml | 81 +++++-- src/apps/chatwoot/i18n/locales/de-DE.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/en-US.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/es-ES.yaml | 86 +++++-- src/apps/chatwoot/i18n/locales/fa-IR.yaml | 81 +++++-- src/apps/chatwoot/i18n/locales/fr-FR.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/he-IL.yaml | 81 +++++-- src/apps/chatwoot/i18n/locales/hi-IN.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/id-ID.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/pa-PK.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/pt-BR.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/ru-RU.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/tr-TR.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/uk-UA.yaml | 85 +++++-- src/apps/chatwoot/i18n/locales/ur-PK.yaml | 83 +++++-- src/apps/chatwoot/i18n/locales/zh-CN.yaml | 85 +++++-- src/apps/chatwoot/i18n/templates.ts | 10 +- yarn.lock | 17 +- 29 files changed, 1526 insertions(+), 567 deletions(-) create mode 100644 src/apps/chatwoot/cli/BufferedOutput.ts create mode 100644 src/apps/chatwoot/cli/cmd.disabled.ts create mode 100644 src/apps/chatwoot/cli/cmd.server.ts create mode 100644 src/apps/chatwoot/cli/cms.session.ts create mode 100644 src/apps/chatwoot/cli/help.ts create mode 100644 src/apps/chatwoot/cli/index.ts create mode 100644 src/apps/chatwoot/cli/types.ts diff --git a/package.json b/package.json index 64b8ef79..982d862c 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "chokidar": "^3.6.0", "class-transformer": "^0.5.1", "class-validator": "0.14.0", + "commander": "^14.0.1", "del": "^8.0.0", "express-basic-auth": "^1.2.1", "file-type": "16.5.4", @@ -100,6 +101,7 @@ "rxjs": "^7.8.1", "sharp": "^0.33.4", "sqlite3": "^5.1.7", + "string-argv": "^0.3.2", "swagger-ui-express": "^4.1.4", "ulid": "^2.3.0", "undici": "^7.16.0", @@ -139,8 +141,7 @@ "ts-loader": "^6.2.1", "ts-node": "^10.9.2", "tsconfig-paths": "^4.1.0", - "typescript": "5.9.2", - "yargs": "^17.7.2" + "typescript": "5.9.2" }, "jest": { "moduleFileExtensions": [ diff --git a/src/apps/chatwoot/cli/BufferedOutput.ts b/src/apps/chatwoot/cli/BufferedOutput.ts new file mode 100644 index 00000000..f0652ffd --- /dev/null +++ b/src/apps/chatwoot/cli/BufferedOutput.ts @@ -0,0 +1,26 @@ +import { OutputConfiguration } from 'commander'; + +export class BufferedOutput implements OutputConfiguration { + private outBuffer: string[] = []; + private errBuffer: string[] = []; + + writeOut = (str: string): void => { + this.outBuffer.push(str); + }; + + writeErr = (str: string): void => { + this.errBuffer.push(str); + }; + + outputError = (str: string, write: (s: string) => void) => { + this.errBuffer.push(str); + }; + + get out() { + return this.outBuffer.join(''); + } + + get err() { + return this.errBuffer.join(''); + } +} diff --git a/src/apps/chatwoot/cli/cmd.disabled.ts b/src/apps/chatwoot/cli/cmd.disabled.ts new file mode 100644 index 00000000..40c8424b --- /dev/null +++ b/src/apps/chatwoot/cli/cmd.disabled.ts @@ -0,0 +1,7 @@ +import { CommandContext } from '@waha/apps/chatwoot/cli/types'; +import { TKey } from '@waha/apps/chatwoot/i18n/templates'; + +export async function CommandDisabled(ctx: CommandContext, command: string) { + const text = ctx.l.r('cli.cmd.disabled', { command: command }); + await ctx.conversation.incoming(text); +} diff --git a/src/apps/chatwoot/cli/cmd.server.ts b/src/apps/chatwoot/cli/cmd.server.ts new file mode 100644 index 00000000..fb266529 --- /dev/null +++ b/src/apps/chatwoot/cli/cmd.server.ts @@ -0,0 +1,22 @@ +import { CommandContext } from '@waha/apps/chatwoot/cli/types'; +import { TKey } from '@waha/apps/chatwoot/i18n/templates'; + +export async function ServerStatus(ctx: CommandContext) { + ctx.logger.info('Getting server version and status'); + const version = await ctx.waha.serverVersion(); + const status = await ctx.waha.serverStatus(); + const text = ctx.l.key(TKey.APP_SERVER_VERSION_AND_STATUS).render({ + version: JSON.stringify(version, null, 2), + status: JSON.stringify(status, null, 2), + }); + await ctx.conversation.incoming(text); +} + +export async function ServerReboot(ctx: CommandContext, force: boolean) { + const type = force ? 'force' : 'graceful'; + const tkey = force ? TKey.APP_SERVER_REBOOT_FORCE : TKey.APP_SERVER_REBOOT; + ctx.logger.info(`Rebooting server (${type})`); + const text = ctx.l.key(tkey).render(); + await ctx.conversation.incoming(text); + await ctx.waha.serverReboot(false); +} diff --git a/src/apps/chatwoot/cli/cms.session.ts b/src/apps/chatwoot/cli/cms.session.ts new file mode 100644 index 00000000..7a3d7f68 --- /dev/null +++ b/src/apps/chatwoot/cli/cms.session.ts @@ -0,0 +1,54 @@ +import { CommandContext } from '@waha/apps/chatwoot/cli/types'; +import { TKey } from '@waha/apps/chatwoot/i18n/templates'; +import { SessionStatusEmoji } from '@waha/apps/chatwoot/SessionStatusEmoji'; +import { AttachmentFromBuffer } from '@waha/apps/chatwoot/client/messages'; +import { MessageType } from '@waha/apps/chatwoot/client/types'; + +export async function SessionRestart(ctx: CommandContext) { + await ctx.waha.restart(ctx.session); +} + +export async function SessionStart(ctx: CommandContext) { + return SessionRestart(ctx); +} + +export async function SessionLogout(ctx: CommandContext) { + ctx.logger.info(`Logging out session ${ctx.session}`); + await ctx.waha.logout(ctx.session); + const text = ctx.l.key(TKey.APP_LOGOUT_SUCCESS).render(); + await ctx.conversation.incoming(text); +} + +export async function SessionStop(ctx: CommandContext) { + ctx.logger.info(`Stopping session ${ctx.session}`); + await ctx.waha.stop(ctx.session); +} + +export async function SessionStatus(ctx: CommandContext) { + ctx.logger.info(`Getting status for session ${ctx.session}`); + const session = await ctx.waha.get(ctx.session); + const emoji = SessionStatusEmoji(session.status); + const text = ctx.l.key(TKey.APP_SESSION_CURRENT_STATUS).render({ + emoji: emoji, + session: session.name, + status: session.status, + name: session.me?.pushName || 'Unknown', + id: session.me?.id || 'No phone number', + }); + await ctx.conversation.incoming(text); +} + +export async function SessionQR(ctx: CommandContext) { + const content = await ctx.waha.qr(ctx.session); + const message = AttachmentFromBuffer(content, 'qr.jpg'); + message.message_type = MessageType.INCOMING; + await ctx.conversation.send(message); +} + +export async function SessionScreenshot(ctx: CommandContext) { + ctx.logger.info(`Getting screenshot for session ${ctx.session}`); + const content = await ctx.waha.screenshot(ctx.session); + const message = AttachmentFromBuffer(content, 'screenshot.jpg'); + message.message_type = MessageType.INCOMING; + await ctx.conversation.send(message); +} diff --git a/src/apps/chatwoot/cli/help.ts b/src/apps/chatwoot/cli/help.ts new file mode 100644 index 00000000..b44884c5 --- /dev/null +++ b/src/apps/chatwoot/cli/help.ts @@ -0,0 +1,132 @@ +import { Command, Help, Option } from 'commander'; +import { Locale } from '@waha/apps/chatwoot/i18n/locale'; + +export function fullCommandPath(sub: Command): string { + const parts: string[] = []; + let cmd: Command | null = sub; + // collect names up to (but not including) the root program + const name = cmd.name(); + if (name) parts.push(name); + while (cmd && cmd.parent) { + cmd = cmd.parent!; + const name = cmd.name(); + if (name && name != 'program') parts.push(name); + } + return parts.reverse().join(' '); +} + +export function buildFormatHelp(l: Locale) { + /** + * Commands first, then Arguments, then Options + * @param cmd + * @param helper + */ + + return function formatHelp(this: Help, cmd: Command, helper: Help) { + const termWidth = helper.padWidth(cmd, helper); + const helpWidth = helper.helpWidth ?? 80; + + const callFormatItem = (term: string, description: string) => + helper.formatItem(term, termWidth, description, helper); + let output: string[] = []; + + const commandDescription = helper.commandDescription(cmd); + if (commandDescription.length > 0) { + output = output.concat([ + helper.boxWrap( + helper.styleCommandDescription(commandDescription), + helpWidth, + ), + '', + ]); + } + + const usage = helper.commandUsage(cmd); + if (usage) { + output.push( + `${ + helper.styleTitle(l.r('cli.help.usage.title')) + '\n' + } ${helper.styleUsage(helper.commandUsage(cmd))}`, + ); + output.push(''); + } + + const commandGroups = this.groupItems( + cmd.commands as Command[], + helper.visibleCommands(cmd), + (sub) => sub.helpGroup() || l.r('cli.help.commands.defaultGroup'), + ); + commandGroups.forEach((commands, group) => { + if (!commands.length) { + return; + } + + const commandLines = commands.map((sub) => { + const commandTerm = helper.styleSubcommandTerm( + helper.subcommandTerm(sub), + ); + const description = helper.subcommandDescription(sub); + const styledDescription = description + ? helper.styleSubcommandDescription(description) + : ''; + return `${commandTerm} ${styledDescription}`; + }); + + output.push(helper.styleTitle(group)); + output.push(...commandLines); + output.push(''); + }); + + const argumentList = helper + .visibleArguments(cmd) + .map((argument) => + callFormatItem( + helper.styleArgumentTerm(helper.argumentTerm(argument)), + helper.styleArgumentDescription(helper.argumentDescription(argument)), + ), + ); + output = output.concat( + this.formatItemList( + l.r('cli.help.arguments.title'), + argumentList, + helper, + ), + ); + + const optionGroups = this.groupItems( + cmd.options as Option[], + helper.visibleOptions(cmd), + (option) => + option.helpGroupHeading ?? l.r('cli.help.options.defaultGroup'), + ); + optionGroups.forEach((options, group) => { + const optionList = options.map((option) => + callFormatItem( + helper.styleOptionTerm(helper.optionTerm(option)), + helper.styleOptionDescription(helper.optionDescription(option)), + ), + ); + output = output.concat(this.formatItemList(group, optionList, helper)); + }); + + if (helper.showGlobalOptions) { + const globalOptionList = helper + .visibleGlobalOptions(cmd) + .map((option) => + callFormatItem( + helper.styleOptionTerm(helper.optionTerm(option)), + helper.styleOptionDescription(helper.optionDescription(option)), + ), + ); + output = output.concat( + this.formatItemList( + l.r('cli.help.globalOptions.title'), + globalOptionList, + helper, + ), + ); + } + + return output.join('\n'); + }; +} diff --git a/src/apps/chatwoot/cli/index.ts b/src/apps/chatwoot/cli/index.ts new file mode 100644 index 00000000..c07596e8 --- /dev/null +++ b/src/apps/chatwoot/cli/index.ts @@ -0,0 +1,167 @@ +import { Command, CommanderError, OutputConfiguration } from 'commander'; +import argvSplit from 'string-argv'; +import { BufferedOutput } from '@waha/apps/chatwoot/cli/BufferedOutput'; +import { buildFormatHelp, fullCommandPath } from '@waha/apps/chatwoot/cli/help'; +import { CommandContext } from '@waha/apps/chatwoot/cli/types'; +import { + SessionLogout, + SessionQR, + SessionRestart, + SessionScreenshot, + SessionStart, + SessionStatus, + SessionStop, +} from '@waha/apps/chatwoot/cli/cms.session'; +import { ServerReboot, ServerStatus } from '@waha/apps/chatwoot/cli/cmd.server'; +import { ChatWootCommandsConfig } from '@waha/apps/chatwoot/dto/config.dto'; +import { CommandDisabled } from '@waha/apps/chatwoot/cli/cmd.disabled'; + +function BuildProgram( + commands: ChatWootCommandsConfig, + ctx: CommandContext, + output: OutputConfiguration, +) { + const l = ctx.l; + const SessionGroup = l.r('cli.cmd.root.sub.session'); + const ServerGroup = l.r('cli.cmd.root.sub.server'); + + const program = new Command(); + program + .name('') + .description(l.r('cli.cmd.root.description')) + .exitOverride() + .configureOutput(output) + .commandsGroup(SessionGroup) + .commandsGroup(ServerGroup) + .configureHelp({ + helpWidth: 200, + styleOptionTerm(str: string) { + return `- \`${str}\``; + }, + styleUsage(str) { + return `**${str}**`; + }, + styleSubcommandTerm(str: string) { + return `- **${str}**`; + }, + styleSubcommandDescription(str: string) { + return str ? `- ${str}` : str; + }, + subcommandTerm: fullCommandPath, + commandUsage(cmd) { + // For the root program - no usage + if (!cmd.parent) + return `${l.r('cli.usage.command')} ${l.r('cli.usage.options')}`; + // For subcommands, keep default behavior + if (cmd.commands.length > 0) { + return `${fullCommandPath(cmd)} ${l.r('cli.usage.command')} ${l.r( + 'cli.usage.options', + )}`; + } + return `${fullCommandPath(cmd)} ${l.r('cli.usage.options')}`; + }, + formatHelp: buildFormatHelp(l), + }); + + // + // Session + // + program + .command('status') + .alias('1') + .description(l.r('cli.cmd.session.status.description')) + .helpGroup(SessionGroup) + .action(() => SessionStatus(ctx)); + program + .command('restart') + .alias('2') + .description(l.r('cli.cmd.session.restart.description')) + .helpGroup(SessionGroup) + .action(() => SessionRestart(ctx)); + program + .command('start') + .alias('3') + .description(l.r('cli.cmd.session.start.description')) + .helpGroup(SessionGroup) + .action(() => SessionStart(ctx)); + program + .command('stop') + .alias('4') + .description(l.r('cli.cmd.session.stop.description')) + .helpGroup(SessionGroup) + .action(() => SessionStop(ctx)); + program + .command('logout') + .alias('5') + .description(l.r('cli.cmd.session.logout.description')) + .helpGroup(SessionGroup) + .action(() => SessionLogout(ctx)); + program + .command('qr') + .alias('6') + .description(l.r('cli.cmd.session.qr.description')) + .helpGroup(SessionGroup) + .action(() => SessionQR(ctx)); + program + .command('screenshot') + .alias('7') + .description(l.r('cli.cmd.session.screenshot.description')) + .helpGroup(SessionGroup) + .action(() => SessionScreenshot(ctx)); + + // + // Server + // + const server = program + .command('server', { hidden: !commands.server }) + .description(l.r('cli.cmd.server.description')) + .helpGroup(ServerGroup); + if (!commands.server) { + // Do not show help, show disabled ASAP + server.action(() => CommandDisabled(ctx, 'server')); + } + server + .command('status') + .description(l.r('cli.cmd.server.status.description')) + .action(() => + commands.server + ? ServerStatus(ctx) + : CommandDisabled(ctx, 'server status'), + ); + server + .command('reboot') + .description(l.r('cli.cmd.server.reboot.description')) + .option('-f, --force', l.r('cli.cmd.server.reboot.option.force'), false) + .action((opts) => + commands.server + ? ServerReboot(ctx, opts.force) + : CommandDisabled(ctx, 'server reboot'), + ); + return program; +} + +export async function runText( + commands: ChatWootCommandsConfig, + ctx: CommandContext, + text: string, +) { + // Prepare text for cli like command + text = text + .split('\n') // split into lines + .map((line) => line.trimStart()) // remove indentation + .join(' ') // join with space + .trim(); // final cleanup + const output = new BufferedOutput(); + const program = BuildProgram(commands, ctx, output); + const argv = argvSplit(text, '', ''); + try { + await program.parseAsync(argv, { from: 'user' }); + } catch (err) { + if (err instanceof CommanderError) { + return output; + } else { + throw err; // unexpected bug in your action code + } + } + return output; +} diff --git a/src/apps/chatwoot/cli/types.ts b/src/apps/chatwoot/cli/types.ts new file mode 100644 index 00000000..3d118a22 --- /dev/null +++ b/src/apps/chatwoot/cli/types.ts @@ -0,0 +1,12 @@ +import { WAHASelf } from '@waha/apps/chatwoot/session/WAHASelf'; +import { Locale } from '@waha/apps/chatwoot/i18n/locale'; +import { Conversation } from '../client/Conversation'; +import { ILogger } from '@waha/apps/app_sdk/ILogger'; + +export interface CommandContext { + logger: ILogger; + l: Locale; + session: string; + waha: WAHASelf; + conversation: Conversation; +} diff --git a/src/apps/chatwoot/consumers/inbox/commands.ts b/src/apps/chatwoot/consumers/inbox/commands.ts index ce457469..bc4ab1ed 100644 --- a/src/apps/chatwoot/consumers/inbox/commands.ts +++ b/src/apps/chatwoot/consumers/inbox/commands.ts @@ -1,21 +1,15 @@ import { Processor } from '@nestjs/bullmq'; import { JOB_CONCURRENCY } from '@waha/apps/app_sdk/constants'; -import { ILogger } from '@waha/apps/app_sdk/ILogger'; -import { ContactConversationService } from '@waha/apps/chatwoot/client/ContactConversationService'; -import { AttachmentFromBuffer } from '@waha/apps/chatwoot/client/messages'; -import { MessageType } from '@waha/apps/chatwoot/client/types'; import { ChatWootInboxMessageConsumer } from '@waha/apps/chatwoot/consumers/inbox/base'; import { QueueName } from '@waha/apps/chatwoot/consumers/QueueName'; import { DIContainer } from '@waha/apps/chatwoot/di/DIContainer'; -import { Locale } from '@waha/apps/chatwoot/i18n/locale'; -import { WAHASelf } from '@waha/apps/chatwoot/session/WAHASelf'; -import { SessionStatusEmoji } from '@waha/apps/chatwoot/SessionStatusEmoji'; import { SessionManager } from '@waha/core/abc/manager.abc'; import { RMutexService } from '@waha/modules/rmutex/rmutex.service'; import { Job } from 'bullmq'; import { PinoLogger } from 'nestjs-pino'; import { TKey } from '@waha/apps/chatwoot/i18n/templates'; -import { ChatWootCommandsConfig } from '@waha/apps/chatwoot/dto/config.dto'; +import { runText } from '@waha/apps/chatwoot/cli'; +import { CommandContext } from '@waha/apps/chatwoot/cli/types'; @Processor(QueueName.INBOX_COMMANDS, { concurrency: JOB_CONCURRENCY }) export class ChatWootInboxCommandsConsumer extends ChatWootInboxMessageConsumer { @@ -32,195 +26,27 @@ export class ChatWootInboxCommandsConsumer extends ChatWootInboxMessageConsumer } protected async Process(container: DIContainer, body, job: Job) { - const handler = new SessionCommandHandler( - container.Logger(), - container.ContactConversationService(), - job.data.session, - container.Locale(), - container.WAHASelf(), - container.ChatWootConfig().commands, - ); - return await handler.handle(body); - } -} + const session = job.data.session; + const cmd = body.content; -const CommandServerPrefix = 'server '; + this.logger.info(`Executing command '${cmd}' for session ${session}...`); + const repo = container.ContactConversationService(); + const conversation = await repo.InboxNotifications(); -enum Command { - STATUS = 'status', - RESTART = 'restart', - START = 'start', - STOP = 'stop', - LOGOUT = 'logout', - QR = 'qr', - SCREENSHOT = 'screenshot', - HELP = 'help', - SERVER_STATUS = 'server status', - SERVER_REBOOT = 'server reboot', - SERVER_REBOOT_FORCE = 'server reboot force', -} - -const CommandMap: Record = { - // Status - [Command.STATUS]: Command.STATUS, - ['1']: Command.STATUS, - // Restart - [Command.RESTART]: Command.RESTART, - ['2']: Command.RESTART, - // Start - [Command.START]: Command.START, - ['3']: Command.START, - // Stop - [Command.STOP]: Command.STOP, - ['4']: Command.STOP, - // Logout - [Command.LOGOUT]: Command.LOGOUT, - ['5']: Command.LOGOUT, - // QR - [Command.QR]: Command.QR, - ['6']: Command.QR, - // Screenshot - [Command.SCREENSHOT]: Command.SCREENSHOT, - ['7']: Command.SCREENSHOT, - // Help - [Command.HELP]: Command.HELP, - ['8']: Command.HELP, - // Server commands - [Command.SERVER_STATUS]: Command.SERVER_STATUS, - [Command.SERVER_REBOOT]: Command.SERVER_REBOOT, - [Command.SERVER_REBOOT_FORCE]: Command.SERVER_REBOOT_FORCE, -}; - -class CommandIsNotImplementedError extends Error { - constructor(private command: string) { - super(`Command is not implemented`); - } -} - -class SessionCommandHandler { - constructor( - private logger: ILogger, - private repo: ContactConversationService, - private session: string, - private l: Locale, - private waha: WAHASelf, - private commands: ChatWootCommandsConfig, - ) {} - - async handle(message: any) { - const cmd = message.content?.toLowerCase(); - const command = this.findCommand(cmd) || Command.HELP; - this.logger.info( - `Executing command ${command} for session ${this.session}`, - ); - const warning = this.commandDisabledWarning(command); - const conversation = await this.repo.InboxNotifications(); - if (warning) { - const text = this.l.key(warning).render(); - await conversation.incoming(text); - return; + const ctx: CommandContext = { + logger: this.logger, + l: container.Locale(), + session: session, + waha: container.WAHASelf(), + conversation: conversation, + }; + const commands = container.ChatWootConfig().commands; + const output = await runText(commands, ctx, cmd); + if (output.out) { + await conversation.incoming(output.out); } - switch (command) { - case Command.RESTART: - await this.waha.restart(this.session); - break; - case Command.START: - await this.waha.restart(this.session); - break; - case Command.LOGOUT: - this.logger.info(`Logging out session ${this.session}`); - await this.waha.logout(this.session); - const text = this.l.key(TKey.APP_LOGOUT_SUCCESS).render(); - await conversation.incoming(text); - break; - case Command.STOP: - this.logger.info(`Stopping session ${this.session}`); - await this.waha.stop(this.session); - break; - case Command.STATUS: { - this.logger.info(`Getting status for session ${this.session}`); - const session = await this.waha.get(this.session); - const emoji = SessionStatusEmoji(session.status); - const text = this.l.key(TKey.APP_SESSION_CURRENT_STATUS).render({ - emoji: emoji, - session: session.name, - status: session.status, - name: session.me?.pushName || 'Unknown', - id: session.me?.id || 'No phone number', - }); - await conversation.incoming(text); - break; - } - case Command.SERVER_STATUS: { - this.logger.info('Getting server version and status'); - const version = await this.waha.serverVersion(); - const status = await this.waha.serverStatus(); - const text = this.l.key(TKey.APP_SERVER_VERSION_AND_STATUS).render({ - version: JSON.stringify(version, null, 2), - status: JSON.stringify(status, null, 2), - }); - await conversation.incoming(text); - break; - } - case Command.SERVER_REBOOT: { - this.logger.info('Rebooting server (graceful)'); - const text = this.l.key(TKey.APP_SERVER_REBOOT).render(); - await conversation.incoming(text); - await this.waha.serverReboot(false); - break; - } - case Command.SERVER_REBOOT_FORCE: { - this.logger.info('Rebooting server (force)'); - const text = this.l.key(TKey.APP_SERVER_REBOOT_FORCE).render(); - await conversation.incoming(text); - await this.waha.serverReboot(true); - break; - } - case Command.QR: { - const content = await this.waha.qr(this.session); - const message = AttachmentFromBuffer(content, 'qr.jpg'); - message.message_type = MessageType.INCOMING; - await conversation.send(message); - break; - } - case Command.SCREENSHOT: { - this.logger.info(`Getting screenshot for session ${this.session}`); - const content = await this.waha.screenshot(this.session); - const message = AttachmentFromBuffer(content, 'screenshot.jpg'); - message.message_type = MessageType.INCOMING; - await conversation.send(message); - break; - } - case Command.HELP: { - const text = this.l - .key(TKey.APP_COMMANDS_LIST) - .render({ commands: this.commands }); - await conversation.incoming(text); - break; - } - default: - throw new CommandIsNotImplementedError(cmd); + if (output.err) { + await conversation.incoming(output.err); } } - - /** - * Check if the command allowed for this session - * Returns `null` if allowed or the message key to show as an error - */ - commandDisabledWarning(command: Command): TKey | null { - if (!this.commands.server && command.startsWith(CommandServerPrefix)) { - return TKey.APP_COMMANDS_SERVER_DISABLED; - } - return null; - } - - findCommand(text: string): Command { - // Remove empty from end - text = text.trim(); - // Remove empty from start - text = text.trimStart(); - // Remove empty from end - text = text.trimEnd(); - return CommandMap[text] || null; - } } diff --git a/src/apps/chatwoot/i18n/locale.ts b/src/apps/chatwoot/i18n/locale.ts index 021f5b58..0e56819b 100644 --- a/src/apps/chatwoot/i18n/locale.ts +++ b/src/apps/chatwoot/i18n/locale.ts @@ -18,6 +18,11 @@ export class Locale { return new Template(this.strings[key] || key); } + r(key: K, data: TemplatePayloads[K] = null): string { + const template = this.key(key as TKey); + return template.render(data as any); + } + /** * Overrides the existing strings with the provided strings for the locale. * Merges the new strings with the current strings. diff --git a/src/apps/chatwoot/i18n/locales/ar-AE.yaml b/src/apps/chatwoot/i18n/locales/ar-AE.yaml index 32ca9732..3731d44c 100644 --- a/src/apps/chatwoot/i18n/locales/ar-AE.yaml +++ b/src/apps/chatwoot/i18n/locales/ar-AE.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ تم تحديث إعدادات جلسة واتساب **{{{name}}}**. -app.commands.list: |- - يمكنك إدارة **تكامل واتساب** عن طريق إرسال أحد الأوامر التالية: +cli.usage.command: |- + [الأمر] - 🖥️ **الجلسة**: - 1. **status** - الحصول على حالة الجلسة الحالية. - 2. **restart** - إعادة تشغيل الجلسة - سيحاول هذا إعادة توصيل حساب واتساب الخاص بك. - 3. **start** - بدء الجلسة. - 4. **stop** - إيقاف الجلسة. - 5. **logout** - تسجيل الخروج من الجلسة، حتى تتمكن من مسح رمز QR وإصلاح الجلسة. - 6. **qr** - الحصول على رمز QR للجلسة. - 7. **screenshot** - الحصول على لقطة شاشة للجلسة (متاح فقط في محرك **WEBJS**). - 8. **help** - الأوامر المتاحة. +cli.usage.options: |- + [الخيارات] - {{#commands.server}} - ⚙️ الخادم: - - **server status** - الحصول على معلومات إصدار الخادم وحالته. - - **server reboot** - إعادة تشغيل الخادم بسلاسة. - - **server reboot force** - إعادة تشغيل الخادم بالقوة. - {{/commands.server}} +cli.cmd.disabled: ⛔ **تم تعطيل الأمر `{{command}}`**. - أرسل **أمرًا** (غير حساس لحالة الأحرف) أو **رقم أمر** إلى هذه المحادثة. - -app.commands.server.disabled: ⛔ **تم تعطيل أوامر الخادم**. - - يرجى التواصل مع مسؤول النظام لديك. + يرجى الاتصال بالمسؤول الخاص بك. أرسل **help** للحصول على قائمة الأوامر المتاحة. +cli.cmd.root.description: |- + أدِر **تكامل واتساب** الخاص بك! + +cli.cmd.root.sub.session: |- + 🖥️ **الجلسة**: + +cli.cmd.root.sub.server: |- + 🖥️ **الخادم**: + +cli.cmd.session.status.description: |- + اطّلع على حالة الجلسة الحالية. + +cli.cmd.session.restart.description: |- + أعد تشغيل الجلسة. + +cli.cmd.session.start.description: |- + ابدأ الجلسة. + +cli.cmd.session.stop.description: |- + أوقف الجلسة. + +cli.cmd.session.logout.description: |- + سجّل الخروج من الجلسة لمسح رمز QR جديد واستعادة الاتصال. + +cli.cmd.session.qr.description: |- + اعرض رمز QR الخاص بالجلسة. + +cli.cmd.session.screenshot.description: |- + التقط لقطة شاشة للجلسة (متاح فقط مع محرك **WEBJS**). + +cli.cmd.server.description: |- + أدِر الخادم. + +cli.cmd.server.status.description: |- + اعرض إصدار الخادم وحالته. + +cli.cmd.server.reboot.description: |- + أعد تشغيل الخادم. + +cli.cmd.server.reboot.option.force: |- + فرض إعادة تشغيل فورية. + +cli.help.usage.title: |- + طريقة الاستخدام: أرسل أمراً إلى المحادثة بالشكل التالي: + +cli.help.commands.defaultGroup: |- + **الأوامر:** + +cli.help.arguments.title: |- + **المعاملات:** + +cli.help.options.defaultGroup: |- + **الخيارات:** + +cli.help.globalOptions.title: |- + **الخيارات العامة:** + app.help.reminder: |- أرسل **help** للحصول على قائمة الأوامر المتاحة. diff --git a/src/apps/chatwoot/i18n/locales/bn-BD.yaml b/src/apps/chatwoot/i18n/locales/bn-BD.yaml index 7ad63daf..7357f988 100644 --- a/src/apps/chatwoot/i18n/locales/bn-BD.yaml +++ b/src/apps/chatwoot/i18n/locales/bn-BD.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ হোয়াটসঅ্যাপ সেশন **{{{name}}}** এর সেটিংস আপডেট করা হয়েছে। -app.commands.list: |- - আপনি নিম্নলিখিত কমান্ডগুলির একটি পাঠিয়ে **হোয়াটসঅ্যাপ ইন্টিগ্রেশন** পরিচালনা করতে পারেন: +cli.usage.command: |- + [কমান্ড] +cli.usage.options: |- + [বিকল্প] + +cli.cmd.disabled: ⛔ **`{{command}}` কমান্ডটি নিষ্ক্রিয় করা হয়েছে**। + + অনুগ্রহ করে আপনার প্রশাসকের সঙ্গে যোগাযোগ করুন। + + উপলব্ধ কমান্ডগুলির তালিকা পেতে **help** পাঠান। + +cli.cmd.root.description: |- + আপনার **হোয়াটসঅ্যাপ ইন্টিগ্রেশন** পরিচালনা করুন! + +cli.cmd.root.sub.session: |- 🖥️ **সেশন**: - 1. **status** - বর্তমান সেশনের স্ট্যাটাস পান। - 2. **restart** - সেশন পুনরায় চালু করুন - এটি আপনার হোয়াটসঅ্যাপ অ্যাকাউন্ট পুনরায় সংযোগ করার চেষ্টা করবে। - 3. **start** - সেশন শুরু করুন। - 4. **stop** - সেশন বন্ধ করুন। - 5. **logout** - সেশন থেকে লগআউট করুন, যাতে আপনি QR কোড স্ক্যান করতে পারেন এবং সেশন মেরামত করতে পারেন। - 6. **qr** - সেশনের জন্য QR কোড পান। - 7. **screenshot** - সেশনের স্ক্রিনশট পান (শুধুমাত্র **WEBJS** ইঞ্জিনে উপলব্ধ)। - 8. **help** - উপলব্ধ কমান্ডগুলি। - {{#commands.server}} - ⚙️ সার্ভার: - - **server status** - সার্ভারের সংস্করণ এবং স্ট্যাটাস তথ্য পান। - - **server reboot** - সার্ভার সুন্দরভাবে পুনরায় চালু করুন। - - **server reboot force** - সার্ভার জোর করে পুনরায় চালু করুন। - {{/commands.server}} +cli.cmd.root.sub.server: |- + 🖥️ **সার্ভার**: - এই কথোপকথনে একটি **কমান্ড** (কেস সংবেদনশীল নয়) বা **কমান্ড নম্বর** পাঠান। +cli.cmd.session.status.description: |- + বর্তমান সেশনের স্ট্যাটাস দেখুন। -app.commands.server.disabled: ⛔ **সার্ভার কমান্ড নিষ্ক্রিয় করা হয়েছে**। +cli.cmd.session.restart.description: |- + সেশন পুনরায় চালু করুন। - দয়া করে আপনার প্রশাসকের সাথে যোগাযোগ করুন। +cli.cmd.session.start.description: |- + সেশন শুরু করুন। - উপলব্ধ কমান্ডের তালিকা পেতে **help** পাঠান। +cli.cmd.session.stop.description: |- + সেশন বন্ধ করুন। + +cli.cmd.session.logout.description: |- + সংযোগ পুনরুদ্ধার করতে নতুন QR কোড স্ক্যান করার জন্য সেশন থেকে লগ আউট করুন। + +cli.cmd.session.qr.description: |- + সেশনের QR কোড দেখান। + +cli.cmd.session.screenshot.description: |- + সেশনের স্ক্রিনশট নিন (শুধুমাত্র **WEBJS** ইঞ্জিনে উপলব্ধ)। + +cli.cmd.server.description: |- + সার্ভার পরিচালনা করুন। + +cli.cmd.server.status.description: |- + সার্ভারের সংস্করণ এবং স্ট্যাটাস দেখান। + +cli.cmd.server.reboot.description: |- + সার্ভার পুনরায় চালু করুন। + +cli.cmd.server.reboot.option.force: |- + অবিলম্বে রিবুট করতে বাধ্য করুন। + +cli.help.usage.title: |- + ব্যবহার: কথোপকথনে নীচের ফরম্যাটে একটি কমান্ড পাঠান: + +cli.help.commands.defaultGroup: |- + **কমান্ডসমূহ:** + +cli.help.arguments.title: |- + **আর্গুমেন্টসমূহ:** + +cli.help.options.defaultGroup: |- + **বিকল্পসমূহ:** + +cli.help.globalOptions.title: |- + **গ্লোবাল বিকল্পসমূহ:** app.help.reminder: |- উপলব্ধ কমান্ডগুলির তালিকা পেতে **help** পাঠান। diff --git a/src/apps/chatwoot/i18n/locales/de-DE.yaml b/src/apps/chatwoot/i18n/locales/de-DE.yaml index b600e695..7613a2a3 100644 --- a/src/apps/chatwoot/i18n/locales/de-DE.yaml +++ b/src/apps/chatwoot/i18n/locales/de-DE.yaml @@ -120,34 +120,75 @@ app.updated.message: |- ✅ Einstellungen für WhatsApp-Sitzung **{{{name}}}** wurden aktualisiert. -app.commands.list: |- - Sie können die **WhatsApp Integration** verwalten, indem Sie einen der folgenden Befehle senden: +cli.usage.command: |- + [Befehl] - 🖥️ **Sitzung**: - 1. **status** - den aktuellen Sitzungsstatus abrufen. - 2. **restart** - die Sitzung neu starten - dies versucht, Ihr WhatsApp-Konto neu zu verbinden. - 3. **start** - die Sitzung starten. - 4. **stop** - die Sitzung stoppen. - 5. **logout** - von der Sitzung abmelden, damit Sie den QR-Code scannen und die Sitzung reparieren können. - 6. **qr** - den QR-Code für die Sitzung abrufen. - 7. **screenshot** - einen Screenshot der Sitzung erhalten (nur in der **WEBJS**-Engine verfügbar). - 8. **help** - verfügbare Befehle. +cli.usage.options: |- + [Optionen] - {{#commands.server}} - ⚙️ Server: - - **server status** - Serverversion und Statusinformationen abrufen. - - **server reboot** - Server ordnungsgemäß neu starten. - - **server reboot force** - Server erzwungen neu starten. - {{/commands.server}} - - Senden Sie einen **Befehl** (Groß-/Kleinschreibung wird nicht beachtet) oder eine **Befehlsnummer** an diese Konversation. - -app.commands.server.disabled: ⛔ **Serverbefehle sind deaktiviert**. +cli.cmd.disabled: ⛔ **Der Befehl `{{command}}` ist deaktiviert**. Bitte wenden Sie sich an Ihren Administrator. Senden Sie **help**, um die Liste der verfügbaren Befehle zu erhalten. +cli.cmd.root.description: |- + Verwalten Sie Ihre **WhatsApp-Integration**! + +cli.cmd.root.sub.session: |- + 🖥️ **Sitzung**: + +cli.cmd.root.sub.server: |- + 🖥️ **Server**: + +cli.cmd.session.status.description: |- + Aktuellen Sitzungsstatus abrufen. + +cli.cmd.session.restart.description: |- + Sitzung neu starten. + +cli.cmd.session.start.description: |- + Sitzung starten. + +cli.cmd.session.stop.description: |- + Sitzung stoppen. + +cli.cmd.session.logout.description: |- + Melden Sie die Sitzung ab, um einen neuen QR-Code zu scannen und die Verbindung wiederherzustellen. + +cli.cmd.session.qr.description: |- + QR-Code der Sitzung anzeigen. + +cli.cmd.session.screenshot.description: |- + Einen Screenshot der Sitzung aufnehmen (nur mit der **WEBJS**-Engine verfügbar). + +cli.cmd.server.description: |- + Server verwalten. + +cli.cmd.server.status.description: |- + Serverversion und -status anzeigen. + +cli.cmd.server.reboot.description: |- + Server neu starten. + +cli.cmd.server.reboot.option.force: |- + Neustart sofort erzwingen. + +cli.help.usage.title: |- + Verwendung: Senden Sie einen Befehl im folgenden Format an die Konversation: + +cli.help.commands.defaultGroup: |- + **Befehle:** + +cli.help.arguments.title: |- + **Argumente:** + +cli.help.options.defaultGroup: |- + **Optionen:** + +cli.help.globalOptions.title: |- + **Globale Optionen:** + app.help.reminder: |- Senden Sie **help**, um die Liste der verfügbaren Befehle zu erhalten. diff --git a/src/apps/chatwoot/i18n/locales/en-US.yaml b/src/apps/chatwoot/i18n/locales/en-US.yaml index 9fb25a2f..9ad157ec 100644 --- a/src/apps/chatwoot/i18n/locales/en-US.yaml +++ b/src/apps/chatwoot/i18n/locales/en-US.yaml @@ -290,34 +290,75 @@ app.updated.message: |- ✅ Settings for WhatsApp session **{{{name}}}** have been updated. -app.commands.list: |- - You can manage **WhatsApp Integration** by sending one of the following commands: +cli.usage.command: |- + [command] - 🖥️ **Session**: - 1. **status** - get the current session status. - 2. **restart** - restart the session - this will try to reconnect your WhatsApp account. - 3. **start** - start the session. - 4. **stop** - stop the session. - 5. **logout** - logout from the session, so you can scan QR code and repair the session. - 6. **qr** - get the QR code for the session. - 7. **screenshot** - get a screenshot of the session (only available in **WEBJS** engine). - 8. **help** - available commands. +cli.usage.options: |- + [options] - {{#commands.server}} - 🛠️ **Server**: - - **server status** - get the server version and status information. - - **server reboot** - reboot the server gracefully. - - **server reboot force** - force reboot the server. - - {{/commands.server}} - Send a **command** (case insensitive) or a **command number** to this conversation. - -app.commands.server.disabled: ⛔ **Server commands are disabled**. +cli.cmd.disabled: ⛔ **`{{command}}` command is disabled**. Please contact your administrator. Send **help** to get the list of available commands. +cli.cmd.root.description: |- + Manage your **WhatsApp Integration**! + +cli.cmd.root.sub.session: |- + 🖥️ **Session**: + +cli.cmd.root.sub.server: |- + 🖥️ **Session**: + +cli.cmd.session.status.description: |- + Get current session status. + +cli.cmd.session.restart.description: |- + Restart the session. + +cli.cmd.session.start.description: |- + Start the session. + +cli.cmd.session.stop.description: |- + Stop the session. + +cli.cmd.session.logout.description: |- + Log out of the session to scan a new QR code and restore the connection. + +cli.cmd.session.qr.description: |- + Show the session QR code. + +cli.cmd.session.screenshot.description: |- + Capture a session screenshot (available only with the **WEBJS** engine). + +cli.cmd.server.description: |- + Manage the server. + +cli.cmd.server.status.description: |- + Show the server version and status. + +cli.cmd.server.reboot.description: |- + Reboot the server. + +cli.cmd.server.reboot.option.force: |- + Force an immediate reboot. + +cli.help.usage.title: |- + Usage: send a command to the conversation in the format: + +cli.help.commands.defaultGroup: |- + **Commands:** + +cli.help.arguments.title: |- + **Arguments:** + +cli.help.options.defaultGroup: |- + **Options:** + +cli.help.globalOptions.title: |- + **Global Options:** + app.help.reminder: |- Send **help** to get the list of available commands. diff --git a/src/apps/chatwoot/i18n/locales/es-ES.yaml b/src/apps/chatwoot/i18n/locales/es-ES.yaml index a45881f6..e75a0a95 100644 --- a/src/apps/chatwoot/i18n/locales/es-ES.yaml +++ b/src/apps/chatwoot/i18n/locales/es-ES.yaml @@ -117,37 +117,75 @@ app.updated.message: |- ✅ La configuración para la sesión de WhatsApp **{{{name}}}** ha sido actualizada. -app.commands.list: |- - Puedes gestionar la **Integración de WhatsApp** enviando uno de los siguientes comandos: +cli.usage.command: |- + [comando] - 🖥️ **Sesión**: - 1. **status** - obtener el estado actual de la sesión. - 2. **restart** - reiniciar la sesión - esto intentará reconectar tu cuenta de WhatsApp. - 3. **start** - iniciar la sesión. - 4. **stop** - detener la sesión. - 5. **logout** - cerrar sesión, para que puedas escanear el código QR y reparar la sesión. - 6. **qr** - obtener el código QR para la sesión. - 7. **screenshot** - obtener una captura de pantalla de la sesión (solo disponible en el motor **WEBJS**). - 8. **help** - comandos disponibles. +cli.usage.options: |- + [opciones] - {{#commands.server}} - {{#commands.server}} - ⚙️ Servidor: - - **server status** - obtener información de versión y estado del servidor. - - **server reboot** - reiniciar el servidor de forma segura. - - **server reboot force** - forzar el reinicio del servidor. - {{/commands.server}} - {{/commands.server}} - - Envía un **comando** (no sensible a mayúsculas/minúsculas) o un **número de comando** a esta conversación. - -app.commands.server.disabled: ⛔ **Los comandos del servidor están - deshabilitados**. +cli.cmd.disabled: ⛔ **El comando `{{command}}` está deshabilitado**. Por favor, contacta a tu administrador. Envía **help** para obtener la lista de comandos disponibles. +cli.cmd.root.description: |- + ¡Administra tu **integración de WhatsApp**! + +cli.cmd.root.sub.session: |- + 🖥️ **Sesión**: + +cli.cmd.root.sub.server: |- + 🖥️ **Servidor**: + +cli.cmd.session.status.description: |- + Obtén el estado actual de la sesión. + +cli.cmd.session.restart.description: |- + Reinicia la sesión. + +cli.cmd.session.start.description: |- + Inicia la sesión. + +cli.cmd.session.stop.description: |- + Detén la sesión. + +cli.cmd.session.logout.description: |- + Cierra la sesión para escanear un nuevo código QR y restaurar la conexión. + +cli.cmd.session.qr.description: |- + Muestra el código QR de la sesión. + +cli.cmd.session.screenshot.description: |- + Captura una imagen de la sesión (disponible solo con el motor **WEBJS**). + +cli.cmd.server.description: |- + Administra el servidor. + +cli.cmd.server.status.description: |- + Muestra la versión y el estado del servidor. + +cli.cmd.server.reboot.description: |- + Reinicia el servidor. + +cli.cmd.server.reboot.option.force: |- + Forzar un reinicio inmediato. + +cli.help.usage.title: |- + Uso: envía un comando a la conversación en el formato: + +cli.help.commands.defaultGroup: |- + **Comandos:** + +cli.help.arguments.title: |- + **Argumentos:** + +cli.help.options.defaultGroup: |- + **Opciones:** + +cli.help.globalOptions.title: |- + **Opciones globales:** + app.help.reminder: |- Envía **help** para obtener la lista de comandos disponibles. diff --git a/src/apps/chatwoot/i18n/locales/fa-IR.yaml b/src/apps/chatwoot/i18n/locales/fa-IR.yaml index cc05f769..a5453506 100644 --- a/src/apps/chatwoot/i18n/locales/fa-IR.yaml +++ b/src/apps/chatwoot/i18n/locales/fa-IR.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ تنظیمات جلسه واتساپ **{{{name}}}** به‌روزرسانی شده است. -app.commands.list: |- - شما می‌توانید **ادغام واتساپ** را با ارسال یکی از دستورات زیر مدیریت کنید: +cli.usage.command: |- + [دستور] +cli.usage.options: |- + [گزینه‌ها] + +cli.cmd.disabled: ⛔ **دستور `{{command}}` غیرفعال شده است**. + + لطفاً با مدیر خود تماس بگیرید. + + برای دریافت فهرست دستورات موجود، **help** را ارسال کنید. + +cli.cmd.root.description: |- + یکپارچه‌سازی **واتساپ** خود را مدیریت کنید! + +cli.cmd.root.sub.session: |- 🖥️ **جلسه**: - 1. **status** - دریافت وضعیت فعلی جلسه. - 2. **restart** - راه‌اندازی مجدد جلسه - این تلاش خواهد کرد حساب واتساپ شما را مجدداً متصل کند. - 3. **start** - شروع جلسه. - 4. **stop** - توقف جلسه. - 5. **logout** - خروج از جلسه، تا بتوانید کد QR را اسکن کرده و جلسه را تعمیر کنید. - 6. **qr** - دریافت کد QR برای جلسه. - 7. **screenshot** - دریافت اسکرین‌شات از جلسه (فقط در موتور **WEBJS** در دسترس است). - 8. **help** - دستورات موجود. - {{#commands.server}} - ⚙️ سرور: - - **server status** - دریافت اطلاعات نسخه و وضعیت سرور. - - **server reboot** - راه‌اندازی مجدد سرور به صورت نرم. - - **server reboot force** - راه‌اندازی مجدد اجباری سرور. - {{/commands.server}} +cli.cmd.root.sub.server: |- + 🖥️ **سرور**: - یک **دستور** (بدون حساسیت به بزرگی و کوچکی حروف) یا **شماره دستور** را به این گفتگو ارسال کنید. +cli.cmd.session.status.description: |- + وضعیت فعلی جلسه را دریافت کنید. -app.commands.server.disabled: ⛔ **دستورات سرور غیرفعال است**. +cli.cmd.session.restart.description: |- + جلسه را مجدداً راه‌اندازی کنید. - لطفاً با مدیر سیستم خود تماس بگیرید. +cli.cmd.session.start.description: |- + جلسه را شروع کنید. - برای دریافت فهرست دستورات، **help** را ارسال کنید. +cli.cmd.session.stop.description: |- + جلسه را متوقف کنید. + +cli.cmd.session.logout.description: |- + برای اسکن کد QR جدید و بازیابی اتصال از جلسه خارج شوید. + +cli.cmd.session.qr.description: |- + کد QR جلسه را نمایش دهید. + +cli.cmd.session.screenshot.description: |- + از جلسه اسکرین‌شات بگیرید (فقط با موتور **WEBJS** در دسترس است). + +cli.cmd.server.description: |- + سرور را مدیریت کنید. + +cli.cmd.server.status.description: |- + نسخه و وضعیت سرور را نمایش دهید. + +cli.cmd.server.reboot.description: |- + سرور را راه‌اندازی مجدد کنید. + +cli.cmd.server.reboot.option.force: |- + راه‌اندازی مجدد فوری را اجباری کنید. + +cli.help.usage.title: |- + نحوه استفاده: دستور را با قالب زیر به گفتگو ارسال کنید: + +cli.help.commands.defaultGroup: |- + **دستورات:** + +cli.help.arguments.title: |- + **آرگومان‌ها:** + +cli.help.options.defaultGroup: |- + **گزینه‌ها:** + +cli.help.globalOptions.title: |- + **گزینه‌های عمومی:** app.help.reminder: |- برای دریافت لیست دستورات موجود، **help** را ارسال کنید. diff --git a/src/apps/chatwoot/i18n/locales/fr-FR.yaml b/src/apps/chatwoot/i18n/locales/fr-FR.yaml index f73672d8..929418bb 100644 --- a/src/apps/chatwoot/i18n/locales/fr-FR.yaml +++ b/src/apps/chatwoot/i18n/locales/fr-FR.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ Les paramètres de la session WhatsApp **{{{name}}}** ont été mis à jour. -app.commands.list: |- - Vous pouvez gérer l'**Intégration WhatsApp** en envoyant l'une des commandes suivantes : +cli.usage.command: |- + [commande] - 🖥️ **Session** : - 1. **status** - obtenir l'état actuel de la session. - 2. **restart** - redémarrer la session - cela tentera de reconnecter votre compte WhatsApp. - 3. **start** - démarrer la session. - 4. **stop** - arrêter la session. - 5. **logout** - se déconnecter de la session, pour pouvoir scanner le code QR et réparer la session. - 6. **qr** - obtenir le code QR pour la session. - 7. **screenshot** - obtenir une capture d'écran de la session (disponible uniquement dans le moteur **WEBJS**). - 8. **help** - commandes disponibles. +cli.usage.options: |- + [options] - {{#commands.server}} - ⚙️ Serveur : - - **server status** - obtenir les informations de version et d'état du serveur. - - **server reboot** - redémarrer le serveur en douceur. - - **server reboot force** - forcer le redémarrage du serveur. - {{/commands.server}} - - Envoyez une **commande** (insensible à la casse) ou un **numéro de commande** à cette conversation. - -app.commands.server.disabled: ⛔ **Les commandes serveur sont désactivées**. +cli.cmd.disabled: ⛔ **La commande `{{command}}` est désactivée**. Veuillez contacter votre administrateur. Envoyez **help** pour obtenir la liste des commandes disponibles. +cli.cmd.root.description: |- + Gérez votre **intégration WhatsApp** ! + +cli.cmd.root.sub.session: |- + 🖥️ **Session** : + +cli.cmd.root.sub.server: |- + 🖥️ **Serveur** : + +cli.cmd.session.status.description: |- + Obtenez l'état actuel de la session. + +cli.cmd.session.restart.description: |- + Redémarrez la session. + +cli.cmd.session.start.description: |- + Démarrez la session. + +cli.cmd.session.stop.description: |- + Arrêtez la session. + +cli.cmd.session.logout.description: |- + Déconnectez la session pour scanner un nouveau code QR et rétablir la connexion. + +cli.cmd.session.qr.description: |- + Affichez le code QR de la session. + +cli.cmd.session.screenshot.description: |- + Prenez une capture d'écran de la session (disponible uniquement avec le moteur **WEBJS**). + +cli.cmd.server.description: |- + Gérez le serveur. + +cli.cmd.server.status.description: |- + Affichez la version et l'état du serveur. + +cli.cmd.server.reboot.description: |- + Redémarrez le serveur. + +cli.cmd.server.reboot.option.force: |- + Forcer un redémarrage immédiat. + +cli.help.usage.title: |- + Utilisation : envoyez une commande à la conversation au format suivant : + +cli.help.commands.defaultGroup: |- + **Commandes :** + +cli.help.arguments.title: |- + **Arguments :** + +cli.help.options.defaultGroup: |- + **Options :** + +cli.help.globalOptions.title: |- + **Options globales :** + app.help.reminder: |- Envoyez **help** pour obtenir la liste des commandes disponibles. diff --git a/src/apps/chatwoot/i18n/locales/he-IL.yaml b/src/apps/chatwoot/i18n/locales/he-IL.yaml index 23829cb6..b0fdd073 100644 --- a/src/apps/chatwoot/i18n/locales/he-IL.yaml +++ b/src/apps/chatwoot/i18n/locales/he-IL.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ ההגדרות עבור הפעלת וואטסאפ **{{{name}}}** עודכנו. -app.commands.list: |- - אתה יכול לנהל **אינטגרציית וואטסאפ** על ידי שליחת אחת מהפקודות הבאות: +cli.usage.command: |- + [פקודה] +cli.usage.options: |- + [אפשרויות] + +cli.cmd.disabled: ⛔ **הפקודה `{{command}}` מושבתת**. + + אנא פנה למנהל המערכת שלך. + + שלח **help** כדי לקבל את רשימת הפקודות הזמינות. + +cli.cmd.root.description: |- + נהל את **האינטגרציה של וואטסאפ** שלך! + +cli.cmd.root.sub.session: |- 🖥️ **הפעלה**: - 1. **status** - קבל את סטטוס ההפעלה הנוכחי. - 2. **restart** - הפעל מחדש את ההפעלה - זה ינסה לחבר מחדש את חשבון הוואטסאפ שלך. - 3. **start** - התחל את ההפעלה. - 4. **stop** - עצור את ההפעלה. - 5. **logout** - התנתק מההפעלה, כך שתוכל לסרוק קוד QR ולתקן את ההפעלה. - 6. **qr** - קבל את קוד ה-QR עבור ההפעלה. - 7. **screenshot** - קבל צילום מסך של ההפעלה (זמין רק במנוע **WEBJS**). - 8. **help** - פקודות זמינות. - {{#commands.server}} - ⚙️ שרת: - - **server status** - קבל מידע על גרסת השרת והסטטוס. - - **server reboot** - הפעל מחדש את השרת בצורה חלקה. - - **server reboot force** - אלץ הפעלה מחדש של השרת. - {{/commands.server}} +cli.cmd.root.sub.server: |- + 🖥️ **שרת**: - שלח **פקודה** (לא תלוי רישיות) או **מספר פקודה** לשיחה זו. +cli.cmd.session.status.description: |- + קבל את סטטוס ההפעלה הנוכחי. -app.commands.server.disabled: ⛔ **פקודות השרת מושבתות**. +cli.cmd.session.restart.description: |- + אתחל את ההפעלה מחדש. - אנא פנו למנהל המערכת שלכם. +cli.cmd.session.start.description: |- + התחל את ההפעלה. - שלחו **help** כדי לקבל את רשימת הפקודות הזמינות. +cli.cmd.session.stop.description: |- + עצור את ההפעלה. + +cli.cmd.session.logout.description: |- + התנתק מההפעלה כדי לסרוק קוד QR חדש ולהחזיר את החיבור. + +cli.cmd.session.qr.description: |- + הצג את קוד ה-QR של ההפעלה. + +cli.cmd.session.screenshot.description: |- + צלם צילום מסך של ההפעלה (זמין רק עם מנוע **WEBJS**). + +cli.cmd.server.description: |- + נהל את השרת. + +cli.cmd.server.status.description: |- + הצג את גרסת השרת והסטטוס. + +cli.cmd.server.reboot.description: |- + אתחל את השרת מחדש. + +cli.cmd.server.reboot.option.force: |- + כפה אתחול מיידי. + +cli.help.usage.title: |- + שימוש: שלח פקודה לשיחה בפורמט הבא: + +cli.help.commands.defaultGroup: |- + **פקודות:** + +cli.help.arguments.title: |- + **ארגומנטים:** + +cli.help.options.defaultGroup: |- + **אפשרויות:** + +cli.help.globalOptions.title: |- + **אפשרויות גלובליות:** app.help.reminder: |- שלח **help** כדי לקבל את רשימת הפקודות הזמינות. diff --git a/src/apps/chatwoot/i18n/locales/hi-IN.yaml b/src/apps/chatwoot/i18n/locales/hi-IN.yaml index 7089309a..19953cba 100644 --- a/src/apps/chatwoot/i18n/locales/hi-IN.yaml +++ b/src/apps/chatwoot/i18n/locales/hi-IN.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ व्हाट्सएप सत्र **{{{name}}}** की सेटिंग्स अपडेट की गई हैं। -app.commands.list: |- - आप निम्न कमांड में से एक भेजकर **व्हाट्सएप इंटीग्रेशन** का प्रबंधन कर सकते हैं: +cli.usage.command: |- + [कमांड] - 🖥️ **सेशन**: - 1. **status** - वर्तमान सत्र स्थिति प्राप्त करें। - 2. **restart** - सत्र को पुनरारंभ करें - यह आपके व्हाट्सएप खाते को फिर से कनेक्ट करने का प्रयास करेगा। - 3. **start** - सत्र शुरू करें। - 4. **stop** - सत्र बंद करें। - 5. **logout** - सत्र से लॉग आउट करें, ताकि आप QR कोड स्कैन कर सकें और सत्र को मरम्मत कर सकें। - 6. **qr** - सत्र के लिए QR कोड प्राप्त करें। - 7. **screenshot** - सत्र का स्क्रीनशॉट प्राप्त करें (केवल **WEBJS** इंजन में उपलब्ध)। - 8. **help** - उपलब्ध कमांड। +cli.usage.options: |- + [विकल्प] - {{#commands.server}} - ⚙️ सर्वर: - - **server status** - सर्वर संस्करण और स्थिति जानकारी प्राप्त करें। - - **server reboot** - सर्वर को सुचारू रूप से पुनरारंभ करें। - - **server reboot force** - सर्वर को जबरदस्ती पुनरारंभ करें। - {{/commands.server}} +cli.cmd.disabled: ⛔ **`{{command}}` कमांड अक्षम है**. - इस वार्तालाप में **कमांड** (केस इनसेंसिटिव) या **कमांड नंबर** भेजें। + कृपया अपने प्रशासक से संपर्क करें। -app.commands.server.disabled: ⛔ **सर्वर कमांड अक्षम हैं**। + उपलब्ध कमांड की सूची प्राप्त करने के लिए **help** भेजें। - कृपया अपने व्यवस्थापक से संपर्क करें। +cli.cmd.root.description: |- + अपने **व्हाट्सएप इंटीग्रेशन** का प्रबंधन करें! - उपलब्ध कमांड की सूची पाने के लिए **help** भेजें। +cli.cmd.root.sub.session: |- + 🖥️ **सत्र**: + +cli.cmd.root.sub.server: |- + 🖥️ **सर्वर**: + +cli.cmd.session.status.description: |- + वर्तमान सत्र की स्थिति प्राप्त करें। + +cli.cmd.session.restart.description: |- + सत्र को पुनरारंभ करें। + +cli.cmd.session.start.description: |- + सत्र प्रारंभ करें। + +cli.cmd.session.stop.description: |- + सत्र रोकें। + +cli.cmd.session.logout.description: |- + नया QR कोड स्कैन करके कनेक्शन बहाल करने के लिए सत्र से लॉग आउट करें। + +cli.cmd.session.qr.description: |- + सत्र का QR कोड दिखाएं। + +cli.cmd.session.screenshot.description: |- + सत्र का स्क्रीनशॉट लें (केवल **WEBJS** इंजन के साथ उपलब्ध)। + +cli.cmd.server.description: |- + सर्वर का प्रबंधन करें। + +cli.cmd.server.status.description: |- + सर्वर का संस्करण और स्थिति दिखाएं। + +cli.cmd.server.reboot.description: |- + सर्वर को पुनरारंभ करें। + +cli.cmd.server.reboot.option.force: |- + तुरंत पुनरारंभ को मजबूर करें। + +cli.help.usage.title: |- + उपयोग: नीचे दिए गए प्रारूप में बातचीत में कमांड भेजें: + +cli.help.commands.defaultGroup: |- + **कमांड:** + +cli.help.arguments.title: |- + **आर्ग्युमेंट्स:** + +cli.help.options.defaultGroup: |- + **विकल्प:** + +cli.help.globalOptions.title: |- + **ग्लोबल विकल्प:** app.help.reminder: |- उपलब्ध कमांड की सूची प्राप्त करने के लिए **help** भेजें। diff --git a/src/apps/chatwoot/i18n/locales/id-ID.yaml b/src/apps/chatwoot/i18n/locales/id-ID.yaml index 2c40aea4..6040bbce 100644 --- a/src/apps/chatwoot/i18n/locales/id-ID.yaml +++ b/src/apps/chatwoot/i18n/locales/id-ID.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ Pengaturan untuk sesi WhatsApp **{{{name}}}** telah diperbarui. -app.commands.list: |- - Anda dapat mengelola **Integrasi WhatsApp** dengan mengirimkan salah satu perintah berikut: +cli.usage.command: |- + [perintah] - 🖥️ **Sesi**: - 1. **status** - dapatkan status sesi saat ini. - 2. **restart** - mulai ulang sesi - ini akan mencoba menghubungkan kembali akun WhatsApp Anda. - 3. **start** - mulai sesi. - 4. **stop** - hentikan sesi. - 5. **logout** - keluar dari sesi, sehingga Anda dapat memindai kode QR dan memperbaiki sesi. - 6. **qr** - dapatkan kode QR untuk sesi. - 7. **screenshot** - dapatkan tangkapan layar sesi (hanya tersedia di mesin **WEBJS**). - 8. **help** - perintah yang tersedia. +cli.usage.options: |- + [opsi] - {{#commands.server}} - ⚙️ Server: - - **server status** - dapatkan informasi versi dan status server. - - **server reboot** - mulai ulang server dengan anggun. - - **server reboot force** - paksa mulai ulang server. - {{/commands.server}} - - Kirim **perintah** (tidak peka huruf besar/kecil) atau **nomor perintah** ke percakapan ini. - -app.commands.server.disabled: ⛔ **Perintah server dinonaktifkan**. +cli.cmd.disabled: ⛔ **Perintah `{{command}}` dinonaktifkan**. Silakan hubungi administrator Anda. - Kirim **help** untuk melihat daftar perintah yang tersedia. + Kirim **help** untuk mendapatkan daftar perintah yang tersedia. + +cli.cmd.root.description: |- + Kelola **Integrasi WhatsApp** Anda! + +cli.cmd.root.sub.session: |- + 🖥️ **Sesi**: + +cli.cmd.root.sub.server: |- + 🖥️ **Server**: + +cli.cmd.session.status.description: |- + Dapatkan status sesi saat ini. + +cli.cmd.session.restart.description: |- + Mulai ulang sesi. + +cli.cmd.session.start.description: |- + Mulai sesi. + +cli.cmd.session.stop.description: |- + Hentikan sesi. + +cli.cmd.session.logout.description: |- + Keluar dari sesi untuk memindai kode QR baru dan memulihkan koneksi. + +cli.cmd.session.qr.description: |- + Tampilkan kode QR sesi. + +cli.cmd.session.screenshot.description: |- + Ambil tangkapan layar sesi (hanya tersedia dengan mesin **WEBJS**). + +cli.cmd.server.description: |- + Kelola server. + +cli.cmd.server.status.description: |- + Tampilkan versi dan status server. + +cli.cmd.server.reboot.description: |- + Mulai ulang server. + +cli.cmd.server.reboot.option.force: |- + Paksa reboot segera. + +cli.help.usage.title: |- + Penggunaan: kirim perintah ke percakapan dalam format berikut: + +cli.help.commands.defaultGroup: |- + **Perintah:** + +cli.help.arguments.title: |- + **Argumen:** + +cli.help.options.defaultGroup: |- + **Opsi:** + +cli.help.globalOptions.title: |- + **Opsi global:** app.help.reminder: |- Kirim **help** untuk mendapatkan daftar perintah yang tersedia. diff --git a/src/apps/chatwoot/i18n/locales/pa-PK.yaml b/src/apps/chatwoot/i18n/locales/pa-PK.yaml index e64f1789..2ce572ec 100644 --- a/src/apps/chatwoot/i18n/locales/pa-PK.yaml +++ b/src/apps/chatwoot/i18n/locales/pa-PK.yaml @@ -117,33 +117,74 @@ app.updated.message: |- ✅ ਵਟਸਐਪ ਸੈਸ਼ਨ **{{{name}}}** ਲਈ ਸੈਟਿੰਗਾਂ ਅਪਡੇਟ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। -app.commands.list: |- - ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡਾਂ ਵਿੱਚੋਂ ਇੱਕ ਭੇਜ ਕੇ **ਵਟਸਐਪ ਇੰਟੀਗ੍ਰੇਸ਼ਨ** ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦੇ ਹੋ: +cli.usage.command: |- + [ਕਮਾਂਡ] - 🖥️ **ਸੈਸ਼ਨ**: - 1. **status** - ਮੌਜੂਦਾ ਸੈਸ਼ਨ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕਰੋ। - 2. **restart** - ਸੈਸ਼ਨ ਮੁੜ ਚਾਲੂ ਕਰੋ - ਇਹ ਤੁਹਾਡੇ ਵਟਸਐਪ ਖਾਤੇ ਨੂੰ ਮੁੜ ਕਨੈਕਟ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ। - 3. **start** - ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ। - 4. **stop** - ਸੈਸ਼ਨ ਬੰਦ ਕਰੋ। - 5. **logout** - ਸੈਸ਼ਨ ਤੋਂ ਲੌਗਆਉਟ ਕਰੋ, ਤਾਂ ਜੋ ਤੁਸੀਂ QR ਕੋਡ ਸਕੈਨ ਕਰ ਸਕੋ ਅਤੇ ਸੈਸ਼ਨ ਨੂੰ ਮੁਰੰਮਤ ਕਰ ਸਕੋ। - 6. **qr** - ਸੈਸ਼ਨ ਲਈ QR ਕੋਡ ਪ੍ਰਾਪਤ ਕਰੋ। - 7. **screenshot** - ਸੈਸ਼ਨ ਦਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਪ੍ਰਾਪਤ ਕਰੋ (ਸਿਰਫ **WEBJS** ਇੰਜਣ ਵਿੱਚ ਉਪਲਬਧ)। - 8. **help** - ਉਪਲਬਧ ਕਮਾਂਡਾਂ। +cli.usage.options: |- + [ਚੋਣਾਂ] - {{#commands.server}} - ⚙️ ਸਰਵਰ: - - **server status** - ਸਰਵਰ ਵਰਜਨ ਅਤੇ ਸਥਿਤੀ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ। - - **server reboot** - ਸਰਵਰ ਨੂੰ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਮੁੜ ਚਾਲੂ ਕਰੋ। - - **server reboot force** - ਸਰਵਰ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਮੁੜ ਚਾਲੂ ਕਰੋ। - {{/commands.server}} - - ਇਸ ਗੱਲਬਾਤ ਵਿੱਚ **ਕਮਾਂਡ** (ਕੇਸ ਇਨਸੈਂਸਿਟਿਵ) ਜਾਂ **ਕਮਾਂਡ ਨੰਬਰ** ਭੇਜੋ। - -app.commands.server.disabled: ⛔ **ਸਰਵਰ ਕਮਾਂਡ ਅਯੋਗ ਹਨ**। +cli.cmd.disabled: ⛔ **`{{command}}` ਕਮਾਂਡ ਨਿਸ਼ਕ੍ਰਿਆ ਕੀਤੀ ਗਈ ਹੈ**। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ। - ਉਪਲਬਧ ਕਮਾਂਡਾਂ ਦੀ ਸੂਚੀ ਲਈ **help** ਭੇਜੋ। + ਉਪਲਬਧ ਕਮਾਂਡਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ **help** ਭੇਜੋ। + +cli.cmd.root.description: |- + ਆਪਣੀ **ਵਟਸਐਪ ਇੰਟੀਗ੍ਰੇਸ਼ਨ** ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ! + +cli.cmd.root.sub.session: |- + 🖥️ **ਸੈਸ਼ਨ**: + +cli.cmd.root.sub.server: |- + 🖥️ **ਸਰਵਰ**: + +cli.cmd.session.status.description: |- + ਮੌਜੂਦਾ ਸੈਸ਼ਨ ਦੀ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕਰੋ। + +cli.cmd.session.restart.description: |- + ਸੈਸ਼ਨ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰੋ। + +cli.cmd.session.start.description: |- + ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ। + +cli.cmd.session.stop.description: |- + ਸੈਸ਼ਨ ਰੋਕੋ। + +cli.cmd.session.logout.description: |- + ਨਵਾਂ QR ਕੋਡ ਸਕੈਨ ਕਰਕੇ ਕਨੈਕਸ਼ਨ ਬਹਾਲ ਕਰਨ ਲਈ ਸੈਸ਼ਨ ਤੋਂ ਲੌਗਆਉਟ ਕਰੋ। + +cli.cmd.session.qr.description: |- + ਸੈਸ਼ਨ ਦਾ QR ਕੋਡ ਵੇਖਾਓ। + +cli.cmd.session.screenshot.description: |- + ਸੈਸ਼ਨ ਦਾ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਓ (ਸਿਰਫ਼ **WEBJS** ਇੰਜਨ ਨਾਲ ਉਪਲਬਧ)। + +cli.cmd.server.description: |- + ਸਰਵਰ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ। + +cli.cmd.server.status.description: |- + ਸਰਵਰ ਦਾ ਵਰਜਨ ਅਤੇ ਸਥਿਤੀ ਵੇਖਾਓ। + +cli.cmd.server.reboot.description: |- + ਸਰਵਰ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰੋ। + +cli.cmd.server.reboot.option.force: |- + ਤੁਰੰਤ ਰੀਬੂਟ ਲਾਜ਼ਮੀ ਕਰੋ। + +cli.help.usage.title: |- + ਵਰਤੋਂ: ਹੇਠਾਂ ਦਿੱਤੇ ਫਾਰਮੈਟ ਵਿੱਚ ਗੱਲਬਾਤ ਵਿੱਚ ਕਮਾਂਡ ਭੇਜੋ: + +cli.help.commands.defaultGroup: |- + **ਕਮਾਂਡਾਂ:** + +cli.help.arguments.title: |- + **ਦਲੀਲਾਂ:** + +cli.help.options.defaultGroup: |- + **ਚੋਣਾਂ:** + +cli.help.globalOptions.title: |- + **ਗਲੋਬਲ ਚੋਣਾਂ:** app.help.reminder: |- ਉਪਲਬਧ ਕਮਾਂਡਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ **help** ਭੇਜੋ। diff --git a/src/apps/chatwoot/i18n/locales/pt-BR.yaml b/src/apps/chatwoot/i18n/locales/pt-BR.yaml index a0c41a54..f8b3f7d6 100644 --- a/src/apps/chatwoot/i18n/locales/pt-BR.yaml +++ b/src/apps/chatwoot/i18n/locales/pt-BR.yaml @@ -120,34 +120,75 @@ app.updated.message: |- ✅ As configurações para a sessão do WhatsApp **{{{name}}}** foram atualizadas. -app.commands.list: |- - Você pode gerenciar a **Integração WhatsApp** enviando um dos seguintes comandos: +cli.usage.command: |- + [comando] - 🖥️ **Sessão**: - 1. **status** - obter o status atual da sessão. - 2. **restart** - reiniciar a sessão - isso tentará reconectar sua conta do WhatsApp. - 3. **start** - iniciar a sessão. - 4. **stop** - parar a sessão. - 5. **logout** - sair da sessão, para que você possa escanear o código QR e reparar a sessão. - 6. **qr** - obter o código QR para a sessão. - 7. **screenshot** - obter uma captura de tela da sessão (disponível apenas no motor **WEBJS**). - 8. **help** - comandos disponíveis. +cli.usage.options: |- + [opções] - {{#commands.server}} - ⚙️ Servidor: - - **server status** - obter informações sobre a versão e status do servidor. - - **server reboot** - reiniciar o servidor suavemente. - - **server reboot force** - forçar a reinicialização do servidor. - {{/commands.server}} +cli.cmd.disabled: ⛔ **O comando `{{command}}` está desativado**. - Envie um **comando** (não sensível a maiúsculas/minúsculas) ou um **número de comando** para esta conversa. - -app.commands.server.disabled: ⛔ **Os comandos do servidor estão desativados**. - - Por favor, contate o seu administrador. + Entre em contato com seu administrador. Envie **help** para obter a lista de comandos disponíveis. +cli.cmd.root.description: |- + Gerencie sua **Integração com WhatsApp**! + +cli.cmd.root.sub.session: |- + 🖥️ **Sessão**: + +cli.cmd.root.sub.server: |- + 🖥️ **Servidor**: + +cli.cmd.session.status.description: |- + Obtenha o status atual da sessão. + +cli.cmd.session.restart.description: |- + Reinicie a sessão. + +cli.cmd.session.start.description: |- + Inicie a sessão. + +cli.cmd.session.stop.description: |- + Pare a sessão. + +cli.cmd.session.logout.description: |- + Saia da sessão para escanear um novo código QR e restaurar a conexão. + +cli.cmd.session.qr.description: |- + Mostre o código QR da sessão. + +cli.cmd.session.screenshot.description: |- + Faça uma captura de tela da sessão (disponível apenas com o mecanismo **WEBJS**). + +cli.cmd.server.description: |- + Gerencie o servidor. + +cli.cmd.server.status.description: |- + Mostre a versão e o status do servidor. + +cli.cmd.server.reboot.description: |- + Reinicie o servidor. + +cli.cmd.server.reboot.option.force: |- + Forçar uma reinicialização imediata. + +cli.help.usage.title: |- + Uso: envie um comando para a conversa no formato: + +cli.help.commands.defaultGroup: |- + **Comandos:** + +cli.help.arguments.title: |- + **Argumentos:** + +cli.help.options.defaultGroup: |- + **Opções:** + +cli.help.globalOptions.title: |- + **Opções globais:** + app.help.reminder: |- Envie **help** para obter a lista de comandos disponíveis. diff --git a/src/apps/chatwoot/i18n/locales/ru-RU.yaml b/src/apps/chatwoot/i18n/locales/ru-RU.yaml index 3a9b5f2c..2ee4f958 100644 --- a/src/apps/chatwoot/i18n/locales/ru-RU.yaml +++ b/src/apps/chatwoot/i18n/locales/ru-RU.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ Настройки для сессии WhatsApp **{{{name}}}** были обновлены. -app.commands.list: |- - Вы можете управлять **WhatsApp Интеграцией**, отправив одну из следующих команд: +cli.usage.command: |- + [команда] - 🖥️ **Сессия**: - 1. **status** - получить текущий статус сессии. - 2. **restart** - перезапустить сессию - это попытается переподключить ваш аккаунт WhatsApp. - 3. **start** - запустить сессию. - 4. **stop** - остановить сессию. - 5. **logout** - выйти из сессии, чтобы вы могли отсканировать QR-код и восстановить сессию. - 6. **qr** - получить QR-код для сессии. - 7. **screenshot** - получить скриншот сессии (доступно только в движке **WEBJS**). - 8. **help** - доступные команды. +cli.usage.options: |- + [опции] - {{#commands.server}} - ⚙️ Сервер: - - **server status** - получить информацию о версии и статусе сервера. - - **server reboot** - корректно перезагрузить сервер. - - **server reboot force** - принудительно перезагрузить сервер. - {{/commands.server}} +cli.cmd.disabled: ⛔ **Команда `{{command}}` отключена**. - Отправьте **команду** (без учета регистра) или **номер команды** в этот разговор. - -app.commands.server.disabled: ⛔ **Команды сервера отключены**. - - Пожалуйста, свяжитесь с вашим администратором. + Пожалуйста, обратитесь к вашему администратору. Отправьте **help**, чтобы получить список доступных команд. +cli.cmd.root.description: |- + Управляйте своей **интеграцией WhatsApp**! + +cli.cmd.root.sub.session: |- + 🖥️ **Сессия**: + +cli.cmd.root.sub.server: |- + 🖥️ **Сервер**: + +cli.cmd.session.status.description: |- + Получите текущий статус сессии. + +cli.cmd.session.restart.description: |- + Перезапустите сессию. + +cli.cmd.session.start.description: |- + Запустите сессию. + +cli.cmd.session.stop.description: |- + Остановите сессию. + +cli.cmd.session.logout.description: |- + Выйдите из сессии, чтобы отсканировать новый QR-код и восстановить соединение. + +cli.cmd.session.qr.description: |- + Покажите QR-код сессии. + +cli.cmd.session.screenshot.description: |- + Сделайте снимок экрана сессии (доступно только с движком **WEBJS**). + +cli.cmd.server.description: |- + Управляйте сервером. + +cli.cmd.server.status.description: |- + Покажите версию и статус сервера. + +cli.cmd.server.reboot.description: |- + Перезагрузите сервер. + +cli.cmd.server.reboot.option.force: |- + Принудительно выполните немедленную перезагрузку. + +cli.help.usage.title: |- + Использование: отправьте команду в диалог в следующем формате: + +cli.help.commands.defaultGroup: |- + **Команды:** + +cli.help.arguments.title: |- + **Аргументы:** + +cli.help.options.defaultGroup: |- + **Опции:** + +cli.help.globalOptions.title: |- + **Глобальные опции:** + app.help.reminder: |- Отправьте **help**, чтобы получить список доступных команд. diff --git a/src/apps/chatwoot/i18n/locales/tr-TR.yaml b/src/apps/chatwoot/i18n/locales/tr-TR.yaml index 46b92b02..e6f21797 100644 --- a/src/apps/chatwoot/i18n/locales/tr-TR.yaml +++ b/src/apps/chatwoot/i18n/locales/tr-TR.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ WhatsApp oturumu **{{{name}}}** için ayarlar güncellendi. -app.commands.list: |- - Aşağıdaki komutlardan birini göndererek **WhatsApp Entegrasyonu**nu yönetebilirsiniz: +cli.usage.command: |- + [komut] - 🖥️ **Oturum**: - 1. **status** - mevcut oturum durumunu alın. - 2. **restart** - oturumu yeniden başlatın - bu, WhatsApp hesabınızı yeniden bağlamaya çalışacaktır. - 3. **start** - oturumu başlatın. - 4. **stop** - oturumu durdurun. - 5. **logout** - oturumdan çıkış yapın, böylece QR kodu tarayabilir ve oturumu onarabilirsiniz. - 6. **qr** - oturum için QR kodu alın. - 7. **screenshot** - oturumun ekran görüntüsünü alın (yalnızca **WEBJS** motorunda kullanılabilir). - 8. **help** - kullanılabilir komutlar. +cli.usage.options: |- + [seçenekler] - {{#commands.server}} - ⚙️ Sunucu: - - **server status** - sunucu sürümü ve durum bilgilerini alın. - - **server reboot** - sunucuyu nazikçe yeniden başlatın. - - **server reboot force** - sunucuyu zorla yeniden başlatın. - {{/commands.server}} - - Bu konuşmaya bir **komut** (büyük/küçük harf duyarsız) veya **komut numarası** gönderin. - -app.commands.server.disabled: ⛔ **Sunucu komutları devre dışı**. +cli.cmd.disabled: ⛔ **`{{command}}` komutu devre dışı**. Lütfen yöneticinizle iletişime geçin. Kullanılabilir komutların listesini almak için **help** gönderin. +cli.cmd.root.description: |- + **WhatsApp entegrasyonunuzu** yönetin! + +cli.cmd.root.sub.session: |- + 🖥️ **Oturum**: + +cli.cmd.root.sub.server: |- + 🖥️ **Sunucu**: + +cli.cmd.session.status.description: |- + Geçerli oturum durumunu alın. + +cli.cmd.session.restart.description: |- + Oturumu yeniden başlatın. + +cli.cmd.session.start.description: |- + Oturumu başlatın. + +cli.cmd.session.stop.description: |- + Oturumu durdurun. + +cli.cmd.session.logout.description: |- + Bağlantıyı yeniden kurmak için oturumdan çıkın ve yeni bir QR kodu tarayın. + +cli.cmd.session.qr.description: |- + Oturumun QR kodunu gösterin. + +cli.cmd.session.screenshot.description: |- + Oturumun ekran görüntüsünü alın (yalnızca **WEBJS** motoru ile kullanılabilir). + +cli.cmd.server.description: |- + Sunucuyu yönetin. + +cli.cmd.server.status.description: |- + Sunucunun sürümünü ve durumunu gösterin. + +cli.cmd.server.reboot.description: |- + Sunucuyu yeniden başlatın. + +cli.cmd.server.reboot.option.force: |- + Anında yeniden başlatmayı zorlayın. + +cli.help.usage.title: |- + Kullanım: Komutu aşağıdaki formatta sohbete gönderin: + +cli.help.commands.defaultGroup: |- + **Komutlar:** + +cli.help.arguments.title: |- + **Argümanlar:** + +cli.help.options.defaultGroup: |- + **Seçenekler:** + +cli.help.globalOptions.title: |- + **Genel seçenekler:** + app.help.reminder: |- Kullanılabilir komutların listesini almak için **help** gönderin. diff --git a/src/apps/chatwoot/i18n/locales/uk-UA.yaml b/src/apps/chatwoot/i18n/locales/uk-UA.yaml index 03d4057e..67b7f244 100644 --- a/src/apps/chatwoot/i18n/locales/uk-UA.yaml +++ b/src/apps/chatwoot/i18n/locales/uk-UA.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ Налаштування для сесії WhatsApp **{{{name}}}** були оновлені. -app.commands.list: |- - Ви можете керувати **Інтеграцією WhatsApp**, надіславши одну з наступних команд: +cli.usage.command: |- + [команда] - 🖥️ **Сесія**: - 1. **status** - отримати поточний статус сесії. - 2. **restart** - перезапустити сесію - це спробує повторно підключити ваш обліковий запис WhatsApp. - 3. **start** - запустити сесію. - 4. **stop** - зупинити сесію. - 5. **logout** - вийти з сесії, щоб ви могли відсканувати QR-код і відновити сесію. - 6. **qr** - отримати QR-код для сесії. - 7. **screenshot** - отримати знімок екрану сесії (доступно лише в двигуні **WEBJS**). - 8. **help** - доступні команди. +cli.usage.options: |- + [опції] - {{#commands.server}} - ⚙️ Сервер: - - **server status** - отримати інформацію про версію та статус сервера. - - **server reboot** - перезавантажити сервер плавно. - - **server reboot force** - примусово перезавантажити сервер. - {{/commands.server}} +cli.cmd.disabled: ⛔ **Команду `{{command}}` вимкнено**. - Надішліть **команду** (без урахування регістру) або **номер команди** у цю розмову. - -app.commands.server.disabled: ⛔ **Команди сервера вимкнені**. - - Будь ласка, зв’яжіться з вашим адміністратором. + Будь ласка, зверніться до свого адміністратора. Надішліть **help**, щоб отримати список доступних команд. +cli.cmd.root.description: |- + Керуйте своєю **інтеграцією WhatsApp**! + +cli.cmd.root.sub.session: |- + 🖥️ **Сесія**: + +cli.cmd.root.sub.server: |- + 🖥️ **Сервер**: + +cli.cmd.session.status.description: |- + Отримайте поточний статус сесії. + +cli.cmd.session.restart.description: |- + Перезапустіть сесію. + +cli.cmd.session.start.description: |- + Запустіть сесію. + +cli.cmd.session.stop.description: |- + Зупиніть сесію. + +cli.cmd.session.logout.description: |- + Вийдіть із сесії, щоб відсканувати новий QR-код і відновити з'єднання. + +cli.cmd.session.qr.description: |- + Показати QR-код сесії. + +cli.cmd.session.screenshot.description: |- + Зробіть знімок екрана сесії (доступно лише з рушієм **WEBJS**). + +cli.cmd.server.description: |- + Керуйте сервером. + +cli.cmd.server.status.description: |- + Показати версію та статус сервера. + +cli.cmd.server.reboot.description: |- + Перезавантажте сервер. + +cli.cmd.server.reboot.option.force: |- + Примусово виконайте негайне перезавантаження. + +cli.help.usage.title: |- + Використання: надішліть у розмову команду у такому форматі: + +cli.help.commands.defaultGroup: |- + **Команди:** + +cli.help.arguments.title: |- + **Аргументи:** + +cli.help.options.defaultGroup: |- + **Опції:** + +cli.help.globalOptions.title: |- + **Глобальні опції:** + app.help.reminder: |- Надішліть **help**, щоб отримати список доступних команд. diff --git a/src/apps/chatwoot/i18n/locales/ur-PK.yaml b/src/apps/chatwoot/i18n/locales/ur-PK.yaml index 6f0f42be..58e1d1d5 100644 --- a/src/apps/chatwoot/i18n/locales/ur-PK.yaml +++ b/src/apps/chatwoot/i18n/locales/ur-PK.yaml @@ -117,34 +117,75 @@ app.updated.message: |- ✅ واٹس ایپ سیشن **{{{name}}}** کی ترتیبات اپڈیٹ کر دی گئی ہیں۔ -app.commands.list: |- - آپ درج ذیل کمانڈز میں سے ایک بھیج کر **واٹس ایپ انٹیگریشن** کا انتظام کر سکتے ہیں: +cli.usage.command: |- + [کمانڈ] - 🖥️ **سیشن**: - 1. **status** - موجودہ سیشن کی حالت حاصل کریں۔ - 2. **restart** - سیشن کو دوبارہ شروع کریں - یہ آپ کے واٹس ایپ اکاؤنٹ کو دوبارہ منسلک کرنے کی کوشش کرے گا۔ - 3. **start** - سیشن شروع کریں۔ - 4. **stop** - سیشن روکیں۔ - 5. **logout** - سیشن سے لاگ آؤٹ کریں، تاکہ آپ QR کوڈ اسکین کر سکیں اور سیشن کی مرمت کر سکیں۔ - 6. **qr** - سیشن کے لیے QR کوڈ حاصل کریں۔ - 7. **screenshot** - سیشن کا اسکرین شاٹ حاصل کریں (صرف **WEBJS** انجن میں دستیاب)۔ - 8. **help** - دستیاب کمانڈز۔ +cli.usage.options: |- + [اختیارات] - {{#commands.server}} - ⚙️ سرور: - - **server status** - سرور ورژن اور حالت کی معلومات حاصل کریں۔ - - **server reboot** - سرور کو آرام سے دوبارہ شروع کریں۔ - - **server reboot force** - سرور کو زبردستی دوبارہ شروع کریں۔ - {{/commands.server}} - - اس گفتگو میں **کمانڈ** (کیس سے غیر حساس) یا **کمانڈ نمبر** بھیجیں۔ - -app.commands.server.disabled: ⛔ **سرور کمانڈز غیر فعال ہیں**۔ +cli.cmd.disabled: ⛔ **`{{command}}` کمانڈ غیر فعال ہے**. براہ کرم اپنے منتظم سے رابطہ کریں۔ دستیاب کمانڈز کی فہرست حاصل کرنے کے لیے **help** بھیجیں۔ +cli.cmd.root.description: |- + اپنے **واٹس ایپ انٹیگریشن** کا انتظام کریں! + +cli.cmd.root.sub.session: |- + 🖥️ **سیشن**: + +cli.cmd.root.sub.server: |- + 🖥️ **سرور**: + +cli.cmd.session.status.description: |- + موجودہ سیشن کی حالت حاصل کریں۔ + +cli.cmd.session.restart.description: |- + سیشن کو دوبارہ شروع کریں۔ + +cli.cmd.session.start.description: |- + سیشن شروع کریں۔ + +cli.cmd.session.stop.description: |- + سیشن روکیں۔ + +cli.cmd.session.logout.description: |- + کنکشن بحال کرنے کے لیے نیا QR کوڈ اسکین کرنے کی خاطر سیشن سے لاگ آؤٹ کریں۔ + +cli.cmd.session.qr.description: |- + سیشن کا QR کوڈ دکھائیں۔ + +cli.cmd.session.screenshot.description: |- + سیشن کا اسکرین شاٹ لیں (صرف **WEBJS** انجن کے ساتھ دستیاب)۔ + +cli.cmd.server.description: |- + سرور کا انتظام کریں۔ + +cli.cmd.server.status.description: |- + سرور کا ورژن اور حالت دکھائیں۔ + +cli.cmd.server.reboot.description: |- + سرور کو دوبارہ شروع کریں۔ + +cli.cmd.server.reboot.option.force: |- + فوری ریبوٹ کو لازمی بنائیں۔ + +cli.help.usage.title: |- + استعمال: ذیل کے فارمیٹ میں گفتگو کو کمانڈ بھیجیں: + +cli.help.commands.defaultGroup: |- + **کمانڈز:** + +cli.help.arguments.title: |- + **دلائل:** + +cli.help.options.defaultGroup: |- + **اختیارات:** + +cli.help.globalOptions.title: |- + **عالمی اختیارات:** + app.help.reminder: |- دستیاب کمانڈز کی فہرست حاصل کرنے کے لیے **help** بھیجیں۔ diff --git a/src/apps/chatwoot/i18n/locales/zh-CN.yaml b/src/apps/chatwoot/i18n/locales/zh-CN.yaml index 12f5c50d..b9ab31b8 100644 --- a/src/apps/chatwoot/i18n/locales/zh-CN.yaml +++ b/src/apps/chatwoot/i18n/locales/zh-CN.yaml @@ -117,36 +117,75 @@ app.updated.message: |- ✅ WhatsApp 会话 **{{{name}}}** 的设置已更新。 -app.commands.list: |- - 你可以通过发送以下命令来管理**WhatsApp 集成**: +cli.usage.command: |- + [命令] - 🖥️ **会话**: - 1. **status** - 获取当前会话状态。 - 2. **restart** - 重启会话——将尝试重新连接你的 WhatsApp 账号。 - 3. **start** - 启动会话。 - 4. **stop** - 停止会话。 - 5. **logout** - 登出会话,以便你可以扫描二维码并修复会话。 - 6. **qr** - 获取该会话的二维码。 - 7. **screenshot** - 获取会话截图(仅在 **WEBJS** 引擎中可用)。 - 8. **help** - 查看可用命令。 +cli.usage.options: |- + [选项] - {{#commands.server}} - {{#commands.server}} - ⚙️ 服务器: - - **server status** - 获取服务器版本和状态信息。 - - **server reboot** - 优雅地重启服务器。 - - **server reboot force** - 强制重启服务器。 - {{/commands.server}} - {{/commands.server}} - - 向此对话发送**命令**(不区分大小写)或**命令编号**。 - -app.commands.server.disabled: ⛔ **服务器命令已禁用**。 +cli.cmd.disabled: ⛔ **`{{command}}` 命令已被禁用**。 请联系你的管理员。 发送 **help** 获取可用命令列表。 +cli.cmd.root.description: |- + 管理你的 **WhatsApp 集成**! + +cli.cmd.root.sub.session: |- + 🖥️ **会话**: + +cli.cmd.root.sub.server: |- + 🖥️ **服务器**: + +cli.cmd.session.status.description: |- + 获取当前会话状态。 + +cli.cmd.session.restart.description: |- + 重启会话。 + +cli.cmd.session.start.description: |- + 启动会话。 + +cli.cmd.session.stop.description: |- + 停止会话。 + +cli.cmd.session.logout.description: |- + 登出会话以扫描新的二维码并恢复连接。 + +cli.cmd.session.qr.description: |- + 显示会话二维码。 + +cli.cmd.session.screenshot.description: |- + 截取会话截图(仅适用于 **WEBJS** 引擎)。 + +cli.cmd.server.description: |- + 管理服务器。 + +cli.cmd.server.status.description: |- + 显示服务器版本和状态。 + +cli.cmd.server.reboot.description: |- + 重启服务器。 + +cli.cmd.server.reboot.option.force: |- + 强制立即重启。 + +cli.help.usage.title: |- + 用法:按以下格式向对话发送命令: + +cli.help.commands.defaultGroup: |- + **命令:** + +cli.help.arguments.title: |- + **参数:** + +cli.help.options.defaultGroup: |- + **选项:** + +cli.help.globalOptions.title: |- + **全局选项:** + app.help.reminder: |- 发送 **help** 获取可用命令列表。 diff --git a/src/apps/chatwoot/i18n/templates.ts b/src/apps/chatwoot/i18n/templates.ts index 969eb615..4bb4f7a2 100644 --- a/src/apps/chatwoot/i18n/templates.ts +++ b/src/apps/chatwoot/i18n/templates.ts @@ -1,5 +1,4 @@ import type { proto } from '@adiwajshing/baileys'; -import { ChatWootCommandsConfig } from '@waha/apps/chatwoot/dto/config.dto'; import { WAMessage } from '@waha/structures/responses.dto'; import { SimpleVCardInfo } from '@waha/core/vcard'; @@ -83,14 +82,15 @@ export enum TKey { // // App Commands // - APP_COMMANDS_LIST = 'app.commands.list', - APP_COMMANDS_SERVER_DISABLED = 'app.commands.server.disabled', APP_HELP_REMINDER = 'app.help.reminder', APP_SERVER_VERSION_AND_STATUS = 'app.server.version.and.status', APP_SERVER_REBOOT = 'app.server.reboot', APP_SERVER_REBOOT_FORCE = 'app.server.reboot.force', APP_LOGOUT_SUCCESS = 'app.logout.success', + // CLI + ['cli.cmd.disabled'] = 'cli.cmd.disabled', + // // App Inbox // @@ -226,8 +226,7 @@ export type TemplatePayloads = { [TKey.APP_SESSION_STATUS_ERROR]: void; [TKey.APP_SESSION_SCAN_QR_CODE]: void; [TKey.APP_HELP_REMINDER]: void; - [TKey.APP_COMMANDS_LIST]: { commands: ChatWootCommandsConfig }; - [TKey.APP_COMMANDS_SERVER_DISABLED]: void; + ['cli.cmd.disabled']: { command: string }; [TKey.APP_SERVER_VERSION_AND_STATUS]: { version: string; status: string; @@ -243,4 +242,5 @@ export type TemplatePayloads = { [TKey.WAHA_CORE_VERSION_USED]: { supportUrl: string; }; + [key: string]: unknown; }; diff --git a/yarn.lock b/yarn.lock index e17f7c29..54699fa5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5646,6 +5646,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^14.0.1": + version: 14.0.1 + resolution: "commander@npm:14.0.1" + checksum: a072b714e73a69cc85e68f588a3c910f330e5b31861fe1f9abc9312e81bdca193676fc1fea99f739b4237ee903751fb20b4adcdd409ec4c4df0964792e9daa47 + languageName: node + linkType: hard + "commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -11543,6 +11550,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:^0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -12562,6 +12576,7 @@ __metadata: chokidar: ^3.6.0 class-transformer: ^0.5.1 class-validator: 0.14.0 + commander: ^14.0.1 del: ^8.0.0 express-basic-auth: ^1.2.1 file-type: 16.5.4 @@ -12602,6 +12617,7 @@ __metadata: rxjs: ^7.8.1 sharp: ^0.33.4 sqlite3: ^5.1.7 + string-argv: ^0.3.2 supertest: ^4.0.2 swagger-ui-express: ^4.1.4 ts-jest: ^29.1.3 @@ -12614,7 +12630,6 @@ __metadata: whatsapp-web.js: "github:devlikeapro/whatsapp-web.js#fork-main-2025-09-10" write-file-atomic: ^6.0.0 yaml: ^2.7.1 - yargs: ^17.7.2 dependenciesMeta: bufferutil: optional: true