@qodalis/cli-text-to-image 2.2.0 → 2.4.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.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-text-to-image",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "@qodalis/cli extension for converting text to images.",
|
|
5
5
|
"author": "Nicolae Lupei, Qodalis Solutions",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"umd": "./umd/index.global.js",
|
|
23
23
|
"unpkg": "./umd/index.global.js",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@qodalis/cli-core": "2.
|
|
25
|
+
"@qodalis/cli-core": "2.4.0"
|
|
26
26
|
},
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"main": "./public-api.js",
|
package/public-api.js
CHANGED
|
@@ -5,7 +5,7 @@ var cliCore = require('@qodalis/cli-core');
|
|
|
5
5
|
// src/lib/processors/cli-text-to-image-command-processor.ts
|
|
6
6
|
|
|
7
7
|
// src/lib/version.ts
|
|
8
|
-
var LIBRARY_VERSION = "2.
|
|
8
|
+
var LIBRARY_VERSION = "2.4.0";
|
|
9
9
|
var API_VERSION = 2;
|
|
10
10
|
|
|
11
11
|
// src/lib/processors/cli-text-to-image-command-processor.ts
|
package/public-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":["DefaultLibraryAuthor","joinShellWords","getPluginConfigValue","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 ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":["DefaultLibraryAuthor","joinShellWords","getPluginConfigValue","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.4.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
|
package/public-api.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { DefaultLibraryAuthor, joinShellWords, getPluginConfigValue, CliForegrou
|
|
|
3
3
|
// src/lib/processors/cli-text-to-image-command-processor.ts
|
|
4
4
|
|
|
5
5
|
// src/lib/version.ts
|
|
6
|
-
var LIBRARY_VERSION = "2.
|
|
6
|
+
var LIBRARY_VERSION = "2.4.0";
|
|
7
7
|
var API_VERSION = 2;
|
|
8
8
|
|
|
9
9
|
// src/lib/processors/cli-text-to-image-command-processor.ts
|
package/public-api.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/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 ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/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.4.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
|
package/umd/index.global.js
CHANGED
|
@@ -2071,28 +2071,30 @@ var textToImage = (() => {
|
|
|
2071
2071
|
brightCyan: "#a5f3fc",
|
|
2072
2072
|
brightWhite: "#f1f5f9"
|
|
2073
2073
|
},
|
|
2074
|
+
// Soft grey paper and slate text; every color reads at 4.5:1 or more on the background
|
|
2074
2075
|
light: {
|
|
2075
|
-
background: "#
|
|
2076
|
-
foreground: "#
|
|
2076
|
+
background: "#f7f8fa",
|
|
2077
|
+
foreground: "#334155",
|
|
2077
2078
|
cursor: "#4f46e5",
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2079
|
+
cursorAccent: "#f7f8fa",
|
|
2080
|
+
selectionBackground: "#d9def7",
|
|
2081
|
+
selectionForeground: "#1e293b",
|
|
2082
|
+
black: "#334155",
|
|
2083
|
+
red: "#c93c37",
|
|
2084
|
+
green: "#2c7a4b",
|
|
2085
|
+
yellow: "#946200",
|
|
2086
|
+
blue: "#3d5bd9",
|
|
2087
|
+
magenta: "#8b3fc7",
|
|
2088
|
+
cyan: "#0e7586",
|
|
2089
|
+
white: "#5b6577",
|
|
2090
|
+
brightBlack: "#667085",
|
|
2091
|
+
brightRed: "#b42a25",
|
|
2092
|
+
brightGreen: "#1f6a3d",
|
|
2093
|
+
brightYellow: "#7a5100",
|
|
2094
|
+
brightBlue: "#2f47bd",
|
|
2095
|
+
brightMagenta: "#7431ad",
|
|
2096
|
+
brightCyan: "#0a6170",
|
|
2097
|
+
brightWhite: "#1e293b"
|
|
2096
2098
|
},
|
|
2097
2099
|
classic: {
|
|
2098
2100
|
background: "#0c0c0c",
|
|
@@ -2718,17 +2720,18 @@ var textToImage = (() => {
|
|
|
2718
2720
|
danger: "#f87171",
|
|
2719
2721
|
shadow: "rgba(0, 0, 0, 0.45)"
|
|
2720
2722
|
}),
|
|
2723
|
+
// Soft grey paper instead of pure white, slate text rather than black: easier on the eyes
|
|
2721
2724
|
light: Object.freeze({
|
|
2722
|
-
background: "#
|
|
2723
|
-
headerBackground: "#
|
|
2724
|
-
border: "#
|
|
2725
|
-
text: "#
|
|
2726
|
-
textSecondary: "#
|
|
2725
|
+
background: "#f7f8fa",
|
|
2726
|
+
headerBackground: "#eceff3",
|
|
2727
|
+
border: "#d9dee6",
|
|
2728
|
+
text: "#1e293b",
|
|
2729
|
+
textSecondary: "#5b6577",
|
|
2727
2730
|
accent: "#4f46e5",
|
|
2728
|
-
hoverBackground: "rgba(
|
|
2729
|
-
activeBackground: "rgba(79, 70, 229, 0.
|
|
2730
|
-
danger: "#
|
|
2731
|
-
shadow: "rgba(15, 23, 42, 0.
|
|
2731
|
+
hoverBackground: "rgba(30, 41, 59, 0.06)",
|
|
2732
|
+
activeBackground: "rgba(79, 70, 229, 0.12)",
|
|
2733
|
+
danger: "#c93c37",
|
|
2734
|
+
shadow: "rgba(15, 23, 42, 0.12)"
|
|
2732
2735
|
})
|
|
2733
2736
|
});
|
|
2734
2737
|
var PALETTE_TERMINALS = {
|
|
@@ -2924,7 +2927,7 @@ var textToImage = (() => {
|
|
|
2924
2927
|
};
|
|
2925
2928
|
|
|
2926
2929
|
// src/lib/version.ts
|
|
2927
|
-
var LIBRARY_VERSION = "2.
|
|
2930
|
+
var LIBRARY_VERSION = "2.4.0";
|
|
2928
2931
|
var API_VERSION2 = 2;
|
|
2929
2932
|
|
|
2930
2933
|
// src/lib/processors/cli-text-to-image-command-processor.ts
|