pcu 0.2.6
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/LICENSE +21 -0
- package/README.md +478 -0
- package/bin/pcu.js +15 -0
- package/dist/application/services/CatalogUpdateService.d.ts +190 -0
- package/dist/application/services/CatalogUpdateService.d.ts.map +1 -0
- package/dist/application/services/CatalogUpdateService.js +521 -0
- package/dist/application/services/CatalogUpdateService.js.map +1 -0
- package/dist/application/services/WorkspaceService.d.ts +139 -0
- package/dist/application/services/WorkspaceService.d.ts.map +1 -0
- package/dist/application/services/WorkspaceService.js +340 -0
- package/dist/application/services/WorkspaceService.js.map +1 -0
- package/dist/cli/commands/CheckCommand.d.ts +41 -0
- package/dist/cli/commands/CheckCommand.d.ts.map +1 -0
- package/dist/cli/commands/CheckCommand.js +168 -0
- package/dist/cli/commands/CheckCommand.js.map +1 -0
- package/dist/cli/commands/UpdateCommand.d.ts +69 -0
- package/dist/cli/commands/UpdateCommand.d.ts.map +1 -0
- package/dist/cli/commands/UpdateCommand.js +361 -0
- package/dist/cli/commands/UpdateCommand.js.map +1 -0
- package/dist/cli/formatters/OutputFormatter.d.ts +99 -0
- package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/OutputFormatter.js +551 -0
- package/dist/cli/formatters/OutputFormatter.js.map +1 -0
- package/dist/cli/index.d.ts +12 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +271 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/options/GlobalOptions.d.ts +117 -0
- package/dist/cli/options/GlobalOptions.d.ts.map +1 -0
- package/dist/cli/options/GlobalOptions.js +278 -0
- package/dist/cli/options/GlobalOptions.js.map +1 -0
- package/dist/cli/options/index.d.ts +5 -0
- package/dist/cli/options/index.d.ts.map +1 -0
- package/dist/cli/options/index.js +5 -0
- package/dist/cli/options/index.js.map +1 -0
- package/dist/cli/validators/CommandValidator.d.ts +60 -0
- package/dist/cli/validators/CommandValidator.d.ts.map +1 -0
- package/dist/cli/validators/CommandValidator.js +319 -0
- package/dist/cli/validators/CommandValidator.js.map +1 -0
- package/dist/cli/validators/index.d.ts +5 -0
- package/dist/cli/validators/index.d.ts.map +1 -0
- package/dist/cli/validators/index.js +5 -0
- package/dist/cli/validators/index.js.map +1 -0
- package/dist/common/config/Config.d.ts +142 -0
- package/dist/common/config/Config.d.ts.map +1 -0
- package/dist/common/config/Config.js +355 -0
- package/dist/common/config/Config.js.map +1 -0
- package/dist/common/config/index.d.ts +6 -0
- package/dist/common/config/index.d.ts.map +1 -0
- package/dist/common/config/index.js +6 -0
- package/dist/common/config/index.js.map +1 -0
- package/dist/common/logger/Logger.d.ts +110 -0
- package/dist/common/logger/Logger.d.ts.map +1 -0
- package/dist/common/logger/Logger.js +289 -0
- package/dist/common/logger/Logger.js.map +1 -0
- package/dist/common/logger/index.d.ts +6 -0
- package/dist/common/logger/index.d.ts.map +1 -0
- package/dist/common/logger/index.js +6 -0
- package/dist/common/logger/index.js.map +1 -0
- package/dist/common/types/cli.d.ts +265 -0
- package/dist/common/types/cli.d.ts.map +1 -0
- package/dist/common/types/cli.js +5 -0
- package/dist/common/types/cli.js.map +1 -0
- package/dist/common/types/core.d.ts +270 -0
- package/dist/common/types/core.d.ts.map +1 -0
- package/dist/common/types/core.js +32 -0
- package/dist/common/types/core.js.map +1 -0
- package/dist/common/types/index.d.ts +8 -0
- package/dist/common/types/index.d.ts.map +1 -0
- package/dist/common/types/index.js +8 -0
- package/dist/common/types/index.js.map +1 -0
- package/dist/common/utils/async.d.ts +74 -0
- package/dist/common/utils/async.d.ts.map +1 -0
- package/dist/common/utils/async.js +228 -0
- package/dist/common/utils/async.js.map +1 -0
- package/dist/common/utils/format.d.ts +32 -0
- package/dist/common/utils/format.d.ts.map +1 -0
- package/dist/common/utils/format.js +121 -0
- package/dist/common/utils/format.js.map +1 -0
- package/dist/common/utils/git.d.ts +44 -0
- package/dist/common/utils/git.d.ts.map +1 -0
- package/dist/common/utils/git.js +147 -0
- package/dist/common/utils/git.js.map +1 -0
- package/dist/common/utils/index.d.ts +11 -0
- package/dist/common/utils/index.d.ts.map +1 -0
- package/dist/common/utils/index.js +11 -0
- package/dist/common/utils/index.js.map +1 -0
- package/dist/common/utils/string.d.ts +56 -0
- package/dist/common/utils/string.d.ts.map +1 -0
- package/dist/common/utils/string.js +134 -0
- package/dist/common/utils/string.js.map +1 -0
- package/dist/common/utils/validation.d.ts +88 -0
- package/dist/common/utils/validation.d.ts.map +1 -0
- package/dist/common/utils/validation.js +281 -0
- package/dist/common/utils/validation.js.map +1 -0
- package/dist/domain/entities/Catalog.d.ts +117 -0
- package/dist/domain/entities/Catalog.d.ts.map +1 -0
- package/dist/domain/entities/Catalog.js +240 -0
- package/dist/domain/entities/Catalog.js.map +1 -0
- package/dist/domain/entities/Package.d.ts +143 -0
- package/dist/domain/entities/Package.d.ts.map +1 -0
- package/dist/domain/entities/Package.js +272 -0
- package/dist/domain/entities/Package.js.map +1 -0
- package/dist/domain/entities/Workspace.d.ts +95 -0
- package/dist/domain/entities/Workspace.d.ts.map +1 -0
- package/dist/domain/entities/Workspace.js +173 -0
- package/dist/domain/entities/Workspace.js.map +1 -0
- package/dist/domain/repositories/WorkspaceRepository.d.ts +41 -0
- package/dist/domain/repositories/WorkspaceRepository.d.ts.map +1 -0
- package/dist/domain/repositories/WorkspaceRepository.js +8 -0
- package/dist/domain/repositories/WorkspaceRepository.js.map +1 -0
- package/dist/domain/value-objects/CatalogCollection.d.ts +106 -0
- package/dist/domain/value-objects/CatalogCollection.d.ts.map +1 -0
- package/dist/domain/value-objects/CatalogCollection.js +230 -0
- package/dist/domain/value-objects/CatalogCollection.js.map +1 -0
- package/dist/domain/value-objects/PackageCollection.d.ts +122 -0
- package/dist/domain/value-objects/PackageCollection.d.ts.map +1 -0
- package/dist/domain/value-objects/PackageCollection.js +263 -0
- package/dist/domain/value-objects/PackageCollection.js.map +1 -0
- package/dist/domain/value-objects/Version.d.ts +141 -0
- package/dist/domain/value-objects/Version.d.ts.map +1 -0
- package/dist/domain/value-objects/Version.js +268 -0
- package/dist/domain/value-objects/Version.js.map +1 -0
- package/dist/domain/value-objects/WorkspaceConfig.d.ts +144 -0
- package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspaceConfig.js +357 -0
- package/dist/domain/value-objects/WorkspaceConfig.js.map +1 -0
- package/dist/domain/value-objects/WorkspaceId.d.ts +51 -0
- package/dist/domain/value-objects/WorkspaceId.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspaceId.js +104 -0
- package/dist/domain/value-objects/WorkspaceId.js.map +1 -0
- package/dist/domain/value-objects/WorkspacePath.d.ts +75 -0
- package/dist/domain/value-objects/WorkspacePath.d.ts.map +1 -0
- package/dist/domain/value-objects/WorkspacePath.js +128 -0
- package/dist/domain/value-objects/WorkspacePath.js.map +1 -0
- package/dist/infrastructure/cache/Cache.d.ts +161 -0
- package/dist/infrastructure/cache/Cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/Cache.js +398 -0
- package/dist/infrastructure/cache/Cache.js.map +1 -0
- package/dist/infrastructure/cache/index.d.ts +6 -0
- package/dist/infrastructure/cache/index.d.ts.map +1 -0
- package/dist/infrastructure/cache/index.js +6 -0
- package/dist/infrastructure/cache/index.js.map +1 -0
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts +106 -0
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -0
- package/dist/infrastructure/external-services/NpmRegistryService.js +305 -0
- package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -0
- package/dist/infrastructure/file-system/FileSystemService.d.ts +120 -0
- package/dist/infrastructure/file-system/FileSystemService.d.ts.map +1 -0
- package/dist/infrastructure/file-system/FileSystemService.js +663 -0
- package/dist/infrastructure/file-system/FileSystemService.js.map +1 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +57 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js +179 -0
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +1 -0
- package/package.json +127 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAUvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAI3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAcnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EAAE,EAAE,EAChB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,MAAM,CAiER"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format bytes to human readable string
|
|
6
|
+
*/
|
|
7
|
+
export function formatBytes(bytes, decimals = 2) {
|
|
8
|
+
if (bytes === 0)
|
|
9
|
+
return '0 Bytes';
|
|
10
|
+
const k = 1024;
|
|
11
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
12
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
13
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
14
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Format duration in milliseconds to human readable string
|
|
18
|
+
*/
|
|
19
|
+
export function formatDuration(ms) {
|
|
20
|
+
if (ms < 1000)
|
|
21
|
+
return `${ms}ms`;
|
|
22
|
+
if (ms < 60000)
|
|
23
|
+
return `${(ms / 1000).toFixed(1)}s`;
|
|
24
|
+
if (ms < 3600000)
|
|
25
|
+
return `${(ms / 60000).toFixed(1)}m`;
|
|
26
|
+
return `${(ms / 3600000).toFixed(1)}h`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Format number with thousands separator
|
|
30
|
+
*/
|
|
31
|
+
export function formatNumber(num, separator = ',') {
|
|
32
|
+
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Format percentage
|
|
36
|
+
*/
|
|
37
|
+
export function formatPercentage(value, total, decimals = 1) {
|
|
38
|
+
if (total === 0)
|
|
39
|
+
return '0%';
|
|
40
|
+
const percentage = (value / total) * 100;
|
|
41
|
+
return `${percentage.toFixed(decimals)}%`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Format timestamp to relative time
|
|
45
|
+
*/
|
|
46
|
+
export function formatRelativeTime(timestamp) {
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
const time = typeof timestamp === 'number' ? timestamp : timestamp.getTime();
|
|
49
|
+
const diff = now - time;
|
|
50
|
+
const seconds = Math.floor(diff / 1000);
|
|
51
|
+
const minutes = Math.floor(seconds / 60);
|
|
52
|
+
const hours = Math.floor(minutes / 60);
|
|
53
|
+
const days = Math.floor(hours / 24);
|
|
54
|
+
if (days > 0)
|
|
55
|
+
return `${days} day${days === 1 ? '' : 's'} ago`;
|
|
56
|
+
if (hours > 0)
|
|
57
|
+
return `${hours} hour${hours === 1 ? '' : 's'} ago`;
|
|
58
|
+
if (minutes > 0)
|
|
59
|
+
return `${minutes} minute${minutes === 1 ? '' : 's'} ago`;
|
|
60
|
+
return `${seconds} second${seconds === 1 ? '' : 's'} ago`;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Format table data
|
|
64
|
+
*/
|
|
65
|
+
export function formatTable(headers, rows, options = {}) {
|
|
66
|
+
const { padding = 1, align = [], borders = true } = options;
|
|
67
|
+
if (rows.length === 0)
|
|
68
|
+
return '';
|
|
69
|
+
// Calculate column widths
|
|
70
|
+
const widths = headers.map((header, i) => {
|
|
71
|
+
const columnValues = [header, ...rows.map((row) => row[i] || '')];
|
|
72
|
+
return Math.max(...columnValues.map((val) => val.length));
|
|
73
|
+
});
|
|
74
|
+
// Format row function
|
|
75
|
+
const formatRow = (cells, _isHeader = false) => {
|
|
76
|
+
const formattedCells = cells.map((cell, i) => {
|
|
77
|
+
const width = widths[i] || 0;
|
|
78
|
+
const alignment = align[i] || 'left';
|
|
79
|
+
let formatted = cell;
|
|
80
|
+
if (alignment === 'center') {
|
|
81
|
+
const totalPad = width - cell.length;
|
|
82
|
+
const leftPad = Math.floor(totalPad / 2);
|
|
83
|
+
const rightPad = totalPad - leftPad;
|
|
84
|
+
formatted = ' '.repeat(leftPad) + cell + ' '.repeat(rightPad);
|
|
85
|
+
}
|
|
86
|
+
else if (alignment === 'right') {
|
|
87
|
+
formatted = cell.padStart(width);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
formatted = cell.padEnd(width);
|
|
91
|
+
}
|
|
92
|
+
return ' '.repeat(padding) + formatted + ' '.repeat(padding);
|
|
93
|
+
});
|
|
94
|
+
return borders ? `|${formattedCells.join('|')}|` : formattedCells.join(' ');
|
|
95
|
+
};
|
|
96
|
+
// Build table
|
|
97
|
+
const lines = [];
|
|
98
|
+
if (borders) {
|
|
99
|
+
// Top border
|
|
100
|
+
const topBorder = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
|
|
101
|
+
lines.push(`+${topBorder}+`);
|
|
102
|
+
}
|
|
103
|
+
// Header
|
|
104
|
+
lines.push(formatRow(headers, true));
|
|
105
|
+
if (borders) {
|
|
106
|
+
// Header separator
|
|
107
|
+
const headerSep = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
|
|
108
|
+
lines.push(`+${headerSep}+`);
|
|
109
|
+
}
|
|
110
|
+
// Rows
|
|
111
|
+
rows.forEach((row) => {
|
|
112
|
+
lines.push(formatRow(row));
|
|
113
|
+
});
|
|
114
|
+
if (borders) {
|
|
115
|
+
// Bottom border
|
|
116
|
+
const bottomBorder = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
|
|
117
|
+
lines.push(`+${bottomBorder}+`);
|
|
118
|
+
}
|
|
119
|
+
return lines.join('\n');
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if directory is a git repository
|
|
6
|
+
*/
|
|
7
|
+
export declare function isGitRepository(path?: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Get current git branch
|
|
10
|
+
*/
|
|
11
|
+
export declare function getCurrentBranch(cwd?: string): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Check if working directory is clean
|
|
14
|
+
*/
|
|
15
|
+
export declare function isWorkingDirectoryClean(cwd?: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Get last commit hash
|
|
18
|
+
*/
|
|
19
|
+
export declare function getLastCommitHash(cwd?: string): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Get git repository URL
|
|
22
|
+
*/
|
|
23
|
+
export declare function getRepositoryUrl(cwd?: string): string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Create git tag
|
|
26
|
+
*/
|
|
27
|
+
export declare function createTag(tag: string, message?: string, cwd?: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check if there are uncommitted changes
|
|
30
|
+
*/
|
|
31
|
+
export declare function hasUncommittedChanges(cwd?: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Get list of modified files
|
|
34
|
+
*/
|
|
35
|
+
export declare function getModifiedFiles(cwd?: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Stage files for commit
|
|
38
|
+
*/
|
|
39
|
+
export declare function stageFiles(files: string[], cwd?: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Commit changes
|
|
42
|
+
*/
|
|
43
|
+
export declare function commit(message: string, cwd?: string): boolean;
|
|
44
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/common/utils/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAsB,GAAG,OAAO,CAMrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAW3E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAW5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAW5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAW3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAS7F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CAiBtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAQhF;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAO5E"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Utilities
|
|
3
|
+
*/
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
/**
|
|
8
|
+
* Check if directory is a git repository
|
|
9
|
+
*/
|
|
10
|
+
export function isGitRepository(path = process.cwd()) {
|
|
11
|
+
try {
|
|
12
|
+
return existsSync(join(path, '.git'));
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get current git branch
|
|
20
|
+
*/
|
|
21
|
+
export function getCurrentBranch(cwd = process.cwd()) {
|
|
22
|
+
try {
|
|
23
|
+
const branch = execSync('git branch --show-current', {
|
|
24
|
+
cwd,
|
|
25
|
+
encoding: 'utf8',
|
|
26
|
+
stdio: 'pipe',
|
|
27
|
+
}).trim();
|
|
28
|
+
return branch || null;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if working directory is clean
|
|
36
|
+
*/
|
|
37
|
+
export function isWorkingDirectoryClean(cwd = process.cwd()) {
|
|
38
|
+
try {
|
|
39
|
+
const status = execSync('git status --porcelain', {
|
|
40
|
+
cwd,
|
|
41
|
+
encoding: 'utf8',
|
|
42
|
+
stdio: 'pipe',
|
|
43
|
+
}).trim();
|
|
44
|
+
return status === '';
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get last commit hash
|
|
52
|
+
*/
|
|
53
|
+
export function getLastCommitHash(cwd = process.cwd()) {
|
|
54
|
+
try {
|
|
55
|
+
const hash = execSync('git rev-parse HEAD', {
|
|
56
|
+
cwd,
|
|
57
|
+
encoding: 'utf8',
|
|
58
|
+
stdio: 'pipe',
|
|
59
|
+
}).trim();
|
|
60
|
+
return hash || null;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get git repository URL
|
|
68
|
+
*/
|
|
69
|
+
export function getRepositoryUrl(cwd = process.cwd()) {
|
|
70
|
+
try {
|
|
71
|
+
const url = execSync('git config --get remote.origin.url', {
|
|
72
|
+
cwd,
|
|
73
|
+
encoding: 'utf8',
|
|
74
|
+
stdio: 'pipe',
|
|
75
|
+
}).trim();
|
|
76
|
+
return url || null;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create git tag
|
|
84
|
+
*/
|
|
85
|
+
export function createTag(tag, message, cwd = process.cwd()) {
|
|
86
|
+
try {
|
|
87
|
+
const cmd = message ? `git tag -a "${tag}" -m "${message}"` : `git tag "${tag}"`;
|
|
88
|
+
execSync(cmd, { cwd, stdio: 'pipe' });
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if there are uncommitted changes
|
|
97
|
+
*/
|
|
98
|
+
export function hasUncommittedChanges(cwd = process.cwd()) {
|
|
99
|
+
return !isWorkingDirectoryClean(cwd);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get list of modified files
|
|
103
|
+
*/
|
|
104
|
+
export function getModifiedFiles(cwd = process.cwd()) {
|
|
105
|
+
try {
|
|
106
|
+
const output = execSync('git status --porcelain', {
|
|
107
|
+
cwd,
|
|
108
|
+
encoding: 'utf8',
|
|
109
|
+
stdio: 'pipe',
|
|
110
|
+
}).trim();
|
|
111
|
+
if (!output)
|
|
112
|
+
return [];
|
|
113
|
+
return output
|
|
114
|
+
.split('\n')
|
|
115
|
+
.map((line) => line.substring(3)) // Remove status indicators
|
|
116
|
+
.filter(Boolean);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Stage files for commit
|
|
124
|
+
*/
|
|
125
|
+
export function stageFiles(files, cwd = process.cwd()) {
|
|
126
|
+
try {
|
|
127
|
+
const fileList = files.map((f) => `"${f}"`).join(' ');
|
|
128
|
+
execSync(`git add ${fileList}`, { cwd, stdio: 'pipe' });
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Commit changes
|
|
137
|
+
*/
|
|
138
|
+
export function commit(message, cwd = process.cwd()) {
|
|
139
|
+
try {
|
|
140
|
+
execSync(`git commit -m "${message}"`, { cwd, stdio: 'pipe' });
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/common/utils/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common Utilities
|
|
3
|
+
*
|
|
4
|
+
* Collection of utility functions used throughout the application.
|
|
5
|
+
*/
|
|
6
|
+
export * from './string.js';
|
|
7
|
+
export * from './async.js';
|
|
8
|
+
export * from './validation.js';
|
|
9
|
+
export * from './format.js';
|
|
10
|
+
export * from './git.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common Utilities
|
|
3
|
+
*
|
|
4
|
+
* Collection of utility functions used throughout the application.
|
|
5
|
+
*/
|
|
6
|
+
export * from './string.js';
|
|
7
|
+
export * from './async.js';
|
|
8
|
+
export * from './validation.js';
|
|
9
|
+
export * from './format.js';
|
|
10
|
+
export * from './git.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert camelCase to kebab-case
|
|
6
|
+
*/
|
|
7
|
+
export declare function camelToKebab(str: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Convert kebab-case to camelCase
|
|
10
|
+
*/
|
|
11
|
+
export declare function kebabToCamel(str: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Capitalize first letter
|
|
14
|
+
*/
|
|
15
|
+
export declare function capitalize(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Truncate string with ellipsis
|
|
18
|
+
*/
|
|
19
|
+
export declare function truncate(str: string, maxLength: number, ellipsis?: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Pad string to specified length
|
|
22
|
+
*/
|
|
23
|
+
export declare function pad(str: string, length: number, char?: string, direction?: 'left' | 'right' | 'both'): string;
|
|
24
|
+
/**
|
|
25
|
+
* Remove ANSI color codes from string
|
|
26
|
+
*/
|
|
27
|
+
export declare function stripAnsi(str: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Pluralize word based on count
|
|
30
|
+
*/
|
|
31
|
+
export declare function pluralize(word: string, count: number, suffix?: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generate random string
|
|
34
|
+
*/
|
|
35
|
+
export declare function randomString(length: number, chars?: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Escape string for use in regex
|
|
38
|
+
*/
|
|
39
|
+
export declare function escapeRegex(str: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Convert string to slug (URL-friendly)
|
|
42
|
+
*/
|
|
43
|
+
export declare function slugify(str: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Parse boolean from string (handles various formats)
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseBoolean(value: string | boolean): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Format template string with variables
|
|
50
|
+
*/
|
|
51
|
+
export declare function template(str: string, variables: Record<string, any>): string;
|
|
52
|
+
/**
|
|
53
|
+
* Calculate string similarity (Levenshtein distance)
|
|
54
|
+
*/
|
|
55
|
+
export declare function similarity(a: string, b: string): number;
|
|
56
|
+
//# sourceMappingURL=string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/common/utils/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAc,GAAG,MAAM,CAKzF;AAED;;GAEG;AACH,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAY,EAClB,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,MAAgB,GAC7C,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,MAAM,CAEnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAyE,GAC/E,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAO7D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BvD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert camelCase to kebab-case
|
|
6
|
+
*/
|
|
7
|
+
export function camelToKebab(str) {
|
|
8
|
+
return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Convert kebab-case to camelCase
|
|
12
|
+
*/
|
|
13
|
+
export function kebabToCamel(str) {
|
|
14
|
+
return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Capitalize first letter
|
|
18
|
+
*/
|
|
19
|
+
export function capitalize(str) {
|
|
20
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Truncate string with ellipsis
|
|
24
|
+
*/
|
|
25
|
+
export function truncate(str, maxLength, ellipsis = '...') {
|
|
26
|
+
if (str.length <= maxLength) {
|
|
27
|
+
return str;
|
|
28
|
+
}
|
|
29
|
+
return str.slice(0, maxLength - ellipsis.length) + ellipsis;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Pad string to specified length
|
|
33
|
+
*/
|
|
34
|
+
export function pad(str, length, char = ' ', direction = 'right') {
|
|
35
|
+
const padding = Math.max(0, length - str.length);
|
|
36
|
+
switch (direction) {
|
|
37
|
+
case 'left':
|
|
38
|
+
return char.repeat(padding) + str;
|
|
39
|
+
case 'both':
|
|
40
|
+
const leftPad = Math.floor(padding / 2);
|
|
41
|
+
const rightPad = padding - leftPad;
|
|
42
|
+
return char.repeat(leftPad) + str + char.repeat(rightPad);
|
|
43
|
+
case 'right':
|
|
44
|
+
default:
|
|
45
|
+
return str + char.repeat(padding);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Remove ANSI color codes from string
|
|
50
|
+
*/
|
|
51
|
+
export function stripAnsi(str) {
|
|
52
|
+
const escapeChar = String.fromCharCode(27);
|
|
53
|
+
const ansiPattern = new RegExp(`${escapeChar}\\[[0-9;]*m`, 'g');
|
|
54
|
+
return str.replace(ansiPattern, '');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Pluralize word based on count
|
|
58
|
+
*/
|
|
59
|
+
export function pluralize(word, count, suffix = 's') {
|
|
60
|
+
return count === 1 ? word : word + suffix;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Generate random string
|
|
64
|
+
*/
|
|
65
|
+
export function randomString(length, chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') {
|
|
66
|
+
let result = '';
|
|
67
|
+
for (let i = 0; i < length; i++) {
|
|
68
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Escape string for use in regex
|
|
74
|
+
*/
|
|
75
|
+
export function escapeRegex(str) {
|
|
76
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Convert string to slug (URL-friendly)
|
|
80
|
+
*/
|
|
81
|
+
export function slugify(str) {
|
|
82
|
+
return str
|
|
83
|
+
.toLowerCase()
|
|
84
|
+
.trim()
|
|
85
|
+
.replace(/[^\w\s-]/g, '') // Remove non-word chars
|
|
86
|
+
.replace(/[\s_-]+/g, '-') // Replace spaces and underscores with hyphens
|
|
87
|
+
.replace(/^-+|-+$/g, ''); // Remove leading/trailing hyphens
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Parse boolean from string (handles various formats)
|
|
91
|
+
*/
|
|
92
|
+
export function parseBoolean(value) {
|
|
93
|
+
if (typeof value === 'boolean') {
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
const normalized = value.toLowerCase().trim();
|
|
97
|
+
return normalized === 'true' || normalized === '1' || normalized === 'yes' || normalized === 'on';
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Format template string with variables
|
|
101
|
+
*/
|
|
102
|
+
export function template(str, variables) {
|
|
103
|
+
return str.replace(/\{\{(\w+)\}\}/g, (match, key) => {
|
|
104
|
+
return variables[key] !== undefined ? String(variables[key]) : match;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Calculate string similarity (Levenshtein distance)
|
|
109
|
+
*/
|
|
110
|
+
export function similarity(a, b) {
|
|
111
|
+
const matrix = [];
|
|
112
|
+
for (let i = 0; i <= b.length; i++) {
|
|
113
|
+
matrix[i] = [i];
|
|
114
|
+
}
|
|
115
|
+
for (let j = 0; j <= a.length; j++) {
|
|
116
|
+
matrix[0][j] = j;
|
|
117
|
+
}
|
|
118
|
+
for (let i = 1; i <= b.length; i++) {
|
|
119
|
+
for (let j = 1; j <= a.length; j++) {
|
|
120
|
+
if (b.charAt(i - 1) === a.charAt(j - 1)) {
|
|
121
|
+
matrix[i][j] = matrix[i - 1][j - 1];
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
|
|
125
|
+
matrix[i][j - 1] + 1, // insertion
|
|
126
|
+
matrix[i - 1][j] + 1 // deletion
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const maxLength = Math.max(a.length, b.length);
|
|
132
|
+
return maxLength === 0 ? 1 : (maxLength - matrix[b.length][a.length]) / maxLength;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/common/utils/string.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validation result interface
|
|
6
|
+
*/
|
|
7
|
+
export interface ValidationResult {
|
|
8
|
+
isValid: boolean;
|
|
9
|
+
errors: string[];
|
|
10
|
+
warnings: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create validation result
|
|
14
|
+
*/
|
|
15
|
+
export declare function createValidationResult(isValid?: boolean, errors?: string[], warnings?: string[]): ValidationResult;
|
|
16
|
+
/**
|
|
17
|
+
* Validate email address
|
|
18
|
+
*/
|
|
19
|
+
export declare function isValidEmail(email: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Validate URL
|
|
22
|
+
*/
|
|
23
|
+
export declare function isValidUrl(url: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Validate semver version
|
|
26
|
+
*/
|
|
27
|
+
export declare function isValidSemver(version: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Validate package name
|
|
30
|
+
*/
|
|
31
|
+
export declare function isValidPackageName(name: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Validate file path
|
|
34
|
+
*/
|
|
35
|
+
export declare function isValidPath(path: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Validate JSON string
|
|
38
|
+
*/
|
|
39
|
+
export declare function isValidJson(jsonString: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Validate YAML string
|
|
42
|
+
*/
|
|
43
|
+
export declare function isValidYaml(yamlString: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Validate glob pattern
|
|
46
|
+
*/
|
|
47
|
+
export declare function isValidGlob(pattern: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Validate port number
|
|
50
|
+
*/
|
|
51
|
+
export declare function isValidPort(port: number | string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Validate timeout value
|
|
54
|
+
*/
|
|
55
|
+
export declare function isValidTimeout(timeout: number): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Validate log level
|
|
58
|
+
*/
|
|
59
|
+
export declare function isValidLogLevel(level: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Validate update target
|
|
62
|
+
*/
|
|
63
|
+
export declare function isValidUpdateTarget(target: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Validate output format
|
|
66
|
+
*/
|
|
67
|
+
export declare function isValidOutputFormat(format: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Validate CLI command options
|
|
70
|
+
*/
|
|
71
|
+
export declare function validateCliOptions(options: Record<string, any>): ValidationResult;
|
|
72
|
+
/**
|
|
73
|
+
* Validate configuration object
|
|
74
|
+
*/
|
|
75
|
+
export declare function validateConfig(config: Record<string, any>): ValidationResult;
|
|
76
|
+
/**
|
|
77
|
+
* Sanitize string input
|
|
78
|
+
*/
|
|
79
|
+
export declare function sanitizeString(input: string, options?: {
|
|
80
|
+
maxLength?: number;
|
|
81
|
+
allowedChars?: RegExp;
|
|
82
|
+
stripHtml?: boolean;
|
|
83
|
+
}): string;
|
|
84
|
+
/**
|
|
85
|
+
* Validate and sanitize package name
|
|
86
|
+
*/
|
|
87
|
+
export declare function sanitizePackageName(name: string): string;
|
|
88
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/common/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,OAAc,EACvB,MAAM,GAAE,MAAM,EAAO,EACrB,QAAQ,GAAE,MAAM,EAAO,GACtB,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAItD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA8BvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8BpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA0DjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA6C5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxD"}
|