pcu 0.3.6 → 0.4.0
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/README.md +45 -0
- package/README.zh-CN.md +64 -0
- package/dist/application/services/CatalogUpdateService.d.ts +15 -8
- package/dist/application/services/CatalogUpdateService.d.ts.map +1 -1
- package/dist/application/services/CatalogUpdateService.js +259 -47
- package/dist/application/services/CatalogUpdateService.js.map +1 -1
- package/dist/cli/commands/CheckCommand.d.ts +2 -3
- package/dist/cli/commands/CheckCommand.d.ts.map +1 -1
- package/dist/cli/commands/CheckCommand.js +16 -9
- package/dist/cli/commands/CheckCommand.js.map +1 -1
- package/dist/cli/commands/UpdateCommand.d.ts +2 -3
- package/dist/cli/commands/UpdateCommand.d.ts.map +1 -1
- package/dist/cli/commands/UpdateCommand.js +19 -12
- package/dist/cli/commands/UpdateCommand.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +21 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/common/config/ConfigLoader.d.ts +45 -0
- package/dist/common/config/ConfigLoader.d.ts.map +1 -0
- package/dist/common/config/ConfigLoader.js +157 -0
- package/dist/common/config/ConfigLoader.js.map +1 -0
- package/dist/common/config/PackageFilterConfig.d.ts +54 -0
- package/dist/common/config/PackageFilterConfig.d.ts.map +1 -0
- package/dist/common/config/PackageFilterConfig.js +67 -0
- package/dist/common/config/PackageFilterConfig.js.map +1 -0
- package/dist/common/config/index.d.ts +2 -0
- package/dist/common/config/index.d.ts.map +1 -1
- package/dist/common/config/index.js +2 -0
- package/dist/common/config/index.js.map +1 -1
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts +10 -2
- package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -1
- package/dist/infrastructure/external-services/NpmRegistryService.js +48 -18
- package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads and merges user configuration with default configuration.
|
|
5
|
+
* Supports multiple configuration file formats and locations.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from 'fs';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
import { CONFIG_FILE_NAMES, DEFAULT_PACKAGE_FILTER_CONFIG, } from './PackageFilterConfig.js';
|
|
10
|
+
export class ConfigLoader {
|
|
11
|
+
static cache = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Load configuration from the specified directory
|
|
14
|
+
*/
|
|
15
|
+
static loadConfig(workspacePath = process.cwd()) {
|
|
16
|
+
const cacheKey = workspacePath;
|
|
17
|
+
if (this.cache.has(cacheKey)) {
|
|
18
|
+
return this.cache.get(cacheKey);
|
|
19
|
+
}
|
|
20
|
+
const userConfig = this.findAndLoadUserConfig(workspacePath);
|
|
21
|
+
const mergedConfig = this.mergeConfigs(DEFAULT_PACKAGE_FILTER_CONFIG, userConfig || {});
|
|
22
|
+
this.cache.set(cacheKey, mergedConfig);
|
|
23
|
+
return mergedConfig;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Clear configuration cache
|
|
27
|
+
*/
|
|
28
|
+
static clearCache() {
|
|
29
|
+
this.cache.clear();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Find and load user configuration file
|
|
33
|
+
*/
|
|
34
|
+
static findAndLoadUserConfig(workspacePath) {
|
|
35
|
+
for (const fileName of CONFIG_FILE_NAMES) {
|
|
36
|
+
const configPath = join(workspacePath, fileName);
|
|
37
|
+
if (existsSync(configPath)) {
|
|
38
|
+
try {
|
|
39
|
+
return this.loadConfigFile(configPath);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.warn(`Warning: Failed to load config file ${configPath}:`, error);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Load configuration from a specific file
|
|
51
|
+
*/
|
|
52
|
+
static loadConfigFile(configPath) {
|
|
53
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
54
|
+
if (configPath.endsWith('.json')) {
|
|
55
|
+
return JSON.parse(content);
|
|
56
|
+
}
|
|
57
|
+
if (configPath.endsWith('.js')) {
|
|
58
|
+
// For JavaScript config files, we would need dynamic import
|
|
59
|
+
// For now, let's focus on JSON support
|
|
60
|
+
throw new Error('JavaScript config files are not yet supported');
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Unsupported config file format: ${configPath}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Deep merge two configuration objects
|
|
66
|
+
*/
|
|
67
|
+
static mergeConfigs(defaultConfig, userConfig) {
|
|
68
|
+
const merged = JSON.parse(JSON.stringify(defaultConfig));
|
|
69
|
+
// Merge simple arrays and objects
|
|
70
|
+
if (userConfig.exclude) {
|
|
71
|
+
merged.exclude = [...(merged.exclude || []), ...userConfig.exclude];
|
|
72
|
+
}
|
|
73
|
+
if (userConfig.include) {
|
|
74
|
+
merged.include = [...(merged.include || []), ...userConfig.include];
|
|
75
|
+
}
|
|
76
|
+
if (userConfig.defaults) {
|
|
77
|
+
merged.defaults = { ...merged.defaults, ...userConfig.defaults };
|
|
78
|
+
}
|
|
79
|
+
if (userConfig.security) {
|
|
80
|
+
merged.security = { ...merged.security, ...userConfig.security };
|
|
81
|
+
}
|
|
82
|
+
if (userConfig.advanced) {
|
|
83
|
+
merged.advanced = { ...merged.advanced, ...userConfig.advanced };
|
|
84
|
+
}
|
|
85
|
+
if (userConfig.monorepo) {
|
|
86
|
+
merged.monorepo = { ...merged.monorepo, ...userConfig.monorepo };
|
|
87
|
+
// For arrays in monorepo config, replace rather than merge
|
|
88
|
+
if (userConfig.monorepo.syncVersions) {
|
|
89
|
+
merged.monorepo.syncVersions = userConfig.monorepo.syncVersions;
|
|
90
|
+
}
|
|
91
|
+
if (userConfig.monorepo.catalogPriority) {
|
|
92
|
+
merged.monorepo.catalogPriority = userConfig.monorepo.catalogPriority;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Package rules need special handling - user rules are added to default rules
|
|
96
|
+
if (userConfig.packageRules) {
|
|
97
|
+
merged.packageRules = [...(merged.packageRules || []), ...userConfig.packageRules];
|
|
98
|
+
}
|
|
99
|
+
return merged;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get effective configuration for a specific package
|
|
103
|
+
*/
|
|
104
|
+
static getPackageConfig(packageName, config) {
|
|
105
|
+
// Check if package is explicitly excluded
|
|
106
|
+
if (config.exclude?.some((pattern) => this.matchesPattern(packageName, pattern))) {
|
|
107
|
+
return {
|
|
108
|
+
shouldUpdate: false,
|
|
109
|
+
target: config.defaults?.target || 'latest',
|
|
110
|
+
requireConfirmation: false,
|
|
111
|
+
autoUpdate: false,
|
|
112
|
+
groupUpdate: false,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// Check if package is explicitly included (if include list exists)
|
|
116
|
+
if (config.include && config.include.length > 0) {
|
|
117
|
+
const isIncluded = config.include.some((pattern) => this.matchesPattern(packageName, pattern));
|
|
118
|
+
if (!isIncluded) {
|
|
119
|
+
return {
|
|
120
|
+
shouldUpdate: false,
|
|
121
|
+
target: config.defaults?.target || 'latest',
|
|
122
|
+
requireConfirmation: false,
|
|
123
|
+
autoUpdate: false,
|
|
124
|
+
groupUpdate: false,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Find matching package rule
|
|
129
|
+
const matchingRule = config.packageRules?.find((rule) => rule.patterns.some((pattern) => this.matchesPattern(packageName, pattern)));
|
|
130
|
+
if (matchingRule) {
|
|
131
|
+
return {
|
|
132
|
+
shouldUpdate: true,
|
|
133
|
+
target: matchingRule.target || config.defaults?.target || 'latest',
|
|
134
|
+
requireConfirmation: matchingRule.requireConfirmation || false,
|
|
135
|
+
autoUpdate: matchingRule.autoUpdate || false,
|
|
136
|
+
groupUpdate: matchingRule.groupUpdate || false,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// Use default configuration
|
|
140
|
+
return {
|
|
141
|
+
shouldUpdate: true,
|
|
142
|
+
target: config.defaults?.target || 'latest',
|
|
143
|
+
requireConfirmation: false,
|
|
144
|
+
autoUpdate: false,
|
|
145
|
+
groupUpdate: false,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Simple glob pattern matching
|
|
150
|
+
*/
|
|
151
|
+
static matchesPattern(packageName, pattern) {
|
|
152
|
+
const regexPattern = pattern.replace(/\*/g, '.*').replace(/\?/g, '.');
|
|
153
|
+
const regex = new RegExp(`^${regexPattern}$`, 'i');
|
|
154
|
+
return regex.test(packageName);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=ConfigLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../../src/common/config/ConfigLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PCU Configuration System
|
|
3
|
+
*
|
|
4
|
+
* Defines configuration types and provides default configuration.
|
|
5
|
+
* User configuration can override any part of the default configuration.
|
|
6
|
+
*/
|
|
7
|
+
export interface PackageRule {
|
|
8
|
+
patterns: string[];
|
|
9
|
+
target?: 'latest' | 'greatest' | 'minor' | 'patch' | 'newest';
|
|
10
|
+
autoUpdate?: boolean;
|
|
11
|
+
requireConfirmation?: boolean;
|
|
12
|
+
groupUpdate?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface SecurityConfig {
|
|
15
|
+
autoFixVulnerabilities?: boolean;
|
|
16
|
+
allowMajorForSecurity?: boolean;
|
|
17
|
+
notifyOnSecurityUpdate?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface DefaultsConfig {
|
|
20
|
+
target?: 'latest' | 'greatest' | 'minor' | 'patch' | 'newest';
|
|
21
|
+
includePrerelease?: boolean;
|
|
22
|
+
interactive?: boolean;
|
|
23
|
+
dryRun?: boolean;
|
|
24
|
+
createBackup?: boolean;
|
|
25
|
+
format?: 'table' | 'json' | 'yaml' | 'minimal';
|
|
26
|
+
}
|
|
27
|
+
export interface AdvancedConfig {
|
|
28
|
+
concurrency?: number;
|
|
29
|
+
timeout?: number;
|
|
30
|
+
retries?: number;
|
|
31
|
+
cacheValidityMinutes?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface MonorepoConfig {
|
|
34
|
+
syncVersions?: string[];
|
|
35
|
+
catalogPriority?: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface PackageFilterConfig {
|
|
38
|
+
exclude?: string[];
|
|
39
|
+
include?: string[];
|
|
40
|
+
defaults?: DefaultsConfig;
|
|
41
|
+
packageRules?: PackageRule[];
|
|
42
|
+
security?: SecurityConfig;
|
|
43
|
+
advanced?: AdvancedConfig;
|
|
44
|
+
monorepo?: MonorepoConfig;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Default built-in configuration
|
|
48
|
+
*/
|
|
49
|
+
export declare const DEFAULT_PACKAGE_FILTER_CONFIG: Required<PackageFilterConfig>;
|
|
50
|
+
/**
|
|
51
|
+
* Configuration file names to look for
|
|
52
|
+
*/
|
|
53
|
+
export declare const CONFIG_FILE_NAMES: string[];
|
|
54
|
+
//# sourceMappingURL=PackageFilterConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageFilterConfig.d.ts","sourceRoot":"","sources":["../../../src/common/config/PackageFilterConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,mBAAmB,CAoDvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAmE,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PCU Configuration System
|
|
3
|
+
*
|
|
4
|
+
* Defines configuration types and provides default configuration.
|
|
5
|
+
* User configuration can override any part of the default configuration.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default built-in configuration
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_PACKAGE_FILTER_CONFIG = {
|
|
11
|
+
exclude: [],
|
|
12
|
+
include: [],
|
|
13
|
+
defaults: {
|
|
14
|
+
target: 'latest',
|
|
15
|
+
includePrerelease: false,
|
|
16
|
+
interactive: false,
|
|
17
|
+
dryRun: false,
|
|
18
|
+
createBackup: false,
|
|
19
|
+
format: 'table',
|
|
20
|
+
},
|
|
21
|
+
packageRules: [
|
|
22
|
+
// Type definitions - always update to latest
|
|
23
|
+
{
|
|
24
|
+
patterns: ['@types/*'],
|
|
25
|
+
target: 'latest',
|
|
26
|
+
autoUpdate: true,
|
|
27
|
+
requireConfirmation: false,
|
|
28
|
+
groupUpdate: false,
|
|
29
|
+
},
|
|
30
|
+
// Dev tools - minor updates are usually safe
|
|
31
|
+
{
|
|
32
|
+
patterns: ['eslint*', 'prettier', '@typescript-eslint/*', 'vitest', 'jest'],
|
|
33
|
+
target: 'minor',
|
|
34
|
+
autoUpdate: false,
|
|
35
|
+
requireConfirmation: false,
|
|
36
|
+
groupUpdate: true,
|
|
37
|
+
},
|
|
38
|
+
// Build tools - be more conservative
|
|
39
|
+
{
|
|
40
|
+
patterns: ['typescript', 'webpack*', 'vite*', 'rollup*'],
|
|
41
|
+
target: 'minor',
|
|
42
|
+
autoUpdate: false,
|
|
43
|
+
requireConfirmation: true,
|
|
44
|
+
groupUpdate: false,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
security: {
|
|
48
|
+
autoFixVulnerabilities: true,
|
|
49
|
+
allowMajorForSecurity: true,
|
|
50
|
+
notifyOnSecurityUpdate: false,
|
|
51
|
+
},
|
|
52
|
+
advanced: {
|
|
53
|
+
concurrency: 5,
|
|
54
|
+
timeout: 30000,
|
|
55
|
+
retries: 3,
|
|
56
|
+
cacheValidityMinutes: 60,
|
|
57
|
+
},
|
|
58
|
+
monorepo: {
|
|
59
|
+
syncVersions: [],
|
|
60
|
+
catalogPriority: ['default'],
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Configuration file names to look for
|
|
65
|
+
*/
|
|
66
|
+
export const CONFIG_FILE_NAMES = ['.pcurc.json', '.pcurc.js', 'pcu.config.json', 'pcu.config.js'];
|
|
67
|
+
//# sourceMappingURL=PackageFilterConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageFilterConfig.js","sourceRoot":"","sources":["../../../src/common/config/PackageFilterConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+CH;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR,MAAM,EAAE,QAAQ;QAChB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE,OAAO;KAChB;IACD,YAAY,EAAE;QACZ,6CAA6C;QAC7C;YACE,QAAQ,EAAE,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,6CAA6C;QAC7C;YACE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC3E,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,KAAK;YACjB,mBAAmB,EAAE,KAAK;YAC1B,WAAW,EAAE,IAAI;SAClB;QACD,qCAAqC;QACrC;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;YACxD,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,KAAK;YACjB,mBAAmB,EAAE,IAAI;YACzB,WAAW,EAAE,KAAK;SACnB;KACF;IACD,QAAQ,EAAE;QACR,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,IAAI;QAC3B,sBAAsB,EAAE,KAAK;KAC9B;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,CAAC;QACV,oBAAoB,EAAE,EAAE;KACzB;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,CAAC,SAAS,CAAC;KAC7B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Handles API calls, caching, and version resolution.
|
|
6
6
|
*/
|
|
7
7
|
import { Version, VersionRange } from '../../domain/value-objects/Version.js';
|
|
8
|
+
import { AdvancedConfig } from '../../common/config/PackageFilterConfig.js';
|
|
8
9
|
export interface PackageInfo {
|
|
9
10
|
name: string;
|
|
10
11
|
description?: string;
|
|
@@ -46,10 +47,17 @@ export interface SecurityReport {
|
|
|
46
47
|
}
|
|
47
48
|
export declare class NpmRegistryService {
|
|
48
49
|
private readonly registryUrl;
|
|
49
|
-
private readonly timeout;
|
|
50
50
|
private readonly cache;
|
|
51
51
|
private readonly cacheTimeout;
|
|
52
|
-
|
|
52
|
+
private readonly concurrency;
|
|
53
|
+
private readonly timeout;
|
|
54
|
+
private readonly retries;
|
|
55
|
+
private readonly cachingEnabled;
|
|
56
|
+
constructor(registryUrl?: string, options?: AdvancedConfig);
|
|
57
|
+
/**
|
|
58
|
+
* Execute a function with retry logic
|
|
59
|
+
*/
|
|
60
|
+
private executeWithRetry;
|
|
53
61
|
/**
|
|
54
62
|
* Get package information including all versions
|
|
55
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NpmRegistryService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/external-services/NpmRegistryService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"NpmRegistryService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/external-services/NpmRegistryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,24 +10,56 @@ import semver from 'semver';
|
|
|
10
10
|
import { Version } from '../../domain/value-objects/Version.js';
|
|
11
11
|
export class NpmRegistryService {
|
|
12
12
|
registryUrl;
|
|
13
|
-
timeout;
|
|
14
13
|
cache = new Map();
|
|
15
|
-
cacheTimeout
|
|
16
|
-
|
|
14
|
+
cacheTimeout;
|
|
15
|
+
// Advanced configuration with defaults
|
|
16
|
+
concurrency;
|
|
17
|
+
timeout;
|
|
18
|
+
retries;
|
|
19
|
+
cachingEnabled;
|
|
20
|
+
constructor(registryUrl = 'https://registry.npmjs.org/', options = {}) {
|
|
17
21
|
this.registryUrl = registryUrl;
|
|
18
|
-
this.
|
|
22
|
+
this.concurrency = options.concurrency ?? 5;
|
|
23
|
+
this.timeout = options.timeout ?? 30000;
|
|
24
|
+
this.retries = options.retries ?? 3;
|
|
25
|
+
this.cacheTimeout = (options.cacheValidityMinutes ?? 60) * 60 * 1000; // Convert minutes to milliseconds
|
|
26
|
+
this.cachingEnabled = true; // Always enable caching, use cacheValidityMinutes: 0 to disable
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Execute a function with retry logic
|
|
30
|
+
*/
|
|
31
|
+
async executeWithRetry(fn, context = 'operation') {
|
|
32
|
+
let lastError;
|
|
33
|
+
for (let attempt = 1; attempt <= this.retries; attempt++) {
|
|
34
|
+
try {
|
|
35
|
+
return await fn();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
lastError = error;
|
|
39
|
+
if (attempt === this.retries) {
|
|
40
|
+
throw new Error(`${context} failed after ${this.retries} attempts: ${lastError.message}`);
|
|
41
|
+
}
|
|
42
|
+
// Exponential backoff: wait 1s, 2s, 4s, etc.
|
|
43
|
+
const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);
|
|
44
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
45
|
+
console.warn(`${context} attempt ${attempt} failed, retrying in ${delay}ms:`, lastError.message);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
throw lastError;
|
|
19
49
|
}
|
|
20
50
|
/**
|
|
21
51
|
* Get package information including all versions
|
|
22
52
|
*/
|
|
23
53
|
async getPackageInfo(packageName) {
|
|
24
54
|
const cacheKey = `package-info:${packageName}`;
|
|
25
|
-
// Check cache first
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
55
|
+
// Check cache first if caching is enabled
|
|
56
|
+
if (this.cachingEnabled) {
|
|
57
|
+
const cached = this.getFromCache(cacheKey);
|
|
58
|
+
if (cached) {
|
|
59
|
+
return cached;
|
|
60
|
+
}
|
|
29
61
|
}
|
|
30
|
-
|
|
62
|
+
const packageInfo = await this.executeWithRetry(async () => {
|
|
31
63
|
const packument = await pacote.packument(packageName, {
|
|
32
64
|
registry: this.registryUrl,
|
|
33
65
|
timeout: this.timeout,
|
|
@@ -35,7 +67,7 @@ export class NpmRegistryService {
|
|
|
35
67
|
});
|
|
36
68
|
const versions = Object.keys(packument.versions || {}).sort(semver.rcompare);
|
|
37
69
|
const latestVersion = packument['dist-tags']?.latest || versions[0];
|
|
38
|
-
|
|
70
|
+
return {
|
|
39
71
|
name: packument.name,
|
|
40
72
|
description: packument.description,
|
|
41
73
|
homepage: packument.homepage,
|
|
@@ -49,13 +81,12 @@ export class NpmRegistryService {
|
|
|
49
81
|
tags: packument['dist-tags'] || {},
|
|
50
82
|
time: packument.time || {},
|
|
51
83
|
};
|
|
52
|
-
|
|
84
|
+
}, `Fetching package info for ${packageName}`);
|
|
85
|
+
// Cache the result if caching is enabled
|
|
86
|
+
if (this.cachingEnabled) {
|
|
53
87
|
this.setCache(cacheKey, packageInfo);
|
|
54
|
-
return packageInfo;
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
throw new Error(`Failed to fetch package info for ${packageName}: ${error}`);
|
|
58
88
|
}
|
|
89
|
+
return packageInfo;
|
|
59
90
|
}
|
|
60
91
|
/**
|
|
61
92
|
* Get the latest version of a package
|
|
@@ -192,9 +223,8 @@ export class NpmRegistryService {
|
|
|
192
223
|
*/
|
|
193
224
|
async batchQueryVersions(packages) {
|
|
194
225
|
const results = new Map();
|
|
195
|
-
// Process packages in parallel with
|
|
196
|
-
const
|
|
197
|
-
const chunks = this.chunkArray(packages, concurrency);
|
|
226
|
+
// Process packages in parallel with configurable concurrency
|
|
227
|
+
const chunks = this.chunkArray(packages, this.concurrency);
|
|
198
228
|
for (const chunk of chunks) {
|
|
199
229
|
const promises = chunk.map(async (packageName) => {
|
|
200
230
|
try {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"NpmRegistryService.js","sourceRoot":"","sources":["../../../src/infrastructure/external-services/NpmRegistryService.ts"],"names":[],"mappings":"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"}
|