@qodalis/cli-yesno 2.0.0-beta.8 → 2.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-yesno",
3
- "version": "2.0.0-beta.8",
3
+ "version": "2.0.0-beta.9",
4
4
  "description": "@qodalis/cli extension for generating random yes/no answers with animations.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  "umd": "./umd/index.global.js",
22
22
  "unpkg": "./umd/index.global.js",
23
23
  "dependencies": {
24
- "@qodalis/cli-core": "2.0.0-beta.8"
24
+ "@qodalis/cli-core": "2.0.0-beta.9"
25
25
  },
26
26
  "sideEffects": false,
27
27
  "main": "./public-api.js",
package/public-api.d.mts CHANGED
@@ -17,7 +17,7 @@ declare class CliYesnoCommandProcessor implements ICliCommandProcessor {
17
17
  private clearBox;
18
18
  }
19
19
 
20
- declare const LIBRARY_VERSION = "2.0.0-beta.8";
20
+ declare const LIBRARY_VERSION = "2.0.0-beta.9";
21
21
  declare const API_VERSION = 2;
22
22
 
23
23
  declare const yesnoModule: ICliModule;
package/public-api.d.ts CHANGED
@@ -17,7 +17,7 @@ declare class CliYesnoCommandProcessor implements ICliCommandProcessor {
17
17
  private clearBox;
18
18
  }
19
19
 
20
- declare const LIBRARY_VERSION = "2.0.0-beta.8";
20
+ declare const LIBRARY_VERSION = "2.0.0-beta.9";
21
21
  declare const API_VERSION = 2;
22
22
 
23
23
  declare const yesnoModule: ICliModule;
package/public-api.js CHANGED
@@ -5,7 +5,7 @@ var cliCore = require('@qodalis/cli-core');
5
5
  // src/lib/processors/cli-yesno-command-processor.ts
6
6
 
7
7
  // src/lib/version.ts
8
- var LIBRARY_VERSION = "2.0.0-beta.8";
8
+ var LIBRARY_VERSION = "2.0.0-beta.9";
9
9
  var API_VERSION = 2;
10
10
 
11
11
  // src/lib/processors/cli-yesno-command-processor.ts
