@qodalis/cli-core 0.0.14 → 0.0.16

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.
@@ -1 +1 @@
1
- {"version":3,"file":"qodalis-cli-core.mjs","sources":["../../../projects/core/src/lib/models/index.ts","../../../projects/core/src/lib/constants/index.ts","../../../projects/core/src/lib/utils/delay.ts","../../../projects/core/src/lib/utils/object-describer.ts","../../../projects/core/src/lib/utils/index.ts","../../../projects/core/src/lib/modules/index.ts","../../../projects/core/src/lib/types/CancellablePromise.ts","../../../projects/core/src/lib/themes/index.ts","../../../projects/core/src/lib/version.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/qodalis-cli-core.ts"],"sourcesContent":["import { ITerminalInitOnlyOptions, ITerminalOptions } from '@xterm/xterm';\n\nexport type CliProcessCommand = {\n /**\n * The command that was entered\n */\n command: string;\n\n /**\n * The data that was entered\n */\n data?: any;\n\n /**\n * The chain of commands that were entered\n */\n chainCommands: string[];\n\n /**\n * The raw command that was entered\n */\n rawCommand: string;\n\n /**\n * The value of the command\n */\n value?: string;\n\n /**\n * The arguments that were entered\n */\n args: Record<string, any>;\n};\n\nexport enum CliForegroundColor {\n Black = '\\x1b[30m',\n Red = '\\x1b[31m',\n Green = '\\x1b[32m',\n Yellow = '\\x1b[33m',\n Blue = '\\x1b[34m',\n Magenta = '\\x1b[35m',\n Cyan = '\\x1b[36m',\n White = '\\x1b[37m',\n Reset = '\\x1b[0m',\n}\n\nexport enum CliBackgroundColor {\n Black = '\\x1b[40m',\n Red = '\\x1b[41m',\n Green = '\\x1b[42m',\n Yellow = '\\x1b[43m',\n Blue = '\\x1b[44m',\n Magenta = '\\x1b[45m',\n Cyan = '\\x1b[46m',\n White = '\\x1b[47m',\n}\n\nexport enum CliIcon {\n // General Symbols\n CheckIcon = '✔', // Success, completion\n CrossIcon = '✘', // Failure, error\n InfoIcon = 'ℹ', // Information\n WarningIcon = '⚠', // Warning\n QuestionMark = '?', // Help or unknown state\n Exclamation = '❗', // Emphasis or alert\n Ellipsis = '…', // Loading or truncated text\n Dot = '•', // List item\n Bullet = '‣', // Alternate bullet point\n\n // Arrows\n ArrowRight = '→', // Navigation or next step\n ArrowLeft = '←', // Previous step or navigation\n ArrowUp = '↑', // Up direction\n ArrowDown = '↓', // Down direction\n ArrowRightFilled = '▶', // Navigation or next step (filled)\n ArrowLeftFilled = '◀', // Previous step or navigation (filled)\n ArrowUpFilled = '▲', // Up direction (filled)\n ArrowDownFilled = '▼', // Down direction (filled)\n DoubleArrowRight = '»', // Fast forward or next\n DoubleArrowLeft = '«', // Rewind or previous\n\n // Lists and Progress\n Star = '★', // Highlight or favorite (filled)\n StarEmpty = '☆', // Highlight or favorite (empty)\n Plus = '+', // Addition or increment\n Minus = '-', // Subtraction or decrement\n Progress = '⏳', // Indicating progress\n Success = '✅', // Success (alternative to CheckIcon)\n Failure = '❌', // Failure (alternative to CrossIcon)\n\n // Time and Calendar\n Clock = '⏰', // Time-related\n Timer = '⏱', // Stopwatch or timer\n Alarm = '🔔', // Alarm or alert\n Calendar = '📅', // Calendar or date\n\n // Navigation and Folders\n Folder = '📁', // Directory or file grouping\n FolderOpen = '📂', // Open folder\n File = '📄', // File or document\n Archive = '🗃', // Archive or file grouping\n Link = '🔗', // Hyperlink or connection\n Chain = '⛓', // Chain or linked\n Bookmark = '🔖', // Bookmark or save\n\n // Actions\n Edit = '✏', // Edit or modify\n Trash = '🗑', // Deletion or removal\n Add = '➕', // Add user or item\n Remove = '➖', // Remove user or item\n Reload = '🔄', // Refresh or reload\n Save = '💾', // Save or store\n Undo = '↩', // Undo action\n Redo = '↪', // Redo action\n Play = '▶', // Start or play\n Pause = '⏸', // Pause or stop temporarily\n Stop = '⏹', // Stop or end\n Cancel = '❎', // Cancel or close\n\n // User and Security\n User = '👤', // User or profile\n Group = '👥', // Group or team\n Lock = '🔒', // Secured or locked\n Unlock = '🔓', // Unlocked or accessible\n Help = '❓', // Help or support\n Key = '🔑', // Authentication or key\n Shield = '🛡', // Security or protection\n\n // Tools and Settings\n Gear = '⚙', // Settings or configuration\n Settings = '⚙️', // Settings (alternative)\n Theme = '🎨', // Theme or appearance\n Light = '💡', // Light mode\n Bug = '🐞', // Bug or issue\n Wrench = '🔧', // Maintenance or tools\n Hammer = '🔨', // Build or fix\n\n // Technology and Devices\n Terminal = '💻', // Terminal or command line\n Database = '🗄', // Database or storage\n Server = '🖥', // Server or host\n Cloud = '☁', // Cloud or remote\n Network = '🌐', // Network or connection\n Monitor = '🖥', // Monitor or display\n Printer = '🖨', // Printer or output\n USB = '🔌', // USB or connection\n Speaker = '🔊', // Speaker or audio\n Microphone = '🎙', // Microphone or input\n Camera = '📷', // Camera or video\n Video = '🎥', // Video or media\n Music = '🎵', // Music or audio\n Phone = '📞', // Phone or communication\n\n // Development and Evaluation\n Package = '📦', // Package or bundle\n Plugin = '🔌', // Plugin or extension\n Extension = '🧩', // Extension or component\n Module = '📦', // Module or package\n Evaluate = '🔍', // Evaluate or search\n Variable = '🔧', // Variable or setting\n Script = '📜', // Script or code\n Code = '💾', // Code or file\n\n // Status and Completion\n Logs = '📜', // Logs or history\n Power = '⏻', // On/Off state\n Heart = '❤', // Love or favorite\n Flame = '🔥', // Trending or hot\n Growth = '📈', // Growth or increase\n Decline = '📉', // Decline or decrease\n WarningFilled = '⚠️', // Warning (filled)\n\n // Nature and Weather\n Sun = '☀', // Brightness or day\n Moon = '🌙', // Night or dark mode\n Rain = '🌧', // Rain or bad weather\n Snow = '❄', // Snow or cold\n Lightning = '⚡', // Lightning or danger\n Tree = '🌲', // Nature or environment\n\n // Emotions and Expressions\n Smile = '😊', // Happiness or positive state\n Sad = '😢', // Sadness or negative state\n Angry = '😡', // Anger or frustration\n Clap = '👏', // Applause or celebration\n ThumbsUp = '👍', // Approval or success\n ThumbsDown = '👎', // Disapproval or failure\n\n // Miscellaneous\n Rocket = '🚀', // Launch or deploy\n Globe = '🌍', // Earth or international\n Medal = '🏅', // Achievement or award\n Trophy = '🏆', // Winner or champion\n Flag = '🚩', // Mark or flag\n StarFilled = '⭐', // Highlight or favorite\n StarOutline = '✩', // Alternate star icon\n Fireworks = '🎆', // Celebration\n Balloon = '🎈', // Party or fun\n Gift = '🎁', // Reward or present\n}\n\n/**\n * Options for the CLI\n */\nexport type CliOptions = Record<string, any> & {\n /**\n * The welcome message options\n */\n welcomeMessage?: {\n /**\n * The message to display\n */\n message?: string;\n\n /**\n * When to show the welcome message\n * @default 'always'\n */\n show?: 'always' | 'once' | 'daily' | 'never';\n };\n\n /**\n * If true, the welcome message is hidden\n * @default false\n */\n hideWelcomeMessage?: boolean;\n\n /**\n * Users module options\n */\n usersModule?: {\n /**\n * If true, the users module is enabled\n */\n enabled: boolean;\n\n /**\n * Hide the prompt to display when the CLI is ready to accept input\n */\n hideUserName?: boolean;\n\n /**\n * Reload the page when the user changes\n */\n reloadPageOnUserChange?: boolean;\n };\n\n /**\n * Custom terminal options\n */\n terminalOptions?: ITerminalOptions & ITerminalInitOnlyOptions;\n\n /**\n * The minimum log level to display\n */\n logLevel?: CliLogLevel;\n};\n\n/**\n * Represents a package that can be installed\n */\nexport interface Package {\n /**\n * The name of the package\n */\n name: string;\n\n /**\n * The global name used to access the package\n */\n globalName?: string;\n\n /**\n * The version of the package\n */\n version: string;\n\n /**\n * The unpkg url to the package\n */\n url: string;\n\n /**\n * The dependencies for the module\n */\n dependencies?: Package[];\n}\n\n/**\n * Represents command processor metadata\n */\nexport type CliProcessorMetadata = Record<string, any> & {\n /**\n * If true, the processor is sealed and cannot be extended\n */\n sealed?: boolean;\n\n /**\n * If true, the processor requires the server to be running\n */\n requireServer?: boolean;\n\n /**\n * The module the processor belongs to\n */\n module?: string;\n\n /**\n * An icon to display for the processor\n */\n icon?: CliIcon | string;\n};\n\n/**\n * Represents a state configuration for the CLI processor\n */\nexport type CliStateConfiguration = {\n /**\n * The initial state for the processor\n */\n initialState: Record<string, any>;\n\n /**\n * The store identifier for the processor, if any\n * @remarks If the store identifier is not set, the processor command name is used\n */\n storeName?: string;\n};\n\n/**\n * Represents a log level for the CLI\n */\nexport enum CliLogLevel {\n None = 0,\n DEBUG = 1,\n LOG = 2,\n INFO = 3,\n WARN = 4,\n ERROR = 5,\n}\n\nexport type CliState = Record<string, any>;\n\nexport const enums = {\n CliForegroundColor,\n CliBackgroundColor,\n CliIcon,\n CliLogLevel,\n};\n\nexport * from './services';\nexport * from './users';\n","import { ICliCommandAuthor } from '../interfaces';\n\nexport const DefaultLibraryAuthor: ICliCommandAuthor = {\n name: 'Nicolae Lupei',\n email: 'nicolae.lupei@qodalis.com',\n};\n\nexport const constants = {\n DefaultLibraryAuthor,\n};\n","export const delay = (ms: number): Promise<void> => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n};\n","import { ICliCommandProcessor, ICliExecutionContext } from '../interfaces';\nimport { CliForegroundColor, CliProcessCommand } from '../models';\n\nexport class ObjectDescriber {\n static describe(\n obj: any,\n options?: {\n filter?: (o: {\n funcName: string;\n func: any;\n args: string[];\n }) => boolean;\n },\n ): ICliCommandProcessor[] {\n const { filter } = options || {};\n\n const processors: ICliCommandProcessor[] = [];\n\n const keys = Object.keys(obj);\n\n const functions = keys.filter((key) => typeof obj[key] === 'function');\n\n for (const func of functions) {\n const funcValue = obj[func];\n const args = this.getFunctionArguments(funcValue);\n\n if (filter) {\n const shouldInclude = filter({\n funcName: func,\n func: funcValue,\n args,\n });\n\n if (!shouldInclude) {\n continue;\n }\n }\n\n const supportsMultipleArgs = args.length > 1;\n\n const supportsDynamicArgs = this.supportsDynamicArgs(funcValue);\n\n if (args.length === 0 && !supportsDynamicArgs) {\n continue;\n }\n\n if (\n args.length > 0 &&\n args.some((arg) => arg === 'function' || arg === 'func')\n ) {\n continue;\n }\n\n const processor: ICliCommandProcessor = {\n command: func,\n description: `A command that executes the function ${func} with the provided arguments`,\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'debug',\n description: 'Debug',\n type: 'boolean',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const debug = command.args['debug'] as boolean;\n\n if (debug) {\n context.writer.writeln('Executing command: ' + func);\n context.writer.writeln(\n 'Arguments: ' + JSON.stringify(command.args),\n );\n context.writer.writeln(\n 'Function: ' + funcValue.toString(),\n );\n }\n\n const argsToCallF: any[] = [];\n\n if (supportsMultipleArgs) {\n for (const arg of args.slice(1)) {\n argsToCallF.push(command.args[arg]);\n }\n }\n\n if (supportsDynamicArgs) {\n const delimiter = command.args['delimiter'] || ',';\n argsToCallF.push(...command.value!.split(delimiter));\n }\n\n if (debug) {\n context.writer.writeln(\n 'Arguments after processing: ' +\n JSON.stringify(argsToCallF),\n );\n }\n\n const result =\n supportsDynamicArgs && args.length === 0\n ? funcValue(...argsToCallF)\n : funcValue(command.value, ...argsToCallF);\n\n context.writer.write(\n context.writer.wrapInColor(\n 'Result: ',\n CliForegroundColor.Yellow,\n ),\n );\n\n if (result === null) {\n context.writer.writeln('null');\n } else if (result === undefined) {\n context.writer.writeln('undefined');\n } else if (typeof result === 'boolean') {\n context.writer.writeln(result.toString());\n } else if (typeof result === 'number') {\n context.writer.writeln(result.toString());\n } else if (Array.isArray(result)) {\n context.writer.writeJson(result);\n } else if (typeof result === 'string') {\n context.writer.writeln(result);\n } else if (typeof result === 'object') {\n context.writer.writeJson(result);\n } else {\n context.writer.writeln(result?.toString());\n }\n\n context.process.output(result?.toString());\n },\n writeDescription: (context: ICliExecutionContext) => {\n context.writer.writeln(func);\n },\n };\n\n if (supportsDynamicArgs) {\n processor.parameters?.push({\n name: 'delimiter',\n description: 'Delimiter',\n type: 'string',\n required: false,\n });\n }\n\n if (supportsMultipleArgs) {\n processor.parameters?.push(\n ...args.slice(1).map((arg) => ({\n name: arg,\n description: arg,\n type: 'string',\n required: false,\n })),\n );\n }\n\n processors.push(processor);\n }\n\n return processors;\n }\n\n static supportsDynamicArgs(func: any): boolean {\n const funcStr = func.toString();\n return funcStr.includes('arguments');\n }\n\n static getFunctionArguments(func: any): string[] {\n const funcStr = func.toString();\n const args = funcStr.match(/\\(([^)]*)\\)/);\n if (!args) {\n return [];\n }\n return args[1]\n .split(',')\n .map((arg: string) => arg.trim())\n .filter((arg: string) => arg !== '');\n }\n}\n","import { ICliCommandParameterDescriptor } from '../interfaces';\nimport { CliBackgroundColor, CliForegroundColor } from '../models';\nimport { delay } from './delay';\nimport { ObjectDescriber } from './object-describer';\n\nexport const getParameterValue = (\n p: ICliCommandParameterDescriptor,\n args: Record<string, any>,\n): any | undefined => {\n return (\n args[p.name] ??\n (p.aliases?.find((alias) => args[alias]) &&\n args[p.aliases!.find((alias) => args[alias])!])\n );\n};\n\nexport const formatJson = (json: any): string => {\n const identedJson = JSON.stringify(json, null, 2);\n\n return colorizeJson(identedJson.split('\\n').join('\\r\\n'));\n};\n\nexport const colorizeJson = (jsonString: any): string => {\n return jsonString\n .replace(/\"([^\"]+)\":/g, '\\x1b[33m\"$1\":\\x1b[0m') // Keys (yellow)\n .replace(/: \"([^\"]*)\"/g, ': \\x1b[32m\"$1\"\\x1b[0m') // Strings (green)\n .replace(/: (\\d+)/g, ': \\x1b[34m$1\\x1b[0m') // Numbers (blue)\n .replace(/: (true|false)/g, ': \\x1b[35m$1\\x1b[0m') // Booleans (magenta)\n .replace(/: (null)/g, ': \\x1b[36m$1\\x1b[0m'); // Null (cyan)\n};\n\nexport const toQueryString = (params: Record<string, any>): string => {\n const searchParams = new URLSearchParams();\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const value = params[key];\n // Handle array and non-primitive values\n if (Array.isArray(value)) {\n value.forEach((v) => searchParams.append(key, v.toString()));\n } else if (value !== null && value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n }\n\n return searchParams.toString();\n};\n\nexport const highlightTextWithBg = (\n text: string,\n pattern: RegExp,\n bgColor: CliBackgroundColor = CliBackgroundColor.Yellow,\n): string => {\n // Replace matches with background-colored text\n return text.replace(\n pattern,\n (match) => `${bgColor}${match}${CliForegroundColor.Reset}`,\n );\n};\n\nexport const getRightOfWord = (\n command: string,\n word: string,\n): string | undefined => {\n // Find the position of the word in the command\n const index = command.indexOf(word);\n\n // If the word is found, extract the substring to the right\n if (index !== -1) {\n return command.slice(index + word.length).trim();\n }\n\n // If the word is not found, return null\n return undefined;\n};\n\nexport const colorFirstWord = (\n text: string,\n colorFunction: (word: string) => string,\n) => {\n if (!text) return text;\n\n // Match leading spaces and first word separately\n const match = text.match(/^(\\s*)(\\S+)(.*)$/);\n\n if (!match) return text; // If no match, return original text\n\n const [, leadingSpaces, firstWord, restOfText] = match;\n\n // Apply color only to the first word\n const firstWordColored = colorFunction(firstWord);\n\n // Reconstruct string: Keep spaces, color first word, and append rest\n return `${leadingSpaces}${firstWordColored}${restOfText}`;\n};\n\nexport * from './object-describer';\n\nexport * from './delay';\n\nexport const utils = {\n getParameterValue,\n formatJson,\n colorizeJson,\n toQueryString,\n highlightTextWithBg,\n getRightOfWord,\n colorFirstWord,\n ObjectDescriber,\n delay,\n};\n","import { enums } from '../models';\nimport { constants } from '../constants';\nimport { ICliExecutionContext, ICliUmdModule } from '../interfaces';\nimport { utils } from '../utils';\n\nexport const initializeBrowserEnvironment = ({\n context,\n handlers,\n}: {\n context: ICliExecutionContext;\n handlers: ((module: ICliUmdModule) => Promise<void>)[];\n}): void => {\n (window as any).cliCore = {\n onUmdModuleBoot: handlers || [],\n bootUmdModule: async (module: ICliUmdModule) => {\n context.logger.log('Booting UMD module', module.name);\n (window as any)[module.name] = module;\n handlers.forEach(async (handler) => await handler(module));\n },\n ...constants,\n ...utils,\n ...enums,\n };\n\n (window as any).ngCore = {\n Injectable: () => {},\n };\n};\n\nexport const bootUmdModule = async (module: ICliUmdModule): Promise<void> => {\n if (typeof (window as any) !== 'undefined') {\n await (window as any).cliCore.bootUmdModule(module);\n } else {\n console.log('window is undefined');\n }\n};\n","export class CancellablePromise<T> {\n private hasCancelled = false;\n\n private abortController = new AbortController();\n\n constructor(\n private executor: (\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {}\n\n public execute(): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n this.abortController.signal.onabort = () => {\n reject(new Error('Promise cancelled'));\n };\n\n this.executor(\n (value) => {\n if (!this.hasCancelled) {\n resolve(value);\n }\n },\n (reason) => {\n if (!this.hasCancelled) {\n reject(reason);\n }\n },\n );\n });\n }\n\n cancel() {\n this.hasCancelled = true;\n this.abortController.abort();\n }\n}\n","import { ITheme } from '@xterm/xterm';\n\nexport type CliTheme = ITheme;\n\nexport const DefaultThemes: {\n default: CliTheme;\n dracula: CliTheme;\n monokai: CliTheme;\n solarizedDark: CliTheme;\n solarizedLight: CliTheme;\n gruvboxDark: CliTheme;\n gruvboxLight: CliTheme;\n nord: CliTheme;\n oneDark: CliTheme;\n material: CliTheme;\n yellow: CliTheme;\n [key: string]: CliTheme;\n} = {\n default: {\n background: '#0c0c0c',\n foreground: '#cccccc',\n green: '#16c60c',\n blue: '#3b78ff',\n yellow: '#FFA500',\n },\n dracula: {\n background: '#282A36',\n foreground: '#F8F8F2',\n cursor: '#50FA7B',\n black: '#21222C',\n red: '#FF5555',\n green: '#50FA7B',\n yellow: '#F1FA8C',\n blue: '#BD93F9',\n magenta: '#FF79C6',\n cyan: '#8BE9FD',\n white: '#F8F8F2',\n brightBlack: '#6272A4',\n brightRed: '#FF6E6E',\n brightGreen: '#69FF94',\n brightYellow: '#FFFFA5',\n brightBlue: '#D6ACFF',\n brightMagenta: '#FF92D0',\n brightCyan: '#A4FFFF',\n brightWhite: '#FFFFFF',\n },\n monokai: {\n background: '#272822',\n foreground: '#F8F8F2',\n cursor: '#F8F8F0',\n black: '#272822',\n red: '#F92672',\n green: '#A6E22E',\n yellow: '#F4BF75',\n blue: '#66D9EF',\n magenta: '#AE81FF',\n cyan: '#A1EFE4',\n white: '#F8F8F2',\n brightBlack: '#75715E',\n brightRed: '#F92672',\n brightGreen: '#A6E22E',\n brightYellow: '#F4BF75',\n brightBlue: '#66D9EF',\n brightMagenta: '#AE81FF',\n brightCyan: '#A1EFE4',\n brightWhite: '#F9F8F5',\n },\n solarizedDark: {\n background: '#002B36',\n foreground: '#839496',\n cursor: '#93A1A1',\n black: '#073642',\n red: '#DC322F',\n green: '#859900',\n yellow: '#B58900',\n blue: '#268BD2',\n magenta: '#D33682',\n cyan: '#2AA198',\n white: '#EEE8D5',\n brightBlack: '#002B36',\n brightRed: '#CB4B16',\n brightGreen: '#586E75',\n brightYellow: '#657B83',\n brightBlue: '#839496',\n brightMagenta: '#6C71C4',\n brightCyan: '#93A1A1',\n brightWhite: '#FDF6E3',\n },\n solarizedLight: {\n background: '#FDF6E3',\n foreground: '#657B83',\n cursor: '#586E75',\n black: '#073642',\n red: '#DC322F',\n green: '#859900',\n yellow: '#B58900',\n blue: '#268BD2',\n magenta: '#D33682',\n cyan: '#2AA198',\n white: '#EEE8D5',\n brightBlack: '#002B36',\n brightRed: '#CB4B16',\n brightGreen: '#586E75',\n brightYellow: '#657B83',\n brightBlue: '#839496',\n brightMagenta: '#6C71C4',\n brightCyan: '#93A1A1',\n brightWhite: '#FDF6E3',\n },\n gruvboxDark: {\n background: '#282828',\n foreground: '#EBDBB2',\n cursor: '#EBDBB2',\n black: '#282828',\n red: '#CC241D',\n green: '#98971A',\n yellow: '#D79921',\n blue: '#458588',\n magenta: '#B16286',\n cyan: '#689D6A',\n white: '#A89984',\n brightBlack: '#928374',\n brightRed: '#FB4934',\n brightGreen: '#B8BB26',\n brightYellow: '#FABD2F',\n brightBlue: '#83A598',\n brightMagenta: '#D3869B',\n brightCyan: '#8EC07C',\n brightWhite: '#EBDBB2',\n },\n gruvboxLight: {\n background: '#FBF1C7',\n foreground: '#3C3836',\n cursor: '#3C3836',\n black: '#FBF1C7',\n red: '#9D0006',\n green: '#79740E',\n yellow: '#B57614',\n blue: '#076678',\n magenta: '#8F3F71',\n cyan: '#427B58',\n white: '#3C3836',\n brightBlack: '#D5C4A1',\n brightRed: '#AF3A03',\n brightGreen: '#B8BB26',\n brightYellow: '#FABD2F',\n brightBlue: '#83A598',\n brightMagenta: '#D3869B',\n brightCyan: '#8EC07C',\n brightWhite: '#EBDBB2',\n },\n nord: {\n background: '#2E3440',\n foreground: '#D8DEE9',\n cursor: '#88C0D0',\n black: '#3B4252',\n red: '#BF616A',\n green: '#A3BE8C',\n yellow: '#EBCB8B',\n blue: '#81A1C1',\n magenta: '#B48EAD',\n cyan: '#88C0D0',\n white: '#E5E9F0',\n brightBlack: '#4C566A',\n brightRed: '#BF616A',\n brightGreen: '#A3BE8C',\n brightYellow: '#EBCB8B',\n brightBlue: '#81A1C1',\n brightMagenta: '#B48EAD',\n brightCyan: '#8FBCBB',\n brightWhite: '#ECEFF4',\n },\n oneDark: {\n background: '#282C34',\n foreground: '#ABB2BF',\n cursor: '#528BFF',\n black: '#282C34',\n red: '#E06C75',\n green: '#98C379',\n yellow: '#E5C07B',\n blue: '#61AFEF',\n magenta: '#C678DD',\n cyan: '#56B6C2',\n white: '#ABB2BF',\n brightBlack: '#5C6370',\n brightRed: '#E06C75',\n brightGreen: '#98C379',\n brightYellow: '#E5C07B',\n brightBlue: '#61AFEF',\n brightMagenta: '#C678DD',\n brightCyan: '#56B6C2',\n brightWhite: '#FFFFFF',\n },\n material: {\n background: '#263238',\n foreground: '#ECEFF1',\n cursor: '#FFCC00',\n black: '#263238',\n red: '#F07178',\n green: '#C3E88D',\n yellow: '#FFCB6B',\n blue: '#82AAFF',\n magenta: '#C792EA',\n cyan: '#89DDFF',\n white: '#EEFFFF',\n brightBlack: '#546E7A',\n brightRed: '#F07178',\n brightGreen: '#C3E88D',\n brightYellow: '#FFCB6B',\n brightBlue: '#82AAFF',\n brightMagenta: '#C792EA',\n brightCyan: '#89DDFF',\n brightWhite: '#FFFFFF',\n },\n yellow: {\n background: '#FFFACD', // Light Yellow\n foreground: '#000000', // Black for better contrast\n cursor: '#FFA500', // Orange cursor\n selectionBackground: '#FFD700', // Gold for selected text\n black: '#3B3A32', // Dark Gray for text\n red: '#D32F2F', // Red for errors\n green: '#388E3C', // Green for success\n yellow: '#FBC02D', // Bright Yellow\n blue: '#1976D2', // Blue for links\n magenta: '#8E24AA', // Purple\n cyan: '#0097A7', // Teal\n white: '#FFFFFF', // White\n brightBlack: '#616161', // Lighter Gray\n brightRed: '#FF5252', // Brighter Red\n brightGreen: '#69F0AE', // Bright Green\n brightYellow: '#FFEB3B', // Brighter Yellow\n brightBlue: '#64B5F6', // Lighter Blue\n brightMagenta: '#BA68C8', // Lighter Purple\n brightCyan: '#4DD0E1', // Lighter Teal\n brightWhite: '#FAFAFA', // Very Light Gray\n },\n};\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.14';\n ","/*\n * Public API Surface of core\n */\n\nexport * from './lib/models';\n\nexport * from './lib/interfaces';\n\nexport * from './lib/modules';\n\nexport * from './lib/utils';\n\nexport * from './lib/constants';\n\nexport * from './lib/types';\n\nexport * from './lib/themes';\n\nexport * from './lib/version';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qodalis-cli-core.mjs","sources":["../../../projects/core/src/lib/models/index.ts","../../../projects/core/src/lib/constants/index.ts","../../../projects/core/src/lib/utils/delay.ts","../../../projects/core/src/lib/utils/object-describer.ts","../../../projects/core/src/lib/utils/terminal-utils.ts","../../../projects/core/src/lib/utils/version-utils.ts","../../../projects/core/src/lib/utils/index.ts","../../../projects/core/src/lib/modules/index.ts","../../../projects/core/src/lib/types/CancellablePromise.ts","../../../projects/core/src/lib/themes/index.ts","../../../projects/core/src/lib/version.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/qodalis-cli-core.ts"],"sourcesContent":["import { ITerminalInitOnlyOptions, ITerminalOptions } from '@xterm/xterm';\n\nexport type CliProcessCommand = {\n /**\n * The command that was entered\n */\n command: string;\n\n /**\n * The data that was entered\n */\n data?: any;\n\n /**\n * The chain of commands that were entered\n */\n chainCommands: string[];\n\n /**\n * The raw command that was entered\n */\n rawCommand: string;\n\n /**\n * The value of the command\n */\n value?: string;\n\n /**\n * The arguments that were entered\n */\n args: Record<string, any>;\n};\n\nexport enum CliForegroundColor {\n Black = '\\x1b[30m',\n Red = '\\x1b[31m',\n Green = '\\x1b[32m',\n Yellow = '\\x1b[33m',\n Blue = '\\x1b[34m',\n Magenta = '\\x1b[35m',\n Cyan = '\\x1b[36m',\n White = '\\x1b[37m',\n Reset = '\\x1b[0m',\n}\n\nexport enum CliBackgroundColor {\n Black = '\\x1b[40m',\n Red = '\\x1b[41m',\n Green = '\\x1b[42m',\n Yellow = '\\x1b[43m',\n Blue = '\\x1b[44m',\n Magenta = '\\x1b[45m',\n Cyan = '\\x1b[46m',\n White = '\\x1b[47m',\n}\n\nexport enum CliIcon {\n // General Symbols\n CheckIcon = '✔', // Success, completion\n CrossIcon = '✘', // Failure, error\n InfoIcon = 'ℹ', // Information\n WarningIcon = '⚠', // Warning\n QuestionMark = '?', // Help or unknown state\n Exclamation = '❗', // Emphasis or alert\n Ellipsis = '…', // Loading or truncated text\n Dot = '•', // List item\n Bullet = '‣', // Alternate bullet point\n\n // Arrows\n ArrowRight = '→', // Navigation or next step\n ArrowLeft = '←', // Previous step or navigation\n ArrowUp = '↑', // Up direction\n ArrowDown = '↓', // Down direction\n ArrowRightFilled = '▶', // Navigation or next step (filled)\n ArrowLeftFilled = '◀', // Previous step or navigation (filled)\n ArrowUpFilled = '▲', // Up direction (filled)\n ArrowDownFilled = '▼', // Down direction (filled)\n DoubleArrowRight = '»', // Fast forward or next\n DoubleArrowLeft = '«', // Rewind or previous\n\n // Lists and Progress\n Star = '★', // Highlight or favorite (filled)\n StarEmpty = '☆', // Highlight or favorite (empty)\n Plus = '+', // Addition or increment\n Minus = '-', // Subtraction or decrement\n Progress = '⏳', // Indicating progress\n Success = '✅', // Success (alternative to CheckIcon)\n Failure = '❌', // Failure (alternative to CrossIcon)\n\n // Time and Calendar\n Clock = '⏰', // Time-related\n Timer = '⏱', // Stopwatch or timer\n Alarm = '🔔', // Alarm or alert\n Calendar = '📅', // Calendar or date\n\n // Navigation and Folders\n Folder = '📁', // Directory or file grouping\n FolderOpen = '📂', // Open folder\n File = '📄', // File or document\n Archive = '🗃', // Archive or file grouping\n Link = '🔗', // Hyperlink or connection\n Chain = '⛓', // Chain or linked\n Bookmark = '🔖', // Bookmark or save\n\n // Actions\n Edit = '✏', // Edit or modify\n Trash = '🗑', // Deletion or removal\n Add = '➕', // Add user or item\n Remove = '➖', // Remove user or item\n Reload = '🔄', // Refresh or reload\n Save = '💾', // Save or store\n Undo = '↩', // Undo action\n Redo = '↪', // Redo action\n Play = '▶', // Start or play\n Pause = '⏸', // Pause or stop temporarily\n Stop = '⏹', // Stop or end\n Cancel = '❎', // Cancel or close\n\n // User and Security\n User = '👤', // User or profile\n Group = '👥', // Group or team\n Lock = '🔒', // Secured or locked\n Unlock = '🔓', // Unlocked or accessible\n Help = '❓', // Help or support\n Key = '🔑', // Authentication or key\n Shield = '🛡', // Security or protection\n\n // Tools and Settings\n Gear = '⚙', // Settings or configuration\n Settings = '⚙️', // Settings (alternative)\n Theme = '🎨', // Theme or appearance\n Light = '💡', // Light mode\n Bug = '🐞', // Bug or issue\n Wrench = '🔧', // Maintenance or tools\n Hammer = '🔨', // Build or fix\n\n // Technology and Devices\n Terminal = '💻', // Terminal or command line\n Database = '🗄', // Database or storage\n Server = '🖥', // Server or host\n Cloud = '☁', // Cloud or remote\n Network = '🌐', // Network or connection\n Monitor = '🖥', // Monitor or display\n Printer = '🖨', // Printer or output\n USB = '🔌', // USB or connection\n Speaker = '🔊', // Speaker or audio\n Microphone = '🎙', // Microphone or input\n Camera = '📷', // Camera or video\n Video = '🎥', // Video or media\n Music = '🎵', // Music or audio\n Phone = '📞', // Phone or communication\n\n // Development and Evaluation\n Package = '📦', // Package or bundle\n Plugin = '🔌', // Plugin or extension\n Extension = '🧩', // Extension or component\n Module = '📦', // Module or package\n Evaluate = '🔍', // Evaluate or search\n Variable = '🔧', // Variable or setting\n Script = '📜', // Script or code\n Code = '💾', // Code or file\n\n // Status and Completion\n Logs = '📜', // Logs or history\n Power = '⏻', // On/Off state\n Heart = '❤', // Love or favorite\n Flame = '🔥', // Trending or hot\n Growth = '📈', // Growth or increase\n Decline = '📉', // Decline or decrease\n WarningFilled = '⚠️', // Warning (filled)\n\n // Nature and Weather\n Sun = '☀', // Brightness or day\n Moon = '🌙', // Night or dark mode\n Rain = '🌧', // Rain or bad weather\n Snow = '❄', // Snow or cold\n Lightning = '⚡', // Lightning or danger\n Tree = '🌲', // Nature or environment\n\n // Emotions and Expressions\n Smile = '😊', // Happiness or positive state\n Sad = '😢', // Sadness or negative state\n Angry = '😡', // Anger or frustration\n Clap = '👏', // Applause or celebration\n ThumbsUp = '👍', // Approval or success\n ThumbsDown = '👎', // Disapproval or failure\n\n // Miscellaneous\n Rocket = '🚀', // Launch or deploy\n Globe = '🌍', // Earth or international\n Medal = '🏅', // Achievement or award\n Trophy = '🏆', // Winner or champion\n Flag = '🚩', // Mark or flag\n StarFilled = '⭐', // Highlight or favorite\n StarOutline = '✩', // Alternate star icon\n Fireworks = '🎆', // Celebration\n Balloon = '🎈', // Party or fun\n Gift = '🎁', // Reward or present\n}\n\n/**\n * Options for the CLI\n */\nexport type CliOptions = Record<string, any> & {\n /**\n * The welcome message options\n */\n welcomeMessage?: {\n /**\n * The message to display\n */\n message?: string;\n\n /**\n * When to show the welcome message\n * @default 'always'\n */\n show?: 'always' | 'once' | 'daily' | 'never';\n };\n\n /**\n * If true, the welcome message is hidden\n * @default false\n */\n hideWelcomeMessage?: boolean;\n\n /**\n * Users module options\n */\n usersModule?: {\n /**\n * If true, the users module is enabled\n */\n enabled: boolean;\n\n /**\n * Hide the prompt to display when the CLI is ready to accept input\n */\n hideUserName?: boolean;\n\n /**\n * Reload the page when the user changes\n */\n reloadPageOnUserChange?: boolean;\n };\n\n /**\n * Custom terminal options\n */\n terminalOptions?: ITerminalOptions & ITerminalInitOnlyOptions;\n\n /**\n * The minimum log level to display\n */\n logLevel?: CliLogLevel;\n};\n\n/**\n * Represents a package that can be installed\n */\nexport interface Package {\n /**\n * The name of the package\n */\n name: string;\n\n /**\n * The global name used to access the package\n */\n globalName?: string;\n\n /**\n * The version of the package\n */\n version: string;\n\n /**\n * The unpkg url to the package\n */\n url: string;\n\n /**\n * The dependencies for the module\n */\n dependencies?: Package[];\n}\n\n/**\n * Represents command processor metadata\n */\nexport type CliProcessorMetadata = Record<string, any> & {\n /**\n * If true, the processor is sealed and cannot be extended\n */\n sealed?: boolean;\n\n /**\n * If true, the processor requires the server to be running\n */\n requireServer?: boolean;\n\n /**\n * The module the processor belongs to\n */\n module?: string;\n\n /**\n * An icon to display for the processor\n */\n icon?: CliIcon | string;\n\n /**\n * The minimum required version of @qodalis/cli-core for this processor.\n * If the installed core version is lower, the processor will be skipped during boot.\n */\n requiredCoreVersion?: string;\n\n /**\n * The minimum required version of @qodalis/angular-cli for this processor.\n * If the installed CLI version is lower, the processor will be skipped during boot.\n */\n requiredCliVersion?: string;\n};\n\n/**\n * Represents a state configuration for the CLI processor\n */\nexport type CliStateConfiguration = {\n /**\n * The initial state for the processor\n */\n initialState: Record<string, any>;\n\n /**\n * The store identifier for the processor, if any\n * @remarks If the store identifier is not set, the processor command name is used\n */\n storeName?: string;\n};\n\n/**\n * Represents a log level for the CLI\n */\nexport enum CliLogLevel {\n None = 0,\n DEBUG = 1,\n LOG = 2,\n INFO = 3,\n WARN = 4,\n ERROR = 5,\n}\n\nexport type CliState = Record<string, any>;\n\nexport const enums = {\n CliForegroundColor,\n CliBackgroundColor,\n CliIcon,\n CliLogLevel,\n};\n\nexport * from './services';\nexport * from './users';\n","import { ICliCommandAuthor } from '../interfaces';\n\nexport const DefaultLibraryAuthor: ICliCommandAuthor = {\n name: 'Nicolae Lupei',\n email: 'nicolae.lupei@qodalis.com',\n};\n\nexport const constants = {\n DefaultLibraryAuthor,\n};\n","export const delay = (ms: number): Promise<void> => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n};\n","import { ICliCommandProcessor, ICliExecutionContext } from '../interfaces';\nimport { CliForegroundColor, CliProcessCommand } from '../models';\n\nexport class ObjectDescriber {\n static describe(\n obj: any,\n options?: {\n filter?: (o: {\n funcName: string;\n func: any;\n args: string[];\n }) => boolean;\n },\n ): ICliCommandProcessor[] {\n const { filter } = options || {};\n\n const processors: ICliCommandProcessor[] = [];\n\n const keys = Object.keys(obj);\n\n const functions = keys.filter((key) => typeof obj[key] === 'function');\n\n for (const func of functions) {\n const funcValue = obj[func];\n const args = this.getFunctionArguments(funcValue);\n\n if (filter) {\n const shouldInclude = filter({\n funcName: func,\n func: funcValue,\n args,\n });\n\n if (!shouldInclude) {\n continue;\n }\n }\n\n const supportsMultipleArgs = args.length > 1;\n\n const supportsDynamicArgs = this.supportsDynamicArgs(funcValue);\n\n if (args.length === 0 && !supportsDynamicArgs) {\n continue;\n }\n\n if (\n args.length > 0 &&\n args.some((arg) => arg === 'function' || arg === 'func')\n ) {\n continue;\n }\n\n const processor: ICliCommandProcessor = {\n command: func,\n description: `A command that executes the function ${func} with the provided arguments`,\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'debug',\n description: 'Debug',\n type: 'boolean',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const debug = command.args['debug'] as boolean;\n\n if (debug) {\n context.writer.writeln('Executing command: ' + func);\n context.writer.writeln(\n 'Arguments: ' + JSON.stringify(command.args),\n );\n context.writer.writeln(\n 'Function: ' + funcValue.toString(),\n );\n }\n\n const argsToCallF: any[] = [];\n\n if (supportsMultipleArgs) {\n for (const arg of args.slice(1)) {\n argsToCallF.push(command.args[arg]);\n }\n }\n\n if (supportsDynamicArgs && command.value) {\n const delimiter = command.args['delimiter'] || ',';\n argsToCallF.push(...command.value.split(delimiter));\n }\n\n if (debug) {\n context.writer.writeln(\n 'Arguments after processing: ' +\n JSON.stringify(argsToCallF),\n );\n }\n\n const result =\n supportsDynamicArgs && args.length === 0\n ? funcValue(...argsToCallF)\n : funcValue(command.value, ...argsToCallF);\n\n context.writer.write(\n context.writer.wrapInColor(\n 'Result: ',\n CliForegroundColor.Yellow,\n ),\n );\n\n if (result === null) {\n context.writer.writeln('null');\n } else if (result === undefined) {\n context.writer.writeln('undefined');\n } else if (typeof result === 'boolean') {\n context.writer.writeln(result.toString());\n } else if (typeof result === 'number') {\n context.writer.writeln(result.toString());\n } else if (Array.isArray(result)) {\n context.writer.writeJson(result);\n } else if (typeof result === 'string') {\n context.writer.writeln(result);\n } else if (typeof result === 'object') {\n context.writer.writeJson(result);\n } else {\n context.writer.writeln(result?.toString());\n }\n\n context.process.output(result?.toString());\n },\n writeDescription: (context: ICliExecutionContext) => {\n context.writer.writeln(func);\n },\n };\n\n if (supportsDynamicArgs) {\n processor.parameters?.push({\n name: 'delimiter',\n description: 'Delimiter',\n type: 'string',\n required: false,\n });\n }\n\n if (supportsMultipleArgs) {\n processor.parameters?.push(\n ...args.slice(1).map((arg) => ({\n name: arg,\n description: arg,\n type: 'string',\n required: false,\n })),\n );\n }\n\n processors.push(processor);\n }\n\n return processors;\n }\n\n static supportsDynamicArgs(func: any): boolean {\n const funcStr = func.toString();\n return funcStr.includes('arguments');\n }\n\n static getFunctionArguments(func: any): string[] {\n const funcStr = func.toString();\n const args = funcStr.match(/\\(([^)]*)\\)/);\n if (!args) {\n return [];\n }\n return args[1]\n .split(',')\n .map((arg: string) => arg.trim())\n .filter((arg: string) => arg !== '');\n }\n}\n","import { Terminal } from '@xterm/xterm';\n\n/**\n * Clears the current line in the terminal, accounting for text that wraps across multiple lines.\n * @param terminal The xterm terminal instance\n * @param contentLength The total visible character count on the line (prompt + text)\n */\nexport const clearTerminalLine = (\n terminal: Terminal,\n contentLength: number,\n): void => {\n const lines = Math.max(1, Math.ceil(contentLength / terminal.cols));\n\n for (let i = 0; i < lines; i++) {\n terminal.write('\\x1b[2K');\n if (i < lines - 1) {\n terminal.write('\\x1b[A');\n }\n }\n\n terminal.write('\\r');\n};\n","/**\n * Compares two dotted version strings (e.g. \"1.0.37\" vs \"0.0.16\").\n * Returns -1 if a < b, 0 if equal, 1 if a > b.\n */\nexport function compareVersions(a: string, b: string): -1 | 0 | 1 {\n const partsA = a.split('.').map(Number);\n const partsB = b.split('.').map(Number);\n const length = Math.max(partsA.length, partsB.length);\n\n for (let i = 0; i < length; i++) {\n const numA = partsA[i] || 0;\n const numB = partsB[i] || 0;\n\n if (numA < numB) return -1;\n if (numA > numB) return 1;\n }\n\n return 0;\n}\n\n/**\n * Returns true if the installed version satisfies the minimum required version.\n */\nexport function satisfiesMinVersion(\n installed: string,\n required: string,\n): boolean {\n return compareVersions(installed, required) >= 0;\n}\n","import { ICliCommandParameterDescriptor } from '../interfaces';\nimport { CliBackgroundColor, CliForegroundColor } from '../models';\nimport { delay } from './delay';\nimport { ObjectDescriber } from './object-describer';\n\nexport const getParameterValue = (\n p: ICliCommandParameterDescriptor,\n args: Record<string, any>,\n): any | undefined => {\n if (args[p.name] !== undefined) {\n return args[p.name];\n }\n const matchedAlias = p.aliases?.find((alias) => args[alias] !== undefined);\n return matchedAlias ? args[matchedAlias] : undefined;\n};\n\nexport const formatJson = (json: any): string => {\n const identedJson = JSON.stringify(json, null, 2);\n\n return colorizeJson(identedJson.split('\\n').join('\\r\\n'));\n};\n\nexport const colorizeJson = (jsonString: any): string => {\n return jsonString\n .replace(/\"([^\"]+)\":/g, '\\x1b[33m\"$1\":\\x1b[0m') // Keys (yellow)\n .replace(/: \"([^\"]*)\"/g, ': \\x1b[32m\"$1\"\\x1b[0m') // Strings (green)\n .replace(/: (\\d+)/g, ': \\x1b[34m$1\\x1b[0m') // Numbers (blue)\n .replace(/: (true|false)/g, ': \\x1b[35m$1\\x1b[0m') // Booleans (magenta)\n .replace(/: (null)/g, ': \\x1b[36m$1\\x1b[0m'); // Null (cyan)\n};\n\nexport const toQueryString = (params: Record<string, any>): string => {\n const searchParams = new URLSearchParams();\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const value = params[key];\n // Handle array and non-primitive values\n if (Array.isArray(value)) {\n value.forEach((v) => searchParams.append(key, v.toString()));\n } else if (value !== null && value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n }\n\n return searchParams.toString();\n};\n\nexport const highlightTextWithBg = (\n text: string,\n pattern: RegExp,\n bgColor: CliBackgroundColor = CliBackgroundColor.Yellow,\n): string => {\n // Replace matches with background-colored text\n return text.replace(\n pattern,\n (match) => `${bgColor}${match}${CliForegroundColor.Reset}`,\n );\n};\n\nexport const getRightOfWord = (\n command: string,\n word: string,\n): string | undefined => {\n // Find the position of the word in the command\n const index = command.indexOf(word);\n\n // If the word is found, extract the substring to the right\n if (index !== -1) {\n return command.slice(index + word.length).trim();\n }\n\n // If the word is not found, return null\n return undefined;\n};\n\nexport const colorFirstWord = (\n text: string,\n colorFunction: (word: string) => string,\n) => {\n if (!text) return text;\n\n // Match leading spaces and first word separately\n const match = text.match(/^(\\s*)(\\S+)(.*)$/);\n\n if (!match) return text; // If no match, return original text\n\n const [, leadingSpaces, firstWord, restOfText] = match;\n\n // Apply color only to the first word\n const firstWordColored = colorFunction(firstWord);\n\n // Reconstruct string: Keep spaces, color first word, and append rest\n return `${leadingSpaces}${firstWordColored}${restOfText}`;\n};\n\nexport * from './object-describer';\n\nexport * from './delay';\n\nexport * from './terminal-utils';\n\nexport * from './version-utils';\n\nexport const utils = {\n getParameterValue,\n formatJson,\n colorizeJson,\n toQueryString,\n highlightTextWithBg,\n getRightOfWord,\n colorFirstWord,\n ObjectDescriber,\n delay,\n};\n","import { enums } from '../models';\nimport { constants } from '../constants';\nimport { ICliExecutionContext, ICliUmdModule } from '../interfaces';\nimport { utils } from '../utils';\n\nexport const initializeBrowserEnvironment = ({\n context,\n handlers,\n}: {\n context: ICliExecutionContext;\n handlers: ((module: ICliUmdModule) => Promise<void>)[];\n}): void => {\n (window as any).cliCore = {\n onUmdModuleBoot: handlers || [],\n bootUmdModule: async (module: ICliUmdModule) => {\n context.logger.log('Booting UMD module', module.name);\n (window as any)[module.name] = module;\n for (const handler of handlers) {\n await handler(module);\n }\n },\n ...constants,\n ...utils,\n ...enums,\n };\n\n (window as any).ngCore = {\n Injectable: () => {},\n };\n};\n\nexport const bootUmdModule = async (module: ICliUmdModule): Promise<void> => {\n if (typeof (window as any) !== 'undefined') {\n await (window as any).cliCore.bootUmdModule(module);\n } else {\n console.log('window is undefined');\n }\n};\n","export class CancellablePromise<T> {\n private hasCancelled = false;\n\n private abortController = new AbortController();\n\n constructor(\n private executor: (\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {}\n\n public execute(): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n this.abortController.signal.onabort = () => {\n reject(new Error('Promise cancelled'));\n };\n\n this.executor(\n (value) => {\n if (!this.hasCancelled) {\n resolve(value);\n }\n },\n (reason) => {\n if (!this.hasCancelled) {\n reject(reason);\n }\n },\n );\n });\n }\n\n cancel() {\n this.hasCancelled = true;\n this.abortController.abort();\n }\n}\n","import { ITheme } from '@xterm/xterm';\n\nexport type CliTheme = ITheme;\n\nexport const DefaultThemes: {\n default: CliTheme;\n dracula: CliTheme;\n monokai: CliTheme;\n solarizedDark: CliTheme;\n solarizedLight: CliTheme;\n gruvboxDark: CliTheme;\n gruvboxLight: CliTheme;\n nord: CliTheme;\n oneDark: CliTheme;\n material: CliTheme;\n yellow: CliTheme;\n [key: string]: CliTheme;\n} = {\n default: {\n background: '#0c0c0c',\n foreground: '#cccccc',\n green: '#16c60c',\n blue: '#3b78ff',\n yellow: '#FFA500',\n },\n dracula: {\n background: '#282A36',\n foreground: '#F8F8F2',\n cursor: '#50FA7B',\n black: '#21222C',\n red: '#FF5555',\n green: '#50FA7B',\n yellow: '#F1FA8C',\n blue: '#BD93F9',\n magenta: '#FF79C6',\n cyan: '#8BE9FD',\n white: '#F8F8F2',\n brightBlack: '#6272A4',\n brightRed: '#FF6E6E',\n brightGreen: '#69FF94',\n brightYellow: '#FFFFA5',\n brightBlue: '#D6ACFF',\n brightMagenta: '#FF92D0',\n brightCyan: '#A4FFFF',\n brightWhite: '#FFFFFF',\n },\n monokai: {\n background: '#272822',\n foreground: '#F8F8F2',\n cursor: '#F8F8F0',\n black: '#272822',\n red: '#F92672',\n green: '#A6E22E',\n yellow: '#F4BF75',\n blue: '#66D9EF',\n magenta: '#AE81FF',\n cyan: '#A1EFE4',\n white: '#F8F8F2',\n brightBlack: '#75715E',\n brightRed: '#F92672',\n brightGreen: '#A6E22E',\n brightYellow: '#F4BF75',\n brightBlue: '#66D9EF',\n brightMagenta: '#AE81FF',\n brightCyan: '#A1EFE4',\n brightWhite: '#F9F8F5',\n },\n solarizedDark: {\n background: '#002B36',\n foreground: '#839496',\n cursor: '#93A1A1',\n black: '#073642',\n red: '#DC322F',\n green: '#859900',\n yellow: '#B58900',\n blue: '#268BD2',\n magenta: '#D33682',\n cyan: '#2AA198',\n white: '#EEE8D5',\n brightBlack: '#002B36',\n brightRed: '#CB4B16',\n brightGreen: '#586E75',\n brightYellow: '#657B83',\n brightBlue: '#839496',\n brightMagenta: '#6C71C4',\n brightCyan: '#93A1A1',\n brightWhite: '#FDF6E3',\n },\n solarizedLight: {\n background: '#FDF6E3',\n foreground: '#657B83',\n cursor: '#586E75',\n black: '#073642',\n red: '#DC322F',\n green: '#859900',\n yellow: '#B58900',\n blue: '#268BD2',\n magenta: '#D33682',\n cyan: '#2AA198',\n white: '#EEE8D5',\n brightBlack: '#002B36',\n brightRed: '#CB4B16',\n brightGreen: '#586E75',\n brightYellow: '#657B83',\n brightBlue: '#839496',\n brightMagenta: '#6C71C4',\n brightCyan: '#93A1A1',\n brightWhite: '#FDF6E3',\n },\n gruvboxDark: {\n background: '#282828',\n foreground: '#EBDBB2',\n cursor: '#EBDBB2',\n black: '#282828',\n red: '#CC241D',\n green: '#98971A',\n yellow: '#D79921',\n blue: '#458588',\n magenta: '#B16286',\n cyan: '#689D6A',\n white: '#A89984',\n brightBlack: '#928374',\n brightRed: '#FB4934',\n brightGreen: '#B8BB26',\n brightYellow: '#FABD2F',\n brightBlue: '#83A598',\n brightMagenta: '#D3869B',\n brightCyan: '#8EC07C',\n brightWhite: '#EBDBB2',\n },\n gruvboxLight: {\n background: '#FBF1C7',\n foreground: '#3C3836',\n cursor: '#3C3836',\n black: '#FBF1C7',\n red: '#9D0006',\n green: '#79740E',\n yellow: '#B57614',\n blue: '#076678',\n magenta: '#8F3F71',\n cyan: '#427B58',\n white: '#3C3836',\n brightBlack: '#D5C4A1',\n brightRed: '#AF3A03',\n brightGreen: '#B8BB26',\n brightYellow: '#FABD2F',\n brightBlue: '#83A598',\n brightMagenta: '#D3869B',\n brightCyan: '#8EC07C',\n brightWhite: '#EBDBB2',\n },\n nord: {\n background: '#2E3440',\n foreground: '#D8DEE9',\n cursor: '#88C0D0',\n black: '#3B4252',\n red: '#BF616A',\n green: '#A3BE8C',\n yellow: '#EBCB8B',\n blue: '#81A1C1',\n magenta: '#B48EAD',\n cyan: '#88C0D0',\n white: '#E5E9F0',\n brightBlack: '#4C566A',\n brightRed: '#BF616A',\n brightGreen: '#A3BE8C',\n brightYellow: '#EBCB8B',\n brightBlue: '#81A1C1',\n brightMagenta: '#B48EAD',\n brightCyan: '#8FBCBB',\n brightWhite: '#ECEFF4',\n },\n oneDark: {\n background: '#282C34',\n foreground: '#ABB2BF',\n cursor: '#528BFF',\n black: '#282C34',\n red: '#E06C75',\n green: '#98C379',\n yellow: '#E5C07B',\n blue: '#61AFEF',\n magenta: '#C678DD',\n cyan: '#56B6C2',\n white: '#ABB2BF',\n brightBlack: '#5C6370',\n brightRed: '#E06C75',\n brightGreen: '#98C379',\n brightYellow: '#E5C07B',\n brightBlue: '#61AFEF',\n brightMagenta: '#C678DD',\n brightCyan: '#56B6C2',\n brightWhite: '#FFFFFF',\n },\n material: {\n background: '#263238',\n foreground: '#ECEFF1',\n cursor: '#FFCC00',\n black: '#263238',\n red: '#F07178',\n green: '#C3E88D',\n yellow: '#FFCB6B',\n blue: '#82AAFF',\n magenta: '#C792EA',\n cyan: '#89DDFF',\n white: '#EEFFFF',\n brightBlack: '#546E7A',\n brightRed: '#F07178',\n brightGreen: '#C3E88D',\n brightYellow: '#FFCB6B',\n brightBlue: '#82AAFF',\n brightMagenta: '#C792EA',\n brightCyan: '#89DDFF',\n brightWhite: '#FFFFFF',\n },\n yellow: {\n background: '#FFFACD', // Light Yellow\n foreground: '#000000', // Black for better contrast\n cursor: '#FFA500', // Orange cursor\n selectionBackground: '#FFD700', // Gold for selected text\n black: '#3B3A32', // Dark Gray for text\n red: '#D32F2F', // Red for errors\n green: '#388E3C', // Green for success\n yellow: '#FBC02D', // Bright Yellow\n blue: '#1976D2', // Blue for links\n magenta: '#8E24AA', // Purple\n cyan: '#0097A7', // Teal\n white: '#FFFFFF', // White\n brightBlack: '#616161', // Lighter Gray\n brightRed: '#FF5252', // Brighter Red\n brightGreen: '#69F0AE', // Bright Green\n brightYellow: '#FFEB3B', // Brighter Yellow\n brightBlue: '#64B5F6', // Lighter Blue\n brightMagenta: '#BA68C8', // Lighter Purple\n brightCyan: '#4DD0E1', // Lighter Teal\n brightWhite: '#FAFAFA', // Very Light Gray\n },\n};\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.16';\n ","/*\n * Public API Surface of core\n */\n\nexport * from './lib/models';\n\nexport * from './lib/interfaces';\n\nexport * from './lib/modules';\n\nexport * from './lib/utils';\n\nexport * from './lib/constants';\n\nexport * from './lib/types';\n\nexport * from './lib/themes';\n\nexport * from './lib/version';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -63,6 +63,10 @@ export interface ICliCommandProcessor {
63
63
  * The command that this processor handles
64
64
  */
65
65
  command: string;
66
+ /**
67
+ * Alternative names for the command
68
+ */
69
+ aliases?: string[];
66
70
  /**
67
71
  * A description of the command
68
72
  */
@@ -51,15 +51,49 @@ export interface ICliExecutionContext {
51
51
  */
52
52
  options?: CliOptions;
53
53
  /**
54
- * The prompt to use for prompting the user for input
54
+ * Prints the prompt to the terminal.
55
55
  */
56
- showPrompt: () => void;
56
+ showPrompt: (options?: {
57
+ reset?: boolean;
58
+ newLine?: boolean;
59
+ keepCurrentLine?: boolean;
60
+ }) => void;
57
61
  /**
58
62
  * Set the current processor as the context processor, i.e. the processor that will handle the command
59
63
  * @param processor The processor to set
60
64
  * @param silent Indicates if the setting should be silent, i.e. not write to the terminal
61
65
  */
62
66
  setContextProcessor: (processor: ICliCommandProcessor, silent?: boolean) => void;
67
+ /**
68
+ * The number of visible characters the prompt occupies on the current line.
69
+ */
70
+ promptLength: number;
71
+ /**
72
+ * The current user input text on the active line.
73
+ */
74
+ readonly currentLine: string;
75
+ /**
76
+ * Sets the current line text.
77
+ * @param line The new line content
78
+ */
79
+ setCurrentLine: (line: string) => void;
80
+ /**
81
+ * The cursor position within the current line.
82
+ */
83
+ cursorPosition: number;
84
+ /**
85
+ * Clears the current terminal line, including content that wraps across multiple rows.
86
+ * Uses promptLength + currentLine.length to determine how many rows to clear.
87
+ */
88
+ clearLine: () => void;
89
+ /**
90
+ * Clears the current line content and reprints the prompt.
91
+ */
92
+ clearCurrentLine: () => void;
93
+ /**
94
+ * Refreshes the display of the current line (clears and redraws prompt + input).
95
+ */
96
+ refreshCurrentLine: () => void;
63
97
  /**
64
98
  * The process to use for exiting the CLI
65
99
  */
@@ -256,6 +256,16 @@ export type CliProcessorMetadata = Record<string, any> & {
256
256
  * An icon to display for the processor
257
257
  */
258
258
  icon?: CliIcon | string;
259
+ /**
260
+ * The minimum required version of @qodalis/cli-core for this processor.
261
+ * If the installed core version is lower, the processor will be skipped during boot.
262
+ */
263
+ requiredCoreVersion?: string;
264
+ /**
265
+ * The minimum required version of @qodalis/angular-cli for this processor.
266
+ * If the installed CLI version is lower, the processor will be skipped during boot.
267
+ */
268
+ requiredCliVersion?: string;
259
269
  };
260
270
  /**
261
271
  * Represents a state configuration for the CLI processor
@@ -10,6 +10,8 @@ export declare const getRightOfWord: (command: string, word: string) => string |
10
10
  export declare const colorFirstWord: (text: string, colorFunction: (word: string) => string) => string;
11
11
  export * from './object-describer';
12
12
  export * from './delay';
13
+ export * from './terminal-utils';
14
+ export * from './version-utils';
13
15
  export declare const utils: {
14
16
  getParameterValue: (p: ICliCommandParameterDescriptor, args: Record<string, any>) => any | undefined;
15
17
  formatJson: (json: any) => string;
@@ -0,0 +1,7 @@
1
+ import { Terminal } from '@xterm/xterm';
2
+ /**
3
+ * Clears the current line in the terminal, accounting for text that wraps across multiple lines.
4
+ * @param terminal The xterm terminal instance
5
+ * @param contentLength The total visible character count on the line (prompt + text)
6
+ */
7
+ export declare const clearTerminalLine: (terminal: Terminal, contentLength: number) => void;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Compares two dotted version strings (e.g. "1.0.37" vs "0.0.16").
3
+ * Returns -1 if a < b, 0 if equal, 1 if a > b.
4
+ */
5
+ export declare function compareVersions(a: string, b: string): -1 | 0 | 1;
6
+ /**
7
+ * Returns true if the installed version satisfies the minimum required version.
8
+ */
9
+ export declare function satisfiesMinVersion(installed: string, required: string): boolean;
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const LIBRARY_VERSION = "0.0.14";
1
+ export declare const LIBRARY_VERSION = "0.0.16";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-core",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "Core Angular CLI for @qodalis extensions.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",