pcu 0.3.5 → 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.
Files changed (49) hide show
  1. package/README.md +45 -0
  2. package/README.zh-CN.md +64 -0
  3. package/dist/application/services/CatalogUpdateService.d.ts +15 -8
  4. package/dist/application/services/CatalogUpdateService.d.ts.map +1 -1
  5. package/dist/application/services/CatalogUpdateService.js +259 -47
  6. package/dist/application/services/CatalogUpdateService.js.map +1 -1
  7. package/dist/cli/commands/CheckCommand.d.ts +2 -3
  8. package/dist/cli/commands/CheckCommand.d.ts.map +1 -1
  9. package/dist/cli/commands/CheckCommand.js +16 -9
  10. package/dist/cli/commands/CheckCommand.js.map +1 -1
  11. package/dist/cli/commands/SecurityCommand.d.ts +113 -0
  12. package/dist/cli/commands/SecurityCommand.d.ts.map +1 -0
  13. package/dist/cli/commands/SecurityCommand.js +412 -0
  14. package/dist/cli/commands/SecurityCommand.js.map +1 -0
  15. package/dist/cli/commands/UpdateCommand.d.ts +2 -3
  16. package/dist/cli/commands/UpdateCommand.d.ts.map +1 -1
  17. package/dist/cli/commands/UpdateCommand.js +19 -12
  18. package/dist/cli/commands/UpdateCommand.js.map +1 -1
  19. package/dist/cli/formatters/OutputFormatter.d.ts +17 -0
  20. package/dist/cli/formatters/OutputFormatter.d.ts.map +1 -1
  21. package/dist/cli/formatters/OutputFormatter.js +113 -0
  22. package/dist/cli/formatters/OutputFormatter.js.map +1 -1
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +66 -13
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/common/config/Config.d.ts +2 -2
  27. package/dist/common/config/Config.d.ts.map +1 -1
  28. package/dist/common/config/Config.js +31 -4
  29. package/dist/common/config/Config.js.map +1 -1
  30. package/dist/common/config/ConfigLoader.d.ts +45 -0
  31. package/dist/common/config/ConfigLoader.d.ts.map +1 -0
  32. package/dist/common/config/ConfigLoader.js +157 -0
  33. package/dist/common/config/ConfigLoader.js.map +1 -0
  34. package/dist/common/config/PackageFilterConfig.d.ts +54 -0
  35. package/dist/common/config/PackageFilterConfig.d.ts.map +1 -0
  36. package/dist/common/config/PackageFilterConfig.js +67 -0
  37. package/dist/common/config/PackageFilterConfig.js.map +1 -0
  38. package/dist/common/config/index.d.ts +2 -0
  39. package/dist/common/config/index.d.ts.map +1 -1
  40. package/dist/common/config/index.js +2 -0
  41. package/dist/common/config/index.js.map +1 -1
  42. package/dist/common/utils/validation.d.ts.map +1 -1
  43. package/dist/common/utils/validation.js +29 -2
  44. package/dist/common/utils/validation.js.map +1 -1
  45. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +10 -2
  46. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +1 -1
  47. package/dist/infrastructure/external-services/NpmRegistryService.js +48 -18
  48. package/dist/infrastructure/external-services/NpmRegistryService.js.map +1 -1
  49. package/package.json +23 -23
@@ -0,0 +1,45 @@
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 { PackageFilterConfig } from './PackageFilterConfig.js';
8
+ export declare class ConfigLoader {
9
+ private static cache;
10
+ /**
11
+ * Load configuration from the specified directory
12
+ */
13
+ static loadConfig(workspacePath?: string): PackageFilterConfig;
14
+ /**
15
+ * Clear configuration cache
16
+ */
17
+ static clearCache(): void;
18
+ /**
19
+ * Find and load user configuration file
20
+ */
21
+ private static findAndLoadUserConfig;
22
+ /**
23
+ * Load configuration from a specific file
24
+ */
25
+ private static loadConfigFile;
26
+ /**
27
+ * Deep merge two configuration objects
28
+ */
29
+ private static mergeConfigs;
30
+ /**
31
+ * Get effective configuration for a specific package
32
+ */
33
+ static getPackageConfig(packageName: string, config: PackageFilterConfig): {
34
+ shouldUpdate: boolean;
35
+ target: string;
36
+ requireConfirmation: boolean;
37
+ autoUpdate: boolean;
38
+ groupUpdate: boolean;
39
+ };
40
+ /**
41
+ * Simple glob pattern matching
42
+ */
43
+ private static matchesPattern;
44
+ }
45
+ //# sourceMappingURL=ConfigLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../../src/common/config/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAGL,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0C;IAE9D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,aAAa,GAAE,MAAsB,GAAG,mBAAmB;IAa7E;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAgB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA+C3B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,mBAAmB,GAC1B;QACD,YAAY,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,mBAAmB,EAAE,OAAO,CAAC;QAC7B,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;KACtB;IAqDD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAK9B"}
@@ -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"}
@@ -3,4 +3,6 @@
3
3
  */
