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.
Files changed (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +478 -0
  3. package/bin/pcu.js +15 -0
  4. package/dist/application/services/CatalogUpdateService.d.ts +190 -0
  5. package/dist/application/services/CatalogUpdateService.d.ts.map +1 -0
  6. package/dist/application/services/CatalogUpdateService.js +521 -0
  7. package/dist/application/services/CatalogUpdateService.js.map +1 -0
  8. package/dist/application/services/WorkspaceService.d.ts +139 -0
  9. package/dist/application/services/WorkspaceService.d.ts.map +1 -0
  10. package/dist/application/services/WorkspaceService.js +340 -0
  11. package/dist/application/services/WorkspaceService.js.map +1 -0
  12. package/dist/cli/commands/CheckCommand.d.ts +41 -0
  13. package/dist/cli/commands/CheckCommand.d.ts.map +1 -0
  14. package/dist/cli/commands/CheckCommand.js +168 -0
  15. package/dist/cli/commands/CheckCommand.js.map +1 -0
  16. package/dist/cli/commands/UpdateCommand.d.ts +69 -0
  17. package/dist/cli/commands/UpdateCommand.d.ts.map +1 -0
  18. package/dist/cli/commands/UpdateCommand.js +361 -0
  19. package/dist/cli/commands/UpdateCommand.js.map +1 -0
  20. package/dist/cli/formatters/OutputFormatter.d.ts +99 -0
  21. package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -0
  22. package/dist/cli/formatters/OutputFormatter.js +551 -0
  23. package/dist/cli/formatters/OutputFormatter.js.map +1 -0
  24. package/dist/cli/index.d.ts +12 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/cli/index.js +271 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/cli/options/GlobalOptions.d.ts +117 -0
  29. package/dist/cli/options/GlobalOptions.d.ts.map +1 -0
  30. package/dist/cli/options/GlobalOptions.js +278 -0
  31. package/dist/cli/options/GlobalOptions.js.map +1 -0
  32. package/dist/cli/options/index.d.ts +5 -0
  33. package/dist/cli/options/index.d.ts.map +1 -0
  34. package/dist/cli/options/index.js +5 -0
  35. package/dist/cli/options/index.js.map +1 -0
  36. package/dist/cli/validators/CommandValidator.d.ts +60 -0
  37. package/dist/cli/validators/CommandValidator.d.ts.map +1 -0
  38. package/dist/cli/validators/CommandValidator.js +319 -0
  39. package/dist/cli/validators/CommandValidator.js.map +1 -0
  40. package/dist/cli/validators/index.d.ts +5 -0
  41. package/dist/cli/validators/index.d.ts.map +1 -0
  42. package/dist/cli/validators/index.js +5 -0
  43. package/dist/cli/validators/index.js.map +1 -0
  44. package/dist/common/config/Config.d.ts +142 -0
  45. package/dist/common/config/Config.d.ts.map +1 -0
  46. package/dist/common/config/Config.js +355 -0
  47. package/dist/common/config/Config.js.map +1 -0
  48. package/dist/common/config/index.d.ts +6 -0
  49. package/dist/common/config/index.d.ts.map +1 -0
  50. package/dist/common/config/index.js +6 -0
  51. package/dist/common/config/index.js.map +1 -0
  52. package/dist/common/logger/Logger.d.ts +110 -0
  53. package/dist/common/logger/Logger.d.ts.map +1 -0
  54. package/dist/common/logger/Logger.js +289 -0
  55. package/dist/common/logger/Logger.js.map +1 -0
  56. package/dist/common/logger/index.d.ts +6 -0
  57. package/dist/common/logger/index.d.ts.map +1 -0
  58. package/dist/common/logger/index.js +6 -0
  59. package/dist/common/logger/index.js.map +1 -0
  60. package/dist/common/types/cli.d.ts +265 -0
  61. package/dist/common/types/cli.d.ts.map +1 -0
  62. package/dist/common/types/cli.js +5 -0
  63. package/dist/common/types/cli.js.map +1 -0
  64. package/dist/common/types/core.d.ts +270 -0
  65. package/dist/common/types/core.d.ts.map +1 -0
  66. package/dist/common/types/core.js +32 -0
  67. package/dist/common/types/core.js.map +1 -0
  68. package/dist/common/types/index.d.ts +8 -0
  69. package/dist/common/types/index.d.ts.map +1 -0
  70. package/dist/common/types/index.js +8 -0
  71. package/dist/common/types/index.js.map +1 -0
  72. package/dist/common/utils/async.d.ts +74 -0
  73. package/dist/common/utils/async.d.ts.map +1 -0
  74. package/dist/common/utils/async.js +228 -0
  75. package/dist/common/utils/async.js.map +1 -0
  76. package/dist/common/utils/format.d.ts +32 -0
  77. package/dist/common/utils/format.d.ts.map +1 -0
  78. package/dist/common/utils/format.js +121 -0
  79. package/dist/common/utils/format.js.map +1 -0
  80. package/dist/common/utils/git.d.ts +44 -0
  81. package/dist/common/utils/git.d.ts.map +1 -0
  82. package/dist/common/utils/git.js +147 -0
  83. package/dist/common/utils/git.js.map +1 -0
  84. package/dist/common/utils/index.d.ts +11 -0
  85. package/dist/common/utils/index.d.ts.map +1 -0
  86. package/dist/common/utils/index.js +11 -0
  87. package/dist/common/utils/index.js.map +1 -0
  88. package/dist/common/utils/string.d.ts +56 -0
  89. package/dist/common/utils/string.d.ts.map +1 -0
  90. package/dist/common/utils/string.js +134 -0
  91. package/dist/common/utils/string.js.map +1 -0
  92. package/dist/common/utils/validation.d.ts +88 -0
  93. package/dist/common/utils/validation.d.ts.map +1 -0
  94. package/dist/common/utils/validation.js +281 -0
  95. package/dist/common/utils/validation.js.map +1 -0
  96. package/dist/domain/entities/Catalog.d.ts +117 -0
  97. package/dist/domain/entities/Catalog.d.ts.map +1 -0
  98. package/dist/domain/entities/Catalog.js +240 -0
  99. package/dist/domain/entities/Catalog.js.map +1 -0
  100. package/dist/domain/entities/Package.d.ts +143 -0
  101. package/dist/domain/entities/Package.d.ts.map +1 -0
  102. package/dist/domain/entities/Package.js +272 -0
  103. package/dist/domain/entities/Package.js.map +1 -0
  104. package/dist/domain/entities/Workspace.d.ts +95 -0
  105. package/dist/domain/entities/Workspace.d.ts.map +1 -0
  106. package/dist/domain/entities/Workspace.js +173 -0
  107. package/dist/domain/entities/Workspace.js.map +1 -0
  108. package/dist/domain/repositories/WorkspaceRepository.d.ts +41 -0
  109. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +1 -0
  110. package/dist/domain/repositories/WorkspaceRepository.js +8 -0
  111. package/dist/domain/repositories/WorkspaceRepository.js.map +1 -0
  112. package/dist/domain/value-objects/CatalogCollection.d.ts +106 -0
  113. package/dist/domain/value-objects/CatalogCollection.d.ts.map +1 -0
  114. package/dist/domain/value-objects/CatalogCollection.js +230 -0
  115. package/dist/domain/value-objects/CatalogCollection.js.map +1 -0
  116. package/dist/domain/value-objects/PackageCollection.d.ts +122 -0
  117. package/dist/domain/value-objects/PackageCollection.d.ts.map +1 -0
  118. package/dist/domain/value-objects/PackageCollection.js +263 -0
  119. package/dist/domain/value-objects/PackageCollection.js.map +1 -0
  120. package/dist/domain/value-objects/Version.d.ts +141 -0
  121. package/dist/domain/value-objects/Version.d.ts.map +1 -0
  122. package/dist/domain/value-objects/Version.js +268 -0
  123. package/dist/domain/value-objects/Version.js.map +1 -0
  124. package/dist/domain/value-objects/WorkspaceConfig.d.ts +144 -0
  125. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +1 -0
  126. package/dist/domain/value-objects/WorkspaceConfig.js +357 -0
  127. package/dist/domain/value-objects/WorkspaceConfig.js.map +1 -0
  128. package/dist/domain/value-objects/WorkspaceId.d.ts +51 -0
  129. package/dist/domain/value-objects/WorkspaceId.d.ts.map +1 -0
  130. package/dist/domain/value-objects/WorkspaceId.js +104 -0
  131. package/dist/domain/value-objects/WorkspaceId.js.map +1 -0
  132. package/dist/domain/value-objects/WorkspacePath.d.ts +75 -0
  133. package/dist/domain/value-objects/WorkspacePath.d.ts.map +1 -0
  134. package/dist/domain/value-objects/WorkspacePath.js +128 -0
  135. package/dist/domain/value-objects/WorkspacePath.js.map +1 -0
  136. package/dist/infrastructure/cache/Cache.d.ts +161 -0
  137. package/dist/infrastructure/cache/Cache.d.ts.map +1 -0
  138. package/dist/infrastructure/cache/Cache.js +398 -0
  139. package/dist/infrastructure/cache/Cache.js.map +1 -0
  140. package/dist/infrastructure/cache/index.d.ts +6 -0
  141. package/dist/infrastructure/cache/index.d.ts.map +1 -0
  142. package/dist/infrastructure/cache/index.js +6 -0
  143. package/dist/infrastructure/cache/index.js.map +1 -0
  144. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +106 -0
  145. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -0
  146. package/dist/infrastructure/external-services/NpmRegistryService.js +305 -0
  147. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -0
  148. package/dist/infrastructure/file-system/FileSystemService.d.ts +120 -0
  149. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +1 -0
  150. package/dist/infrastructure/file-system/FileSystemService.js +663 -0
  151. package/dist/infrastructure/file-system/FileSystemService.js.map +1 -0
  152. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +57 -0
  153. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +1 -0
  154. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +179 -0
  155. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +1 -0
  156. 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":"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"}
@@ -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"}