pnpm-catalog-updates 0.5.7 → 0.6.5

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 (224) hide show
  1. package/bin/pcu.js +1 -1
  2. package/dist/index.js +9559 -32
  3. package/dist/index.js.map +1 -1
  4. package/package.json +61 -103
  5. package/src/cli/commands/checkCommand.ts +227 -0
  6. package/src/cli/commands/initCommand.ts +394 -0
  7. package/src/cli/commands/securityCommand.ts +569 -0
  8. package/src/cli/commands/updateCommand.ts +245 -0
  9. package/src/cli/formatters/outputFormatter.ts +830 -0
  10. package/src/cli/formatters/progressBar.ts +700 -0
  11. package/src/cli/index.ts +565 -0
  12. package/src/cli/interactive/interactivePrompts.ts +517 -0
  13. package/src/cli/options/globalOptions.ts +380 -0
  14. package/src/cli/options/index.ts +5 -0
  15. package/src/cli/themes/colorTheme.ts +379 -0
  16. package/src/cli/validators/commandValidator.ts +395 -0
  17. package/src/cli/validators/index.ts +5 -0
  18. package/src/index.ts +4 -0
  19. package/LICENSE +0 -21
  20. package/README.ja.md +0 -587
  21. package/README.md +0 -694
  22. package/README.zh-CN.md +0 -634
  23. package/dist/application/services/CatalogUpdateService.d.ts +0 -209
  24. package/dist/application/services/CatalogUpdateService.d.ts.map +0 -1
  25. package/dist/application/services/CatalogUpdateService.js +0 -839
  26. package/dist/application/services/CatalogUpdateService.js.map +0 -1
  27. package/dist/application/services/WorkspaceService.d.ts +0 -139
  28. package/dist/application/services/WorkspaceService.d.ts.map +0 -1
  29. package/dist/application/services/WorkspaceService.js +0 -340
  30. package/dist/application/services/WorkspaceService.js.map +0 -1
  31. package/dist/cli/commands/CheckCommand.d.ts +0 -40
  32. package/dist/cli/commands/CheckCommand.d.ts.map +0 -1
  33. package/dist/cli/commands/CheckCommand.js +0 -177
  34. package/dist/cli/commands/CheckCommand.js.map +0 -1
  35. package/dist/cli/commands/InitCommand.d.ts +0 -53
  36. package/dist/cli/commands/InitCommand.d.ts.map +0 -1
  37. package/dist/cli/commands/InitCommand.js +0 -338
  38. package/dist/cli/commands/InitCommand.js.map +0 -1
  39. package/dist/cli/commands/SecurityCommand.d.ts +0 -113
  40. package/dist/cli/commands/SecurityCommand.d.ts.map +0 -1
  41. package/dist/cli/commands/SecurityCommand.js +0 -410
  42. package/dist/cli/commands/SecurityCommand.js.map +0 -1
  43. package/dist/cli/commands/UpdateCommand.d.ts +0 -44
  44. package/dist/cli/commands/UpdateCommand.d.ts.map +0 -1
  45. package/dist/cli/commands/UpdateCommand.js +0 -189
  46. package/dist/cli/commands/UpdateCommand.js.map +0 -1
  47. package/dist/cli/formatters/OutputFormatter.d.ts +0 -116
  48. package/dist/cli/formatters/OutputFormatter.d.ts.map +0 -1
  49. package/dist/cli/formatters/OutputFormatter.js +0 -664
  50. package/dist/cli/formatters/OutputFormatter.js.map +0 -1
  51. package/dist/cli/formatters/ProgressBar.d.ts +0 -195
  52. package/dist/cli/formatters/ProgressBar.d.ts.map +0 -1
  53. package/dist/cli/formatters/ProgressBar.js +0 -622
  54. package/dist/cli/formatters/ProgressBar.js.map +0 -1
  55. package/dist/cli/index.d.ts +0 -12
  56. package/dist/cli/index.d.ts.map +0 -1
  57. package/dist/cli/index.js +0 -492
  58. package/dist/cli/index.js.map +0 -1
  59. package/dist/cli/interactive/InteractivePrompts.d.ts +0 -85
  60. package/dist/cli/interactive/InteractivePrompts.d.ts.map +0 -1
  61. package/dist/cli/interactive/InteractivePrompts.js +0 -434
  62. package/dist/cli/interactive/InteractivePrompts.js.map +0 -1
  63. package/dist/cli/options/GlobalOptions.d.ts +0 -117
  64. package/dist/cli/options/GlobalOptions.d.ts.map +0 -1
  65. package/dist/cli/options/GlobalOptions.js +0 -278
  66. package/dist/cli/options/GlobalOptions.js.map +0 -1
  67. package/dist/cli/options/index.d.ts +0 -5
  68. package/dist/cli/options/index.d.ts.map +0 -1
  69. package/dist/cli/options/index.js +0 -5
  70. package/dist/cli/options/index.js.map +0 -1
  71. package/dist/cli/themes/ColorTheme.d.ts +0 -211
  72. package/dist/cli/themes/ColorTheme.d.ts.map +0 -1
  73. package/dist/cli/themes/ColorTheme.js +0 -267
  74. package/dist/cli/themes/ColorTheme.js.map +0 -1
  75. package/dist/cli/validators/CommandValidator.d.ts +0 -60
  76. package/dist/cli/validators/CommandValidator.d.ts.map +0 -1
  77. package/dist/cli/validators/CommandValidator.js +0 -319
  78. package/dist/cli/validators/CommandValidator.js.map +0 -1
  79. package/dist/cli/validators/index.d.ts +0 -5
  80. package/dist/cli/validators/index.d.ts.map +0 -1
  81. package/dist/cli/validators/index.js +0 -5
  82. package/dist/cli/validators/index.js.map +0 -1
  83. package/dist/common/config/Config.d.ts +0 -142
  84. package/dist/common/config/Config.d.ts.map +0 -1
  85. package/dist/common/config/Config.js +0 -382
  86. package/dist/common/config/Config.js.map +0 -1
  87. package/dist/common/config/ConfigLoader.d.ts +0 -49
  88. package/dist/common/config/ConfigLoader.d.ts.map +0 -1
  89. package/dist/common/config/ConfigLoader.js +0 -180
  90. package/dist/common/config/ConfigLoader.js.map +0 -1
  91. package/dist/common/config/PackageFilterConfig.d.ts +0 -56
  92. package/dist/common/config/PackageFilterConfig.d.ts.map +0 -1
  93. package/dist/common/config/PackageFilterConfig.js +0 -94
  94. package/dist/common/config/PackageFilterConfig.js.map +0 -1
  95. package/dist/common/config/index.d.ts +0 -8
  96. package/dist/common/config/index.d.ts.map +0 -1
  97. package/dist/common/config/index.js +0 -8
  98. package/dist/common/config/index.js.map +0 -1
  99. package/dist/common/error-handling/ErrorTracker.d.ts +0 -48
  100. package/dist/common/error-handling/ErrorTracker.d.ts.map +0 -1
  101. package/dist/common/error-handling/ErrorTracker.js +0 -93
  102. package/dist/common/error-handling/ErrorTracker.js.map +0 -1
  103. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts +0 -74
  104. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts.map +0 -1
  105. package/dist/common/error-handling/UserFriendlyErrorHandler.js +0 -703
  106. package/dist/common/error-handling/UserFriendlyErrorHandler.js.map +0 -1
  107. package/dist/common/error-handling/index.d.ts +0 -11
  108. package/dist/common/error-handling/index.d.ts.map +0 -1
  109. package/dist/common/error-handling/index.js +0 -9
  110. package/dist/common/error-handling/index.js.map +0 -1
  111. package/dist/common/logger/Logger.d.ts +0 -110
  112. package/dist/common/logger/Logger.d.ts.map +0 -1
  113. package/dist/common/logger/Logger.js +0 -289
  114. package/dist/common/logger/Logger.js.map +0 -1
  115. package/dist/common/logger/index.d.ts +0 -6
  116. package/dist/common/logger/index.d.ts.map +0 -1
  117. package/dist/common/logger/index.js +0 -6
  118. package/dist/common/logger/index.js.map +0 -1
  119. package/dist/common/types/cli.d.ts +0 -265
  120. package/dist/common/types/cli.d.ts.map +0 -1
  121. package/dist/common/types/cli.js +0 -5
  122. package/dist/common/types/cli.js.map +0 -1
  123. package/dist/common/types/core.d.ts +0 -270
  124. package/dist/common/types/core.d.ts.map +0 -1
  125. package/dist/common/types/core.js +0 -32
  126. package/dist/common/types/core.js.map +0 -1
  127. package/dist/common/types/index.d.ts +0 -8
  128. package/dist/common/types/index.d.ts.map +0 -1
  129. package/dist/common/types/index.js +0 -8
  130. package/dist/common/types/index.js.map +0 -1
  131. package/dist/common/utils/VersionChecker.d.ts +0 -54
  132. package/dist/common/utils/VersionChecker.d.ts.map +0 -1
  133. package/dist/common/utils/VersionChecker.js +0 -180
  134. package/dist/common/utils/VersionChecker.js.map +0 -1
  135. package/dist/common/utils/async.d.ts +0 -74
  136. package/dist/common/utils/async.d.ts.map +0 -1
  137. package/dist/common/utils/async.js +0 -228
  138. package/dist/common/utils/async.js.map +0 -1
  139. package/dist/common/utils/format.d.ts +0 -32
  140. package/dist/common/utils/format.d.ts.map +0 -1
  141. package/dist/common/utils/format.js +0 -121
  142. package/dist/common/utils/format.js.map +0 -1
  143. package/dist/common/utils/git.d.ts +0 -44
  144. package/dist/common/utils/git.d.ts.map +0 -1
  145. package/dist/common/utils/git.js +0 -147
  146. package/dist/common/utils/git.js.map +0 -1
  147. package/dist/common/utils/index.d.ts +0 -12
  148. package/dist/common/utils/index.d.ts.map +0 -1
  149. package/dist/common/utils/index.js +0 -12
  150. package/dist/common/utils/index.js.map +0 -1
  151. package/dist/common/utils/string.d.ts +0 -56
  152. package/dist/common/utils/string.d.ts.map +0 -1
  153. package/dist/common/utils/string.js +0 -134
  154. package/dist/common/utils/string.js.map +0 -1
  155. package/dist/common/utils/validation.d.ts +0 -88
  156. package/dist/common/utils/validation.d.ts.map +0 -1
  157. package/dist/common/utils/validation.js +0 -308
  158. package/dist/common/utils/validation.js.map +0 -1
  159. package/dist/domain/entities/Catalog.d.ts +0 -117
  160. package/dist/domain/entities/Catalog.d.ts.map +0 -1
  161. package/dist/domain/entities/Catalog.js +0 -240
  162. package/dist/domain/entities/Catalog.js.map +0 -1
  163. package/dist/domain/entities/Package.d.ts +0 -143
  164. package/dist/domain/entities/Package.d.ts.map +0 -1
  165. package/dist/domain/entities/Package.js +0 -272
  166. package/dist/domain/entities/Package.js.map +0 -1
  167. package/dist/domain/entities/Workspace.d.ts +0 -95
  168. package/dist/domain/entities/Workspace.d.ts.map +0 -1
  169. package/dist/domain/entities/Workspace.js +0 -173
  170. package/dist/domain/entities/Workspace.js.map +0 -1
  171. package/dist/domain/repositories/WorkspaceRepository.d.ts +0 -41
  172. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +0 -1
  173. package/dist/domain/repositories/WorkspaceRepository.js +0 -8
  174. package/dist/domain/repositories/WorkspaceRepository.js.map +0 -1
  175. package/dist/domain/value-objects/CatalogCollection.d.ts +0 -106
  176. package/dist/domain/value-objects/CatalogCollection.d.ts.map +0 -1
  177. package/dist/domain/value-objects/CatalogCollection.js +0 -230
  178. package/dist/domain/value-objects/CatalogCollection.js.map +0 -1
  179. package/dist/domain/value-objects/PackageCollection.d.ts +0 -122
  180. package/dist/domain/value-objects/PackageCollection.d.ts.map +0 -1
  181. package/dist/domain/value-objects/PackageCollection.js +0 -263
  182. package/dist/domain/value-objects/PackageCollection.js.map +0 -1
  183. package/dist/domain/value-objects/Version.d.ts +0 -141
  184. package/dist/domain/value-objects/Version.d.ts.map +0 -1
  185. package/dist/domain/value-objects/Version.js +0 -268
  186. package/dist/domain/value-objects/Version.js.map +0 -1
  187. package/dist/domain/value-objects/WorkspaceConfig.d.ts +0 -144
  188. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +0 -1
  189. package/dist/domain/value-objects/WorkspaceConfig.js +0 -357
  190. package/dist/domain/value-objects/WorkspaceConfig.js.map +0 -1
  191. package/dist/domain/value-objects/WorkspaceId.d.ts +0 -51
  192. package/dist/domain/value-objects/WorkspaceId.d.ts.map +0 -1
  193. package/dist/domain/value-objects/WorkspaceId.js +0 -104
  194. package/dist/domain/value-objects/WorkspaceId.js.map +0 -1
  195. package/dist/domain/value-objects/WorkspacePath.d.ts +0 -75
  196. package/dist/domain/value-objects/WorkspacePath.d.ts.map +0 -1
  197. package/dist/domain/value-objects/WorkspacePath.js +0 -128
  198. package/dist/domain/value-objects/WorkspacePath.js.map +0 -1
  199. package/dist/index.d.ts +0 -25
  200. package/dist/index.d.ts.map +0 -1
  201. package/dist/infrastructure/cache/Cache.d.ts +0 -161
  202. package/dist/infrastructure/cache/Cache.d.ts.map +0 -1
  203. package/dist/infrastructure/cache/Cache.js +0 -398
  204. package/dist/infrastructure/cache/Cache.js.map +0 -1
  205. package/dist/infrastructure/cache/index.d.ts +0 -6
  206. package/dist/infrastructure/cache/index.d.ts.map +0 -1
  207. package/dist/infrastructure/cache/index.js +0 -6
  208. package/dist/infrastructure/cache/index.js.map +0 -1
  209. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +0 -153
  210. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  211. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -511
  212. package/dist/infrastructure/external-services/NpmRegistryService.js.map +0 -1
  213. package/dist/infrastructure/file-system/FileSystemService.d.ts +0 -120
  214. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +0 -1
  215. package/dist/infrastructure/file-system/FileSystemService.js +0 -663
  216. package/dist/infrastructure/file-system/FileSystemService.js.map +0 -1
  217. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +0 -57
  218. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +0 -1
  219. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +0 -179
  220. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +0 -1
  221. package/dist/infrastructure/utils/NpmrcParser.d.ts +0 -40
  222. package/dist/infrastructure/utils/NpmrcParser.d.ts.map +0 -1
  223. package/dist/infrastructure/utils/NpmrcParser.js +0 -157
  224. package/dist/infrastructure/utils/NpmrcParser.js.map +0 -1