package/public-api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/yesno/src/lib/version.ts","../../packages/plugins/yesno/src/lib/processors/cli-yesno-command-processor.ts","../../packages/plugins/yesno/src/public-api.ts"],"names":["DefaultLibraryAuthor","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.8';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst RESET = '\\x1b[0m';\nconst GREEN = '\\x1b[38;5;82m';\nconst RED = '\\x1b[38;5;196m';\nconst CYAN = '\\x1b[38;5;45m';\nconst DIM = '\\x1b[2m';\nconst BOLD = '\\x1b[1m';\nconst GREEN_BG = '\\x1b[48;5;22m';\nconst RED_BG = '\\x1b[48;5;52m';\n\nexport class CliYesnoCommandProcessor implements ICliCommandProcessor {\n command = 'yesno';\n\n description = 'Generate a random yes/no answer with animation';\n\n acceptsRawInput = true;\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🎰',\n };\n\n parameters?: ICliCommandParameterDescriptor[] = [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of rounds to run (default: 1)',\n required: false,\n type: 'number',\n defaultValue: '1',\n },\n ];\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const count = parseInt(command.args['count'] || command.args['n']) || 1;\n const question = command.value?.trim();\n\n if (question) {\n context.writer.writeln(\n `${CYAN}?${RESET} ${BOLD}${question}${RESET}`,\n );\n context.writer.writeln();\n }\n\n for (let i = 0; i < count; i++) {\n if (i > 0) {\n context.writer.writeln();\n }\n\n await this.runSlotMachine(context);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('yesno', CliForegroundColor.Cyan)} Generate a random yes/no`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno Should I deploy?', CliForegroundColor.Cyan)} Ask a question`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno --count=5', CliForegroundColor.Cyan)} Run 5 rounds`,\n );\n }\n\n private runSlotMachine(context: ICliExecutionContext): Promise<void> {\n return new Promise<void>((resolve) => {\n const result = Math.random() < 0.5;\n const totalSteps = 20;\n let step = 0;\n let aborted = false;\n\n const subscription = context.onAbort.subscribe(() => {\n aborted = true;\n subscription.unsubscribe();\n this.clearBox(context);\n context.writer.writeln(`${DIM}(cancelled)${RESET}`);\n resolve();\n });\n\n const animate = () => {\n if (aborted) {\n return;\n }\n\n this.clearBox(context);\n\n const isLast = step === totalSteps;\n const currentValue = isLast ? result : step % 2 === 0;\n\n this.drawBox(context, currentValue, isLast);\n\n step++;\n\n if (step <= totalSteps) {\n const baseDelay = 60;\n const progress = step / totalSteps;\n const delay = baseDelay + Math.pow(progress, 3) * 440;\n setTimeout(animate, delay);\n } else {\n subscription.unsubscribe();\n context.writer.writeln();\n const label = result ? 'YES' : 'NO';\n const color = result ? GREEN : RED;\n context.writer.writeln(\n ` ${color}${BOLD}The answer is: ${label}${RESET}`,\n );\n resolve();\n }\n };\n\n animate();\n });\n }\n\n private drawBox(\n context: ICliExecutionContext,\n value: boolean,\n isFinal: boolean,\n ): void {\n const label = value ? ' YES ' : ' NO ';\n const color = isFinal ? (value ? GREEN : RED) : CYAN;\n const bgColor = isFinal ? (value ? GREEN_BG : RED_BG) : '';\n const border = isFinal ? color : DIM;\n\n const top = ` ${border}+-----------+${RESET}`;\n const mid = ` ${border}|${RESET} ${bgColor}${color}${BOLD} > ${label} < ${RESET} ${border}|${RESET}`;\n const bot = ` ${border}+-----------+${RESET}`;\n\n context.terminal.write(`${top}\\r\\n${mid}\\r\\n${bot}`);\n }\n\n private clearBox(context: ICliExecutionContext): void {\n for (let i = 0; i < 3; i++) {\n context.terminal.write('\\x1b[2K');\n if (i < 2) {\n context.terminal.write('\\x1b[A');\n }\n }\n context.terminal.write('\\r');\n }\n}\n","/*\n * Public API Surface of yesno\n */\n\nexport * from './lib/processors/cli-yesno-command-processor';\n\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliYesnoCommandProcessor } from './lib/processors/cli-yesno-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const yesnoModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-yesno',\n processors: [new CliYesnoCommandProcessor()],\n translations: {\n es: { 'cli.yesno.description': 'Generar una respuesta aleatoria de sí o no' },\n fr: { 'cli.yesno.description': 'Générer une réponse aléatoire oui/non' },\n de: { 'cli.yesno.description': 'Zufällige Ja/Nein-Antwort generieren' },\n pt: { 'cli.yesno.description': 'Gerar uma resposta aleatória de sim ou não' },\n it: { 'cli.yesno.description': 'Generare una risposta casuale sì/no' },\n ja: { 'cli.yesno.description': 'ランダムにはい/いいえを生成' },\n ko: { 'cli.yesno.description': '무작위 예/아니오 답변 생성' },\n zh: { 'cli.yesno.description': '随机生成是/否答案' },\n ru: { 'cli.yesno.description': 'Сгенерировать случайный ответ да/нет' },\n ro: { 'cli.yesno.description': 'Generează un răspuns aleatoriu da/nu' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/yesno/src/lib/version.ts","../../packages/plugins/yesno/src/lib/processors/cli-yesno-command-processor.ts","../../packages/plugins/yesno/src/public-api.ts"],"names":["DefaultLibraryAuthor","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.9';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst RESET = '\\x1b[0m';\nconst GREEN = '\\x1b[38;5;82m';\nconst RED = '\\x1b[38;5;196m';\nconst CYAN = '\\x1b[38;5;45m';\nconst DIM = '\\x1b[2m';\nconst BOLD = '\\x1b[1m';\nconst GREEN_BG = '\\x1b[48;5;22m';\nconst RED_BG = '\\x1b[48;5;52m';\n\nexport class CliYesnoCommandProcessor implements ICliCommandProcessor {\n command = 'yesno';\n\n description = 'Generate a random yes/no answer with animation';\n\n acceptsRawInput = true;\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🎰',\n };\n\n parameters?: ICliCommandParameterDescriptor[] = [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of rounds to run (default: 1)',\n required: false,\n type: 'number',\n defaultValue: '1',\n },\n ];\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const count = parseInt(command.args['count'] || command.args['n']) || 1;\n const question = command.value?.trim();\n\n if (question) {\n context.writer.writeln(\n `${CYAN}?${RESET} ${BOLD}${question}${RESET}`,\n );\n context.writer.writeln();\n }\n\n for (let i = 0; i < count; i++) {\n if (i > 0) {\n context.writer.writeln();\n }\n\n await this.runSlotMachine(context);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('yesno', CliForegroundColor.Cyan)} Generate a random yes/no`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno Should I deploy?', CliForegroundColor.Cyan)} Ask a question`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno --count=5', CliForegroundColor.Cyan)} Run 5 rounds`,\n );\n }\n\n private runSlotMachine(context: ICliExecutionContext): Promise<void> {\n return new Promise<void>((resolve) => {\n const result = Math.random() < 0.5;\n const totalSteps = 20;\n let step = 0;\n let aborted = false;\n\n const subscription = context.onAbort.subscribe(() => {\n aborted = true;\n subscription.unsubscribe();\n this.clearBox(context);\n context.writer.writeln(`${DIM}(cancelled)${RESET}`);\n resolve();\n });\n\n const animate = () => {\n if (aborted) {\n return;\n }\n\n this.clearBox(context);\n\n const isLast = step === totalSteps;\n const currentValue = isLast ? result : step % 2 === 0;\n\n this.drawBox(context, currentValue, isLast);\n\n step++;\n\n if (step <= totalSteps) {\n const baseDelay = 60;\n const progress = step / totalSteps;\n const delay = baseDelay + Math.pow(progress, 3) * 440;\n setTimeout(animate, delay);\n } else {\n subscription.unsubscribe();\n context.writer.writeln();\n const label = result ? 'YES' : 'NO';\n const color = result ? GREEN : RED;\n context.writer.writeln(\n ` ${color}${BOLD}The answer is: ${label}${RESET}`,\n );\n resolve();\n }\n };\n\n animate();\n });\n }\n\n private drawBox(\n context: ICliExecutionContext,\n value: boolean,\n isFinal: boolean,\n ): void {\n const label = value ? ' YES ' : ' NO ';\n const color = isFinal ? (value ? GREEN : RED) : CYAN;\n const bgColor = isFinal ? (value ? GREEN_BG : RED_BG) : '';\n const border = isFinal ? color : DIM;\n\n const top = ` ${border}+-----------+${RESET}`;\n const mid = ` ${border}|${RESET} ${bgColor}${color}${BOLD} > ${label} < ${RESET} ${border}|${RESET}`;\n const bot = ` ${border}+-----------+${RESET}`;\n\n context.terminal.write(`${top}\\r\\n${mid}\\r\\n${bot}`);\n }\n\n private clearBox(context: ICliExecutionContext): void {\n for (let i = 0; i < 3; i++) {\n context.terminal.write('\\x1b[2K');\n if (i < 2) {\n context.terminal.write('\\x1b[A');\n }\n }\n context.terminal.write('\\r');\n }\n}\n","/*\n * Public API Surface of yesno\n */\n\nexport * from './lib/processors/cli-yesno-command-processor';\n\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliYesnoCommandProcessor } from './lib/processors/cli-yesno-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const yesnoModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-yesno',\n processors: [new CliYesnoCommandProcessor()],\n translations: {\n es: { 'cli.yesno.description': 'Generar una respuesta aleatoria de sí o no' },\n fr: { 'cli.yesno.description': 'Générer une réponse aléatoire oui/non' },\n de: { 'cli.yesno.description': 'Zufällige Ja/Nein-Antwort generieren' },\n pt: { 'cli.yesno.description': 'Gerar uma resposta aleatória de sim ou não' },\n it: { 'cli.yesno.description': 'Generare una risposta casuale sì/no' },\n ja: { 'cli.yesno.description': 'ランダムにはい/いいえを生成' },\n ko: { 'cli.yesno.description': '무작위 예/아니오 답변 생성' },\n zh: { 'cli.yesno.description': '随机生成是/否答案' },\n ru: { 'cli.yesno.description': 'Сгенерировать случайный ответ да/нет' },\n ro: { 'cli.yesno.description': 'Generează un răspuns aleatoriu da/nu' },\n },\n};\n"]}
package/public-api.mjs CHANGED
@@ -3,7 +3,7 @@ import { DefaultLibraryAuthor, CliForegroundColor } from '@qodalis/cli-core';
3
3
  // src/lib/processors/cli-yesno-command-processor.ts
4
4
 
5
5
  // src/lib/version.ts
6
- var LIBRARY_VERSION = "2.0.0-beta.8";
6
+ var LIBRARY_VERSION = "2.0.0-beta.9";
7
7
  var API_VERSION = 2;
8
8
 
9
9
  // src/lib/processors/cli-yesno-command-processor.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/yesno/src/lib/version.ts","../../packages/plugins/yesno/src/lib/processors/cli-yesno-command-processor.ts","../../packages/plugins/yesno/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.8';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst RESET = '\\x1b[0m';\nconst GREEN = '\\x1b[38;5;82m';\nconst RED = '\\x1b[38;5;196m';\nconst CYAN = '\\x1b[38;5;45m';\nconst DIM = '\\x1b[2m';\nconst BOLD = '\\x1b[1m';\nconst GREEN_BG = '\\x1b[48;5;22m';\nconst RED_BG = '\\x1b[48;5;52m';\n\nexport class CliYesnoCommandProcessor implements ICliCommandProcessor {\n command = 'yesno';\n\n description = 'Generate a random yes/no answer with animation';\n\n acceptsRawInput = true;\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🎰',\n };\n\n parameters?: ICliCommandParameterDescriptor[] = [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of rounds to run (default: 1)',\n required: false,\n type: 'number',\n defaultValue: '1',\n },\n ];\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const count = parseInt(command.args['count'] || command.args['n']) || 1;\n const question = command.value?.trim();\n\n if (question) {\n context.writer.writeln(\n `${CYAN}?${RESET} ${BOLD}${question}${RESET}`,\n );\n context.writer.writeln();\n }\n\n for (let i = 0; i < count; i++) {\n if (i > 0) {\n context.writer.writeln();\n }\n\n await this.runSlotMachine(context);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('yesno', CliForegroundColor.Cyan)} Generate a random yes/no`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno Should I deploy?', CliForegroundColor.Cyan)} Ask a question`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno --count=5', CliForegroundColor.Cyan)} Run 5 rounds`,\n );\n }\n\n private runSlotMachine(context: ICliExecutionContext): Promise<void> {\n return new Promise<void>((resolve) => {\n const result = Math.random() < 0.5;\n const totalSteps = 20;\n let step = 0;\n let aborted = false;\n\n const subscription = context.onAbort.subscribe(() => {\n aborted = true;\n subscription.unsubscribe();\n this.clearBox(context);\n context.writer.writeln(`${DIM}(cancelled)${RESET}`);\n resolve();\n });\n\n const animate = () => {\n if (aborted) {\n return;\n }\n\n this.clearBox(context);\n\n const isLast = step === totalSteps;\n const currentValue = isLast ? result : step % 2 === 0;\n\n this.drawBox(context, currentValue, isLast);\n\n step++;\n\n if (step <= totalSteps) {\n const baseDelay = 60;\n const progress = step / totalSteps;\n const delay = baseDelay + Math.pow(progress, 3) * 440;\n setTimeout(animate, delay);\n } else {\n subscription.unsubscribe();\n context.writer.writeln();\n const label = result ? 'YES' : 'NO';\n const color = result ? GREEN : RED;\n context.writer.writeln(\n ` ${color}${BOLD}The answer is: ${label}${RESET}`,\n );\n resolve();\n }\n };\n\n animate();\n });\n }\n\n private drawBox(\n context: ICliExecutionContext,\n value: boolean,\n isFinal: boolean,\n ): void {\n const label = value ? ' YES ' : ' NO ';\n const color = isFinal ? (value ? GREEN : RED) : CYAN;\n const bgColor = isFinal ? (value ? GREEN_BG : RED_BG) : '';\n const border = isFinal ? color : DIM;\n\n const top = ` ${border}+-----------+${RESET}`;\n const mid = ` ${border}|${RESET} ${bgColor}${color}${BOLD} > ${label} < ${RESET} ${border}|${RESET}`;\n const bot = ` ${border}+-----------+${RESET}`;\n\n context.terminal.write(`${top}\\r\\n${mid}\\r\\n${bot}`);\n }\n\n private clearBox(context: ICliExecutionContext): void {\n for (let i = 0; i < 3; i++) {\n context.terminal.write('\\x1b[2K');\n if (i < 2) {\n context.terminal.write('\\x1b[A');\n }\n }\n context.terminal.write('\\r');\n }\n}\n","/*\n * Public API Surface of yesno\n */\n\nexport * from './lib/processors/cli-yesno-command-processor';\n\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliYesnoCommandProcessor } from './lib/processors/cli-yesno-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const yesnoModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-yesno',\n processors: [new CliYesnoCommandProcessor()],\n translations: {\n es: { 'cli.yesno.description': 'Generar una respuesta aleatoria de sí o no' },\n fr: { 'cli.yesno.description': 'Générer une réponse aléatoire oui/non' },\n de: { 'cli.yesno.description': 'Zufällige Ja/Nein-Antwort generieren' },\n pt: { 'cli.yesno.description': 'Gerar uma resposta aleatória de sim ou não' },\n it: { 'cli.yesno.description': 'Generare una risposta casuale sì/no' },\n ja: { 'cli.yesno.description': 'ランダムにはい/いいえを生成' },\n ko: { 'cli.yesno.description': '무작위 예/아니오 답변 생성' },\n zh: { 'cli.yesno.description': '随机生成是/否答案' },\n ru: { 'cli.yesno.description': 'Сгенерировать случайный ответ да/нет' },\n ro: { 'cli.yesno.description': 'Generează un răspuns aleatoriu da/nu' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/yesno/src/lib/version.ts","../../packages/plugins/yesno/src/lib/processors/cli-yesno-command-processor.ts","../../packages/plugins/yesno/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.9';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst RESET = '\\x1b[0m';\nconst GREEN = '\\x1b[38;5;82m';\nconst RED = '\\x1b[38;5;196m';\nconst CYAN = '\\x1b[38;5;45m';\nconst DIM = '\\x1b[2m';\nconst BOLD = '\\x1b[1m';\nconst GREEN_BG = '\\x1b[48;5;22m';\nconst RED_BG = '\\x1b[48;5;52m';\n\nexport class CliYesnoCommandProcessor implements ICliCommandProcessor {\n command = 'yesno';\n\n description = 'Generate a random yes/no answer with animation';\n\n acceptsRawInput = true;\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🎰',\n };\n\n parameters?: ICliCommandParameterDescriptor[] = [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of rounds to run (default: 1)',\n required: false,\n type: 'number',\n defaultValue: '1',\n },\n ];\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const count = parseInt(command.args['count'] || command.args['n']) || 1;\n const question = command.value?.trim();\n\n if (question) {\n context.writer.writeln(\n `${CYAN}?${RESET} ${BOLD}${question}${RESET}`,\n );\n context.writer.writeln();\n }\n\n for (let i = 0; i < count; i++) {\n if (i > 0) {\n context.writer.writeln();\n }\n\n await this.runSlotMachine(context);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('yesno', CliForegroundColor.Cyan)} Generate a random yes/no`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno Should I deploy?', CliForegroundColor.Cyan)} Ask a question`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('yesno --count=5', CliForegroundColor.Cyan)} Run 5 rounds`,\n );\n }\n\n private runSlotMachine(context: ICliExecutionContext): Promise<void> {\n return new Promise<void>((resolve) => {\n const result = Math.random() < 0.5;\n const totalSteps = 20;\n let step = 0;\n let aborted = false;\n\n const subscription = context.onAbort.subscribe(() => {\n aborted = true;\n subscription.unsubscribe();\n this.clearBox(context);\n context.writer.writeln(`${DIM}(cancelled)${RESET}`);\n resolve();\n });\n\n const animate = () => {\n if (aborted) {\n return;\n }\n\n this.clearBox(context);\n\n const isLast = step === totalSteps;\n const currentValue = isLast ? result : step % 2 === 0;\n\n this.drawBox(context, currentValue, isLast);\n\n step++;\n\n if (step <= totalSteps) {\n const baseDelay = 60;\n const progress = step / totalSteps;\n const delay = baseDelay + Math.pow(progress, 3) * 440;\n setTimeout(animate, delay);\n } else {\n subscription.unsubscribe();\n context.writer.writeln();\n const label = result ? 'YES' : 'NO';\n const color = result ? GREEN : RED;\n context.writer.writeln(\n ` ${color}${BOLD}The answer is: ${label}${RESET}`,\n );\n resolve();\n }\n };\n\n animate();\n });\n }\n\n private drawBox(\n context: ICliExecutionContext,\n value: boolean,\n isFinal: boolean,\n ): void {\n const label = value ? ' YES ' : ' NO ';\n const color = isFinal ? (value ? GREEN : RED) : CYAN;\n const bgColor = isFinal ? (value ? GREEN_BG : RED_BG) : '';\n const border = isFinal ? color : DIM;\n\n const top = ` ${border}+-----------+${RESET}`;\n const mid = ` ${border}|${RESET} ${bgColor}${color}${BOLD} > ${label} < ${RESET} ${border}|${RESET}`;\n const bot = ` ${border}+-----------+${RESET}`;\n\n context.terminal.write(`${top}\\r\\n${mid}\\r\\n${bot}`);\n }\n\n private clearBox(context: ICliExecutionContext): void {\n for (let i = 0; i < 3; i++) {\n context.terminal.write('\\x1b[2K');\n if (i < 2) {\n context.terminal.write('\\x1b[A');\n }\n }\n context.terminal.write('\\r');\n }\n}\n","/*\n * Public API Surface of yesno\n */\n\nexport * from './lib/processors/cli-yesno-command-processor';\n\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliYesnoCommandProcessor } from './lib/processors/cli-yesno-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const yesnoModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-yesno',\n processors: [new CliYesnoCommandProcessor()],\n translations: {\n es: { 'cli.yesno.description': 'Generar una respuesta aleatoria de sí o no' },\n fr: { 'cli.yesno.description': 'Générer une réponse aléatoire oui/non' },\n de: { 'cli.yesno.description': 'Zufällige Ja/Nein-Antwort generieren' },\n pt: { 'cli.yesno.description': 'Gerar uma resposta aleatória de sim ou não' },\n it: { 'cli.yesno.description': 'Generare una risposta casuale sì/no' },\n ja: { 'cli.yesno.description': 'ランダムにはい/いいえを生成' },\n ko: { 'cli.yesno.description': '무작위 예/아니오 답변 생성' },\n zh: { 'cli.yesno.description': '随机生成是/否答案' },\n ru: { 'cli.yesno.description': 'Сгенерировать случайный ответ да/нет' },\n ro: { 'cli.yesno.description': 'Generează un răspuns aleatoriu da/nu' },\n },\n};\n"]}
@@ -1838,9 +1838,11 @@ var yesno = (() => {
1838
1838
  email: "nicolae.lupei@qodalis.com"
1839
1839
  };
1840
1840
  var semver = __toESM(require_semver2());
1841
+ var API_VERSION = 2;
1842
+ var VERSIONS_ENDPOINT = "/api/qcli/versions";
1841
1843
  var ServerVersionNegotiator = class {
1842
1844
  static {
1843
- this.CLIENT_SUPPORTED_VERSIONS = [2];
1845
+ this.CLIENT_SUPPORTED_VERSIONS = [API_VERSION];
1844
1846
  }
1845
1847
  /**
1846
1848
  * Given a server's version info, pick the highest mutually compatible version.
@@ -1859,7 +1861,7 @@ var yesno = (() => {
1859
1861
  */
1860
1862
  static async discover(baseUrl) {
1861
1863
  try {
1862
- const response = await fetch(`${baseUrl}/api/qcli/versions`);
1864
+ const response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`);
1863
1865
  if (!response.ok) return null;
1864
1866
  const info = await response.json();
1865
1867
  const version = this.negotiate(info);
@@ -2691,8 +2693,8 @@ var yesno = (() => {
2691
2693
  };
2692
2694
 
2693
2695
  // src/lib/version.ts
2694
- var LIBRARY_VERSION = "2.0.0-beta.8";
2695
- var API_VERSION = 2;
2696
+ var LIBRARY_VERSION = "2.0.0-beta.9";
2697
+ var API_VERSION2 = 2;
2696
2698
 
2697
2699
  // src/lib/processors/cli-yesno-command-processor.ts
2698
2700
  var RESET = "\x1B[0m";
@@ -2821,7 +2823,7 @@ ${bot}`);
2821
2823
 
2822
2824
  // src/cli-entrypoint.ts
2823
2825
  var module = {
2824
- apiVersion: API_VERSION,
2826
+ apiVersion: API_VERSION2,
2825
2827
  name: "@qodalis/cli-yesno",
2826
2828
  processors: [new CliYesnoCommandProcessor()]
2827
2829
  };