@qodalis/cli-guid 2.0.0-beta.8 → 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 +2 -2
- package/public-api.d.mts +5 -4
- package/public-api.d.ts +5 -4
- package/public-api.js +28 -10
- package/public-api.js.map +1 -1
- package/public-api.mjs +29 -11
- package/public-api.mjs.map +1 -1
- package/umd/index.global.js +272 -80
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qodalis/cli-guid",
|
|
3
|
-
"version": "2.0.0-
|
|
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-
|
|
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,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ICliCommandProcessor, CliProcessorMetadata, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
|
|
1
|
+
import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Generates a v4 UUID using crypto.getRandomValues when available,
|
|
@@ -31,10 +30,11 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
|
|
|
31
30
|
command: string;
|
|
32
31
|
aliases: string[];
|
|
33
32
|
description: string;
|
|
34
|
-
author:
|
|
33
|
+
author: any;
|
|
35
34
|
version: string;
|
|
36
35
|
processors?: ICliCommandProcessor[];
|
|
37
36
|
metadata?: CliProcessorMetadata;
|
|
37
|
+
configurationOptions?: ICliConfigurationOption[];
|
|
38
38
|
constructor();
|
|
39
39
|
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
40
40
|
writeDescription(context: ICliExecutionContext): void;
|
|
@@ -42,4 +42,5 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
|
|
|
42
42
|
|
|
43
43
|
declare const guidModule: ICliModule;
|
|
44
44
|
|
|
45
|
-
export { CliGuidCommandProcessor,
|
|
45
|
+
export { CliGuidCommandProcessor, NIL_GUID, detectGUIDVersion, formatGUID, generateGUID, guidModule, validateAnyGUID, validateGUID };
|
|
46
|
+
export type { GuidFormat };
|
package/public-api.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ICliCommandProcessor, CliProcessorMetadata, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
|
|
1
|
+
import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Generates a v4 UUID using crypto.getRandomValues when available,
|
|
@@ -31,10 +30,11 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
|
|
|
31
30
|
command: string;
|
|
32
31
|
aliases: string[];
|
|
33
32
|
description: string;
|
|
34
|
-
author:
|
|
33
|
+
author: any;
|
|
35
34
|
version: string;
|
|
36
35
|
processors?: ICliCommandProcessor[];
|
|
37
36
|
metadata?: CliProcessorMetadata;
|
|
37
|
+
configurationOptions?: ICliConfigurationOption[];
|
|
38
38
|
constructor();
|
|
39
39
|
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
40
40
|
writeDescription(context: ICliExecutionContext): void;
|
|
@@ -42,4 +42,5 @@ declare class CliGuidCommandProcessor implements ICliCommandProcessor {
|
|
|
42
42
|
|
|
43
43
|
declare const guidModule: ICliModule;
|
|
44
44
|
|
|
45
|
-
export { CliGuidCommandProcessor,
|
|
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-
|
|
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
|
|
@@ -92,6 +92,23 @@ var CliGuidCommandProcessor = class {
|
|
|
92
92
|
icon: "\u{1F194}",
|
|
93
93
|
module: "guid"
|
|
94
94
|
};
|
|
95
|
+
this.configurationOptions = [
|
|
96
|
+
{
|
|
97
|
+
key: "defaultFormat",
|
|
98
|
+
label: "Default Format",
|
|
99
|
+
description: "Default output format for generated UUIDs",
|
|
100
|
+
type: "select",
|
|
101
|
+
defaultValue: "default",
|
|
102
|
+
options: GUID_FORMATS.map((f) => ({ label: f, value: f }))
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
key: "autoCopy",
|
|
106
|
+
label: "Auto-Copy to Clipboard",
|
|
107
|
+
description: "Automatically copy generated UUIDs to clipboard",
|
|
108
|
+
type: "boolean",
|
|
109
|
+
defaultValue: false
|
|
110
|
+
}
|
|
111
|
+
];
|
|
95
112
|
this.processors = [
|
|
96
113
|
// --- new ---
|
|
97
114
|
{
|
|
@@ -131,14 +148,16 @@ var CliGuidCommandProcessor = class {
|
|
|
131
148
|
);
|
|
132
149
|
return;
|
|
133
150
|
}
|
|
134
|
-
const
|
|
151
|
+
const cfgFormat = cliCore.getPluginConfigValue(context, "guid", "defaultFormat", "default");
|
|
152
|
+
const cfgAutoCopy = cliCore.getPluginConfigValue(context, "guid", "autoCopy", false);
|
|
153
|
+
const format = command.args["format"] || cfgFormat;
|
|
135
154
|
if (!GUID_FORMATS.includes(format)) {
|
|
136
155
|
context.writer.writeError(
|
|
137
156
|
`Unknown format "${format}". Available: ${GUID_FORMATS.join(", ")}`
|
|
138
157
|
);
|
|
139
158
|
return;
|
|
140
159
|
}
|
|
141
|
-
const copyToClipboard = command.args["copy"]
|
|
160
|
+
const copyToClipboard = command.args["copy"] != null ? !!command.args["copy"] : command.args["c"] != null ? !!command.args["c"] : cfgAutoCopy;
|
|
142
161
|
const items = [];
|
|
143
162
|
for (let i = 0; i < count; i++) {
|
|
144
163
|
const guid = formatGUID(generateGUID(), format);
|
|
@@ -197,7 +216,7 @@ var CliGuidCommandProcessor = class {
|
|
|
197
216
|
}
|
|
198
217
|
],
|
|
199
218
|
processCommand: async (command, context) => {
|
|
200
|
-
const input = command.value;
|
|
219
|
+
const input = cliCore.joinShellWords(command.value ?? "");
|
|
201
220
|
const strict = command.args["strict"];
|
|
202
221
|
const isValid = strict ? validateGUID(input) : validateAnyGUID(input);
|
|
203
222
|
if (isValid) {
|
|
@@ -255,7 +274,7 @@ var CliGuidCommandProcessor = class {
|
|
|
255
274
|
}
|
|
256
275
|
],
|
|
257
276
|
processCommand: async (command, context) => {
|
|
258
|
-
const input = command.value;
|
|
277
|
+
const input = cliCore.joinShellWords(command.value ?? "");
|
|
259
278
|
const clean = input.replace(/[-{}()urn:uuid ]/g, "");
|
|
260
279
|
if (!/^[0-9a-fA-F]{32}$/.test(clean)) {
|
|
261
280
|
context.writer.writeError(
|
|
@@ -312,7 +331,7 @@ var CliGuidCommandProcessor = class {
|
|
|
312
331
|
acceptsRawInput: true,
|
|
313
332
|
valueRequired: true,
|
|
314
333
|
processCommand: async (command, context) => {
|
|
315
|
-
const input = command.value;
|
|
334
|
+
const input = cliCore.joinShellWords(command.value ?? "");
|
|
316
335
|
const { writer } = context;
|
|
317
336
|
if (!validateAnyGUID(input)) {
|
|
318
337
|
writer.writeError(`Invalid UUID: ${input}`);
|
|
@@ -413,8 +432,7 @@ var CliGuidCommandProcessor = class {
|
|
|
413
432
|
description: "Check if two UUIDs are equal (case/format insensitive)",
|
|
414
433
|
acceptsRawInput: true,
|
|
415
434
|
processCommand: async (command, context) => {
|
|
416
|
-
const
|
|
417
|
-
const parts = raw.split(/\s+/);
|
|
435
|
+
const parts = command.positionals ?? [];
|
|
418
436
|
if (parts.length !== 2) {
|
|
419
437
|
context.writer.writeError(
|
|
420
438
|
"Provide exactly two UUIDs to compare"
|
|
@@ -426,8 +444,8 @@ var CliGuidCommandProcessor = class {
|
|
|
426
444
|
return;
|
|
427
445
|
}
|
|
428
446
|
const [a, b] = parts;
|
|
429
|
-
const cleanA = a.replace(/[-{}()
|
|
430
|
-
const cleanB = b.replace(/[-{}()
|
|
447
|
+
const cleanA = a.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
|
|
448
|
+
const cleanB = b.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
|
|
431
449
|
if (!/^[0-9a-f]{32}$/.test(cleanA) || !/^[0-9a-f]{32}$/.test(cleanB)) {
|
|
432
450
|
context.writer.writeError(
|
|
433
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","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.8';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\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 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 format = (command.args['format'] ||\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 copyToClipboard =\n command.args['copy'] || command.args['c'];\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 } 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-
|
|
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
|
|
@@ -90,6 +90,23 @@ var CliGuidCommandProcessor = class {
|
|
|
90
90
|
icon: "\u{1F194}",
|
|
91
91
|
module: "guid"
|
|
92
92
|
};
|
|
93
|
+
this.configurationOptions = [
|
|
94
|
+
{
|
|
95
|
+
key: "defaultFormat",
|
|
96
|
+
label: "Default Format",
|
|
97
|
+
description: "Default output format for generated UUIDs",
|
|
98
|
+
type: "select",
|
|
99
|
+
defaultValue: "default",
|
|
100
|
+
options: GUID_FORMATS.map((f) => ({ label: f, value: f }))
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
key: "autoCopy",
|
|
104
|
+
label: "Auto-Copy to Clipboard",
|
|
105
|
+
description: "Automatically copy generated UUIDs to clipboard",
|
|
106
|
+
type: "boolean",
|
|
107
|
+
defaultValue: false
|
|
108
|
+
}
|
|
109
|
+
];
|
|
93
110
|
this.processors = [
|
|
94
111
|
// --- new ---
|
|
95
112
|
{
|
|
@@ -129,14 +146,16 @@ var CliGuidCommandProcessor = class {
|
|
|
129
146
|
);
|
|
130
147
|
return;
|
|
131
148
|
}
|
|
132
|
-
const
|
|
149
|
+
const cfgFormat = getPluginConfigValue(context, "guid", "defaultFormat", "default");
|
|
150
|
+
const cfgAutoCopy = getPluginConfigValue(context, "guid", "autoCopy", false);
|
|
151
|
+
const format = command.args["format"] || cfgFormat;
|
|
133
152
|
if (!GUID_FORMATS.includes(format)) {
|
|
134
153
|
context.writer.writeError(
|
|
135
154
|
`Unknown format "${format}". Available: ${GUID_FORMATS.join(", ")}`
|
|
136
155
|
);
|
|
137
156
|
return;
|
|
138
157
|
}
|
|
139
|
-
const copyToClipboard = command.args["copy"]
|
|
158
|
+
const copyToClipboard = command.args["copy"] != null ? !!command.args["copy"] : command.args["c"] != null ? !!command.args["c"] : cfgAutoCopy;
|
|
140
159
|
const items = [];
|
|
141
160
|
for (let i = 0; i < count; i++) {
|
|
142
161
|
const guid = formatGUID(generateGUID(), format);
|
|
@@ -195,7 +214,7 @@ var CliGuidCommandProcessor = class {
|
|
|
195
214
|
}
|
|
196
215
|
],
|
|
197
216
|
processCommand: async (command, context) => {
|
|
198
|
-
const input = command.value;
|
|
217
|
+
const input = joinShellWords(command.value ?? "");
|
|
199
218
|
const strict = command.args["strict"];
|
|
200
219
|
const isValid = strict ? validateGUID(input) : validateAnyGUID(input);
|
|
201
220
|
if (isValid) {
|
|
@@ -253,7 +272,7 @@ var CliGuidCommandProcessor = class {
|
|
|
253
272
|
}
|
|
254
273
|
],
|
|
255
274
|
processCommand: async (command, context) => {
|
|
256
|
-
const input = command.value;
|
|
275
|
+
const input = joinShellWords(command.value ?? "");
|
|
257
276
|
const clean = input.replace(/[-{}()urn:uuid ]/g, "");
|
|
258
277
|
if (!/^[0-9a-fA-F]{32}$/.test(clean)) {
|
|
259
278
|
context.writer.writeError(
|
|
@@ -310,7 +329,7 @@ var CliGuidCommandProcessor = class {
|
|
|
310
329
|
acceptsRawInput: true,
|
|
311
330
|
valueRequired: true,
|
|
312
331
|
processCommand: async (command, context) => {
|
|
313
|
-
const input = command.value;
|
|
332
|
+
const input = joinShellWords(command.value ?? "");
|
|
314
333
|
const { writer } = context;
|
|
315
334
|
if (!validateAnyGUID(input)) {
|
|
316
335
|
writer.writeError(`Invalid UUID: ${input}`);
|
|
@@ -411,8 +430,7 @@ var CliGuidCommandProcessor = class {
|
|
|
411
430
|
description: "Check if two UUIDs are equal (case/format insensitive)",
|
|
412
431
|
acceptsRawInput: true,
|
|
413
432
|
processCommand: async (command, context) => {
|
|
414
|
-
const
|
|
415
|
-
const parts = raw.split(/\s+/);
|
|
433
|
+
const parts = command.positionals ?? [];
|
|
416
434
|
if (parts.length !== 2) {
|
|
417
435
|
context.writer.writeError(
|
|
418
436
|
"Provide exactly two UUIDs to compare"
|
|
@@ -424,8 +442,8 @@ var CliGuidCommandProcessor = class {
|
|
|
424
442
|
return;
|
|
425
443
|
}
|
|
426
444
|
const [a, b] = parts;
|
|
427
|
-
const cleanA = a.replace(/[-{}()
|
|
428
|
-
const cleanB = b.replace(/[-{}()
|
|
445
|
+
const cleanA = a.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
|
|
446
|
+
const cleanB = b.replace(/^urn:uuid:/i, "").replace(/[-{}() ]/g, "").toLowerCase();
|
|
429
447
|
if (!/^[0-9a-f]{32}$/.test(cleanA) || !/^[0-9a-f]{32}$/.test(cleanB)) {
|
|
430
448
|
context.writer.writeError(
|
|
431
449
|
"One or both inputs are not valid UUIDs"
|