@qodalis/cli-core 0.0.16 → 2.0.0-beta.2

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.
Files changed (53) hide show
  1. package/README.md +399 -31
  2. package/package.json +16 -23
  3. package/public-api.d.mts +2322 -0
  4. package/public-api.d.ts +2322 -8
  5. package/public-api.js +3597 -0
  6. package/public-api.js.map +1 -0
  7. package/public-api.mjs +3545 -0
  8. package/public-api.mjs.map +1 -0
  9. package/esm2022/lib/constants/index.mjs +0 -8
  10. package/esm2022/lib/interfaces/command-hooks.mjs +0 -2
  11. package/esm2022/lib/interfaces/command-processor.mjs +0 -2
  12. package/esm2022/lib/interfaces/execution-context.mjs +0 -2
  13. package/esm2022/lib/interfaces/index.mjs +0 -6
  14. package/esm2022/lib/interfaces/progress-bars.mjs +0 -2
  15. package/esm2022/lib/interfaces/users.mjs +0 -2
  16. package/esm2022/lib/models/index.mjs +0 -175
  17. package/esm2022/lib/models/services.mjs +0 -2
  18. package/esm2022/lib/models/users.mjs +0 -2
  19. package/esm2022/lib/modules/index.mjs +0 -30
  20. package/esm2022/lib/themes/index.mjs +0 -221
  21. package/esm2022/lib/types/CancellablePromise.mjs +0 -28
  22. package/esm2022/lib/types/index.mjs +0 -2
  23. package/esm2022/lib/utils/delay.mjs +0 -4
  24. package/esm2022/lib/utils/index.mjs +0 -81
  25. package/esm2022/lib/utils/object-describer.mjs +0 -134
  26. package/esm2022/lib/utils/terminal-utils.mjs +0 -16
  27. package/esm2022/lib/utils/version-utils.mjs +0 -25
  28. package/esm2022/lib/version.mjs +0 -3
  29. package/esm2022/public-api.mjs +0 -12
  30. package/esm2022/qodalis-cli-core.mjs +0 -5
  31. package/fesm2022/qodalis-cli-core.mjs +0 -722
  32. package/fesm2022/qodalis-cli-core.mjs.map +0 -1
  33. package/index.d.ts +0 -5
  34. package/lib/constants/index.d.ts +0 -5
  35. package/lib/interfaces/command-hooks.d.ts +0 -5
  36. package/lib/interfaces/command-processor.d.ts +0 -151
  37. package/lib/interfaces/execution-context.d.ts +0 -109
  38. package/lib/interfaces/index.d.ts +0 -349
  39. package/lib/interfaces/progress-bars.d.ts +0 -72
  40. package/lib/interfaces/users.d.ts +0 -42
  41. package/lib/models/index.d.ts +0 -303
  42. package/lib/models/services.d.ts +0 -20
  43. package/lib/models/users.d.ts +0 -30
  44. package/lib/modules/index.d.ts +0 -6
  45. package/lib/themes/index.d.ts +0 -16
  46. package/lib/types/CancellablePromise.d.ts +0 -8
  47. package/lib/types/index.d.ts +0 -1
  48. package/lib/utils/delay.d.ts +0 -1
  49. package/lib/utils/index.d.ts +0 -25
  50. package/lib/utils/object-describer.d.ts +0 -12
  51. package/lib/utils/terminal-utils.d.ts +0 -7
  52. package/lib/utils/version-utils.d.ts +0 -9
  53. package/lib/version.d.ts +0 -1
