@qodalis/cli-guid 2.0.0-beta.9 → 2.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-guid",
3
- "version": "2.0.0-beta.9",
3
+ "version": "2.0.0-rc.1",
4
4
  "description": "@qodalis/cli extension for generating and validating GUIDs.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
@@ -20,7 +20,7 @@
20
20
  "umd": "./umd/index.global.js",
21
21
  "unpkg": "./umd/index.global.js",
22
22
  "dependencies": {
23
- "@qodalis/cli-core": "2.0.0-beta.9"
23
+ "@qodalis/cli-core": "2.0.0-rc.1"
24
24
  },
25
25
  "sideEffects": false,
26
26
  "main": "./public-api.js",
package/public-api.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- import * as _qodalis_cli_core from '@qodalis/cli-core';
2
1
  import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
3
2
 
4
3
  /**
@@ -31,7 +30,7 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
31
30
  command: string;
32
31
  aliases: string[];
33
32
  description: string;
34
- author: _qodalis_cli_core.ICliCommandAuthor;
33
+ author: any;
35
34
  version: string;
36
35
  processors?: ICliCommandProcessor[];
37
36
  metadata?: CliProcessorMetadata;
@@ -43,4 +42,5 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
43
42
 
44
43
  declare const guidModule: ICliModule;
45
44
 
46
- export { CliGuidCommandProcessor, type GuidFormat, NIL_GUID, detectGUIDVersion, formatGUID, generateGUID, guidModule, validateAnyGUID, validateGUID };
45
+ export { CliGuidCommandProcessor, NIL_GUID, detectGUIDVersion, formatGUID, generateGUID, guidModule, validateAnyGUID, validateGUID };
46
+ export type { GuidFormat };
package/public-api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as _qodalis_cli_core from '@qodalis/cli-core';
2
1
  import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
3
2
 
4
3
  /**
@@ -31,7 +30,7 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
31
30
  command: string;
32
31
  aliases: string[];
33
32
  description: string;
34
- author: _qodalis_cli_core.ICliCommandAuthor;
33
+ author: any;
35
34
  version: string;
36
35
  processors?: ICliCommandProcessor[];
37
36
  metadata?: CliProcessorMetadata;
@@ -43,4 +42,5 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
43
42
 
44
43
  declare const guidModule: ICliModule;
45
44
 
46
- export { CliGuidCommandProcessor, type GuidFormat, NIL_GUID, detectGUIDVersion, formatGUID, generateGUID, guidModule, validateAnyGUID, validateGUID };
45
+ export { CliGuidCommandProcessor, NIL_GUID, detectGUIDVersion, formatGUID, generateGUID, guidModule, validateAnyGUID, validateGUID };
46
+ export type { GuidFormat };
package/public-api.js CHANGED
@@ -68,7 +68,7 @@ var formatGUID = (guid, format) => {
68
68
  };
69
69
 
70
70
  // src/lib/version.ts
71
- var LIBRARY_VERSION = "2.0.0-beta.9";
71
+ var LIBRARY_VERSION = "2.0.0-rc.1";
72
72
  var API_VERSION = 2;
73
73
 
74
74
  // src/lib/processors/cli-guid-command-processor.ts
@@ -216,7 +216,7 @@ var CliGuidCommandProcessor = class {
216
216
  }
217
217
  ],
218
218
  processCommand: async (command, context) => {
219
- const input = command.value;
219
+ const input = cliCore.joinShellWords(command.value ?? "");
220
220
  const strict = command.args["strict"];
221
221
  const isValid = strict ? validateGUID(input) : validateAnyGUID(input);
222
222
  if (isValid) {
@@ -274,7 +274,7 @@ var CliGuidCommandProcessor = class {
274
274
  }
275
275
  ],
276
276
  processCommand: async (command, context) => {
277
- const input = command.value;
277
+ const input = cliCore.joinShellWords(command.value ?? "");
278
278
  const clean = input.replace(/[-{}()urn:uuid ]/g, "");
279
279
  if (!/^[0-9a-fA-F]{32}$/.test(clean)) {
280
280
  context.writer.writeError(
@@ -331,7 +331,7 @@ var CliGuidCommandProcessor = class {
331
331
  acceptsRawInput: true,
332
332
  valueRequired: true,
333
333
  processCommand: async (command, context) => {
334
- const input = command.value;
334
+ const input = cliCore.joinShellWords(command.value ?? "");
335
335
  const { writer } = context;
336
336
  if (!validateAnyGUID(input)) {
337
337
  writer.writeError(`Invalid UUID: ${input}`);
@@ -432,8 +432,7 @@ var CliGuidCommandProcessor = class {
432
432
  description: "Check if two UUIDs are equal (case/format insensitive)",
433
433
  acceptsRawInput: true,
434
434
  processCommand: async (command, context) => {
435
- const raw = (command.value || "").trim();
436
- const parts = raw.split(/\s+/);
435
+ const parts = command.positionals ?? [];
437
436
  if (parts.length !== 2) {
438
437
  context.writer.writeError(
439
438
  "Provide exactly two UUIDs to compare"
@@ -445,8 +444,8 @@ var CliGuidCommandProcessor = class {
445
444
  return;
446
445
  }
447
446
  const [a, b] = parts;
448
- const cleanA = a.replace(/[-{}()urn:uuid ]/g, "").toLowerCase();
449
- const cleanB = b.replace(/[-{}()urn:uuid ]/g, "").toLowerCase();
447
+ const cleanA = a.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
448
+ const cleanB = b.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
450
449
  if (!/^[0-9a-f]{32}$/.test(cleanA) || !/^[0-9a-f]{32}$/.test(cleanB)) {
451
450
  context.writer.writeError(
452
451
  "One or both inputs are not valid UUIDs"
package/public-api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/guid/src/lib/utilities/index.ts","../../packages/plugins/guid/src/lib/version.ts","../../packages/plugins/guid/src/lib/processors/cli-guid-command-processor.ts","../../packages/plugins/guid/src/public-api.ts"],"names":["DefaultLibraryAuthor","getPluginConfigValue","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["/**\n * Generates a v4 UUID using crypto.getRandomValues when available,\n * falling back to Math.random.\n */\nexport const generateGUID = (): string => {\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4\n bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10\n const hex = Array.from(bytes, (b) =>\n b.toString(16).padStart(2, '0'),\n ).join('');\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20, 32),\n ].join('-');\n }\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n};\n\n/**\n * Validates a UUID v4 string.\n */\nexport const validateGUID = (guid: string): boolean => {\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;\n return guidRegex.test(guid);\n};\n\n/**\n * Validates any UUID version (v1-v5, nil).\n */\nexport const validateAnyGUID = (guid: string): boolean => {\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return guidRegex.test(guid);\n};\n\n/** The nil UUID (all zeros). */\nexport const NIL_GUID = '00000000-0000-0000-0000-000000000000';\n\n/**\n * Detects the version of a UUID string.\n * Returns the version number (1-5) or 0 for nil, or null if invalid.\n */\nexport const detectGUIDVersion = (guid: string): number | null => {\n if (!validateAnyGUID(guid)) {\n return null;\n }\n if (guid === NIL_GUID) {\n return 0;\n }\n const versionChar = guid.charAt(14);\n const version = parseInt(versionChar, 16);\n return version >= 1 && version <= 5 ? version : null;\n};\n\nexport type GuidFormat = 'default' | 'uppercase' | 'braces' | 'parentheses' | 'digits' | 'urn';\n\n/**\n * Formats a UUID string into different representations.\n */\nexport const formatGUID = (guid: string, format: GuidFormat): string => {\n const clean = guid.replace(/[-{}() ]/g, '').toLowerCase();\n const d = `${clean.slice(0, 8)}-${clean.slice(8, 12)}-${clean.slice(12, 16)}-${clean.slice(16, 20)}-${clean.slice(20, 32)}`;\n\n switch (format) {\n case 'uppercase':\n return d.toUpperCase();\n case 'braces':\n return `{${d}}`;\n case 'parentheses':\n return `(${d})`;\n case 'digits':\n return clean;\n case 'urn':\n return `urn:uuid:${d}`;\n case 'default':\n default:\n return d;\n }\n};\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.9';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n} from '@qodalis/cli-core';\nimport {\n generateGUID,\n validateGUID,\n validateAnyGUID,\n detectGUIDVersion,\n formatGUID,\n NIL_GUID,\n GuidFormat,\n} from '../utilities';\nimport { LIBRARY_VERSION } from '../version';\n\nconst GUID_FORMATS: GuidFormat[] = [\n 'default',\n 'uppercase',\n 'braces',\n 'parentheses',\n 'digits',\n 'urn',\n];\n\nexport class CliGuidCommandProcessor implements ICliCommandProcessor {\n command = 'guid';\n\n aliases = ['uuid'];\n\n description = 'Generate, validate, format, and inspect UUIDs';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] = [];\n\n metadata?: CliProcessorMetadata = {\n icon: '🆔',\n module: 'guid',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultFormat',\n label: 'Default Format',\n description: 'Default output format for generated UUIDs',\n type: 'select',\n defaultValue: 'default',\n options: GUID_FORMATS.map((f) => ({ label: f, value: f })),\n },\n {\n key: 'autoCopy',\n label: 'Auto-Copy to Clipboard',\n description: 'Automatically copy generated UUIDs to clipboard',\n type: 'boolean',\n defaultValue: false,\n },\n ];\n\n constructor() {\n this.processors = [\n // --- new ---\n {\n command: 'new',\n aliases: ['gen', 'generate'],\n description: 'Generate one or more UUIDs',\n parameters: [\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy the result to the clipboard',\n required: false,\n type: 'boolean',\n },\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of UUIDs to generate',\n defaultValue: '1',\n required: false,\n type: 'number',\n },\n {\n name: 'format',\n aliases: ['f'],\n description: `Output format: ${GUID_FORMATS.join(', ')}`,\n defaultValue: 'default',\n required: false,\n type: 'string',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const count = command.args['count']\n ? parseInt(command.args['count'])\n : 1;\n\n if (isNaN(count) || count < 1 || count > 1000) {\n context.writer.writeError(\n 'Count must be a number between 1 and 1000',\n );\n return;\n }\n\n const cfgFormat = getPluginConfigValue(context, 'guid', 'defaultFormat', 'default');\n const cfgAutoCopy = getPluginConfigValue(context, 'guid', 'autoCopy', false);\n\n const format = (command.args['format'] ||\n cfgFormat) as GuidFormat;\n\n if (!GUID_FORMATS.includes(format)) {\n context.writer.writeError(\n `Unknown format \"${format}\". Available: ${GUID_FORMATS.join(', ')}`,\n );\n return;\n }\n\n const copyToClipboard =\n command.args['copy'] != null ? !!command.args['copy']\n : command.args['c'] != null ? !!command.args['c']\n : cfgAutoCopy;\n\n const items: string[] = [];\n\n for (let i = 0; i < count; i++) {\n const guid = formatGUID(generateGUID(), format);\n context.writer.writeln(guid);\n items.push(guid);\n }\n\n if (copyToClipboard) {\n await context.clipboard.write(items.join('\\n'));\n context.writer.writeInfo(\n items.length === 1\n ? 'Copied to clipboard'\n : `${items.length} UUIDs copied to clipboard`,\n );\n }\n\n context.process.output(\n items.length === 1 ? items[0] : items,\n );\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Generate one or more UUIDs (v4)');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid new', CliForegroundColor.Cyan)} Generate a single UUID`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --count=5', CliForegroundColor.Cyan)} Generate 5 UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --copy', CliForegroundColor.Cyan)} Generate and copy`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --format=uppercase', CliForegroundColor.Cyan)} Uppercase output`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --format=braces', CliForegroundColor.Cyan)} {wrapped} format`,\n );\n writer.writeln();\n writer.writeln(\n `Formats: ${writer.wrapInColor(GUID_FORMATS.join(', '), CliForegroundColor.Yellow)}`,\n );\n },\n },\n\n // --- validate ---\n {\n command: 'validate',\n aliases: ['check'],\n description: 'Validate a UUID string',\n acceptsRawInput: true,\n valueRequired: true,\n parameters: [\n {\n name: 'strict',\n description:\n 'Only accept v4 UUIDs (default: accept any version)',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = command.value!;\n const strict = command.args['strict'];\n const isValid = strict\n ? validateGUID(input)\n : validateAnyGUID(input);\n\n if (isValid) {\n const version = detectGUIDVersion(input);\n const versionLabel =\n version === 0\n ? 'nil'\n : version\n ? `v${version}`\n : 'unknown version';\n context.writer.writeSuccess(\n `Valid UUID (${versionLabel})`,\n );\n context.process.output({ valid: true, version });\n } else {\n context.writer.writeError(\n `Invalid UUID: ${input}`,\n );\n context.process.output({\n valid: false,\n version: null,\n });\n }\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Validate a UUID string and detect its version');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid>', CliForegroundColor.Cyan)} Check any UUID`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid> --strict', CliForegroundColor.Cyan)} Only accept v4`,\n );\n },\n },\n\n // --- format ---\n {\n command: 'format',\n aliases: ['fmt'],\n description: 'Convert a UUID to a different format',\n acceptsRawInput: true,\n valueRequired: true,\n parameters: [\n {\n name: 'to',\n aliases: ['t'],\n description: `Target format: ${GUID_FORMATS.join(', ')}`,\n defaultValue: 'default',\n required: false,\n type: 'string',\n },\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy the result to the clipboard',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = command.value!;\n\n const clean = input.replace(/[-{}()urn:uuid ]/g, '');\n if (!/^[0-9a-fA-F]{32}$/.test(clean)) {\n context.writer.writeError(\n `Cannot parse as UUID: ${input}`,\n );\n return;\n }\n\n const format = (command.args['to'] ||\n 'default') as GuidFormat;\n\n if (!GUID_FORMATS.includes(format)) {\n context.writer.writeError(\n `Unknown format \"${format}\". Available: ${GUID_FORMATS.join(', ')}`,\n );\n return;\n }\n\n const normalized = `${clean.slice(0, 8)}-${clean.slice(8, 12)}-${clean.slice(12, 16)}-${clean.slice(16, 20)}-${clean.slice(20, 32)}`.toLowerCase();\n const result = formatGUID(normalized, format);\n\n context.writer.writeln(result);\n\n if (command.args['copy'] || command.args['c']) {\n await context.clipboard.write(result);\n context.writer.writeInfo('Copied to clipboard');\n }\n\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Convert a UUID between different formats');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=braces', CliForegroundColor.Cyan)}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=urn', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln(\n `Formats: ${writer.wrapInColor(GUID_FORMATS.join(', '), CliForegroundColor.Yellow)}`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid format 550e8400-e29b-41d4-a716-446655440000 --to=braces`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('→ {550e8400-e29b-41d4-a716-446655440000}', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // --- inspect ---\n {\n command: 'inspect',\n aliases: ['info', 'parse'],\n description: 'Show detailed information about a UUID',\n acceptsRawInput: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = command.value!;\n const { writer } = context;\n\n if (!validateAnyGUID(input)) {\n writer.writeError(`Invalid UUID: ${input}`);\n return;\n }\n\n const version = detectGUIDVersion(input);\n const isNil = input === NIL_GUID;\n const lower = input.toLowerCase();\n const variantBits = parseInt(lower.charAt(19), 16);\n\n let variant: string;\n if ((variantBits & 0x8) === 0) {\n variant = 'NCS (reserved)';\n } else if ((variantBits & 0xc) === 0x8) {\n variant = 'RFC 4122';\n } else if ((variantBits & 0xe) === 0xc) {\n variant = 'Microsoft (reserved)';\n } else {\n variant = 'Future (reserved)';\n }\n\n writer.writeln(\n writer.wrapInColor(\n '── UUID Details ──',\n CliForegroundColor.Cyan,\n ),\n );\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('Input:', CliForegroundColor.Yellow)} ${input}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Version:', CliForegroundColor.Yellow)} ${isNil ? 'nil' : version !== null ? `v${version}` : 'unknown'}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Variant:', CliForegroundColor.Yellow)} ${variant}`,\n );\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('Formats:', CliForegroundColor.Yellow)}`,\n );\n\n for (const fmt of GUID_FORMATS) {\n const formatted = formatGUID(lower, fmt);\n writer.writeln(\n ` ${writer.wrapInColor(fmt.padEnd(14), CliForegroundColor.Cyan)} ${formatted}`,\n );\n }\n\n context.process.output({\n input,\n version,\n variant,\n isNil,\n formats: Object.fromEntries(\n GUID_FORMATS.map((fmt) => [\n fmt,\n formatGUID(lower, fmt),\n ]),\n ),\n });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(\n 'Display version, variant, and all format representations of a UUID',\n );\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid inspect <uuid>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n\n // --- nil ---\n {\n command: 'nil',\n aliases: ['empty', 'zero'],\n description: 'Output the nil UUID (all zeros)',\n parameters: [\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy to clipboard',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n _: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n context.writer.writeln(NIL_GUID);\n\n if (_.args['copy'] || _.args['c']) {\n await context.clipboard.write(NIL_GUID);\n context.writer.writeInfo('Copied to clipboard');\n }\n\n context.process.output(NIL_GUID);\n },\n },\n\n // --- compare ---\n {\n command: 'compare',\n aliases: ['eq', 'equals'],\n description: 'Check if two UUIDs are equal (case/format insensitive)',\n acceptsRawInput: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const raw = (command.value || '').trim();\n const parts = raw.split(/\\s+/);\n\n if (parts.length !== 2) {\n context.writer.writeError(\n 'Provide exactly two UUIDs to compare',\n );\n context.writer.writeln();\n context.writer.writeln(\n ` Usage: ${context.writer.wrapInColor('guid compare <uuid1> <uuid2>', CliForegroundColor.Cyan)}`,\n );\n return;\n }\n\n const [a, b] = parts;\n const cleanA = a.replace(/[-{}()urn:uuid ]/g, '').toLowerCase();\n const cleanB = b.replace(/[-{}()urn:uuid ]/g, '').toLowerCase();\n\n if (\n !/^[0-9a-f]{32}$/.test(cleanA) ||\n !/^[0-9a-f]{32}$/.test(cleanB)\n ) {\n context.writer.writeError(\n 'One or both inputs are not valid UUIDs',\n );\n return;\n }\n\n const equal = cleanA === cleanB;\n\n if (equal) {\n context.writer.writeSuccess('The UUIDs are equal');\n } else {\n context.writer.writeError('The UUIDs are different');\n }\n\n context.process.output({ equal, a, b });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(\n 'Compare two UUIDs for equality regardless of case or format',\n );\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid compare <uuid1> <uuid2>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid compare 550e8400-e29b-41d4-a716-446655440000 550E8400-E29B-41D4-A716-446655440000`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('→ The UUIDs are equal', CliForegroundColor.Green)}`,\n );\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n await context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln('📋 Commands:');\n writer.writeln(\n ` ${writer.wrapInColor('guid new', CliForegroundColor.Cyan)} Generate UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid>', CliForegroundColor.Cyan)} Validate and detect version`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=<fmt>', CliForegroundColor.Cyan)} Convert format`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid inspect <uuid>', CliForegroundColor.Cyan)} Show detailed info`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid compare <a> <b>', CliForegroundColor.Cyan)} Compare two UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid nil', CliForegroundColor.Cyan)} Output nil UUID`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid new --count=5 --copy ${writer.wrapInColor('# 5 UUIDs, copied', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid new --format=uppercase ${writer.wrapInColor('# A1B2C3D4-...', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid validate 550e8400-e29b-41d4-a716-446655440000 ${writer.wrapInColor('# Valid UUID (v4)', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid inspect 550e8400-e29b-41d4-a716-446655440000 ${writer.wrapInColor('# Version, variant, formats', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid format <uuid> --to=urn ${writer.wrapInColor('# urn:uuid:...', CliForegroundColor.Green)}`,\n );\n }\n}\n","/*\n * Public API Surface of guid\n */\n\nexport * from './lib/utilities';\nexport type { GuidFormat } from './lib/utilities';\n\nexport * from './lib/processors/cli-guid-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliGuidCommandProcessor } from './lib/processors/cli-guid-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const guidModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-guid',\n processors: [new CliGuidCommandProcessor()],\n translations: {\n es: { 'cli.guid.description': 'Generar, validar, formatear e inspeccionar UUIDs' },\n fr: { 'cli.guid.description': 'Générer, valider, formater et inspecter des UUIDs' },\n de: { 'cli.guid.description': 'UUIDs generieren, validieren, formatieren und inspizieren' },\n pt: { 'cli.guid.description': 'Gerar, validar, formatar e inspecionar UUIDs' },\n it: { 'cli.guid.description': 'Generare, validare, formattare e ispezionare UUID' },\n ja: { 'cli.guid.description': 'UUIDの生成、検証、フォーマット、検査' },\n ko: { 'cli.guid.description': 'UUID 생성, 검증, 포맷 및 검사' },\n zh: { 'cli.guid.description': '生成、验证、格式化和检查 UUID' },\n ru: { 'cli.guid.description': 'Генерация, проверка, форматирование и анализ UUID' },\n ro: { 'cli.guid.description': 'Generare, validare, formatare și inspectare UUID-uri' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/guid/src/lib/utilities/index.ts","../../packages/plugins/guid/src/lib/version.ts","../../packages/plugins/guid/src/lib/processors/cli-guid-command-processor.ts","../../packages/plugins/guid/src/public-api.ts"],"names":["DefaultLibraryAuthor","getPluginConfigValue","CliForegroundColor","joinShellWords"],"mappings":"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","file":"public-api.js","sourcesContent":["/**\n * Generates a v4 UUID using crypto.getRandomValues when available,\n * falling back to Math.random.\n */\nexport const generateGUID = (): string => {\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4\n bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10\n const hex = Array.from(bytes, (b) =>\n b.toString(16).padStart(2, '0'),\n ).join('');\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20, 32),\n ].join('-');\n }\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n};\n\n/**\n * Validates a UUID v4 string.\n */\nexport const validateGUID = (guid: string): boolean => {\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;\n return guidRegex.test(guid);\n};\n\n/**\n * Validates any UUID version (v1-v5, nil).\n */\nexport const validateAnyGUID = (guid: string): boolean => {\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return guidRegex.test(guid);\n};\n\n/** The nil UUID (all zeros). */\nexport const NIL_GUID = '00000000-0000-0000-0000-000000000000';\n\n/**\n * Detects the version of a UUID string.\n * Returns the version number (1-5) or 0 for nil, or null if invalid.\n */\nexport const detectGUIDVersion = (guid: string): number | null => {\n if (!validateAnyGUID(guid)) {\n return null;\n }\n if (guid === NIL_GUID) {\n return 0;\n }\n const versionChar = guid.charAt(14);\n const version = parseInt(versionChar, 16);\n return version >= 1 && version <= 5 ? version : null;\n};\n\nexport type GuidFormat = 'default' | 'uppercase' | 'braces' | 'parentheses' | 'digits' | 'urn';\n\n/**\n * Formats a UUID string into different representations.\n */\nexport const formatGUID = (guid: string, format: GuidFormat): string => {\n const clean = guid.replace(/[-{}() ]/g, '').toLowerCase();\n const d = `${clean.slice(0, 8)}-${clean.slice(8, 12)}-${clean.slice(12, 16)}-${clean.slice(16, 20)}-${clean.slice(20, 32)}`;\n\n switch (format) {\n case 'uppercase':\n return d.toUpperCase();\n case 'braces':\n return `{${d}}`;\n case 'parentheses':\n return `(${d})`;\n case 'digits':\n return clean;\n case 'urn':\n return `urn:uuid:${d}`;\n case 'default':\n default:\n return d;\n }\n};\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-rc.1';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport {\n generateGUID,\n validateGUID,\n validateAnyGUID,\n detectGUIDVersion,\n formatGUID,\n NIL_GUID,\n GuidFormat,\n} from '../utilities';\nimport { LIBRARY_VERSION } from '../version';\n\nconst GUID_FORMATS: GuidFormat[] = [\n 'default',\n 'uppercase',\n 'braces',\n 'parentheses',\n 'digits',\n 'urn',\n];\n\nexport class CliGuidCommandProcessor implements ICliCommandProcessor {\n command = 'guid';\n\n aliases = ['uuid'];\n\n description = 'Generate, validate, format, and inspect UUIDs';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] = [];\n\n metadata?: CliProcessorMetadata = {\n icon: '🆔',\n module: 'guid',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultFormat',\n label: 'Default Format',\n description: 'Default output format for generated UUIDs',\n type: 'select',\n defaultValue: 'default',\n options: GUID_FORMATS.map((f) => ({ label: f, value: f })),\n },\n {\n key: 'autoCopy',\n label: 'Auto-Copy to Clipboard',\n description: 'Automatically copy generated UUIDs to clipboard',\n type: 'boolean',\n defaultValue: false,\n },\n ];\n\n constructor() {\n this.processors = [\n // --- new ---\n {\n command: 'new',\n aliases: ['gen', 'generate'],\n description: 'Generate one or more UUIDs',\n parameters: [\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy the result to the clipboard',\n required: false,\n type: 'boolean',\n },\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of UUIDs to generate',\n defaultValue: '1',\n required: false,\n type: 'number',\n },\n {\n name: 'format',\n aliases: ['f'],\n description: `Output format: ${GUID_FORMATS.join(', ')}`,\n defaultValue: 'default',\n required: false,\n type: 'string',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const count = command.args['count']\n ? parseInt(command.args['count'])\n : 1;\n\n if (isNaN(count) || count < 1 || count > 1000) {\n context.writer.writeError(\n 'Count must be a number between 1 and 1000',\n );\n return;\n }\n\n const cfgFormat = getPluginConfigValue(context, 'guid', 'defaultFormat', 'default');\n const cfgAutoCopy = getPluginConfigValue(context, 'guid', 'autoCopy', false);\n\n const format = (command.args['format'] ||\n cfgFormat) as GuidFormat;\n\n if (!GUID_FORMATS.includes(format)) {\n context.writer.writeError(\n `Unknown format \"${format}\". Available: ${GUID_FORMATS.join(', ')}`,\n );\n return;\n }\n\n const copyToClipboard =\n command.args['copy'] != null ? !!command.args['copy']\n : command.args['c'] != null ? !!command.args['c']\n : cfgAutoCopy;\n\n const items: string[] = [];\n\n for (let i = 0; i < count; i++) {\n const guid = formatGUID(generateGUID(), format);\n context.writer.writeln(guid);\n items.push(guid);\n }\n\n if (copyToClipboard) {\n await context.clipboard.write(items.join('\\n'));\n context.writer.writeInfo(\n items.length === 1\n ? 'Copied to clipboard'\n : `${items.length} UUIDs copied to clipboard`,\n );\n }\n\n context.process.output(\n items.length === 1 ? items[0] : items,\n );\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Generate one or more UUIDs (v4)');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid new', CliForegroundColor.Cyan)} Generate a single UUID`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --count=5', CliForegroundColor.Cyan)} Generate 5 UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --copy', CliForegroundColor.Cyan)} Generate and copy`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --format=uppercase', CliForegroundColor.Cyan)} Uppercase output`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid new --format=braces', CliForegroundColor.Cyan)} {wrapped} format`,\n );\n writer.writeln();\n writer.writeln(\n `Formats: ${writer.wrapInColor(GUID_FORMATS.join(', '), CliForegroundColor.Yellow)}`,\n );\n },\n },\n\n // --- validate ---\n {\n command: 'validate',\n aliases: ['check'],\n description: 'Validate a UUID string',\n acceptsRawInput: true,\n valueRequired: true,\n parameters: [\n {\n name: 'strict',\n description:\n 'Only accept v4 UUIDs (default: accept any version)',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = joinShellWords(command.value ?? '');\n const strict = command.args['strict'];\n const isValid = strict\n ? validateGUID(input)\n : validateAnyGUID(input);\n\n if (isValid) {\n const version = detectGUIDVersion(input);\n const versionLabel =\n version === 0\n ? 'nil'\n : version\n ? `v${version}`\n : 'unknown version';\n context.writer.writeSuccess(\n `Valid UUID (${versionLabel})`,\n );\n context.process.output({ valid: true, version });\n } else {\n context.writer.writeError(\n `Invalid UUID: ${input}`,\n );\n context.process.output({\n valid: false,\n version: null,\n });\n }\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Validate a UUID string and detect its version');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid>', CliForegroundColor.Cyan)} Check any UUID`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid> --strict', CliForegroundColor.Cyan)} Only accept v4`,\n );\n },\n },\n\n // --- format ---\n {\n command: 'format',\n aliases: ['fmt'],\n description: 'Convert a UUID to a different format',\n acceptsRawInput: true,\n valueRequired: true,\n parameters: [\n {\n name: 'to',\n aliases: ['t'],\n description: `Target format: ${GUID_FORMATS.join(', ')}`,\n defaultValue: 'default',\n required: false,\n type: 'string',\n },\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy the result to the clipboard',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = joinShellWords(command.value ?? '');\n\n const clean = input.replace(/[-{}()urn:uuid ]/g, '');\n if (!/^[0-9a-fA-F]{32}$/.test(clean)) {\n context.writer.writeError(\n `Cannot parse as UUID: ${input}`,\n );\n return;\n }\n\n const format = (command.args['to'] ||\n 'default') as GuidFormat;\n\n if (!GUID_FORMATS.includes(format)) {\n context.writer.writeError(\n `Unknown format \"${format}\". Available: ${GUID_FORMATS.join(', ')}`,\n );\n return;\n }\n\n const normalized = `${clean.slice(0, 8)}-${clean.slice(8, 12)}-${clean.slice(12, 16)}-${clean.slice(16, 20)}-${clean.slice(20, 32)}`.toLowerCase();\n const result = formatGUID(normalized, format);\n\n context.writer.writeln(result);\n\n if (command.args['copy'] || command.args['c']) {\n await context.clipboard.write(result);\n context.writer.writeInfo('Copied to clipboard');\n }\n\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Convert a UUID between different formats');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=braces', CliForegroundColor.Cyan)}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=urn', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln(\n `Formats: ${writer.wrapInColor(GUID_FORMATS.join(', '), CliForegroundColor.Yellow)}`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid format 550e8400-e29b-41d4-a716-446655440000 --to=braces`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('→ {550e8400-e29b-41d4-a716-446655440000}', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // --- inspect ---\n {\n command: 'inspect',\n aliases: ['info', 'parse'],\n description: 'Show detailed information about a UUID',\n acceptsRawInput: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const input = joinShellWords(command.value ?? '');\n const { writer } = context;\n\n if (!validateAnyGUID(input)) {\n writer.writeError(`Invalid UUID: ${input}`);\n return;\n }\n\n const version = detectGUIDVersion(input);\n const isNil = input === NIL_GUID;\n const lower = input.toLowerCase();\n const variantBits = parseInt(lower.charAt(19), 16);\n\n let variant: string;\n if ((variantBits & 0x8) === 0) {\n variant = 'NCS (reserved)';\n } else if ((variantBits & 0xc) === 0x8) {\n variant = 'RFC 4122';\n } else if ((variantBits & 0xe) === 0xc) {\n variant = 'Microsoft (reserved)';\n } else {\n variant = 'Future (reserved)';\n }\n\n writer.writeln(\n writer.wrapInColor(\n '── UUID Details ──',\n CliForegroundColor.Cyan,\n ),\n );\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('Input:', CliForegroundColor.Yellow)} ${input}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Version:', CliForegroundColor.Yellow)} ${isNil ? 'nil' : version !== null ? `v${version}` : 'unknown'}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Variant:', CliForegroundColor.Yellow)} ${variant}`,\n );\n writer.writeln();\n writer.writeln(\n ` ${writer.wrapInColor('Formats:', CliForegroundColor.Yellow)}`,\n );\n\n for (const fmt of GUID_FORMATS) {\n const formatted = formatGUID(lower, fmt);\n writer.writeln(\n ` ${writer.wrapInColor(fmt.padEnd(14), CliForegroundColor.Cyan)} ${formatted}`,\n );\n }\n\n context.process.output({\n input,\n version,\n variant,\n isNil,\n formats: Object.fromEntries(\n GUID_FORMATS.map((fmt) => [\n fmt,\n formatGUID(lower, fmt),\n ]),\n ),\n });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(\n 'Display version, variant, and all format representations of a UUID',\n );\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid inspect <uuid>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n\n // --- nil ---\n {\n command: 'nil',\n aliases: ['empty', 'zero'],\n description: 'Output the nil UUID (all zeros)',\n parameters: [\n {\n name: 'copy',\n aliases: ['c'],\n description: 'Copy to clipboard',\n required: false,\n type: 'boolean',\n },\n ],\n processCommand: async (\n _: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n context.writer.writeln(NIL_GUID);\n\n if (_.args['copy'] || _.args['c']) {\n await context.clipboard.write(NIL_GUID);\n context.writer.writeInfo('Copied to clipboard');\n }\n\n context.process.output(NIL_GUID);\n },\n },\n\n // --- compare ---\n {\n command: 'compare',\n aliases: ['eq', 'equals'],\n description: 'Check if two UUIDs are equal (case/format insensitive)',\n acceptsRawInput: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const parts = command.positionals ?? [];\n\n if (parts.length !== 2) {\n context.writer.writeError(\n 'Provide exactly two UUIDs to compare',\n );\n context.writer.writeln();\n context.writer.writeln(\n ` Usage: ${context.writer.wrapInColor('guid compare <uuid1> <uuid2>', CliForegroundColor.Cyan)}`,\n );\n return;\n }\n\n const [a, b] = parts;\n const cleanA = a.replace(/^urn:uuid:/i, '').replace(/[-{}() ]/g, '').toLowerCase();\n const cleanB = b.replace(/^urn:uuid:/i, '').replace(/[-{}() ]/g, '').toLowerCase();\n\n if (\n !/^[0-9a-f]{32}$/.test(cleanA) ||\n !/^[0-9a-f]{32}$/.test(cleanB)\n ) {\n context.writer.writeError(\n 'One or both inputs are not valid UUIDs',\n );\n return;\n }\n\n const equal = cleanA === cleanB;\n\n if (equal) {\n context.writer.writeSuccess('The UUIDs are equal');\n } else {\n context.writer.writeError('The UUIDs are different');\n }\n\n context.process.output({ equal, a, b });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(\n 'Compare two UUIDs for equality regardless of case or format',\n );\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('guid compare <uuid1> <uuid2>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid compare 550e8400-e29b-41d4-a716-446655440000 550E8400-E29B-41D4-A716-446655440000`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('→ The UUIDs are equal', CliForegroundColor.Green)}`,\n );\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n await context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description);\n writer.writeln();\n writer.writeln('📋 Commands:');\n writer.writeln(\n ` ${writer.wrapInColor('guid new', CliForegroundColor.Cyan)} Generate UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid validate <uuid>', CliForegroundColor.Cyan)} Validate and detect version`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid format <uuid> --to=<fmt>', CliForegroundColor.Cyan)} Convert format`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid inspect <uuid>', CliForegroundColor.Cyan)} Show detailed info`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid compare <a> <b>', CliForegroundColor.Cyan)} Compare two UUIDs`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('guid nil', CliForegroundColor.Cyan)} Output nil UUID`,\n );\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(\n ` guid new --count=5 --copy ${writer.wrapInColor('# 5 UUIDs, copied', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid new --format=uppercase ${writer.wrapInColor('# A1B2C3D4-...', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid validate 550e8400-e29b-41d4-a716-446655440000 ${writer.wrapInColor('# Valid UUID (v4)', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid inspect 550e8400-e29b-41d4-a716-446655440000 ${writer.wrapInColor('# Version, variant, formats', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` guid format <uuid> --to=urn ${writer.wrapInColor('# urn:uuid:...', CliForegroundColor.Green)}`,\n );\n }\n}\n","/*\n * Public API Surface of guid\n */\n\nexport * from './lib/utilities';\nexport type { GuidFormat } from './lib/utilities';\n\nexport * from './lib/processors/cli-guid-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliGuidCommandProcessor } from './lib/processors/cli-guid-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const guidModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-guid',\n processors: [new CliGuidCommandProcessor()],\n translations: {\n es: { 'cli.guid.description': 'Generar, validar, formatear e inspeccionar UUIDs' },\n fr: { 'cli.guid.description': 'Générer, valider, formater et inspecter des UUIDs' },\n de: { 'cli.guid.description': 'UUIDs generieren, validieren, formatieren und inspizieren' },\n pt: { 'cli.guid.description': 'Gerar, validar, formatar e inspecionar UUIDs' },\n it: { 'cli.guid.description': 'Generare, validare, formattare e ispezionare UUID' },\n ja: { 'cli.guid.description': 'UUIDの生成、検証、フォーマット、検査' },\n ko: { 'cli.guid.description': 'UUID 생성, 검증, 포맷 및 검사' },\n zh: { 'cli.guid.description': '生成、验证、格式化和检查 UUID' },\n ru: { 'cli.guid.description': 'Генерация, проверка, форматирование и анализ UUID' },\n ro: { 'cli.guid.description': 'Generare, validare, formatare și inspectare UUID-uri' },\n },\n};\n"]}
package/public-api.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { DefaultLibraryAuthor, CliForegroundColor, getPluginConfigValue } from '@qodalis/cli-core';
1
+ import { DefaultLibraryAuthor, CliForegroundColor, getPluginConfigValue, joinShellWords } from '@qodalis/cli-core';
2
2
 
3
3
  // src/lib/utilities/index.ts
4
4
  var generateGUID = () => {
@@ -66,7 +66,7 @@ var formatGUID = (guid, format) => {
66
66
  };
67
67
 
68
68
  // src/lib/version.ts
69
- var LIBRARY_VERSION = "2.0.0-beta.9";
69
+ var LIBRARY_VERSION = "2.0.0-rc.1";
70
70
  var API_VERSION = 2;
71
71
 
72
72
  // src/lib/processors/cli-guid-command-processor.ts
@@ -214,7 +214,7 @@ var CliGuidCommandProcessor = class {
214
214
  }
215
215
  ],
216
216
  processCommand: async (command, context) => {
217
- const input = command.value;
217
+ const input = joinShellWords(command.value ?? "");
218
218
  const strict = command.args["strict"];
219
219
  const isValid = strict ? validateGUID(input) : validateAnyGUID(input);
220
220
  if (isValid) {
@@ -272,7 +272,7 @@ var CliGuidCommandProcessor = class {
272
272
  }
273
273
  ],
274
274
  processCommand: async (command, context) => {
275
- const input = command.value;
275
+ const input = joinShellWords(command.value ?? "");
276
276
  const clean = input.replace(/[-{}()urn:uuid ]/g, "");
277
277
  if (!/^[0-9a-fA-F]{32}$/.test(clean)) {
278
278
  context.writer.writeError(
@@ -329,7 +329,7 @@ var CliGuidCommandProcessor = class {
329
329
  acceptsRawInput: true,
330
330
  valueRequired: true,
331
331
  processCommand: async (command, context) => {
332
- const input = command.value;
332
+ const input = joinShellWords(command.value ?? "");
333
333
  const { writer } = context;
334
334
  if (!validateAnyGUID(input)) {
335
335
  writer.writeError(`Invalid UUID: ${input}`);
@@ -430,8 +430,7 @@ var CliGuidCommandProcessor = class {
430
430
  description: "Check if two UUIDs are equal (case/format insensitive)",
431
431
  acceptsRawInput: true,
432
432
  processCommand: async (command, context) => {
433
- const raw = (command.value || "").trim();
434
- const parts = raw.split(/\s+/);
433
+ const parts = command.positionals ?? [];
435
434
  if (parts.length !== 2) {
436
435
  context.writer.writeError(
437
436
  "Provide exactly two UUIDs to compare"
@@ -443,8 +442,8 @@ var CliGuidCommandProcessor = class {
443
442
  return;
444
443
  }
445
444
  const [a, b] = parts;
446
- const cleanA = a.replace(/[-{}()urn:uuid ]/g, "").toLowerCase();
447
- const cleanB = b.replace(/[-{}()urn:uuid ]/g, "").toLowerCase();
445
+ const cleanA = a.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
446
+ const cleanB = b.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
448
447
  if (!/^[0-9a-f]{32}$/.test(cleanA) || !/^[0-9a-f]{32}$/.test(cleanB)) {
449
448
  context.writer.writeError(
450
449
  "One or both inputs are not valid UUIDs"