pcu 0.5.6 → 0.6.3
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/bin/pcu.js +1 -1
- package/dist/index.js +9559 -32
- package/dist/index.js.map +1 -1
- package/package.json +36 -84
- package/src/cli/commands/checkCommand.ts +227 -0
- package/src/cli/commands/initCommand.ts +394 -0
- package/src/cli/commands/securityCommand.ts +569 -0
- package/src/cli/commands/updateCommand.ts +245 -0
- package/src/cli/formatters/outputFormatter.ts +830 -0
- package/src/cli/formatters/progressBar.ts +700 -0
- package/src/cli/index.ts +565 -0
- package/src/cli/interactive/interactivePrompts.ts +517 -0
- package/src/cli/options/globalOptions.ts +380 -0
- package/src/cli/options/index.ts +5 -0
- package/src/cli/themes/colorTheme.ts +379 -0
- package/src/cli/validators/commandValidator.ts +395 -0
- package/src/cli/validators/index.ts +5 -0
- package/src/index.ts +4 -0
- package/README.ja.md +0 -582
- package/README.md +0 -690
- package/README.zh-CN.md +0 -630
- package/dist/application/services/CatalogUpdateService.d.ts +0 -209
- package/dist/application/services/CatalogUpdateService.d.ts.map +0 -1
- package/dist/application/services/CatalogUpdateService.js +0 -836
- package/dist/application/services/CatalogUpdateService.js.map +0 -1
- package/dist/application/services/WorkspaceService.d.ts +0 -139
- package/dist/application/services/WorkspaceService.d.ts.map +0 -1
- package/dist/application/services/WorkspaceService.js +0 -340
- package/dist/application/services/WorkspaceService.js.map +0 -1
- package/dist/cli/commands/CheckCommand.d.ts +0 -40
- package/dist/cli/commands/CheckCommand.d.ts.map +0 -1
- package/dist/cli/commands/CheckCommand.js +0 -177
- package/dist/cli/commands/CheckCommand.js.map +0 -1
- package/dist/cli/commands/InitCommand.d.ts +0 -53
- package/dist/cli/commands/InitCommand.d.ts.map +0 -1
- package/dist/cli/commands/InitCommand.js +0 -338
- package/dist/cli/commands/InitCommand.js.map +0 -1
- package/dist/cli/commands/SecurityCommand.d.ts +0 -113
- package/dist/cli/commands/SecurityCommand.d.ts.map +0 -1
- package/dist/cli/commands/SecurityCommand.js +0 -410
- package/dist/cli/commands/SecurityCommand.js.map +0 -1
- package/dist/cli/commands/UpdateCommand.d.ts +0 -44
- package/dist/cli/commands/UpdateCommand.d.ts.map +0 -1
- package/dist/cli/commands/UpdateCommand.js +0 -189
- package/dist/cli/commands/UpdateCommand.js.map +0 -1
- package/dist/cli/formatters/OutputFormatter.d.ts +0 -116
- package/dist/cli/formatters/OutputFormatter.d.ts.map +0 -1
- package/dist/cli/formatters/OutputFormatter.js +0 -664
- package/dist/cli/formatters/OutputFormatter.js.map +0 -1
- package/dist/cli/formatters/ProgressBar.d.ts +0 -195
- package/dist/cli/formatters/ProgressBar.d.ts.map +0 -1
- package/dist/cli/formatters/ProgressBar.js +0 -622
- package/dist/cli/formatters/ProgressBar.js.map +0 -1
- package/dist/cli/index.d.ts +0 -12
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -492
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/interactive/InteractivePrompts.d.ts +0 -85
- package/dist/cli/interactive/InteractivePrompts.d.ts.map +0 -1
- package/dist/cli/interactive/InteractivePrompts.js +0 -434
- package/dist/cli/interactive/InteractivePrompts.js.map +0 -1
- package/dist/cli/options/GlobalOptions.d.ts +0 -117
- package/dist/cli/options/GlobalOptions.d.ts.map +0 -1
- package/dist/cli/options/GlobalOptions.js +0 -278
- package/dist/cli/options/GlobalOptions.js.map +0 -1
- package/dist/cli/options/index.d.ts +0 -5
- package/dist/cli/options/index.d.ts.map +0 -1
- package/dist/cli/options/index.js +0 -5
- package/dist/cli/options/index.js.map +0 -1
- package/dist/cli/themes/ColorTheme.d.ts +0 -211
- package/dist/cli/themes/ColorTheme.d.ts.map +0 -1
- package/dist/cli/themes/ColorTheme.js +0 -267
- package/dist/cli/themes/ColorTheme.js.map +0 -1
- package/dist/cli/validators/CommandValidator.d.ts +0 -60
- package/dist/cli/validators/CommandValidator.d.ts.map +0 -1
- package/dist/cli/validators/CommandValidator.js +0 -319
- package/dist/cli/validators/CommandValidator.js.map +0 -1
- package/dist/cli/validators/index.d.ts +0 -5
- package/dist/cli/validators/index.d.ts.map +0 -1
- package/dist/cli/validators/index.js +0 -5
- package/dist/cli/validators/index.js.map +0 -1
- package/dist/common/config/Config.d.ts +0 -142
- package/dist/common/config/Config.d.ts.map +0 -1
- package/dist/common/config/Config.js +0 -382
- package/dist/common/config/Config.js.map +0 -1
- package/dist/common/config/ConfigLoader.d.ts +0 -49
- package/dist/common/config/ConfigLoader.d.ts.map +0 -1
- package/dist/common/config/ConfigLoader.js +0 -180
- package/dist/common/config/ConfigLoader.js.map +0 -1
- package/dist/common/config/PackageFilterConfig.d.ts +0 -56
- package/dist/common/config/PackageFilterConfig.d.ts.map +0 -1
- package/dist/common/config/PackageFilterConfig.js +0 -94
- package/dist/common/config/PackageFilterConfig.js.map +0 -1
- package/dist/common/config/index.d.ts +0 -8
- package/dist/common/config/index.d.ts.map +0 -1
- package/dist/common/config/index.js +0 -8
- package/dist/common/config/index.js.map +0 -1
- package/dist/common/error-handling/ErrorTracker.d.ts +0 -48
- package/dist/common/error-handling/ErrorTracker.d.ts.map +0 -1
- package/dist/common/error-handling/ErrorTracker.js +0 -93
- package/dist/common/error-handling/ErrorTracker.js.map +0 -1
- package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts +0 -74
- package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts.map +0 -1
- package/dist/common/error-handling/UserFriendlyErrorHandler.js +0 -703
- package/dist/common/error-handling/UserFriendlyErrorHandler.js.map +0 -1
- package/dist/common/error-handling/index.d.ts +0 -11
- package/dist/common/error-handling/index.d.ts.map +0 -1
- package/dist/common/error-handling/index.js +0 -9
- package/dist/common/error-handling/index.js.map +0 -1
- package/dist/common/logger/Logger.d.ts +0 -110
- package/dist/common/logger/Logger.d.ts.map +0 -1
- package/dist/common/logger/Logger.js +0 -289
- package/dist/common/logger/Logger.js.map +0 -1
- package/dist/common/logger/index.d.ts +0 -6
- package/dist/common/logger/index.d.ts.map +0 -1
- package/dist/common/logger/index.js +0 -6
- package/dist/common/logger/index.js.map +0 -1
- package/dist/common/types/cli.d.ts +0 -265
- package/dist/common/types/cli.d.ts.map +0 -1
- package/dist/common/types/cli.js +0 -5
- package/dist/common/types/cli.js.map +0 -1
- package/dist/common/types/core.d.ts +0 -270
- package/dist/common/types/core.d.ts.map +0 -1
- package/dist/common/types/core.js +0 -32
- package/dist/common/types/core.js.map +0 -1
- package/dist/common/types/index.d.ts +0 -8
- package/dist/common/types/index.d.ts.map +0 -1
- package/dist/common/types/index.js +0 -8
- package/dist/common/types/index.js.map +0 -1
- package/dist/common/utils/VersionChecker.d.ts +0 -54
- package/dist/common/utils/VersionChecker.d.ts.map +0 -1
- package/dist/common/utils/VersionChecker.js +0 -180
- package/dist/common/utils/VersionChecker.js.map +0 -1
- package/dist/common/utils/async.d.ts +0 -74
- package/dist/common/utils/async.d.ts.map +0 -1
- package/dist/common/utils/async.js +0 -228
- package/dist/common/utils/async.js.map +0 -1
- package/dist/common/utils/format.d.ts +0 -32
- package/dist/common/utils/format.d.ts.map +0 -1
- package/dist/common/utils/format.js +0 -121
- package/dist/common/utils/format.js.map +0 -1
- package/dist/common/utils/git.d.ts +0 -44
- package/dist/common/utils/git.d.ts.map +0 -1
- package/dist/common/utils/git.js +0 -147
- package/dist/common/utils/git.js.map +0 -1
- package/dist/common/utils/index.d.ts +0 -12
- package/dist/common/utils/index.d.ts.map +0 -1
- package/dist/common/utils/index.js +0 -12
- package/dist/common/utils/index.js.map +0 -1
- package/dist/common/utils/string.d.ts +0 -56
- package/dist/common/utils/string.d.ts.map +0 -1
- package/dist/common/utils/string.js +0 -134
- package/dist/common/utils/string.js.map +0 -1
- package/dist/common/utils/validation.d.ts +0 -88
- package/dist/common/utils/validation.d.ts.map +0 -1
- package/dist/common/utils/validation.js +0 -308
- package/dist/common/utils/validation.js.map +0 -1
- package/dist/domain/entities/Catalog.d.ts +0 -117
- package/dist/domain/entities/Catalog.d.ts.map +0 -1
- package/dist/domain/entities/Catalog.js +0 -240
- package/dist/domain/entities/Catalog.js.map +0 -1
- package/dist/domain/entities/Package.d.ts +0 -143
- package/dist/domain/entities/Package.d.ts.map +0 -1
- package/dist/domain/entities/Package.js +0 -272
- package/dist/domain/entities/Package.js.map +0 -1
- package/dist/domain/entities/Workspace.d.ts +0 -95
- package/dist/domain/entities/Workspace.d.ts.map +0 -1
- package/dist/domain/entities/Workspace.js +0 -173
- package/dist/domain/entities/Workspace.js.map +0 -1
- package/dist/domain/repositories/WorkspaceRepository.d.ts +0 -41
- package/dist/domain/repositories/WorkspaceRepository.d.ts.map +0 -1
- package/dist/domain/repositories/WorkspaceRepository.js +0 -8
- package/dist/domain/repositories/WorkspaceRepository.js.map +0 -1
- package/dist/domain/value-objects/CatalogCollection.d.ts +0 -106
- package/dist/domain/value-objects/CatalogCollection.d.ts.map +0 -1
- package/dist/domain/value-objects/CatalogCollection.js +0 -230
- package/dist/domain/value-objects/CatalogCollection.js.map +0 -1
- package/dist/domain/value-objects/PackageCollection.d.ts +0 -122
- package/dist/domain/value-objects/PackageCollection.d.ts.map +0 -1
- package/dist/domain/value-objects/PackageCollection.js +0 -263
- package/dist/domain/value-objects/PackageCollection.js.map +0 -1
- package/dist/domain/value-objects/Version.d.ts +0 -141
- package/dist/domain/value-objects/Version.d.ts.map +0 -1
- package/dist/domain/value-objects/Version.js +0 -268
- package/dist/domain/value-objects/Version.js.map +0 -1
- package/dist/domain/value-objects/WorkspaceConfig.d.ts +0 -144
- package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +0 -1
- package/dist/domain/value-objects/WorkspaceConfig.js +0 -357
- package/dist/domain/value-objects/WorkspaceConfig.js.map +0 -1
- package/dist/domain/value-objects/WorkspaceId.d.ts +0 -51
- package/dist/domain/value-objects/WorkspaceId.d.ts.map +0 -1
- package/dist/domain/value-objects/WorkspaceId.js +0 -104
- package/dist/domain/value-objects/WorkspaceId.js.map +0 -1
- package/dist/domain/value-objects/WorkspacePath.d.ts +0 -75
- package/dist/domain/value-objects/WorkspacePath.d.ts.map +0 -1
- package/dist/domain/value-objects/WorkspacePath.js +0 -128
- package/dist/domain/value-objects/WorkspacePath.js.map +0 -1
- package/dist/index.d.ts +0 -25
- package/dist/index.d.ts.map +0 -1
- package/dist/infrastructure/cache/Cache.d.ts +0 -161
- package/dist/infrastructure/cache/Cache.d.ts.map +0 -1
- package/dist/infrastructure/cache/Cache.js +0 -398
- package/dist/infrastructure/cache/Cache.js.map +0 -1
- package/dist/infrastructure/cache/index.d.ts +0 -6
- package/dist/infrastructure/cache/index.d.ts.map +0 -1
- package/dist/infrastructure/cache/index.js +0 -6
- package/dist/infrastructure/cache/index.js.map +0 -1
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts +0 -145
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
- package/dist/infrastructure/external-services/NpmRegistryService.js +0 -466
- package/dist/infrastructure/external-services/NpmRegistryService.js.map +0 -1
- package/dist/infrastructure/file-system/FileSystemService.d.ts +0 -120
- package/dist/infrastructure/file-system/FileSystemService.d.ts.map +0 -1
- package/dist/infrastructure/file-system/FileSystemService.js +0 -663
- package/dist/infrastructure/file-system/FileSystemService.js.map +0 -1
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +0 -57
- package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +0 -1
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js +0 -179
- package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +0 -1
|
@@ -1,466 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NPM Registry Service
|
|
3
|
-
*
|
|
4
|
-
* Provides access to NPM registry for package version information.
|
|
5
|
-
* Handles API calls, caching, and version resolution.
|
|
6
|
-
*/
|
|
7
|
-
import npmRegistryFetch from 'npm-registry-fetch';
|
|
8
|
-
import pacote from 'pacote';
|
|
9
|
-
import semver from 'semver';
|
|
10
|
-
import { Version } from '../../domain/value-objects/Version.js';
|
|
11
|
-
import { UserFriendlyErrorHandler } from '../../common/error-handling/UserFriendlyErrorHandler.js';
|
|
12
|
-
export class NpmRegistryService {
|
|
13
|
-
registryUrl;
|
|
14
|
-
cache = new Map();
|
|
15
|
-
// Differentiated cache timeouts for different data types
|
|
16
|
-
versionCacheTimeout;
|
|
17
|
-
packageInfoCacheTimeout;
|
|
18
|
-
securityCacheTimeout;
|
|
19
|
-
// Advanced configuration with defaults
|
|
20
|
-
concurrency;
|
|
21
|
-
timeout;
|
|
22
|
-
retries;
|
|
23
|
-
cachingEnabled;
|
|
24
|
-
constructor(registryUrl = 'https://registry.npmjs.org/', options = {}) {
|
|
25
|
-
this.registryUrl = registryUrl;
|
|
26
|
-
this.concurrency = options.concurrency ?? 8; // Increased from 5 to match NCU performance
|
|
27
|
-
this.timeout = options.timeout ?? 15000; // Reduced from 30s to 15s for faster failure detection
|
|
28
|
-
this.retries = options.retries ?? 2; // Reduced from 3 to 2 for faster overall performance
|
|
29
|
-
// Optimized cache timeouts for different data types
|
|
30
|
-
const baseCacheMinutes = options.cacheValidityMinutes ?? 10; // Reduced from 60 to 10 minutes
|
|
31
|
-
this.versionCacheTimeout = baseCacheMinutes * 60 * 1000; // Version info: 10 minutes (frequently checked)
|
|
32
|
-
this.packageInfoCacheTimeout = baseCacheMinutes * 2 * 60 * 1000; // Package info: 20 minutes
|
|
33
|
-
this.securityCacheTimeout = baseCacheMinutes * 6 * 60 * 1000; // Security info: 60 minutes (changes less frequently)
|
|
34
|
-
this.cachingEnabled = baseCacheMinutes > 0; // Disable caching if set to 0
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Execute a function with retry logic
|
|
38
|
-
*/
|
|
39
|
-
async executeWithRetry(fn, context = 'operation') {
|
|
40
|
-
let lastError;
|
|
41
|
-
for (let attempt = 1; attempt <= this.retries; attempt++) {
|
|
42
|
-
try {
|
|
43
|
-
return await fn();
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
lastError = error;
|
|
47
|
-
if (attempt === this.retries) {
|
|
48
|
-
throw new Error(`${context} failed after ${this.retries} attempts: ${lastError.message}`);
|
|
49
|
-
}
|
|
50
|
-
// Exponential backoff: wait 1s, 2s, 4s, etc.
|
|
51
|
-
const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);
|
|
52
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
53
|
-
// Extract package name from context for better error handling
|
|
54
|
-
const packageName = context.includes('for ')
|
|
55
|
-
? context.split('for ')[1] || 'unknown package'
|
|
56
|
-
: 'unknown package';
|
|
57
|
-
UserFriendlyErrorHandler.handleRetryAttempt(packageName, attempt, this.retries, lastError);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
throw lastError;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get lightweight package version information (optimized for performance)
|
|
64
|
-
*/
|
|
65
|
-
async getPackageVersions(packageName) {
|
|
66
|
-
const cacheKey = `package-versions:${packageName}`;
|
|
67
|
-
// Check cache first if caching is enabled
|
|
68
|
-
if (this.cachingEnabled) {
|
|
69
|
-
const cached = this.getFromCache(cacheKey);
|
|
70
|
-
if (cached) {
|
|
71
|
-
return cached;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
const packageVersions = await this.executeWithRetry(async () => {
|
|
75
|
-
// Use lightweight packument call without fullMetadata
|
|
76
|
-
const packument = await pacote.packument(packageName, {
|
|
77
|
-
registry: this.registryUrl,
|
|
78
|
-
timeout: this.timeout,
|
|
79
|
-
fullMetadata: false, // Key optimization: don't fetch full metadata
|
|
80
|
-
});
|
|
81
|
-
const versions = Object.keys(packument.versions || {}).sort(semver.rcompare);
|
|
82
|
-
const latestVersion = packument['dist-tags']?.latest || versions[0];
|
|
83
|
-
return {
|
|
84
|
-
name: packument.name,
|
|
85
|
-
versions,
|
|
86
|
-
latestVersion,
|
|
87
|
-
tags: packument['dist-tags'] || {},
|
|
88
|
-
time: packument.time || {}, // Still include time for newest versions feature
|
|
89
|
-
};
|
|
90
|
-
}, `Fetching package versions for ${packageName}`);
|
|
91
|
-
// Cache the result if caching is enabled
|
|
92
|
-
if (this.cachingEnabled) {
|
|
93
|
-
this.setCache(cacheKey, packageVersions);
|
|
94
|
-
}
|
|
95
|
-
return packageVersions;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Get package information including all versions
|
|
99
|
-
* @deprecated Use getPackageVersions() for better performance
|
|
100
|
-
*/
|
|
101
|
-
async getPackageInfo(packageName) {
|
|
102
|
-
const cacheKey = `package-info:${packageName}`;
|
|
103
|
-
// Check cache first if caching is enabled
|
|
104
|
-
if (this.cachingEnabled) {
|
|
105
|
-
const cached = this.getFromCache(cacheKey);
|
|
106
|
-
if (cached) {
|
|
107
|
-
return cached;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// Use lightweight version and extend with additional metadata only if needed
|
|
111
|
-
const versionInfo = await this.getPackageVersions(packageName);
|
|
112
|
-
const packageInfo = await this.executeWithRetry(async () => {
|
|
113
|
-
// Only fetch full metadata if we actually need the extended info
|
|
114
|
-
const packument = await pacote.packument(packageName, {
|
|
115
|
-
registry: this.registryUrl,
|
|
116
|
-
timeout: this.timeout,
|
|
117
|
-
fullMetadata: true,
|
|
118
|
-
});
|
|
119
|
-
return {
|
|
120
|
-
name: versionInfo.name,
|
|
121
|
-
description: packument.description,
|
|
122
|
-
homepage: packument.homepage,
|
|
123
|
-
repository: packument.repository,
|
|
124
|
-
license: packument.license,
|
|
125
|
-
author: packument.author,
|
|
126
|
-
maintainers: packument.maintainers,
|
|
127
|
-
keywords: packument.keywords,
|
|
128
|
-
versions: versionInfo.versions,
|
|
129
|
-
latestVersion: versionInfo.latestVersion,
|
|
130
|
-
tags: versionInfo.tags,
|
|
131
|
-
time: versionInfo.time || {},
|
|
132
|
-
};
|
|
133
|
-
}, `Fetching package info for ${packageName}`);
|
|
134
|
-
// Cache the result if caching is enabled
|
|
135
|
-
if (this.cachingEnabled) {
|
|
136
|
-
this.setCache(cacheKey, packageInfo);
|
|
137
|
-
}
|
|
138
|
-
return packageInfo;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Get the latest version of a package
|
|
142
|
-
*/
|
|
143
|
-
async getLatestVersion(packageName) {
|
|
144
|
-
try {
|
|
145
|
-
const versionInfo = await this.getPackageVersions(packageName);
|
|
146
|
-
return Version.fromString(versionInfo.latestVersion);
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
throw new Error(`Failed to get latest version for ${packageName}: ${error}`);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Get the greatest version that satisfies a range
|
|
154
|
-
*/
|
|
155
|
-
async getGreatestVersion(packageName, range) {
|
|
156
|
-
try {
|
|
157
|
-
const versionInfo = await this.getPackageVersions(packageName);
|
|
158
|
-
if (!range) {
|
|
159
|
-
return Version.fromString(versionInfo.latestVersion);
|
|
160
|
-
}
|
|
161
|
-
// Find the greatest version that satisfies the range
|
|
162
|
-
const satisfyingVersions = versionInfo.versions.filter((v) => {
|
|
163
|
-
try {
|
|
164
|
-
const version = Version.fromString(v);
|
|
165
|
-
return version.satisfies(range);
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
if (satisfyingVersions.length === 0) {
|
|
172
|
-
throw new Error(`No versions satisfy range ${range.toString()}`);
|
|
173
|
-
}
|
|
174
|
-
// Return the first (greatest) version
|
|
175
|
-
if (!satisfyingVersions[0]) {
|
|
176
|
-
throw new Error(`No satisfying versions found for ${packageName}`);
|
|
177
|
-
}
|
|
178
|
-
return Version.fromString(satisfyingVersions[0]);
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
throw new Error(`Failed to get greatest version for ${packageName}: ${error}`);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Get versions by date (newest versions published)
|
|
186
|
-
*/
|
|
187
|
-
async getNewestVersions(packageName, count = 10) {
|
|
188
|
-
try {
|
|
189
|
-
const versionInfo = await this.getPackageVersions(packageName);
|
|
190
|
-
// Sort versions by publication time
|
|
191
|
-
const versionsWithTime = versionInfo.versions
|
|
192
|
-
.map((version) => ({
|
|
193
|
-
version,
|
|
194
|
-
time: versionInfo.time?.[version] ? new Date(versionInfo.time[version]) : new Date(0),
|
|
195
|
-
}))
|
|
196
|
-
.sort((a, b) => b.time.getTime() - a.time.getTime())
|
|
197
|
-
.slice(0, count);
|
|
198
|
-
return versionsWithTime.map((item) => Version.fromString(item.version));
|
|
199
|
-
}
|
|
200
|
-
catch (error) {
|
|
201
|
-
throw new Error(`Failed to get newest versions for ${packageName}: ${error}`);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Check for security vulnerabilities
|
|
206
|
-
*/
|
|
207
|
-
async checkSecurityVulnerabilities(packageName, version) {
|
|
208
|
-
const cacheKey = `security:${packageName}@${version}`;
|
|
209
|
-
// Check cache first
|
|
210
|
-
const cached = this.getFromCache(cacheKey);
|
|
211
|
-
if (cached) {
|
|
212
|
-
return cached;
|
|
213
|
-
}
|
|
214
|
-
try {
|
|
215
|
-
// Use npm audit API
|
|
216
|
-
const auditData = {
|
|
217
|
-
name: packageName,
|
|
218
|
-
version: version,
|
|
219
|
-
requires: {},
|
|
220
|
-
dependencies: {},
|
|
221
|
-
};
|
|
222
|
-
const response = await npmRegistryFetch('/-/npm/v1/security/audits', {
|
|
223
|
-
method: 'POST',
|
|
224
|
-
body: JSON.stringify(auditData),
|
|
225
|
-
headers: {
|
|
226
|
-
'Content-Type': 'application/json',
|
|
227
|
-
},
|
|
228
|
-
registry: this.registryUrl,
|
|
229
|
-
timeout: this.timeout,
|
|
230
|
-
});
|
|
231
|
-
const auditResult = await response.json();
|
|
232
|
-
const vulnerabilities = [];
|
|
233
|
-
// Parse audit results
|
|
234
|
-
if (auditResult.advisories) {
|
|
235
|
-
for (const advisory of Object.values(auditResult.advisories)) {
|
|
236
|
-
vulnerabilities.push({
|
|
237
|
-
id: advisory.id.toString(),
|
|
238
|
-
title: advisory.title,
|
|
239
|
-
severity: advisory.severity,
|
|
240
|
-
description: advisory.overview,
|
|
241
|
-
reference: advisory.url,
|
|
242
|
-
vulnerable_versions: advisory.vulnerable_versions,
|
|
243
|
-
patched_versions: advisory.patched_versions,
|
|
244
|
-
recommendation: advisory.recommendation,
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
const securityReport = {
|
|
249
|
-
package: packageName,
|
|
250
|
-
version: version,
|
|
251
|
-
vulnerabilities,
|
|
252
|
-
hasVulnerabilities: vulnerabilities.length > 0,
|
|
253
|
-
};
|
|
254
|
-
// Cache the result
|
|
255
|
-
this.setCache(cacheKey, securityReport);
|
|
256
|
-
return securityReport;
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
// If security check fails, return empty report
|
|
260
|
-
UserFriendlyErrorHandler.handleSecurityCheckFailure(packageName, error);
|
|
261
|
-
const emptyReport = {
|
|
262
|
-
package: packageName,
|
|
263
|
-
version: version,
|
|
264
|
-
vulnerabilities: [],
|
|
265
|
-
hasVulnerabilities: false,
|
|
266
|
-
};
|
|
267
|
-
return emptyReport;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Batch query multiple packages with progress tracking
|
|
272
|
-
*/
|
|
273
|
-
async batchQueryVersions(packages, progressCallback) {
|
|
274
|
-
const results = new Map();
|
|
275
|
-
let completed = 0;
|
|
276
|
-
const total = packages.length;
|
|
277
|
-
// Process packages in parallel with configurable concurrency
|
|
278
|
-
const chunks = this.chunkArray(packages, this.concurrency);
|
|
279
|
-
for (const chunk of chunks) {
|
|
280
|
-
const promises = chunk.map(async (packageName) => {
|
|
281
|
-
try {
|
|
282
|
-
const info = await this.getPackageInfo(packageName);
|
|
283
|
-
results.set(packageName, info);
|
|
284
|
-
// Update progress
|
|
285
|
-
completed++;
|
|
286
|
-
if (progressCallback) {
|
|
287
|
-
progressCallback(completed, total, packageName);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
// Still count failed packages in progress
|
|
292
|
-
completed++;
|
|
293
|
-
if (progressCallback) {
|
|
294
|
-
progressCallback(completed, total, packageName);
|
|
295
|
-
}
|
|
296
|
-
UserFriendlyErrorHandler.handlePackageQueryFailure(packageName, error);
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
await Promise.all(promises);
|
|
300
|
-
}
|
|
301
|
-
return results;
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Check if package author has changed
|
|
305
|
-
*/
|
|
306
|
-
async hasPackageAuthorChanged(packageName, fromVersion, toVersion) {
|
|
307
|
-
try {
|
|
308
|
-
// const packageInfo = await this.getPackageInfo(packageName);
|
|
309
|
-
const fromVersionData = await pacote.manifest(`${packageName}@${fromVersion}`, {
|
|
310
|
-
registry: this.registryUrl,
|
|
311
|
-
timeout: this.timeout,
|
|
312
|
-
});
|
|
313
|
-
const toVersionData = await pacote.manifest(`${packageName}@${toVersion}`, {
|
|
314
|
-
registry: this.registryUrl,
|
|
315
|
-
timeout: this.timeout,
|
|
316
|
-
});
|
|
317
|
-
// Compare authors/maintainers
|
|
318
|
-
const fromAuthor = this.normalizeAuthor(fromVersionData.author);
|
|
319
|
-
const toAuthor = this.normalizeAuthor(toVersionData.author);
|
|
320
|
-
return fromAuthor !== toAuthor;
|
|
321
|
-
}
|
|
322
|
-
catch (error) {
|
|
323
|
-
// Log for debugging, don't show to user as this is not critical
|
|
324
|
-
UserFriendlyErrorHandler.handlePackageQueryFailure(packageName, error, {
|
|
325
|
-
operation: 'author-check',
|
|
326
|
-
});
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Get package download statistics
|
|
332
|
-
*/
|
|
333
|
-
async getDownloadStats(packageName, period = 'last-week') {
|
|
334
|
-
try {
|
|
335
|
-
const response = await fetch(`https://api.npmjs.org/downloads/point/${period}/${packageName}`);
|
|
336
|
-
if (!response.ok) {
|
|
337
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
338
|
-
}
|
|
339
|
-
const data = (await response.json());
|
|
340
|
-
return data.downloads || 0;
|
|
341
|
-
}
|
|
342
|
-
catch (error) {
|
|
343
|
-
// Log for debugging, don't show to user as this is not critical
|
|
344
|
-
UserFriendlyErrorHandler.handlePackageQueryFailure(packageName, error, {
|
|
345
|
-
operation: 'download-stats',
|
|
346
|
-
});
|
|
347
|
-
return 0;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Clear all cache
|
|
352
|
-
*/
|
|
353
|
-
clearCache() {
|
|
354
|
-
this.cache.clear();
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Clear cache by type
|
|
358
|
-
*/
|
|
359
|
-
clearCacheByType(type = 'all') {
|
|
360
|
-
if (type === 'all') {
|
|
361
|
-
this.clearCache();
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
const prefix = type === 'versions'
|
|
365
|
-
? 'package-versions:'
|
|
366
|
-
: type === 'package-info'
|
|
367
|
-
? 'package-info:'
|
|
368
|
-
: 'security:';
|
|
369
|
-
const keysToDelete = [];
|
|
370
|
-
for (const key of this.cache.keys()) {
|
|
371
|
-
if (key.startsWith(prefix)) {
|
|
372
|
-
keysToDelete.push(key);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
keysToDelete.forEach((key) => this.cache.delete(key));
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Get cache statistics
|
|
379
|
-
*/
|
|
380
|
-
getCacheStats() {
|
|
381
|
-
const stats = { total: 0, versions: 0, packageInfo: 0, security: 0, expired: 0 };
|
|
382
|
-
const now = Date.now();
|
|
383
|
-
for (const [key, cached] of this.cache.entries()) {
|
|
384
|
-
stats.total++;
|
|
385
|
-
const timeout = this.getCacheTimeout(key);
|
|
386
|
-
if (now - cached.timestamp > timeout) {
|
|
387
|
-
stats.expired++;
|
|
388
|
-
continue;
|
|
389
|
-
}
|
|
390
|
-
if (key.startsWith('package-versions:')) {
|
|
391
|
-
stats.versions++;
|
|
392
|
-
}
|
|
393
|
-
else if (key.startsWith('package-info:')) {
|
|
394
|
-
stats.packageInfo++;
|
|
395
|
-
}
|
|
396
|
-
else if (key.startsWith('security:')) {
|
|
397
|
-
stats.security++;
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return stats;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Get item from cache if not expired
|
|
404
|
-
*/
|
|
405
|
-
getFromCache(key) {
|
|
406
|
-
const cached = this.cache.get(key);
|
|
407
|
-
if (!cached) {
|
|
408
|
-
return null;
|
|
409
|
-
}
|
|
410
|
-
// Determine timeout based on cache key type
|
|
411
|
-
const timeout = this.getCacheTimeout(key);
|
|
412
|
-
if (Date.now() - cached.timestamp > timeout) {
|
|
413
|
-
this.cache.delete(key);
|
|
414
|
-
return null;
|
|
415
|
-
}
|
|
416
|
-
return cached.data;
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Get appropriate cache timeout based on key type
|
|
420
|
-
*/
|
|
421
|
-
getCacheTimeout(key) {
|
|
422
|
-
if (key.startsWith('package-versions:')) {
|
|
423
|
-
return this.versionCacheTimeout;
|
|
424
|
-
}
|
|
425
|
-
else if (key.startsWith('security:')) {
|
|
426
|
-
return this.securityCacheTimeout;
|
|
427
|
-
}
|
|
428
|
-
else if (key.startsWith('package-info:')) {
|
|
429
|
-
return this.packageInfoCacheTimeout;
|
|
430
|
-
}
|
|
431
|
-
// Default to version cache timeout for unknown keys
|
|
432
|
-
return this.versionCacheTimeout;
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Set item in cache
|
|
436
|
-
*/
|
|
437
|
-
setCache(key, data) {
|
|
438
|
-
this.cache.set(key, {
|
|
439
|
-
data,
|
|
440
|
-
timestamp: Date.now(),
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
|
-
/**
|
|
444
|
-
* Split array into chunks
|
|
445
|
-
*/
|
|
446
|
-
chunkArray(array, size) {
|
|
447
|
-
const chunks = [];
|
|
448
|
-
for (let i = 0; i < array.length; i += size) {
|
|
449
|
-
chunks.push(array.slice(i, i + size));
|
|
450
|
-
}
|
|
451
|
-
return chunks;
|
|
452
|
-
}
|
|
453
|
-
/**
|
|
454
|
-
* Normalize author for comparison
|
|
455
|
-
*/
|
|
456
|
-
normalizeAuthor(author) {
|
|
457
|
-
if (typeof author === 'string') {
|
|
458
|
-
return author.toLowerCase().trim();
|
|
459
|
-
}
|
|
460
|
-
if (typeof author === 'object' && author?.name) {
|
|
461
|
-
return author.name.toLowerCase().trim();
|
|
462
|
-
}
|
|
463
|
-
return '';
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
//# sourceMappingURL=NpmRegistryService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NpmRegistryService.js","sourceRoot":"","sources":["../../../src/infrastructure/external-services/NpmRegistryService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAgB,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AAsCnG,MAAM,OAAO,kBAAkB;IAeV;IAdF,KAAK,GAAkD,IAAI,GAAG,EAAE,CAAC;IAElF,yDAAyD;IACxC,mBAAmB,CAAS;IAC5B,uBAAuB,CAAS;IAChC,oBAAoB,CAAS;IAE9C,uCAAuC;IACtB,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,cAAc,CAAU;IAEzC,YACmB,cAAsB,6BAA6B,EACpE,UAA0B,EAAE;QADX,gBAAW,GAAX,WAAW,CAAwC;QAGpE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,4CAA4C;QACzF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,uDAAuD;QAChG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,qDAAqD;QAE1F,oDAAoD;QACpD,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,gCAAgC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,gDAAgD;QACzG,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,2BAA2B;QAC5F,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,sDAAsD;QAEpH,IAAI,CAAC,cAAc,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAC5E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,EAAoB,EACpB,UAAkB,WAAW;QAE7B,IAAI,SAAgB,CAAC;QAErB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAE3B,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,iBAAiB,IAAI,CAAC,OAAO,cAAc,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5F,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAE3D,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB;oBAC/C,CAAC,CAAC,iBAAiB,CAAC;gBAEtB,wBAAwB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,MAAM,SAAU,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAO1C,MAAM,QAAQ,GAAG,oBAAoB,WAAW,EAAE,CAAC;QAEnD,0CAA0C;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YAC7D,sDAAsD;YACtD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;gBACpD,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,KAAK,EAAE,8CAA8C;aACpE,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEpE,OAAO;gBACL,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,QAAQ;gBACR,aAAa;gBACb,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;gBAClC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,iDAAiD;aAC9E,CAAC;QACJ,CAAC,EAAE,iCAAiC,WAAW,EAAE,CAAC,CAAC;QAEnD,yCAAyC;QACzC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,QAAQ,GAAG,gBAAgB,WAAW,EAAE,CAAC;QAE/C,0CAA0C;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAE/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACzD,iEAAiE;YACjE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;gBACpD,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,aAAa,EAAE,WAAW,CAAC,aAAa;gBACxC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;aAC7B,CAAC;QACJ,CAAC,EAAE,6BAA6B,WAAW,EAAE,CAAC,CAAC;QAE/C,yCAAyC;QACzC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC/D,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,KAAoB;QAChE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAE/D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;YAED,qDAAqD;YACrD,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3D,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACtC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,QAAgB,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAE/D,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ;iBAC1C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;aACtF,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;iBACnD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAEnB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAChC,WAAmB,EACnB,OAAe;QAEf,MAAM,QAAQ,GAAG,YAAY,WAAW,IAAI,OAAO,EAAE,CAAC;QAEtD,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,EAAE;aACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,2BAA2B,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC/B,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,eAAe,GAA4B,EAAE,CAAC;YAEpD,sBAAsB;YACtB,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC3B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAU,EAAE,CAAC;oBACtE,eAAe,CAAC,IAAI,CAAC;wBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;wBAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,WAAW,EAAE,QAAQ,CAAC,QAAQ;wBAC9B,SAAS,EAAE,QAAQ,CAAC,GAAG;wBACvB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;wBACjD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;wBAC3C,cAAc,EAAE,QAAQ,CAAC,cAAc;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,cAAc,GAAmB;gBACrC,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO;gBAChB,eAAe;gBACf,kBAAkB,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC;aAC/C,CAAC;YAEF,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAExC,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+CAA+C;YAC/C,wBAAwB,CAAC,0BAA0B,CAAC,WAAW,EAAE,KAAc,CAAC,CAAC;YAEjF,MAAM,WAAW,GAAmB;gBAClC,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO;gBAChB,eAAe,EAAE,EAAE;gBACnB,kBAAkB,EAAE,KAAK;aAC1B,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAkB,EAClB,gBAAqF;QAErF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;gBAC/C,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBACpD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBAE/B,kBAAkB;oBAClB,SAAS,EAAE,CAAC;oBACZ,IAAI,gBAAgB,EAAE,CAAC;wBACrB,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,0CAA0C;oBAC1C,SAAS,EAAE,CAAC;oBACZ,IAAI,gBAAgB,EAAE,CAAC;wBACrB,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAClD,CAAC;oBACD,wBAAwB,CAAC,yBAAyB,CAAC,WAAW,EAAE,KAAc,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAmB,EACnB,WAAmB,EACnB,SAAiB;QAEjB,IAAI,CAAC;YACH,8DAA8D;YAE9D,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,IAAI,WAAW,EAAE,EAAE;gBAC7E,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE;gBACzE,QAAQ,EAAE,IAAI,CAAC,WAAW;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE5D,OAAO,UAAU,KAAK,QAAQ,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gEAAgE;YAChE,wBAAwB,CAAC,yBAAyB,CAAC,WAAW,EAAE,KAAc,EAAE;gBAC9E,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,SAAkD,WAAW;QAE7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,yCAAyC,MAAM,IAAI,WAAW,EAAE,CACjE,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAC;YAC5C,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gEAAgE;YAChE,wBAAwB,CAAC,yBAAyB,CAAC,WAAW,EAAE,KAAc,EAAE;gBAC9E,SAAS,EAAE,gBAAgB;aAC5B,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAyD,KAAK;QAC7E,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GACV,IAAI,KAAK,UAAU;YACjB,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,IAAI,KAAK,cAAc;gBACvB,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,WAAW,CAAC;QAEpB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,aAAa;QAOX,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,KAAK,CAAC,KAAK,EAAE,CAAC;YAEd,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAW;QACjC,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,uBAAuB,CAAC;QACtC,CAAC;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,GAAW,EAAE,IAAS;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,UAAU,CAAI,KAAU,EAAE,IAAY;QAC5C,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAW;QACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File System Service
|
|
3
|
-
*
|
|
4
|
-
* Provides abstracted file system operations for the application.
|
|
5
|
-
* Handles reading/writing workspace files, package.json, and pnpm-workspace.yaml.
|
|
6
|
-
*/
|
|
7
|
-
import { PackageJsonData } from '../../domain/entities/Package.js';
|
|
8
|
-
import { PnpmWorkspaceData } from '../../domain/value-objects/WorkspaceConfig.js';
|
|
9
|
-
import { WorkspacePath } from '../../domain/value-objects/WorkspacePath.js';
|
|
10
|
-
export declare class FileSystemService {
|
|
11
|
-
/**
|
|
12
|
-
* Check if a file exists
|
|
13
|
-
*/
|
|
14
|
-
exists(filePath: string): Promise<boolean>;
|
|
15
|
-
/**
|
|
16
|
-
* Check if a path is a directory
|
|
17
|
-
*/
|
|
18
|
-
isDirectory(dirPath: string): Promise<boolean>;
|
|
19
|
-
/**
|
|
20
|
-
* Read a text file
|
|
21
|
-
*/
|
|
22
|
-
readTextFile(filePath: string): Promise<string>;
|
|
23
|
-
/**
|
|
24
|
-
* Write a text file
|
|
25
|
-
*/
|
|
26
|
-
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Read and parse a JSON file
|
|
29
|
-
*/
|
|
30
|
-
readJsonFile<T = any>(filePath: string): Promise<T>;
|
|
31
|
-
/**
|
|
32
|
-
* Write a JSON file
|
|
33
|
-
*/
|
|
34
|
-
writeJsonFile(filePath: string, data: any, indent?: number): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Read and parse a YAML file
|
|
37
|
-
*/
|
|
38
|
-
readYamlFile<T = any>(filePath: string): Promise<T>;
|
|
39
|
-
/**
|
|
40
|
-
* Write a YAML file
|
|
41
|
-
*/
|
|
42
|
-
writeYamlFile(filePath: string, data: any): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Write a YAML file while preserving comments and formatting
|
|
45
|
-
*/
|
|
46
|
-
writeYamlFilePreservingFormat(filePath: string, data: any): Promise<void>;
|
|
47
|
-
/**
|
|
48
|
-
* Update YAML content while preserving comments and formatting
|
|
49
|
-
*/
|
|
50
|
-
private updateYamlPreservingFormat;
|
|
51
|
-
/**
|
|
52
|
-
* Format a YAML section with proper indentation while preserving internal structure
|
|
53
|
-
*/
|
|
54
|
-
private formatYamlSection;
|
|
55
|
-
/**
|
|
56
|
-
* Format catalogs section while preserving structure and comments
|
|
57
|
-
*/
|
|
58
|
-
private formatCatalogsSection;
|
|
59
|
-
/**
|
|
60
|
-
* Check if a package exists in a catalog section
|
|
61
|
-
*/
|
|
62
|
-
private packageExistsInCatalogSection;
|
|
63
|
-
/**
|
|
64
|
-
* Read pnpm-workspace.yaml configuration
|
|
65
|
-
*/
|
|
66
|
-
readPnpmWorkspaceConfig(workspacePath: WorkspacePath): Promise<PnpmWorkspaceData>;
|
|
67
|
-
/**
|
|
68
|
-
* Write pnpm-workspace.yaml configuration
|
|
69
|
-
*/
|
|
70
|
-
writePnpmWorkspaceConfig(workspacePath: WorkspacePath, config: PnpmWorkspaceData): Promise<void>;
|
|
71
|
-
/**
|
|
72
|
-
* Read package.json file
|
|
73
|
-
*/
|
|
74
|
-
readPackageJson(packagePath: WorkspacePath): Promise<PackageJsonData>;
|
|
75
|
-
/**
|
|
76
|
-
* Write package.json file
|
|
77
|
-
*/
|
|
78
|
-
writePackageJson(packagePath: WorkspacePath, packageData: PackageJsonData): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Find package.json files using glob patterns
|
|
81
|
-
*/
|
|
82
|
-
findPackageJsonFiles(workspacePath: WorkspacePath, patterns: string[]): Promise<string[]>;
|
|
83
|
-
/**
|
|
84
|
-
* Find directories matching patterns
|
|
85
|
-
*/
|
|
86
|
-
findDirectories(workspacePath: WorkspacePath, patterns: string[]): Promise<string[]>;
|
|
87
|
-
/**
|
|
88
|
-
* Check if a directory contains a pnpm workspace
|
|
89
|
-
*/
|
|
90
|
-
isPnpmWorkspace(dirPath: string): Promise<boolean>;
|
|
91
|
-
/**
|
|
92
|
-
* Find the nearest pnpm workspace by traversing up the directory tree
|
|
93
|
-
*/
|
|
94
|
-
findNearestWorkspace(startPath: string): Promise<string | null>;
|
|
95
|
-
/**
|
|
96
|
-
* Get file modification time
|
|
97
|
-
*/
|
|
98
|
-
getModificationTime(filePath: string): Promise<Date>;
|
|
99
|
-
/**
|
|
100
|
-
* Create a backup of a file
|
|
101
|
-
*/
|
|
102
|
-
createBackup(filePath: string): Promise<string>;
|
|
103
|
-
/**
|
|
104
|
-
* Restore a file from backup
|
|
105
|
-
*/
|
|
106
|
-
restoreFromBackup(originalPath: string, backupPath: string): Promise<void>;
|
|
107
|
-
/**
|
|
108
|
-
* Remove a file
|
|
109
|
-
*/
|
|
110
|
-
removeFile(filePath: string): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* List files in a directory
|
|
113
|
-
*/
|
|
114
|
-
listFiles(dirPath: string): Promise<string[]>;
|
|
115
|
-
/**
|
|
116
|
-
* List directories in a directory
|
|
117
|
-
*/
|
|
118
|
-
listDirectories(dirPath: string): Promise<string[]>;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=FileSystemService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/file-system/FileSystemService.ts"],"names":[],"mappings":"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"}
|