@qodalis/cli-yesno 2.2.0 → 2.3.0
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 +2 -2
- package/public-api.d.mts +1 -1
- package/public-api.d.ts +1 -1
- package/public-api.js +1 -1
- package/public-api.js.map +1 -1
- package/public-api.mjs +1 -1
- package/public-api.mjs.map +1 -1
- package/umd/index.global.js +33 -30
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qodalis/cli-yesno",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
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.
|
|
24
|
+
"@qodalis/cli-core": "2.3.0"
|
|
25
25
|
},
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"main": "./public-api.js",
|
package/public-api.d.mts
CHANGED
|
@@ -16,7 +16,7 @@ declare class CliYesnoCommandProcessor implements ICliCommandProcessor {
|
|
|
16
16
|
private clearBox;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
declare const LIBRARY_VERSION = "2.
|
|
19
|
+
declare const LIBRARY_VERSION = "2.3.0";
|
|
20
20
|
declare const API_VERSION = 2;
|
|
21
21
|
|
|
22
22
|
declare const yesnoModule: ICliModule;
|
package/public-api.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ declare class CliYesnoCommandProcessor implements ICliCommandProcessor {
|
|
|
16
16
|
private clearBox;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
declare const LIBRARY_VERSION = "2.
|
|
19
|
+
declare const LIBRARY_VERSION = "2.3.0";
|
|
20
20
|
declare const API_VERSION = 2;
|
|
21
21
|
|
|
22
22
|
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.
|
|
8
|
+
var LIBRARY_VERSION = "2.3.0";
|
|
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","joinShellWords","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.2.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n joinShellWords,\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 = joinShellWords(command.value ?? '');\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","joinShellWords","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.3.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n joinShellWords,\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 = joinShellWords(command.value ?? '');\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, joinShellWords, CliForegroundColor } from '@qodal
|
|
|
3
3
|
// src/lib/processors/cli-yesno-command-processor.ts
|
|
4
4
|
|
|
5
5
|
// src/lib/version.ts
|
|
6
|
-
var LIBRARY_VERSION = "2.
|
|
6
|
+
var LIBRARY_VERSION = "2.3.0";
|
|
7
7
|
var API_VERSION = 2;
|
|
8
8
|
|
|
9
9
|
// src/lib/processors/cli-yesno-command-processor.ts
|
package/public-api.mjs.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":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.2.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n joinShellWords,\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 = joinShellWords(command.value ?? '');\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.3.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n joinShellWords,\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 = joinShellWords(command.value ?? '');\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/umd/index.global.js
CHANGED
|
@@ -2046,28 +2046,30 @@ var yesno = (() => {
|
|
|
2046
2046
|
brightCyan: "#a5f3fc",
|
|
2047
2047
|
brightWhite: "#f1f5f9"
|
|
2048
2048
|
},
|
|
2049
|
+
// Soft grey paper and slate text; every color reads at 4.5:1 or more on the background
|
|
2049
2050
|
light: {
|
|
2050
|
-
background: "#
|
|
2051
|
-
foreground: "#
|
|
2051
|
+
background: "#f7f8fa",
|
|
2052
|
+
foreground: "#334155",
|
|
2052
2053
|
cursor: "#4f46e5",
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2054
|
+
cursorAccent: "#f7f8fa",
|
|
2055
|
+
selectionBackground: "#d9def7",
|
|
2056
|
+
selectionForeground: "#1e293b",
|
|
2057
|
+
black: "#334155",
|
|
2058
|
+
red: "#c93c37",
|
|
2059
|
+
green: "#2c7a4b",
|
|
2060
|
+
yellow: "#946200",
|
|
2061
|
+
blue: "#3d5bd9",
|
|
2062
|
+
magenta: "#8b3fc7",
|
|
2063
|
+
cyan: "#0e7586",
|
|
2064
|
+
white: "#5b6577",
|
|
2065
|
+
brightBlack: "#667085",
|
|
2066
|
+
brightRed: "#b42a25",
|
|
2067
|
+
brightGreen: "#1f6a3d",
|
|
2068
|
+
brightYellow: "#7a5100",
|
|
2069
|
+
brightBlue: "#2f47bd",
|
|
2070
|
+
brightMagenta: "#7431ad",
|
|
2071
|
+
brightCyan: "#0a6170",
|
|
2072
|
+
brightWhite: "#1e293b"
|
|
2071
2073
|
},
|
|
2072
2074
|
classic: {
|
|
2073
2075
|
background: "#0c0c0c",
|
|
@@ -2693,17 +2695,18 @@ var yesno = (() => {
|
|
|
2693
2695
|
danger: "#f87171",
|
|
2694
2696
|
shadow: "rgba(0, 0, 0, 0.45)"
|
|
2695
2697
|
}),
|
|
2698
|
+
// Soft grey paper instead of pure white, slate text rather than black: easier on the eyes
|
|
2696
2699
|
light: Object.freeze({
|
|
2697
|
-
background: "#
|
|
2698
|
-
headerBackground: "#
|
|
2699
|
-
border: "#
|
|
2700
|
-
text: "#
|
|
2701
|
-
textSecondary: "#
|
|
2700
|
+
background: "#f7f8fa",
|
|
2701
|
+
headerBackground: "#eceff3",
|
|
2702
|
+
border: "#d9dee6",
|
|
2703
|
+
text: "#1e293b",
|
|
2704
|
+
textSecondary: "#5b6577",
|
|
2702
2705
|
accent: "#4f46e5",
|
|
2703
|
-
hoverBackground: "rgba(
|
|
2704
|
-
activeBackground: "rgba(79, 70, 229, 0.
|
|
2705
|
-
danger: "#
|
|
2706
|
-
shadow: "rgba(15, 23, 42, 0.
|
|
2706
|
+
hoverBackground: "rgba(30, 41, 59, 0.06)",
|
|
2707
|
+
activeBackground: "rgba(79, 70, 229, 0.12)",
|
|
2708
|
+
danger: "#c93c37",
|
|
2709
|
+
shadow: "rgba(15, 23, 42, 0.12)"
|
|
2707
2710
|
})
|
|
2708
2711
|
});
|
|
2709
2712
|
var PALETTE_TERMINALS = {
|
|
@@ -2899,7 +2902,7 @@ var yesno = (() => {
|
|
|
2899
2902
|
};
|
|
2900
2903
|
|
|
2901
2904
|
// src/lib/version.ts
|
|
2902
|
-
var LIBRARY_VERSION = "2.
|
|
2905
|
+
var LIBRARY_VERSION = "2.3.0";
|
|
2903
2906
|
var API_VERSION2 = 2;
|
|
2904
2907
|
|
|
2905
2908
|
// src/lib/processors/cli-yesno-command-processor.ts
|