@@ -1 +0,0 @@
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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"}
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@qodalis/cli-core" />
5
- export * from './public-api';
@@ -1,5 +0,0 @@
1
- import { ICliCommandAuthor } from '../interfaces';
2
- export declare const DefaultLibraryAuthor: ICliCommandAuthor;
3
- export declare const constants: {
4
- DefaultLibraryAuthor: ICliCommandAuthor;
5
- };
@@ -1,5 +0,0 @@
1
- import { ICliExecutionContext } from './execution-context';
2
- export interface ICliProcessorHook {
3
- when: 'before' | 'after';
4
- execute: (context: ICliExecutionContext) => Promise<void>;
5
- }
@@ -1,151 +0,0 @@
1
- import { CliProcessCommand, CliProcessorMetadata, CliStateConfiguration } from '../models';
2
- import { ICliProcessorHook } from './command-hooks';
3
- import { ICliExecutionContext } from './execution-context';
4
- export interface ICliCommandAuthor {
5
- /**
6
- * The name of the author
7
- */
8
- name: string;
9
- /**
10
- * The email of the author
11
- */
12
- email: string;
13
- }
14
- /**
15
- * Represents a command parameter
16
- */
17
- export interface ICliCommandParameterDescriptor {
18
- /**
19
- * The name of the parameter
20
- */
21
- name: string;
22
- /**
23
- * Aliases for the parameter
24
- */
25
- aliases?: string[];
26
- /**
27
- * A description of the parameter
28
- */
29
- description: string;
30
- /**
31
- * If true, the parameter is required
32
- */
33
- required: boolean;
34
- /**
35
- * The type of the parameter
36
- */
37
- type: 'string' | 'number' | 'boolean' | 'array' | 'object' | string;
38
- /**
39
- * The default value of the parameter
40
- */
41
- defaultValue?: any;
42
- /**
43
- * A validator function that validates the value of the parameter
44
- * @param value The value to validate
45
- * @returns An object with a valid property that indicates if the value is valid and an optional message property that contains a message to display if the value is not valid
46
- */
47
- validator?: (value: any) => {
48
- /**
49
- * Indicates if the value is valid
50
- */
51
- valid: boolean;
52
- /**
53
- * An optional message to display if the value is not valid
54
- */
55
- message?: string;
56
- };
57
- }
58
- /**
59
- * Represents a command processor
60
- */
61
- export interface ICliCommandProcessor {
62
- /**
63
- * The command that this processor handles
64
- */
65
- command: string;
66
- /**
67
- * Alternative names for the command
68
- */
69
- aliases?: string[];
70
- /**
71
- * A description of the command
72
- */
73
- description?: string;
74
- /**
75
- * The author of the command
76
- */
77
- author?: ICliCommandAuthor;
78
- /**
79
- * If true, the processor can handle unlisted commands
80
- * @default false
81
- * @remarks If true, the processor can handle unlisted commands. If false, the processor will only handle commands that are explicitly listed in the processors property
82
- * @remarks Optional if valueRequired is true
83
- */
84
- allowUnlistedCommands?: boolean;
85
- /**
86
- * If true, the value is required
87
- */
88
- valueRequired?: boolean;
89
- /**
90
- * The version of the command processor
91
- * @default '1.0.0'
92
- */
93
- version?: string;
94
- /**
95
- * The metadata for the command processor
96
- */
97
- metadata?: CliProcessorMetadata;
98
- /**
99
- * Processors that are nested under this processor
100
- */
101
- processors?: ICliCommandChildProcessor[];
102
- /**
103
- * Parameters that the command accepts
104
- */
105
- parameters?: ICliCommandParameterDescriptor[];
106
- /**
107
- * Hooks that are executed before and after the command is processed
108
- */
109
- hooks?: ICliProcessorHook[];
110
- /**
111
- * Represents the state configuration for the command processor
112
- * @remarks The state configuration is used to store and retrieve state information for the command processor
113
- * @remarks State confihuration is optional and can be used to store and retrieve state information for the command processor
114
- * @remarks The state configuration is used only for root command processors and not for child command processors
115
- */
116
- stateConfiguration?: CliStateConfiguration;
117
- /**
118
- * Process the command
119
- * @param command The command to process
120
- * @param context The context in which the command is executed
121
- */
122
- processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
123
- /**
124
- * Write the description of the command
125
- * @param context The context in which the command is executed
126
- */
127
- writeDescription?(context: ICliExecutionContext): void;
128
- /**
129
- * A function that validates the command before execution
130
- * @param value The value to validate
131
- * @returns An object with a valid property that indicates if the value is valid and an optional message property that contains a message to display if the value is not valid
132
- */
133
- validateBeforeExecution?: (command: CliProcessCommand, context: ICliExecutionContext) => {
134
- valid: boolean;
135
- message?: string;
136
- };
137
- /**
138
- * Initialize the command processor
139
- * @param context The context in which the command is executed
140
- */
141
- initialize?(context: ICliExecutionContext): Promise<void>;
142
- }
143
- /**
144
- * Represents a child command processor
145
- */
146
- export interface ICliCommandChildProcessor extends ICliCommandProcessor {
147
- /**
148
- * The parent processor, it is populated by the processor manager
149
- */
150
- parent?: ICliCommandProcessor;
151
- }
@@ -1,109 +0,0 @@
1
- import { Terminal } from '@xterm/xterm';
2
- import { Subject } from 'rxjs';
3
- import { ICliClipboard, ICliCommandExecutorService, ICliCommandProcessor, ICliServiceProvider, ICliExecutionProcess, ICliLogger, ICliPercentageProgressBar, ICliSpinner, ICliStateStore, ICliTerminalWriter, ICliTextAnimator } from '.';
4
- import { CliOptions, ICliUserSession } from '../models';
5
- /**
6
- * Represents the context in which a command is executed
7
- */
8
- export interface ICliExecutionContext {
9
- /**
10
- * The current user session
11
- */
12
- userSession?: ICliUserSession;
13
- /**
14
- * The spinner to use for showing/hiding the loader
15
- */
16
- spinner?: ICliSpinner;
17
- /**
18
- * The text animator to use for showing/hiding text
19
- */
20
- textAnimator?: ICliTextAnimator;
21
- /**
22
- * The progress bar to use for showing progress
23
- */
24
- progressBar: ICliPercentageProgressBar;
25
- /**
26
- * A subject that emits when the command is aborted
27
- */
28
- onAbort: Subject<void>;
29
- /**
30
- * The terminal to use for writing
31
- */
32
- terminal: Terminal;
33
- /**
34
- * The writer to use for writing to the terminal
35
- */
36
- writer: ICliTerminalWriter;
37
- /**
38
- * The command executor to use for executing commands
39
- */
40
- executor: ICliCommandExecutorService;
41
- /**
42
- * The clipboard to use for copying/pasting
43
- */
44
- clipboard: ICliClipboard;
45
- /**
46
- * The state store to use for storing state
47
- */
48
- state: ICliStateStore;
49
- /**
50
- * The options for the CLI
51
- */
52
- options?: CliOptions;
53
- /**
54
- * Prints the prompt to the terminal.
55
- */
56
- showPrompt: (options?: {
57
- reset?: boolean;
58
- newLine?: boolean;
59
- keepCurrentLine?: boolean;
60
- }) => void;
61
- /**
62
- * Set the current processor as the context processor, i.e. the processor that will handle the command
63
- * @param processor The processor to set
64
- * @param silent Indicates if the setting should be silent, i.e. not write to the terminal
65
- */
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;
97
- /**
98
- * The process to use for exiting the CLI
99
- */
100
- process: ICliExecutionProcess;
101
- /**
102
- * The logger to use for logging
103
- */
104
- logger: ICliLogger;
105
- /**
106
- * The services to use for the CLI context
107
- */
108
- services: ICliServiceProvider;
109
- }