pnpm-catalog-updates 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +335 -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 +95 -0
  21. package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -0
  22. package/dist/cli/formatters/OutputFormatter.js +437 -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 +244 -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 +142 -0
  101. package/dist/domain/entities/Package.d.ts.map +1 -0
  102. package/dist/domain/entities/Package.js +275 -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 +170 -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 +135 -0
  125. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +1 -0
  126. package/dist/domain/value-objects/WorkspaceConfig.js +307 -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 +303 -0
  147. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -0
  148. package/dist/infrastructure/file-system/FileSystemService.d.ts +100 -0
  149. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +1 -0
  150. package/dist/infrastructure/file-system/FileSystemService.js +284 -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 +125 -0
@@ -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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Check Command
3
+ *
4
+ * CLI command to check for outdated catalog dependencies.
5
+ * Provides detailed information about available updates.
6
+ */
7
+ import chalk from 'chalk';
8
+ export class CheckCommand {
9
+ catalogUpdateService;
10
+ outputFormatter;
11
+ constructor(catalogUpdateService, outputFormatter) {
12
+ this.catalogUpdateService = catalogUpdateService;
13
+ this.outputFormatter = outputFormatter;
14
+ }
15
+ /**
16
+ * Execute the check command
17
+ */
18
+ async execute(options = {}) {
19
+ try {
20
+ // Show loading message
21
+ if (options.verbose) {
22
+ console.log(chalk.blue('🔍 Checking for outdated catalog dependencies...'));
23
+ console.log(chalk.gray(`Workspace: ${options.workspace || process.cwd()}`));
24
+ if (options.catalog) {
25
+ console.log(chalk.gray(`Catalog: ${options.catalog}`));
26
+ }
27
+ if (options.target && options.target !== 'latest') {
28
+ console.log(chalk.gray(`Target: ${options.target}`));
29
+ }
30
+ console.log('');
31
+ }
32
+ // Prepare check options
33
+ const checkOptions = {
34
+ workspacePath: options.workspace,
35
+ catalogName: options.catalog,
36
+ target: options.target || 'latest',
37
+ includePrerelease: options.prerelease || false,
38
+ include: options.include,
39
+ exclude: options.exclude,
40
+ };
41
+ // Execute check
42
+ const report = await this.catalogUpdateService.checkOutdatedDependencies(checkOptions);
43
+ // Format and display results
44
+ const formattedOutput = this.outputFormatter.formatOutdatedReport(report);
45
+ console.log(formattedOutput);
46
+ // Show summary
47
+ if (options.verbose || options.format === 'table') {
48
+ this.showSummary(report, options);
49
+ }
50
+ // Always exit with 0 since this is just a check command
51
+ // and finding updates is not an error condition
52
+ process.exit(0);
53
+ }
54
+ catch (error) {
55
+ console.error(chalk.red('❌ Error checking dependencies:'));
56
+ console.error(chalk.red(String(error)));
57
+ if (options.verbose && error instanceof Error) {
58
+ console.error(chalk.gray('Stack trace:'));
59
+ console.error(chalk.gray(error.stack || 'No stack trace available'));
60
+ }
61
+ process.exit(1);
62
+ }
63
+ }
64
+ /**
65
+ * Show command summary
66
+ */
67
+ showSummary(report, _options) {
68
+ const lines = [];
69
+ if (!report.hasUpdates) {
70
+ lines.push(chalk.green('🎉 All catalog dependencies are up to date!'));
71
+ }
72
+ else {
73
+ lines.push(chalk.yellow(`\n📋 Summary:`));
74
+ lines.push(` • ${report.totalOutdated} outdated dependencies found`);
75
+ lines.push(` • ${report.catalogs.length} catalogs checked`);
76
+ const totalPackages = report.catalogs.reduce((sum, cat) => sum + cat.totalPackages, 0);
77
+ lines.push(` • ${totalPackages} total catalog entries`);
78
+ // Show breakdown by update type
79
+ const updateTypes = { major: 0, minor: 0, patch: 0 };
80
+ for (const catalog of report.catalogs) {
81
+ for (const dep of catalog.outdatedDependencies) {
82
+ updateTypes[dep.updateType]++;
83
+ }
84
+ }
85
+ if (updateTypes.major > 0) {
86
+ lines.push(chalk.red(` • ${updateTypes.major} major updates`));
87
+ }
88
+ if (updateTypes.minor > 0) {
89
+ lines.push(chalk.yellow(` • ${updateTypes.minor} minor updates`));
90
+ }
91
+ if (updateTypes.patch > 0) {
92
+ lines.push(chalk.green(` • ${updateTypes.patch} patch updates`));
93
+ }
94
+ // Security updates
95
+ const securityUpdates = report.catalogs.reduce((sum, cat) => {
96
+ return sum + cat.outdatedDependencies.filter((dep) => dep.isSecurityUpdate).length;
97
+ }, 0);
98
+ if (securityUpdates > 0) {
99
+ lines.push(chalk.red(` • ${securityUpdates} security updates`));
100
+ }
101
+ lines.push('');
102
+ lines.push(chalk.blue('💡 Run with --update to apply updates'));
103
+ if (updateTypes.major > 0) {
104
+ lines.push(chalk.yellow('⚠️ Major updates may contain breaking changes'));
105
+ }
106
+ }
107
+ console.log(lines.join('\n'));
108
+ }
109
+ /**
110
+ * Validate command options
111
+ */
112
+ static validateOptions(options) {
113
+ const errors = [];
114
+ // Validate format
115
+ if (options.format && !['table', 'json', 'yaml', 'minimal'].includes(options.format)) {
116
+ errors.push('Invalid format. Must be one of: table, json, yaml, minimal');
117
+ }
118
+ // Validate target
119
+ if (options.target &&
120
+ !['latest', 'greatest', 'minor', 'patch', 'newest'].includes(options.target)) {
121
+ errors.push('Invalid target. Must be one of: latest, greatest, minor, patch, newest');
122
+ }
123
+ // Validate include/exclude patterns
124
+ if (options.include && options.include.some((pattern) => !pattern.trim())) {
125
+ errors.push('Include patterns cannot be empty');
126
+ }
127
+ if (options.exclude && options.exclude.some((pattern) => !pattern.trim())) {
128
+ errors.push('Exclude patterns cannot be empty');
129
+ }
130
+ return errors;
131
+ }
132
+ /**
133
+ * Get command help text
134
+ */
135
+ static getHelpText() {
136
+ return `
137
+ Check for outdated catalog dependencies
138
+
139
+ Usage:
140
+ pcu check [options]
141
+
142
+ Options:
143
+ --workspace <path> Workspace directory (default: current directory)
144
+ --catalog <name> Check specific catalog only
145
+ --format <type> Output format: table, json, yaml, minimal (default: table)
146
+ --target <type> Update target: latest, greatest, minor, patch, newest (default: latest)
147
+ --prerelease Include prerelease versions
148
+ --include <pattern> Include packages matching pattern (can be used multiple times)
149
+ --exclude <pattern> Exclude packages matching pattern (can be used multiple times)
150
+ --verbose Show detailed information
151
+ --no-color Disable colored output
152
+
153
+ Examples:
154
+ pcu check # Check all catalogs
155
+ pcu check --catalog react17 # Check specific catalog
156
+ pcu check --target minor # Check for minor updates only
157
+ pcu check --format json # Output as JSON
158
+ pcu check --include "react*" # Include only React packages
159
+ pcu check --exclude "@types/*" # Exclude TypeScript types
160
+
161
+ Exit Codes:
162
+ 0 All dependencies are up to date
163
+ 1 Updates are available
164
+ 2 Error occurred
165
+ `;
166
+ }
167
+ }
168
+ //# sourceMappingURL=CheckCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/CheckCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Update Command
3
+ *
4
+ * CLI command to update catalog dependencies.
5
+ * Supports interactive mode, dry-run, and various update strategies.
6
+ */
7
+ import { CatalogUpdateService } from '../../application/services/CatalogUpdateService.js';
8
+ import { OutputFormatter, OutputFormat } from '../formatters/OutputFormatter.js';
9
+ export interface UpdateCommandOptions {
10
+ workspace?: string;
11
+ catalog?: string;
12
+ format?: OutputFormat;
13
+ target?: 'latest' | 'greatest' | 'minor' | 'patch' | 'newest';
14
+ interactive?: boolean;
15
+ dryRun?: boolean;
16
+ force?: boolean;
17
+ prerelease?: boolean;
18
+ include?: string[];
19
+ exclude?: string[];
20
+ createBackup?: boolean;
21
+ verbose?: boolean;
22
+ color?: boolean;
23
+ }
24
+ export declare class UpdateCommand {
25
+ private readonly catalogUpdateService;
26
+ private readonly outputFormatter;
27
+ constructor(catalogUpdateService: CatalogUpdateService, outputFormatter: OutputFormatter);
28
+ /**
29
+ * Execute the update command
30
+ */
31
+ execute(options?: UpdateCommandOptions): Promise<void>;
32
+ /**
33
+ * Show the update plan
34
+ */
35
+ private showUpdatePlan;
36
+ /**
37
+ * Show version conflicts
38
+ */
39
+ private showConflicts;
40
+ /**
41
+ * Interactive update selection
42
+ */
43
+ private interactiveSelection;
44
+ /**
45
+ * Select individual updates
46
+ */
47
+ private selectIndividualUpdates;
48
+ /**
49
+ * Confirm updates before execution
50
+ */
51
+ private confirmUpdates;
52
+ /**
53
+ * Show update summary
54
+ */
55
+ private showUpdateSummary;
56
+ /**
57
+ * Get color for update type
58
+ */
59
+ private getUpdateTypeColor;
60
+ /**
61
+ * Validate command options
62
+ */
63
+ static validateOptions(options: UpdateCommandOptions): string[];
64
+ /**
65
+ * Get command help text
66
+ */
67
+ static getHelpText(): string;
68
+ }
69
+ //# sourceMappingURL=UpdateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/UpdateCommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,oBAAoB,EAGrB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,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,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IAEtB,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,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+GhE;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;YACW,oBAAoB;IAgFlC;;OAEG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,cAAc;IAuB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAwB/D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;CAqC7B"}