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,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Service
|
|
3
|
+
*
|
|
4
|
+
* Application service for workspace discovery, validation, and management.
|
|
5
|
+
* Provides high-level operations for working with pnpm workspaces.
|
|
6
|
+
*/
|
|
7
|
+
import { WorkspaceRepository } from '../../domain/repositories/WorkspaceRepository.js';
|
|
8
|
+
import { Workspace } from '../../domain/entities/Workspace.js';
|
|
9
|
+
export interface WorkspaceInfo {
|
|
10
|
+
path: string;
|
|
11
|
+
name: string;
|
|
12
|
+
isValid: boolean;
|
|
13
|
+
hasPackages: boolean;
|
|
14
|
+
hasCatalogs: boolean;
|
|
15
|
+
packageCount: number;
|
|
16
|
+
catalogCount: number;
|
|
17
|
+
catalogNames: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface WorkspaceValidationReport {
|
|
20
|
+
isValid: boolean;
|
|
21
|
+
workspace: WorkspaceInfo;
|
|
22
|
+
errors: string[];
|
|
23
|
+
warnings: string[];
|
|
24
|
+
recommendations: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface CatalogInfo {
|
|
27
|
+
name: string;
|
|
28
|
+
packageCount: number;
|
|
29
|
+
packages: string[];
|
|
30
|
+
mode: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PackageInfo {
|
|
33
|
+
name: string;
|
|
34
|
+
path: string;
|
|
35
|
+
hasPackageJson: boolean;
|
|
36
|
+
catalogReferences: CatalogReferenceInfo[];
|
|
37
|
+
dependencies: DependencyInfo[];
|
|
38
|
+
}
|
|
39
|
+
export interface CatalogReferenceInfo {
|
|
40
|
+
catalogName: string;
|
|
41
|
+
packageName: string;
|
|
42
|
+
dependencyType: string;
|
|
43
|
+
}
|
|
44
|
+
export interface DependencyInfo {
|
|
45
|
+
name: string;
|
|
46
|
+
version: string;
|
|
47
|
+
type: string;
|
|
48
|
+
isCatalogReference: boolean;
|
|
49
|
+
}
|
|
50
|
+
export declare class WorkspaceService {
|
|
51
|
+
private readonly workspaceRepository;
|
|
52
|
+
constructor(workspaceRepository: WorkspaceRepository);
|
|
53
|
+
/**
|
|
54
|
+
* Discover workspace from current directory or specified path
|
|
55
|
+
*/
|
|
56
|
+
discoverWorkspace(searchPath?: string): Promise<Workspace>;
|
|
57
|
+
/**
|
|
58
|
+
* Get workspace information
|
|
59
|
+
*/
|
|
60
|
+
getWorkspaceInfo(workspacePath?: string): Promise<WorkspaceInfo>;
|
|
61
|
+
/**
|
|
62
|
+
* Validate workspace integrity and configuration
|
|
63
|
+
*/
|
|
64
|
+
validateWorkspace(workspacePath?: string): Promise<WorkspaceValidationReport>;
|
|
65
|
+
/**
|
|
66
|
+
* Get detailed catalog information
|
|
67
|
+
*/
|
|
68
|
+
getCatalogs(workspacePath?: string): Promise<CatalogInfo[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Get detailed package information
|
|
71
|
+
*/
|
|
72
|
+
getPackages(workspacePath?: string): Promise<PackageInfo[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Check if workspace uses catalogs
|
|
75
|
+
*/
|
|
76
|
+
usesCatalogs(workspacePath?: string): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* Get packages that use a specific catalog
|
|
79
|
+
*/
|
|
80
|
+
getPackagesUsingCatalog(catalogName: string, workspacePath?: string): Promise<PackageInfo[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Get workspace statistics
|
|
83
|
+
*/
|
|
84
|
+
getWorkspaceStats(workspacePath?: string): Promise<WorkspaceStats>;
|
|
85
|
+
/**
|
|
86
|
+
* Find workspaces in a directory tree
|
|
87
|
+
*/
|
|
88
|
+
findWorkspaces(searchRoot: string): Promise<WorkspaceInfo[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Check workspace health
|
|
91
|
+
*/
|
|
92
|
+
checkHealth(workspacePath?: string): Promise<WorkspaceHealthReport>;
|
|
93
|
+
/**
|
|
94
|
+
* Calculate workspace health score (0-100)
|
|
95
|
+
*/
|
|
96
|
+
private calculateHealthScore;
|
|
97
|
+
/**
|
|
98
|
+
* Get health status from score
|
|
99
|
+
*/
|
|
100
|
+
private getHealthStatus;
|
|
101
|
+
}
|
|
102
|
+
export interface WorkspaceStats {
|
|
103
|
+
workspace: {
|
|
104
|
+
path: string;
|
|
105
|
+
name: string;
|
|
106
|
+
};
|
|
107
|
+
packages: {
|
|
108
|
+
total: number;
|
|
109
|
+
withCatalogReferences: number;
|
|
110
|
+
};
|
|
111
|
+
catalogs: {
|
|
112
|
+
total: number;
|
|
113
|
+
totalEntries: number;
|
|
114
|
+
};
|
|
115
|
+
dependencies: {
|
|
116
|
+
total: number;
|
|
117
|
+
catalogReferences: number;
|
|
118
|
+
byType: {
|
|
119
|
+
dependencies: number;
|
|
120
|
+
devDependencies: number;
|
|
121
|
+
peerDependencies: number;
|
|
122
|
+
optionalDependencies: number;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export interface HealthIssue {
|
|
127
|
+
type: 'error' | 'warning' | 'info';
|
|
128
|
+
message: string;
|
|
129
|
+
suggestion: string;
|
|
130
|
+
}
|
|
131
|
+
export interface WorkspaceHealthReport {
|
|
132
|
+
score: number;
|
|
133
|
+
status: 'excellent' | 'good' | 'fair' | 'poor';
|
|
134
|
+
validation: WorkspaceValidationReport;
|
|
135
|
+
stats: WorkspaceStats;
|
|
136
|
+
issues: HealthIssue[];
|
|
137
|
+
lastChecked: Date;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=WorkspaceService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceService.d.ts","sourceRoot":"","sources":["../../../src/application/services/WorkspaceService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAC1C,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAErE;;OAEG;IACG,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAgBhE;;OAEG;IACG,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkCtE;;OAEG;IACG,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA2DnF;;OAEG;IACG,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYjE;;OAEG;IACG,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA2CjE;;OAEG;IACG,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5D;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,EAAE,CAAC;IA4CzB;;OAEG;IACG,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuDxE;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOlE;;OAEG;IACG,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiBzE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4C5B;;OAEG;IACH,OAAO,CAAC,eAAe;CAMxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE;YACN,YAAY,EAAE,MAAM,CAAC;YACrB,eAAe,EAAE,MAAM,CAAC;YACxB,gBAAgB,EAAE,MAAM,CAAC;YACzB,oBAAoB,EAAE,MAAM,CAAC;SAC9B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/C,UAAU,EAAE,yBAAyB,CAAC;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,IAAI,CAAC;CACnB"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Service
|
|
3
|
+
*
|
|
4
|
+
* Application service for workspace discovery, validation, and management.
|
|
5
|
+
* Provides high-level operations for working with pnpm workspaces.
|
|
6
|
+
*/
|
|
7
|
+
import { WorkspacePath } from '../../domain/value-objects/WorkspacePath.js';
|
|
8
|
+
export class WorkspaceService {
|
|
9
|
+
workspaceRepository;
|
|
10
|
+
constructor(workspaceRepository) {
|
|
11
|
+
this.workspaceRepository = workspaceRepository;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Discover workspace from current directory or specified path
|
|
15
|
+
*/
|
|
16
|
+
async discoverWorkspace(searchPath) {
|
|
17
|
+
const path = searchPath ? WorkspacePath.fromString(searchPath) : undefined;
|
|
18
|
+
const workspace = await this.workspaceRepository.discoverWorkspace(path);
|
|
19
|
+
if (!workspace) {
|
|
20
|
+
throw new Error(searchPath
|
|
21
|
+
? `No pnpm workspace found at or above ${searchPath}`
|
|
22
|
+
: 'No pnpm workspace found in current directory or parent directories');
|
|
23
|
+
}
|
|
24
|
+
return workspace;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get workspace information
|
|
28
|
+
*/
|
|
29
|
+
async getWorkspaceInfo(workspacePath) {
|
|
30
|
+
const path = WorkspacePath.fromString(workspacePath || process.cwd());
|
|
31
|
+
// Try to load workspace
|
|
32
|
+
const workspace = await this.workspaceRepository.findByPath(path);
|
|
33
|
+
if (!workspace) {
|
|
34
|
+
return {
|
|
35
|
+
path: path.toString(),
|
|
36
|
+
name: path.getDirectoryName(),
|
|
37
|
+
isValid: false,
|
|
38
|
+
hasPackages: false,
|
|
39
|
+
hasCatalogs: false,
|
|
40
|
+
packageCount: 0,
|
|
41
|
+
catalogCount: 0,
|
|
42
|
+
catalogNames: [],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const packages = workspace.getPackages();
|
|
46
|
+
const catalogs = workspace.getCatalogs();
|
|
47
|
+
return {
|
|
48
|
+
path: path.toString(),
|
|
49
|
+
name: path.getDirectoryName(),
|
|
50
|
+
isValid: true,
|
|
51
|
+
hasPackages: !packages.isEmpty(),
|
|
52
|
+
hasCatalogs: !catalogs.isEmpty(),
|
|
53
|
+
packageCount: packages.size(),
|
|
54
|
+
catalogCount: catalogs.size(),
|
|
55
|
+
catalogNames: catalogs.getCatalogNames(),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Validate workspace integrity and configuration
|
|
60
|
+
*/
|
|
61
|
+
async validateWorkspace(workspacePath) {
|
|
62
|
+
const path = WorkspacePath.fromString(workspacePath || process.cwd());
|
|
63
|
+
const workspaceInfo = await this.getWorkspaceInfo(workspacePath);
|
|
64
|
+
if (!workspaceInfo.isValid) {
|
|
65
|
+
return {
|
|
66
|
+
isValid: false,
|
|
67
|
+
workspace: workspaceInfo,
|
|
68
|
+
errors: ['Not a valid pnpm workspace'],
|
|
69
|
+
warnings: [],
|
|
70
|
+
recommendations: [
|
|
71
|
+
'Initialize a pnpm workspace with: pnpm init',
|
|
72
|
+
'Create pnpm-workspace.yaml file',
|
|
73
|
+
'Define package patterns in pnpm-workspace.yaml',
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Load workspace for detailed validation
|
|
78
|
+
const workspace = await this.workspaceRepository.findByPath(path);
|
|
79
|
+
if (!workspace) {
|
|
80
|
+
throw new Error('Workspace validation failed - workspace not found');
|
|
81
|
+
}
|
|
82
|
+
// Validate workspace consistency
|
|
83
|
+
const validationResult = workspace.validateConsistency();
|
|
84
|
+
const recommendations = [];
|
|
85
|
+
// Generate recommendations based on workspace state
|
|
86
|
+
if (!workspaceInfo.hasCatalogs) {
|
|
87
|
+
recommendations.push('Consider using catalogs to centralize dependency management');
|
|
88
|
+
}
|
|
89
|
+
if (workspaceInfo.packageCount === 0) {
|
|
90
|
+
recommendations.push('No packages found - check your package patterns in pnpm-workspace.yaml');
|
|
91
|
+
}
|
|
92
|
+
if (workspaceInfo.packageCount > 20) {
|
|
93
|
+
recommendations.push('Large workspace detected - consider organizing packages into logical groups');
|
|
94
|
+
}
|
|
95
|
+
// Validate catalogs
|
|
96
|
+
const catalogValidation = workspace.getCatalogs().validate();
|
|
97
|
+
const allErrors = [...validationResult.getErrors(), ...catalogValidation.getErrors()];
|
|
98
|
+
const allWarnings = [...validationResult.getWarnings(), ...catalogValidation.getWarnings()];
|
|
99
|
+
return {
|
|
100
|
+
isValid: validationResult.getIsValid() && catalogValidation.getIsValid(),
|
|
101
|
+
workspace: workspaceInfo,
|
|
102
|
+
errors: allErrors,
|
|
103
|
+
warnings: allWarnings,
|
|
104
|
+
recommendations,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get detailed catalog information
|
|
109
|
+
*/
|
|
110
|
+
async getCatalogs(workspacePath) {
|
|
111
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
112
|
+
const catalogs = workspace.getCatalogs();
|
|
113
|
+
return catalogs.getAll().map((catalog) => ({
|
|
114
|
+
name: catalog.getName(),
|
|
115
|
+
packageCount: catalog.getPackageNames().length,
|
|
116
|
+
packages: catalog.getPackageNames(),
|
|
117
|
+
mode: catalog.getMode(),
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get detailed package information
|
|
122
|
+
*/
|
|
123
|
+
async getPackages(workspacePath) {
|
|
124
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
125
|
+
const packages = workspace.getPackages();
|
|
126
|
+
return packages.getAll().map((pkg) => {
|
|
127
|
+
const catalogReferences = pkg.getCatalogReferences();
|
|
128
|
+
const dependencies = pkg.getDependencies();
|
|
129
|
+
// Collect all dependencies from all types
|
|
130
|
+
const allDependencies = [];
|
|
131
|
+
const depTypes = [
|
|
132
|
+
'dependencies',
|
|
133
|
+
'devDependencies',
|
|
134
|
+
'peerDependencies',
|
|
135
|
+
'optionalDependencies',
|
|
136
|
+
];
|
|
137
|
+
for (const depType of depTypes) {
|
|
138
|
+
const deps = dependencies.getDependenciesByType(depType);
|
|
139
|
+
for (const [name, version] of deps) {
|
|
140
|
+
allDependencies.push({
|
|
141
|
+
name,
|
|
142
|
+
version,
|
|
143
|
+
type: depType,
|
|
144
|
+
isCatalogReference: version.startsWith('catalog:'),
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
name: pkg.getName(),
|
|
150
|
+
path: pkg.getPath().toString(),
|
|
151
|
+
hasPackageJson: true, // If package was loaded, it has package.json
|
|
152
|
+
catalogReferences: catalogReferences.map((ref) => ({
|
|
153
|
+
catalogName: ref.getCatalogName(),
|
|
154
|
+
packageName: ref.getPackageName(),
|
|
155
|
+
dependencyType: ref.getDependencyType(),
|
|
156
|
+
})),
|
|
157
|
+
dependencies: allDependencies,
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Check if workspace uses catalogs
|
|
163
|
+
*/
|
|
164
|
+
async usesCatalogs(workspacePath) {
|
|
165
|
+
try {
|
|
166
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
167
|
+
return !workspace.getCatalogs().isEmpty();
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get packages that use a specific catalog
|
|
175
|
+
*/
|
|
176
|
+
async getPackagesUsingCatalog(catalogName, workspacePath) {
|
|
177
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
178
|
+
const packagesUsingCatalog = workspace.getPackages().findPackagesUsingCatalog(catalogName);
|
|
179
|
+
return packagesUsingCatalog.map((pkg) => {
|
|
180
|
+
const catalogReferences = pkg
|
|
181
|
+
.getCatalogReferences()
|
|
182
|
+
.filter((ref) => ref.getCatalogName() === catalogName);
|
|
183
|
+
const dependencies = pkg.getDependencies();
|
|
184
|
+
const allDependencies = [];
|
|
185
|
+
const depTypes = [
|
|
186
|
+
'dependencies',
|
|
187
|
+
'devDependencies',
|
|
188
|
+
'peerDependencies',
|
|
189
|
+
'optionalDependencies',
|
|
190
|
+
];
|
|
191
|
+
for (const depType of depTypes) {
|
|
192
|
+
const deps = dependencies.getDependenciesByType(depType);
|
|
193
|
+
for (const [name, version] of deps) {
|
|
194
|
+
allDependencies.push({
|
|
195
|
+
name,
|
|
196
|
+
version,
|
|
197
|
+
type: depType,
|
|
198
|
+
isCatalogReference: version.startsWith('catalog:'),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
name: pkg.getName(),
|
|
204
|
+
path: pkg.getPath().toString(),
|
|
205
|
+
hasPackageJson: true,
|
|
206
|
+
catalogReferences: catalogReferences.map((ref) => ({
|
|
207
|
+
catalogName: ref.getCatalogName(),
|
|
208
|
+
packageName: ref.getPackageName(),
|
|
209
|
+
dependencyType: ref.getDependencyType(),
|
|
210
|
+
})),
|
|
211
|
+
dependencies: allDependencies,
|
|
212
|
+
};
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get workspace statistics
|
|
217
|
+
*/
|
|
218
|
+
async getWorkspaceStats(workspacePath) {
|
|
219
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
220
|
+
const packages = workspace.getPackages();
|
|
221
|
+
const catalogs = workspace.getCatalogs();
|
|
222
|
+
// Count dependencies
|
|
223
|
+
let totalDependencies = 0;
|
|
224
|
+
let catalogDependencies = 0;
|
|
225
|
+
const dependencyTypes = {
|
|
226
|
+
dependencies: 0,
|
|
227
|
+
devDependencies: 0,
|
|
228
|
+
peerDependencies: 0,
|
|
229
|
+
optionalDependencies: 0,
|
|
230
|
+
};
|
|
231
|
+
for (const pkg of packages.getAll()) {
|
|
232
|
+
const deps = pkg.getDependencies();
|
|
233
|
+
const catalogRefs = pkg.getCatalogReferences();
|
|
234
|
+
catalogDependencies += catalogRefs.length;
|
|
235
|
+
for (const depType of Object.keys(dependencyTypes)) {
|
|
236
|
+
const typeDeps = deps.getDependenciesByType(depType);
|
|
237
|
+
dependencyTypes[depType] += typeDeps.size;
|
|
238
|
+
totalDependencies += typeDeps.size;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Count catalog definitions
|
|
242
|
+
let totalCatalogEntries = 0;
|
|
243
|
+
for (const catalog of catalogs.getAll()) {
|
|
244
|
+
totalCatalogEntries += catalog.getPackageNames().length;
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
workspace: {
|
|
248
|
+
path: workspace.getPath().toString(),
|
|
249
|
+
name: workspace.getPath().getDirectoryName(),
|
|
250
|
+
},
|
|
251
|
+
packages: {
|
|
252
|
+
total: packages.size(),
|
|
253
|
+
withCatalogReferences: packages.findPackagesWithCatalogReferences().length,
|
|
254
|
+
},
|
|
255
|
+
catalogs: {
|
|
256
|
+
total: catalogs.size(),
|
|
257
|
+
totalEntries: totalCatalogEntries,
|
|
258
|
+
},
|
|
259
|
+
dependencies: {
|
|
260
|
+
total: totalDependencies,
|
|
261
|
+
catalogReferences: catalogDependencies,
|
|
262
|
+
byType: dependencyTypes,
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Find workspaces in a directory tree
|
|
268
|
+
*/
|
|
269
|
+
async findWorkspaces(searchRoot) {
|
|
270
|
+
// This would implement a recursive search for pnpm workspaces
|
|
271
|
+
// For now, we'll just check the provided directory
|
|
272
|
+
const workspaceInfo = await this.getWorkspaceInfo(searchRoot);
|
|
273
|
+
return workspaceInfo.isValid ? [workspaceInfo] : [];
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Check workspace health
|
|
277
|
+
*/
|
|
278
|
+
async checkHealth(workspacePath) {
|
|
279
|
+
const validation = await this.validateWorkspace(workspacePath);
|
|
280
|
+
const stats = await this.getWorkspaceStats(workspacePath);
|
|
281
|
+
const issues = [];
|
|
282
|
+
const score = this.calculateHealthScore(validation, stats, issues);
|
|
283
|
+
return {
|
|
284
|
+
score,
|
|
285
|
+
status: this.getHealthStatus(score),
|
|
286
|
+
validation,
|
|
287
|
+
stats,
|
|
288
|
+
issues,
|
|
289
|
+
lastChecked: new Date(),
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Calculate workspace health score (0-100)
|
|
294
|
+
*/
|
|
295
|
+
calculateHealthScore(validation, stats, issues) {
|
|
296
|
+
let score = 100;
|
|
297
|
+
// Deduct points for errors
|
|
298
|
+
score -= validation.errors.length * 20;
|
|
299
|
+
// Deduct points for warnings
|
|
300
|
+
score -= validation.warnings.length * 5;
|
|
301
|
+
// Deduct points for workspace issues
|
|
302
|
+
if (!stats.workspace) {
|
|
303
|
+
score -= 30;
|
|
304
|
+
}
|
|
305
|
+
if (stats.packages.total === 0) {
|
|
306
|
+
score -= 20;
|
|
307
|
+
issues.push({
|
|
308
|
+
type: 'warning',
|
|
309
|
+
message: 'No packages found in workspace',
|
|
310
|
+
suggestion: 'Check package patterns in pnpm-workspace.yaml',
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
if (stats.catalogs.total === 0) {
|
|
314
|
+
score -= 10;
|
|
315
|
+
issues.push({
|
|
316
|
+
type: 'info',
|
|
317
|
+
message: 'No catalogs defined',
|
|
318
|
+
suggestion: 'Consider using catalogs for better dependency management',
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
// Bonus for good practices
|
|
322
|
+
if (stats.dependencies.catalogReferences > 0) {
|
|
323
|
+
score += 5;
|
|
324
|
+
}
|
|
325
|
+
return Math.max(0, Math.min(100, score));
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get health status from score
|
|
329
|
+
*/
|
|
330
|
+
getHealthStatus(score) {
|
|
331
|
+
if (score >= 90)
|
|
332
|
+
return 'excellent';
|
|
333
|
+
if (score >= 70)
|
|
334
|
+
return 'good';
|
|
335
|
+
if (score >= 50)
|
|
336
|
+
return 'fair';
|
|
337
|
+
return 'poor';
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=WorkspaceService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceService.js","sourceRoot":"","sources":["../../../src/application/services/WorkspaceService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check Command
|
|
3
|
+
*
|
|
4
|
+
* CLI command to check for outdated catalog dependencies.
|
|
5
|
+
* Provides detailed information about available updates.
|
|
6
|
+
*/
|
|
7
|
+
import { CatalogUpdateService } from '../../application/services/CatalogUpdateService.js';
|
|
8
|
+
import { OutputFormatter, OutputFormat } from '../formatters/OutputFormatter.js';
|
|
9
|
+
export interface CheckCommandOptions {
|
|
10
|
+
workspace?: string;
|
|
11
|
+
catalog?: string;
|
|
12
|
+
format?: OutputFormat;
|
|
13
|
+
target?: 'latest' | 'greatest' | 'minor' | 'patch' | 'newest';
|
|
14
|
+
prerelease?: boolean;
|
|
15
|
+
include?: string[];
|
|
16
|
+
exclude?: string[];
|
|
17
|
+
verbose?: boolean;
|
|
18
|
+
color?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class CheckCommand {
|
|
21
|
+
private readonly catalogUpdateService;
|
|
22
|
+
private readonly outputFormatter;
|
|
23
|
+
constructor(catalogUpdateService: CatalogUpdateService, outputFormatter: OutputFormatter);
|
|
24
|
+
/**
|
|
25
|
+
* Execute the check command
|
|
26
|
+
*/
|
|
27
|
+
execute(options?: CheckCommandOptions): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Show command summary
|
|
30
|
+
*/
|
|
31
|
+
private showSummary;
|
|
32
|
+
/**
|
|
33
|
+
* Validate command options
|
|
34
|
+
*/
|
|
35
|
+
static validateOptions(options: CheckCommandOptions): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Get command help text
|
|
38
|
+
*/
|
|
39
|
+
static getHelpText(): string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=CheckCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/CheckCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,oBAAoB,EAErB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEjF,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,EAAE,eAAe;IAGnD;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwD/D;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE;IA4B9D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CAgC7B"}
|