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,142 @@
1
+ /**
2
+ * Package Entity
3
+ *
4
+ * Represents a package in a pnpm workspace that may reference catalog dependencies.
5
+ * Handles package.json structure and catalog dependency references.
6
+ */
7
+ import { WorkspacePath } from '../value-objects/WorkspacePath.js';
8
+ export type PackageId = string;
9
+ export type PackageName = string;
10
+ export type DependencyType = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';
11
+ export declare class Package {
12
+ private readonly id;
13
+ private readonly name;
14
+ private readonly path;
15
+ private readonly dependencies;
16
+ private readonly catalogReferences;
17
+ private constructor();
18
+ /**
19
+ * Create a new Package
20
+ */
21
+ static create(id: PackageId, name: PackageName, path: WorkspacePath, packageJsonData: PackageJsonData): Package;
22
+ /**
23
+ * Get package identifier
24
+ */
25
+ getId(): PackageId;
26
+ /**
27
+ * Get package name
28
+ */
29
+ getName(): PackageName;
30
+ /**
31
+ * Get package path
32
+ */
33
+ getPath(): WorkspacePath;
34
+ /**
35
+ * Get all dependencies
36
+ */
37
+ getDependencies(): DependencyCollection;
38
+ /**
39
+ * Get catalog references
40
+ */
41
+ getCatalogReferences(): CatalogReference[];
42
+ /**
43
+ * Get catalog dependencies only
44
+ */
45
+ getCatalogDependencies(): CatalogDependency[];
46
+ /**
47
+ * Check if package uses a specific catalog dependency
48
+ */
49
+ usesCatalogDependency(catalogName: string, packageName: string): boolean;
50
+ /**
51
+ * Update a dependency from catalog
52
+ */
53
+ updateDependencyFromCatalog(catalogName: string, packageName: string, _newVersion: string): void;
54
+ /**
55
+ * Get dependencies of a specific type
56
+ */
57
+ getDependenciesByType(type: DependencyType): Map<string, string>;
58
+ /**
59
+ * Get package.json data representation
60
+ */
61
+ toPackageJsonData(): PackageJsonData;
62
+ /**
63
+ * Extract catalog references from package.json data
64
+ */
65
+ private static extractCatalogReferences;
66
+ /**
67
+ * Validate package structure
68
+ */
69
+ validate(): PackageValidationResult;
70
+ /**
71
+ * Check if package name is valid
72
+ */
73
+ private isValidPackageName;
74
+ /**
75
+ * Check equality with another package
76
+ */
77
+ equals(other: Package): boolean;
78
+ }
79
+ /**
80
+ * Catalog Reference Value Object
81
+ */
82
+ export declare class CatalogReference {
83
+ private readonly catalogName;
84
+ private readonly packageName;
85
+ private readonly dependencyType;
86
+ constructor(catalogName: string, packageName: string, dependencyType: DependencyType);
87
+ getCatalogName(): string;
88
+ getPackageName(): string;
89
+ getDependencyType(): DependencyType;
90
+ equals(other: CatalogReference): boolean;
91
+ }
92
+ /**
93
+ * Catalog Dependency Value Object
94
+ */
95
+ export declare class CatalogDependency {
96
+ private readonly packageName;
97
+ private readonly catalogName;
98
+ private readonly dependencyType;
99
+ constructor(packageName: string, catalogName: string, dependencyType: DependencyType);
100
+ getPackageName(): string;
101
+ getCatalogName(): string;
102
+ getDependencyType(): DependencyType;
103
+ }
104
+ /**
105
+ * Dependency Collection Value Object
106
+ */
107
+ export declare class DependencyCollection {
108
+ private readonly dependencies;
109
+ private constructor();
110
+ static empty(): DependencyCollection;
111
+ static fromPackageJson(packageJsonData: PackageJsonData): DependencyCollection;
112
+ getDependenciesByType(type: DependencyType): Map<string, string>;
113
+ updateDependency(type: DependencyType, packageName: string, version: string): void;
114
+ filterByCatalogDependency(_catalogName: string, _packageName: string): DependencyCollection;
115
+ }
116
+ /**
117
+ * Package.json Data Interface
118
+ */
119
+ export interface PackageJsonData {
120
+ name: string;
121
+ version?: string;
122
+ dependencies?: Record<string, string>;
123
+ devDependencies?: Record<string, string>;
124
+ peerDependencies?: Record<string, string>;
125
+ optionalDependencies?: Record<string, string>;
126
+ [key: string]: any;
127
+ }
128
+ /**
129
+ * Package Validation Result
130
+ */
131
+ export declare class PackageValidationResult {
132
+ private readonly isValid;
133
+ private readonly errors;
134
+ private readonly warnings;
135
+ constructor(isValid: boolean, errors: string[], warnings: string[]);
136
+ getIsValid(): boolean;
137
+ getErrors(): string[];
138
+ getWarnings(): string[];
139
+ hasErrors(): boolean;
140
+ hasWarnings(): boolean;
141
+ }
142
+ //# sourceMappingURL=Package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Package.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,275 @@
1
+ /**
2
+ * Package Entity
3
+ *
4
+ * Represents a package in a pnpm workspace that may reference catalog dependencies.
5
+ * Handles package.json structure and catalog dependency references.
6
+ */
7
+ export class Package {
8
+ id;
9
+ name;
10
+ path;
11
+ dependencies;
12
+ catalogReferences;
13
+ constructor(id, name, path, dependencies, catalogReferences) {
14
+ this.id = id;
15
+ this.name = name;
16
+ this.path = path;
17
+ this.dependencies = dependencies;
18
+ this.catalogReferences = [...catalogReferences];
19
+ }
20
+ /**
21
+ * Create a new Package
22
+ */
23
+ static create(id, name, path, packageJsonData) {
24
+ const dependencies = DependencyCollection.fromPackageJson(packageJsonData);
25
+ const catalogReferences = Package.extractCatalogReferences(packageJsonData);
26
+ return new Package(id, name, path, dependencies, catalogReferences);
27
+ }
28
+ /**
29
+ * Get package identifier
30
+ */
31
+ getId() {
32
+ return this.id;
33
+ }
34
+ /**
35
+ * Get package name
36
+ */
37
+ getName() {
38
+ return this.name;
39
+ }
40
+ /**
41
+ * Get package path
42
+ */
43
+ getPath() {
44
+ return this.path;
45
+ }
46
+ /**
47
+ * Get all dependencies
48
+ */
49
+ getDependencies() {
50
+ return this.dependencies;
51
+ }
52
+ /**
53
+ * Get catalog references
54
+ */
55
+ getCatalogReferences() {
56
+ return [...this.catalogReferences];
57
+ }
58
+ /**
59
+ * Get catalog dependencies only
60
+ */
61
+ getCatalogDependencies() {
62
+ return this.catalogReferences.map((ref) => new CatalogDependency(ref.getPackageName(), ref.getCatalogName(), ref.getDependencyType()));
63
+ }
64
+ /**
65
+ * Check if package uses a specific catalog dependency
66
+ */
67
+ usesCatalogDependency(catalogName, packageName) {
68
+ return this.catalogReferences.some((ref) => ref.getCatalogName() === catalogName && ref.getPackageName() === packageName);
69
+ }
70
+ /**
71
+ * Update a dependency from catalog
72
+ */
73
+ updateDependencyFromCatalog(catalogName, packageName, _newVersion) {
74
+ const reference = this.catalogReferences.find((ref) => ref.getCatalogName() === catalogName && ref.getPackageName() === packageName);
75
+ if (!reference) {
76
+ throw new Error(`Package "${this.name}" does not reference "${packageName}" from catalog "${catalogName}"`);
77
+ }
78
+ // Update the dependency in the collection
79
+ this.dependencies.updateDependency(reference.getDependencyType(), packageName, `catalog:${catalogName === 'default' ? '' : catalogName}`);
80
+ }
81
+ /**
82
+ * Get dependencies of a specific type
83
+ */
84
+ getDependenciesByType(type) {
85
+ return this.dependencies.getDependenciesByType(type);
86
+ }
87
+ /**
88
+ * Get package.json data representation
89
+ */
90
+ toPackageJsonData() {
91
+ const data = {
92
+ name: this.name,
93
+ dependencies: {},
94
+ devDependencies: {},
95
+ peerDependencies: {},
96
+ optionalDependencies: {},
97
+ };
98
+ // Add dependencies from collection
99
+ data.dependencies = Object.fromEntries(this.dependencies.getDependenciesByType('dependencies'));
100
+ data.devDependencies = Object.fromEntries(this.dependencies.getDependenciesByType('devDependencies'));
101
+ data.peerDependencies = Object.fromEntries(this.dependencies.getDependenciesByType('peerDependencies'));
102
+ data.optionalDependencies = Object.fromEntries(this.dependencies.getDependenciesByType('optionalDependencies'));
103
+ return data;
104
+ }
105
+ /**
106
+ * Extract catalog references from package.json data
107
+ */
108
+ static extractCatalogReferences(packageJsonData) {
109
+ const references = [];
110
+ const dependencyTypes = [
111
+ 'dependencies',
112
+ 'devDependencies',
113
+ 'peerDependencies',
114
+ 'optionalDependencies',
115
+ ];
116
+ for (const depType of dependencyTypes) {
117
+ const deps = packageJsonData[depType] || {};
118
+ for (const [packageName, version] of Object.entries(deps)) {
119
+ if (typeof version === 'string' && version.startsWith('catalog:')) {
120
+ const catalogName = version === 'catalog:' ? 'default' : version.substring(8);
121
+ references.push(new CatalogReference(catalogName, packageName, depType));
122
+ }
123
+ }
124
+ }
125
+ return references;
126
+ }
127
+ /**
128
+ * Validate package structure
129
+ */
130
+ validate() {
131
+ const errors = [];
132
+ const warnings = [];
133
+ // Validate package name
134
+ if (!this.isValidPackageName(this.name)) {
135
+ errors.push(`Invalid package name: "${this.name}"`);
136
+ }
137
+ // Validate catalog references
138
+ for (const ref of this.catalogReferences) {
139
+ if (!this.isValidPackageName(ref.getPackageName())) {
140
+ errors.push(`Invalid dependency name in catalog reference: "${ref.getPackageName()}"`);
141
+ }
142
+ }
143
+ return new PackageValidationResult(errors.length === 0, errors, warnings);
144
+ }
145
+ /**
146
+ * Check if package name is valid
147
+ */
148
+ isValidPackageName(packageName) {
149
+ const validPackageNameRegex = /^(@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
150
+ return validPackageNameRegex.test(packageName);
151
+ }
152
+ /**
153
+ * Check equality with another package
154
+ */
155
+ equals(other) {
156
+ return this.id === other.id && this.name === other.name && this.path.equals(other.path);
157
+ }
158
+ }
159
+ /**
160
+ * Catalog Reference Value Object
161
+ */
162
+ export class CatalogReference {
163
+ catalogName;
164
+ packageName;
165
+ dependencyType;
166
+ constructor(catalogName, packageName, dependencyType) {
167
+ this.catalogName = catalogName;
168
+ this.packageName = packageName;
169
+ this.dependencyType = dependencyType;
170
+ }
171
+ getCatalogName() {
172
+ return this.catalogName;
173
+ }
174
+ getPackageName() {
175
+ return this.packageName;
176
+ }
177
+ getDependencyType() {
178
+ return this.dependencyType;
179
+ }
180
+ equals(other) {
181
+ return (this.catalogName === other.catalogName &&
182
+ this.packageName === other.packageName &&
183
+ this.dependencyType === other.dependencyType);
184
+ }
185
+ }
186
+ /**
187
+ * Catalog Dependency Value Object
188
+ */
189
+ export class CatalogDependency {
190
+ packageName;
191
+ catalogName;
192
+ dependencyType;
193
+ constructor(packageName, catalogName, dependencyType) {
194
+ this.packageName = packageName;
195
+ this.catalogName = catalogName;
196
+ this.dependencyType = dependencyType;
197
+ }
198
+ getPackageName() {
199
+ return this.packageName;
200
+ }
201
+ getCatalogName() {
202
+ return this.catalogName;
203
+ }
204
+ getDependencyType() {
205
+ return this.dependencyType;
206
+ }
207
+ }
208
+ /**
209
+ * Dependency Collection Value Object
210
+ */
211
+ export class DependencyCollection {
212
+ dependencies;
213
+ constructor(dependencies) {
214
+ this.dependencies = dependencies;
215
+ }
216
+ static empty() {
217
+ const deps = new Map();
218
+ deps.set('dependencies', new Map());
219
+ deps.set('devDependencies', new Map());
220
+ deps.set('peerDependencies', new Map());
221
+ deps.set('optionalDependencies', new Map());
222
+ return new DependencyCollection(deps);
223
+ }
224
+ static fromPackageJson(packageJsonData) {
225
+ const deps = new Map();
226
+ deps.set('dependencies', new Map(Object.entries(packageJsonData.dependencies || {})));
227
+ deps.set('devDependencies', new Map(Object.entries(packageJsonData.devDependencies || {})));
228
+ deps.set('peerDependencies', new Map(Object.entries(packageJsonData.peerDependencies || {})));
229
+ deps.set('optionalDependencies', new Map(Object.entries(packageJsonData.optionalDependencies || {})));
230
+ return new DependencyCollection(deps);
231
+ }
232
+ getDependenciesByType(type) {
233
+ return new Map(this.dependencies.get(type) || []);
234
+ }
235
+ updateDependency(type, packageName, version) {
236
+ const typeMap = this.dependencies.get(type);
237
+ if (typeMap) {
238
+ typeMap.set(packageName, version);
239
+ }
240
+ }
241
+ filterByCatalogDependency(_catalogName, _packageName) {
242
+ // This would filter dependencies that match catalog references
243
+ // Implementation would require catalog reference information
244
+ return this;
245
+ }
246
+ }
247
+ /**
248
+ * Package Validation Result
249
+ */
250
+ export class PackageValidationResult {
251
+ isValid;
252
+ errors;
253
+ warnings;
254
+ constructor(isValid, errors, warnings) {
255
+ this.isValid = isValid;
256
+ this.errors = errors;
257
+ this.warnings = warnings;
258
+ }
259
+ getIsValid() {
260
+ return this.isValid;
261
+ }
262
+ getErrors() {
263
+ return [...this.errors];
264
+ }
265
+ getWarnings() {
266
+ return [...this.warnings];
267
+ }
268
+ hasErrors() {
269
+ return this.errors.length > 0;
270
+ }
271
+ hasWarnings() {
272
+ return this.warnings.length > 0;
273
+ }
274
+ }
275
+ //# sourceMappingURL=Package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../src/domain/entities/Package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Workspace Entity
3
+ *
4
+ * Represents a pnpm workspace with catalog configuration.
5
+ * This is a core domain entity that encapsulates workspace business logic.
6
+ */
7
+ import { WorkspaceId } from '../value-objects/WorkspaceId.js';
8
+ import { WorkspacePath } from '../value-objects/WorkspacePath.js';
9
+ import { CatalogCollection } from '../value-objects/CatalogCollection.js';
10
+ import { PackageCollection } from '../value-objects/PackageCollection.js';
11
+ import { WorkspaceConfig } from '../value-objects/WorkspaceConfig.js';
12
+ export declare class Workspace {
13
+ private readonly id;
14
+ private readonly path;
15
+ private readonly config;
16
+ private readonly catalogs;
17
+ private readonly packages;
18
+ private constructor();
19
+ /**
20
+ * Create a new Workspace instance
21
+ */
22
+ static create(id: WorkspaceId, path: WorkspacePath, config: WorkspaceConfig, catalogs: CatalogCollection, packages: PackageCollection): Workspace;
23
+ /**
24
+ * Get workspace identifier
25
+ */
26
+ getId(): WorkspaceId;
27
+ /**
28
+ * Get workspace path
29
+ */
30
+ getPath(): WorkspacePath;
31
+ /**
32
+ * Get workspace configuration
33
+ */
34
+ getConfig(): WorkspaceConfig;
35
+ /**
36
+ * Get all catalogs in this workspace
37
+ */
38
+ getCatalogs(): CatalogCollection;
39
+ /**
40
+ * Get all packages in this workspace
41
+ */
42
+ getPackages(): PackageCollection;
43
+ /**
44
+ * Check if workspace has a specific catalog
45
+ */
46
+ hasCatalog(catalogName: string): boolean;
47
+ /**
48
+ * Get packages that use a specific catalog dependency
49
+ */
50
+ getPackagesUsingCatalogDependency(catalogName: string, packageName: string): PackageCollection;
51
+ /**
52
+ * Validate workspace consistency
53
+ * Ensures all catalog references in packages exist in catalogs
54
+ */
55
+ validateConsistency(): ValidationResult;
56
+ /**
57
+ * Get outdated catalog dependencies
58
+ */
59
+ getOutdatedCatalogDependencies(): Promise<OutdatedDependency[]>;
60
+ /**
61
+ * Update a catalog dependency version
62
+ */
63
+ updateCatalogDependency(catalogName: string, packageName: string, newVersion: string): void;
64
+ }
65
+ /**
66
+ * Validation result value object
67
+ */
68
+ export declare class ValidationResult {
69
+ private readonly isValid;
70
+ private readonly errors;
71
+ private readonly warnings;
72
+ constructor(isValid: boolean, errors: string[], warnings: string[]);
73
+ getIsValid(): boolean;
74
+ getErrors(): string[];
75
+ getWarnings(): string[];
76
+ hasErrors(): boolean;
77
+ hasWarnings(): boolean;
78
+ }
79
+ /**
80
+ * Outdated dependency value object
81
+ */
82
+ export declare class OutdatedDependency {
83
+ private readonly catalogName;
84
+ private readonly packageName;
85
+ private readonly currentVersion;
86
+ private readonly latestVersion;
87
+ private readonly updateType;
88
+ constructor(catalogName: string, packageName: string, currentVersion: string, latestVersion: string, updateType: 'major' | 'minor' | 'patch');
89
+ getCatalogName(): string;
90
+ getPackageName(): string;
91
+ getCurrentVersion(): string;
92
+ getLatestVersion(): string;
93
+ getUpdateType(): 'major' | 'minor' | 'patch';
94
+ }
95
+ //# sourceMappingURL=Workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Workspace.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO;IAQP;;OAEG;WACW,MAAM,CAClB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,GAC1B,SAAS;IAIZ;;OAEG;IACI,KAAK,IAAI,WAAW;IAI3B;;OAEG;IACI,OAAO,IAAI,aAAa;IAI/B;;OAEG;IACI,SAAS,IAAI,eAAe;IAInC;;OAEG;IACI,WAAW,IAAI,iBAAiB;IAIvC;;OAEG;IACI,WAAW,IAAI,iBAAiB;IAIvC;;OAEG;IACI,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACI,iCAAiC,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,iBAAiB;IAIpB;;;OAGG;IACI,mBAAmB,IAAI,gBAAgB;IA4B9C;;OAEG;IACU,8BAA8B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAM5E;;OAEG;IACI,uBAAuB,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,IAAI;CAQR;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAAE;IAG9B,UAAU,IAAI,OAAO;IAIrB,SAAS,IAAI,MAAM,EAAE;IAIrB,WAAW,IAAI,MAAM,EAAE;IAIvB,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;CAG9B;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAJV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO;IAGnD,cAAc,IAAI,MAAM;IAIxB,cAAc,IAAI,MAAM;IAIxB,iBAAiB,IAAI,MAAM;IAI3B,gBAAgB,IAAI,MAAM;IAI1B,aAAa,IAAI,OAAO,GAAG,OAAO,GAAG,OAAO;CAGpD"}