4
4
  export * from './Config.js';
5
5
  export { getConfig as default } from './Config.js';
6
+ export * from './PackageFilterConfig.js';
7
+ export * from './ConfigLoader.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -3,4 +3,6 @@
3
3
  */
4
4
  export * from './Config.js';
5
5
  export { getConfig as default } from './Config.js';
6
+ export * from './PackageFilterConfig.js';
7
+ export * from './ConfigLoader.js';
6
8
  //# sourceMappingURL=index.js.map
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/common/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,OAAc,EACvB,MAAM,GAAE,MAAM,EAAO,EACrB,QAAQ,GAAE,MAAM,EAAO,GACtB,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAItD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA8BvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8BpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA0DjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA6C5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxD"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/common/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,OAAc,EACvB,MAAM,GAAE,MAAM,EAAO,EACrB,QAAQ,GAAE,MAAM,EAAO,GACtB,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAItD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA8BvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8BpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAG1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA0DjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB,CA6C5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,MAAM,CAuDR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxD"}
@@ -255,9 +255,36 @@ export function validateConfig(config) {
255
255
  */
256
256
  export function sanitizeString(input, options = {}) {
257
257
  let result = input;
258
- // Strip HTML tags if requested
258
+ // Strip HTML tags if requested with comprehensive multi-pass sanitization
259
259
  if (options.stripHtml) {
260
- result = result.replace(/<[^>]*>/g, '');
260
+ let previousLength;
261
+ // Multi-pass sanitization to handle nested and complex patterns
262
+ do {
263
+ previousLength = result.length;
264
+ // Remove HTML tags, including malformed ones
265
+ result = result.replace(/<[^>]*>?/g, '');
266
+ // Remove HTML entities
267
+ result = result.replace(/&[a-zA-Z0-9#]+;/g, '');
268
+ // Remove any remaining < or > characters that might be part of incomplete tags
269
+ result = result.replace(/[<>]/g, '');
270
+ // Remove potentially dangerous protocol schemes
271
+ result = result.replace(/javascript:/gi, '');
272
+ result = result.replace(/data:/gi, '');
273
+ result = result.replace(/vbscript:/gi, '');
274
+ result = result.replace(/file:/gi, '');
275
+ result = result.replace(/ftp:/gi, '');
276
+ // Remove event handlers
277
+ result = result.replace(/on\w+\s*=/gi, '');
278
+ // Remove script-related content
279
+ result = result.replace(/script[\s\S]*?\/script/gi, '');
280
+ result = result.replace(/style[\s\S]*?\/style/gi, '');
281
+ // Remove control characters and non-printable characters
282
+ // eslint-disable-next-line no-control-regex
283
+ result = result.replace(/[\x00-\x1F\x7F-\x9F]/g, '');
284
+ // Remove potentially dangerous CSS expressions
285
+ result = result.replace(/expression\s*\(/gi, '');
286
+ result = result.replace(/url\s*\(/gi, '');
287
+ } while (result.length !== previousLength && result.length > 0);
261
288
  }
262
289
  // Filter allowed characters
263
290
  if (options.allowedChars) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/common/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/common/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -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
- constructor(registryUrl?: string, timeout?: number);
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":"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"}
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 = 5 * 60 * 1000; // 5 minutes
16
- constructor(registryUrl = 'https://registry.npmjs.org/', timeout = 30000) {
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.timeout = timeout;
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
- const cached = this.getFromCache(cacheKey);
27
- if (cached) {
28
- return cached;
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
- try {
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
- const packageInfo = {
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
- // Cache the result
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 limited concurrency
196
- const concurrency = 5;
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 {