@@ -1,180 +0,0 @@
1
- /**
2
- * Version Checker Utility
3
- *
4
- * Checks for newer versions of the PCU tool and provides update prompts.
5
- */
6
- import chalk from 'chalk';
7
- import { exec } from 'child_process';
8
- import { promisify } from 'util';
9
- import { InteractivePrompts } from '../../cli/interactive/InteractivePrompts.js';
10
- const execAsync = promisify(exec);
11
- export class VersionChecker {
12
- static DEFAULT_TIMEOUT = 5000; // 5 seconds
13
- static DEFAULT_PACKAGE = 'pnpm-catalog-updates';
14
- /**
15
- * Check if current version is the latest
16
- */
17
- static async checkVersion(currentVersion, options = {}) {
18
- const { skipPrompt = false, timeout = this.DEFAULT_TIMEOUT, packageName = this.DEFAULT_PACKAGE, } = options;
19
- try {
20
- // Get latest version from npm with timeout
21
- const latestVersion = await this.getLatestVersion(packageName, timeout);
22
- const isLatest = this.compareVersions(currentVersion, latestVersion) >= 0;
23
- return {
24
- isLatest,
25
- currentVersion,
26
- latestVersion,
27
- shouldPrompt: !isLatest && !skipPrompt,
28
- };
29
- }
30
- catch (error) {
31
- console.warn(chalk.yellow('⚠️ Failed to check for updates:'), error);
32
- return {
33
- isLatest: true, // Assume latest if check fails
34
- currentVersion,
35
- latestVersion: currentVersion,
36
- shouldPrompt: false,
37
- };
38
- }
39
- }
40
- /**
41
- * Prompt user for update and execute if confirmed
42
- */
43
- static async promptAndUpdate(versionResult) {
44
- if (!versionResult.shouldPrompt) {
45
- return false;
46
- }
47
- console.log();
48
- console.log(chalk.cyan('📦 Update Available!'));
49
- console.log(chalk.gray(`Current version: ${versionResult.currentVersion} → Latest: ${versionResult.latestVersion}`));
50
- console.log();
51
- const interactive = new InteractivePrompts();
52
- const shouldUpdate = await interactive.confirmUpdate('Would you like to update to the latest version?');
53
- if (shouldUpdate) {
54
- console.log(chalk.blue('🔄 Updating pnpm-catalog-updates...'));
55
- try {
56
- await this.performUpdate();
57
- console.log(chalk.green('✅ Successfully updated! Please restart the command.'));
58
- return true;
59
- }
60
- catch (error) {
61
- console.error(chalk.red('❌ Update failed:'), error);
62
- console.log(chalk.gray('You can manually update with: npm install -g pnpm-catalog-updates@latest'));
63
- return false;
64
- }
65
- }
66
- return false;
67
- }
68
- /**
69
- * Get latest version from npm registry
70
- */
71
- static async getLatestVersion(packageName, timeout) {
72
- const command = `npm view ${packageName} version`;
73
- try {
74
- const { stdout } = await this.executeWithTimeout(command, timeout);
75
- return stdout.trim();
76
- }
77
- catch (error) {
78
- // Fallback: try with different npm commands
79
- try {
80
- const { stdout } = await this.executeWithTimeout(`npm info ${packageName} version`, timeout);
81
- return stdout.trim();
82
- }
83
- catch (fallbackError) {
84
- throw new Error(`Failed to get latest version: ${error}`);
85
- }
86
- }
87
- }
88
- /**
89
- * Execute update command
90
- */
91
- static async performUpdate() {
92
- // Try global update first, then fallback to different methods
93
- const commands = [
94
- 'npm install -g pnpm-catalog-updates@latest',
95
- 'npm update -g pnpm-catalog-updates',
96
- 'pnpm add -g pnpm-catalog-updates@latest',
97
- 'yarn global add pnpm-catalog-updates@latest',
98
- ];
99
- for (const command of commands) {
100
- try {
101
- console.log(chalk.gray(`Executing: ${command}`));
102
- await execAsync(command, { timeout: 30000 });
103
- return; // Success
104
- }
105
- catch (error) {
106
- console.warn(chalk.yellow(`Command failed: ${command}`));
107
- // Continue to next command
108
- }
109
- }
110
- throw new Error('All update commands failed');
111
- }
112
- /**
113
- * Execute command with timeout
114
- */
115
- static async executeWithTimeout(command, timeout) {
116
- return new Promise((resolve, reject) => {
117
- const child = exec(command, { timeout }, (error, stdout, stderr) => {
118
- if (error) {
119
- reject(error);
120
- }
121
- else {
122
- resolve({ stdout, stderr });
123
- }
124
- });
125
- // Additional timeout handling
126
- const timer = setTimeout(() => {
127
- child.kill();
128
- reject(new Error(`Command timed out after ${timeout}ms`));
129
- }, timeout);
130
- child.on('exit', () => {
131
- clearTimeout(timer);
132
- });
133
- });
134
- }
135
- /**
136
- * Compare two version strings
137
- * Returns: -1 if a < b, 0 if a === b, 1 if a > b
138
- */
139
- static compareVersions(a, b) {
140
- const cleanA = a.replace(/^v/, '').replace(/[^0-9.]/g, '');
141
- const cleanB = b.replace(/^v/, '').replace(/[^0-9.]/g, '');
142
- const partsA = cleanA.split('.').map(Number);
143
- const partsB = cleanB.split('.').map(Number);
144
- const maxLength = Math.max(partsA.length, partsB.length);
145
- for (let i = 0; i < maxLength; i++) {
146
- const partA = partsA[i] || 0;
147
- const partB = partsB[i] || 0;
148
- if (partA < partB)
149
- return -1;
150
- if (partA > partB)
151
- return 1;
152
- }
153
- return 0;
154
- }
155
- /**
156
- * Check if running in CI environment where prompts should be skipped
157
- */
158
- static isCI() {
159
- return !!(process.env.CI ||
160
- process.env.CONTINUOUS_INTEGRATION ||
161
- process.env.BUILD_NUMBER ||
162
- process.env.RUN_ID ||
163
- process.env.GITHUB_ACTIONS);
164
- }
165
- /**
166
- * Get update frequency preference from environment
167
- */
168
- static shouldCheckForUpdates() {
169
- const skipCheck = process.env.PCU_SKIP_VERSION_CHECK;
170
- if (skipCheck === 'true' || skipCheck === '1') {
171
- return false;
172
- }
173
- // Skip in CI environments by default
174
- if (this.isCI()) {
175
- return false;
176
- }
177
- return true;
178
- }
179
- }
180
- //# sourceMappingURL=VersionChecker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VersionChecker.js","sourceRoot":"","sources":["../../../src/common/utils/VersionChecker.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Async Utilities
3
- */
4
- /**
5
- * Delay execution for specified milliseconds
6
- */
7
- export declare function delay(ms: number): Promise<void>;
8
- /**
9
- * Retry a function with exponential backoff
10
- */
11
- export declare function retry<T>(fn: () => Promise<T>, options?: {
12
- maxAttempts?: number;
13
- baseDelay?: number;
14
- maxDelay?: number;
15
- backoffFactor?: number;
16
- shouldRetry?: (error: any) => boolean;
17
- }): Promise<T>;
18
- /**
19
- * Execute functions in parallel with concurrency limit
20
- */
21
- export declare function parallelLimit<T, R>(items: T[], fn: (item: T, index: number) => Promise<R>, limit?: number): Promise<R[]>;
22
- /**
23
- * Race with timeout
24
- */
25
- export declare function timeout<T>(promise: Promise<T>, ms: number, message?: string): Promise<T>;
26
- /**
27
- * Debounce async function
28
- */
29
- export declare function debounce<T extends (...args: any[]) => Promise<any>>(fn: T, ms: number): T;
30
- /**
31
- * Throttle async function
32
- */
33
- export declare function throttle<T extends (...args: any[]) => Promise<any>>(fn: T, ms: number): T;
34
- /**
35
- * Create a cancelable promise
36
- */
37
- export declare function cancelable<T>(promise: Promise<T>): {
38
- promise: Promise<T>;
39
- cancel: () => void;
40
- };
41
- /**
42
- * Execute async function with circuit breaker pattern
43
- */
44
- export declare class CircuitBreaker<T extends (...args: any[]) => Promise<any>> {
45
- private fn;
46
- private options;
47
- private failures;
48
- private lastFailureTime;
49
- private state;
50
- constructor(fn: T, options?: {
51
- failureThreshold?: number;
52
- recoveryTimeout?: number;
53
- monitoringPeriod?: number;
54
- });
55
- execute(...args: Parameters<T>): Promise<ReturnType<T>>;
56
- private onSuccess;
57
- private onFailure;
58
- getState(): string;
59
- reset(): void;
60
- }
61
- /**
62
- * Async queue with concurrency control
63
- */
64
- export declare class AsyncQueue<T = any> {
65
- private concurrency;
66
- private queue;
67
- private running;
68
- constructor(concurrency?: number);
69
- add<R>(fn: () => Promise<R>): Promise<R>;
70
- private process;
71
- size(): number;
72
- clear(): void;
73
- }
74
- //# sourceMappingURL=async.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/common/utils/async.ts"],"names":[],"mappings":"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"}
@@ -1,228 +0,0 @@
1
- /**
2
- * Async Utilities
3
- */
4
- /**
5
- * Delay execution for specified milliseconds
6
- */
7
- export function delay(ms) {
8
- return new Promise((resolve) => setTimeout(resolve, ms));
9
- }
10
- /**
11
- * Retry a function with exponential backoff
12
- */
13
- export async function retry(fn, options = {}) {
14
- const { maxAttempts = 3, baseDelay = 1000, maxDelay = 30000, backoffFactor = 2, shouldRetry = () => true, } = options;
15
- let lastError;
16
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
17
- try {
18
- return await fn();
19
- }
20
- catch (error) {
21
- lastError = error;
22
- if (attempt === maxAttempts || !shouldRetry(error)) {
23
- throw error;
24
- }
25
- const delayMs = Math.min(baseDelay * Math.pow(backoffFactor, attempt - 1), maxDelay);
26
- await delay(delayMs);
27
- }
28
- }
29
- throw lastError;
30
- }
31
- /**
32
- * Execute functions in parallel with concurrency limit
33
- */
34
- export async function parallelLimit(items, fn, limit = 5) {
35
- const results = new Array(items.length);
36
- const executing = [];
37
- for (let i = 0; i < items.length; i++) {
38
- const promise = fn(items[i], i).then((result) => {
39
- results[i] = result;
40
- });
41
- executing.push(promise);
42
- if (executing.length >= limit) {
43
- await Promise.race(executing);
44
- executing.splice(executing.findIndex((p) => p === promise), 1);
45
- }
46
- }
47
- await Promise.all(executing);
48
- return results;
49
- }
50
- /**
51
- * Race with timeout
52
- */
53
- export async function timeout(promise, ms, message) {
54
- const timeoutPromise = new Promise((_, reject) => {
55
- setTimeout(() => {
56
- reject(new Error(message || `Operation timed out after ${ms}ms`));
57
- }, ms);
58
- });
59
- return Promise.race([promise, timeoutPromise]);
60
- }
61
- /**
62
- * Debounce async function
63
- */
64
- export function debounce(fn, ms) {
65
- let timeoutId;
66
- let latestResolve;
67
- let latestReject;
68
- return ((...args) => {
69
- return new Promise((resolve, reject) => {
70
- latestResolve = resolve;
71
- latestReject = reject;
72
- clearTimeout(timeoutId);
73
- timeoutId = setTimeout(async () => {
74
- try {
75
- const result = await fn(...args);
76
- latestResolve?.(result);
77
- }
78
- catch (error) {
79
- latestReject?.(error);
80
- }
81
- }, ms);
82
- });
83
- });
84
- }
85
- /**
86
- * Throttle async function
87
- */
88
- export function throttle(fn, ms) {
89
- let inThrottle = false;
90
- let lastResult;
91
- return (async (...args) => {
92
- if (!inThrottle) {
93
- inThrottle = true;
94
- lastResult = await fn(...args);
95
- setTimeout(() => {
96
- inThrottle = false;
97
- }, ms);
98
- }
99
- return lastResult;
100
- });
101
- }
102
- /**
103
- * Create a cancelable promise
104
- */
105
- export function cancelable(promise) {
106
- let isCanceled = false;
107
- const cancelablePromise = new Promise((resolve, reject) => {
108
- promise
109
- .then((value) => {
110
- if (!isCanceled) {
111
- resolve(value);
112
- }
113
- })
114
- .catch((error) => {
115
- if (!isCanceled) {
116
- reject(error);
117
- }
118
- });
119
- });
120
- return {
121
- promise: cancelablePromise,
122
- cancel: () => {
123
- isCanceled = true;
124
- },
125
- };
126
- }
127
- /**
128
- * Execute async function with circuit breaker pattern
129
- */
130
- export class CircuitBreaker {
131
- fn;
132
- options;
133
- failures = 0;
134
- lastFailureTime = 0;
135
- state = 'closed';
136
- constructor(fn, options = {}) {
137
- this.fn = fn;
138
- this.options = options;
139
- const { failureThreshold = 5, recoveryTimeout = 60000, monitoringPeriod = 10000 } = options;
140
- this.options = { failureThreshold, recoveryTimeout, monitoringPeriod };
141
- }
142
- async execute(...args) {
143
- if (this.state === 'open') {
144
- if (Date.now() - this.lastFailureTime > this.options.recoveryTimeout) {
145
- this.state = 'half-open';
146
- }
147
- else {
148
- throw new Error('Circuit breaker is open');
149
- }
150
- }
151
- try {
152
- const result = await this.fn(...args);
153
- this.onSuccess();
154
- return result;
155
- }
156
- catch (error) {
157
- this.onFailure();
158
- throw error;
159
- }
160
- }
161
- onSuccess() {
162
- this.failures = 0;
163
- this.state = 'closed';
164
- }
165
- onFailure() {
166
- this.failures++;
167
- this.lastFailureTime = Date.now();
168
- if (this.failures >= this.options.failureThreshold) {
169
- this.state = 'open';
170
- }
171
- }
172
- getState() {
173
- return this.state;
174
- }
175
- reset() {
176
- this.failures = 0;
177
- this.state = 'closed';
178
- this.lastFailureTime = 0;
179
- }
180
- }
181
- /**
182
- * Async queue with concurrency control
183
- */
184
- export class AsyncQueue {
185
- concurrency;
186
- queue = [];
187
- running = 0;
188
- constructor(concurrency = 1) {
189
- this.concurrency = concurrency;
190
- }
191
- async add(fn) {
192
- return new Promise((resolve, reject) => {
193
- this.queue.push(async () => {
194
- try {
195
- const result = await fn();
196
- resolve(result);
197
- return result;
198
- }
199
- catch (error) {
200
- reject(error);
201
- throw error;
202
- }
203
- });
204
- this.process();
205
- });
206
- }
207
- async process() {
208
- if (this.running >= this.concurrency || this.queue.length === 0) {
209
- return;
210
- }
211
- this.running++;
212
- const fn = this.queue.shift();
213
- try {
214
- await fn();
215
- }
216
- finally {
217
- this.running--;
218
- this.process();
219
- }
220
- }
221
- size() {
222
- return this.queue.length;
223
- }
224
- clear() {
225
- this.queue.length = 0;
226
- }
227
- }
228
- //# sourceMappingURL=async.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/common/utils/async.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Format Utilities
3
- */
4
- /**
5
- * Format bytes to human readable string
6
- */
7
- export declare function formatBytes(bytes: number, decimals?: number): string;
8
- /**
9
- * Format duration in milliseconds to human readable string
10
- */
11
- export declare function formatDuration(ms: number): string;
12
- /**
13
- * Format number with thousands separator
14
- */
15
- export declare function formatNumber(num: number, separator?: string): string;
16
- /**
17
- * Format percentage
18
- */
19
- export declare function formatPercentage(value: number, total: number, decimals?: number): string;
20
- /**
21
- * Format timestamp to relative time
22
- */
23
- export declare function formatRelativeTime(timestamp: number | Date): string;
24
- /**
25
- * Format table data
26
- */
27
- export declare function formatTable(headers: string[], rows: string[][], options?: {
28
- padding?: number;
29
- align?: Array<'left' | 'center' | 'right'>;
30
- borders?: boolean;
31
- }): string;
32
- //# sourceMappingURL=format.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAUvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAI3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAcnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EAAE,EAAE,EAChB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,MAAM,CAiER"}
@@ -1,121 +0,0 @@
1
- /**
2
- * Format Utilities
3
- */
4
- /**
5
- * Format bytes to human readable string
6
- */
7
- export function formatBytes(bytes, decimals = 2) {
8
- if (bytes === 0)
9
- return '0 Bytes';
10
- const k = 1024;
11
- const dm = decimals < 0 ? 0 : decimals;
12
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
13
- const i = Math.floor(Math.log(bytes) / Math.log(k));
14
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
15
- }
16
- /**
17
- * Format duration in milliseconds to human readable string
18
- */
19
- export function formatDuration(ms) {
20
- if (ms < 1000)
21
- return `${ms}ms`;
22
- if (ms < 60000)
23
- return `${(ms / 1000).toFixed(1)}s`;
24
- if (ms < 3600000)
25
- return `${(ms / 60000).toFixed(1)}m`;
26
- return `${(ms / 3600000).toFixed(1)}h`;
27
- }
28
- /**
29
- * Format number with thousands separator
30
- */
31
- export function formatNumber(num, separator = ',') {
32
- return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator);
33
- }
34
- /**
35
- * Format percentage
36
- */
37
- export function formatPercentage(value, total, decimals = 1) {
38
- if (total === 0)
39
- return '0%';
40
- const percentage = (value / total) * 100;
41
- return `${percentage.toFixed(decimals)}%`;
42
- }
43
- /**
44
- * Format timestamp to relative time
45
- */
46
- export function formatRelativeTime(timestamp) {
47
- const now = Date.now();
48
- const time = typeof timestamp === 'number' ? timestamp : timestamp.getTime();
49
- const diff = now - time;
50
- const seconds = Math.floor(diff / 1000);
51
- const minutes = Math.floor(seconds / 60);
52
- const hours = Math.floor(minutes / 60);
53
- const days = Math.floor(hours / 24);
54
- if (days > 0)
55
- return `${days} day${days === 1 ? '' : 's'} ago`;
56
- if (hours > 0)
57
- return `${hours} hour${hours === 1 ? '' : 's'} ago`;
58
- if (minutes > 0)
59
- return `${minutes} minute${minutes === 1 ? '' : 's'} ago`;
60
- return `${seconds} second${seconds === 1 ? '' : 's'} ago`;
61
- }
62
- /**
63
- * Format table data
64
- */
65
- export function formatTable(headers, rows, options = {}) {
66
- const { padding = 1, align = [], borders = true } = options;
67
- if (rows.length === 0)
68
- return '';
69
- // Calculate column widths
70
- const widths = headers.map((header, i) => {
71
- const columnValues = [header, ...rows.map((row) => row[i] || '')];
72
- return Math.max(...columnValues.map((val) => val.length));
73
- });
74
- // Format row function
75
- const formatRow = (cells, _isHeader = false) => {
76
- const formattedCells = cells.map((cell, i) => {
77
- const width = widths[i] || 0;
78
- const alignment = align[i] || 'left';
79
- let formatted = cell;
80
- if (alignment === 'center') {
81
- const totalPad = width - cell.length;
82
- const leftPad = Math.floor(totalPad / 2);
83
- const rightPad = totalPad - leftPad;
84
- formatted = ' '.repeat(leftPad) + cell + ' '.repeat(rightPad);
85
- }
86
- else if (alignment === 'right') {
87
- formatted = cell.padStart(width);
88
- }
89
- else {
90
- formatted = cell.padEnd(width);
91
- }
92
- return ' '.repeat(padding) + formatted + ' '.repeat(padding);
93
- });
94
- return borders ? `|${formattedCells.join('|')}|` : formattedCells.join(' ');
95
- };
96
- // Build table
97
- const lines = [];
98
- if (borders) {
99
- // Top border
100
- const topBorder = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
101
- lines.push(`+${topBorder}+`);
102
- }
103
- // Header
104
- lines.push(formatRow(headers, true));
105
- if (borders) {
106
- // Header separator
107
- const headerSep = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
108
- lines.push(`+${headerSep}+`);
109
- }
110
- // Rows
111
- rows.forEach((row) => {
112
- lines.push(formatRow(row));
113
- });
114
- if (borders) {
115
- // Bottom border
116
- const bottomBorder = widths.map((w) => '-'.repeat(w + padding * 2)).join('+');
117
- lines.push(`+${bottomBorder}+`);
118
- }
119
- return lines.join('\n');
120
- }
121
- //# sourceMappingURL=format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/common/utils/format.ts"],"names":[],"mappings":"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"}