pcu 0.5.7 → 0.6.4

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 (223) 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 +36 -84
  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/README.ja.md +0 -587
  20. package/README.md +0 -694
  21. package/README.zh-CN.md +0 -634
  22. package/dist/application/services/CatalogUpdateService.d.ts +0 -209
  23. package/dist/application/services/CatalogUpdateService.d.ts.map +0 -1
  24. package/dist/application/services/CatalogUpdateService.js +0 -839
  25. package/dist/application/services/CatalogUpdateService.js.map +0 -1
  26. package/dist/application/services/WorkspaceService.d.ts +0 -139
  27. package/dist/application/services/WorkspaceService.d.ts.map +0 -1
  28. package/dist/application/services/WorkspaceService.js +0 -340
  29. package/dist/application/services/WorkspaceService.js.map +0 -1
  30. package/dist/cli/commands/CheckCommand.d.ts +0 -40
  31. package/dist/cli/commands/CheckCommand.d.ts.map +0 -1
  32. package/dist/cli/commands/CheckCommand.js +0 -177
  33. package/dist/cli/commands/CheckCommand.js.map +0 -1
  34. package/dist/cli/commands/InitCommand.d.ts +0 -53
  35. package/dist/cli/commands/InitCommand.d.ts.map +0 -1
  36. package/dist/cli/commands/InitCommand.js +0 -338
  37. package/dist/cli/commands/InitCommand.js.map +0 -1
  38. package/dist/cli/commands/SecurityCommand.d.ts +0 -113
  39. package/dist/cli/commands/SecurityCommand.d.ts.map +0 -1
  40. package/dist/cli/commands/SecurityCommand.js +0 -410
  41. package/dist/cli/commands/SecurityCommand.js.map +0 -1
  42. package/dist/cli/commands/UpdateCommand.d.ts +0 -44
  43. package/dist/cli/commands/UpdateCommand.d.ts.map +0 -1
  44. package/dist/cli/commands/UpdateCommand.js +0 -189
  45. package/dist/cli/commands/UpdateCommand.js.map +0 -1
  46. package/dist/cli/formatters/OutputFormatter.d.ts +0 -116
  47. package/dist/cli/formatters/OutputFormatter.d.ts.map +0 -1
  48. package/dist/cli/formatters/OutputFormatter.js +0 -664
  49. package/dist/cli/formatters/OutputFormatter.js.map +0 -1
  50. package/dist/cli/formatters/ProgressBar.d.ts +0 -195
  51. package/dist/cli/formatters/ProgressBar.d.ts.map +0 -1
  52. package/dist/cli/formatters/ProgressBar.js +0 -622
  53. package/dist/cli/formatters/ProgressBar.js.map +0 -1
  54. package/dist/cli/index.d.ts +0 -12
  55. package/dist/cli/index.d.ts.map +0 -1
  56. package/dist/cli/index.js +0 -492
  57. package/dist/cli/index.js.map +0 -1
  58. package/dist/cli/interactive/InteractivePrompts.d.ts +0 -85
  59. package/dist/cli/interactive/InteractivePrompts.d.ts.map +0 -1
  60. package/dist/cli/interactive/InteractivePrompts.js +0 -434
  61. package/dist/cli/interactive/InteractivePrompts.js.map +0 -1
  62. package/dist/cli/options/GlobalOptions.d.ts +0 -117
  63. package/dist/cli/options/GlobalOptions.d.ts.map +0 -1
  64. package/dist/cli/options/GlobalOptions.js +0 -278
  65. package/dist/cli/options/GlobalOptions.js.map +0 -1
  66. package/dist/cli/options/index.d.ts +0 -5
  67. package/dist/cli/options/index.d.ts.map +0 -1
  68. package/dist/cli/options/index.js +0 -5
  69. package/dist/cli/options/index.js.map +0 -1
  70. package/dist/cli/themes/ColorTheme.d.ts +0 -211
  71. package/dist/cli/themes/ColorTheme.d.ts.map +0 -1
  72. package/dist/cli/themes/ColorTheme.js +0 -267
  73. package/dist/cli/themes/ColorTheme.js.map +0 -1
  74. package/dist/cli/validators/CommandValidator.d.ts +0 -60
  75. package/dist/cli/validators/CommandValidator.d.ts.map +0 -1
  76. package/dist/cli/validators/CommandValidator.js +0 -319
  77. package/dist/cli/validators/CommandValidator.js.map +0 -1
  78. package/dist/cli/validators/index.d.ts +0 -5
  79. package/dist/cli/validators/index.d.ts.map +0 -1
  80. package/dist/cli/validators/index.js +0 -5
  81. package/dist/cli/validators/index.js.map +0 -1
  82. package/dist/common/config/Config.d.ts +0 -142
  83. package/dist/common/config/Config.d.ts.map +0 -1
  84. package/dist/common/config/Config.js +0 -382
  85. package/dist/common/config/Config.js.map +0 -1
  86. package/dist/common/config/ConfigLoader.d.ts +0 -49
  87. package/dist/common/config/ConfigLoader.d.ts.map +0 -1
  88. package/dist/common/config/ConfigLoader.js +0 -180
  89. package/dist/common/config/ConfigLoader.js.map +0 -1
  90. package/dist/common/config/PackageFilterConfig.d.ts +0 -56
  91. package/dist/common/config/PackageFilterConfig.d.ts.map +0 -1
  92. package/dist/common/config/PackageFilterConfig.js +0 -94
  93. package/dist/common/config/PackageFilterConfig.js.map +0 -1
  94. package/dist/common/config/index.d.ts +0 -8
  95. package/dist/common/config/index.d.ts.map +0 -1
  96. package/dist/common/config/index.js +0 -8
  97. package/dist/common/config/index.js.map +0 -1
  98. package/dist/common/error-handling/ErrorTracker.d.ts +0 -48
  99. package/dist/common/error-handling/ErrorTracker.d.ts.map +0 -1
  100. package/dist/common/error-handling/ErrorTracker.js +0 -93
  101. package/dist/common/error-handling/ErrorTracker.js.map +0 -1
  102. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts +0 -74
  103. package/dist/common/error-handling/UserFriendlyErrorHandler.d.ts.map +0 -1
  104. package/dist/common/error-handling/UserFriendlyErrorHandler.js +0 -703
  105. package/dist/common/error-handling/UserFriendlyErrorHandler.js.map +0 -1
  106. package/dist/common/error-handling/index.d.ts +0 -11
  107. package/dist/common/error-handling/index.d.ts.map +0 -1
  108. package/dist/common/error-handling/index.js +0 -9
  109. package/dist/common/error-handling/index.js.map +0 -1
  110. package/dist/common/logger/Logger.d.ts +0 -110
  111. package/dist/common/logger/Logger.d.ts.map +0 -1
  112. package/dist/common/logger/Logger.js +0 -289
  113. package/dist/common/logger/Logger.js.map +0 -1
  114. package/dist/common/logger/index.d.ts +0 -6
  115. package/dist/common/logger/index.d.ts.map +0 -1
  116. package/dist/common/logger/index.js +0 -6
  117. package/dist/common/logger/index.js.map +0 -1
  118. package/dist/common/types/cli.d.ts +0 -265
  119. package/dist/common/types/cli.d.ts.map +0 -1
  120. package/dist/common/types/cli.js +0 -5
  121. package/dist/common/types/cli.js.map +0 -1
  122. package/dist/common/types/core.d.ts +0 -270
  123. package/dist/common/types/core.d.ts.map +0 -1
  124. package/dist/common/types/core.js +0 -32
  125. package/dist/common/types/core.js.map +0 -1
  126. package/dist/common/types/index.d.ts +0 -8
  127. package/dist/common/types/index.d.ts.map +0 -1
  128. package/dist/common/types/index.js +0 -8
  129. package/dist/common/types/index.js.map +0 -1
  130. package/dist/common/utils/VersionChecker.d.ts +0 -54
  131. package/dist/common/utils/VersionChecker.d.ts.map +0 -1
  132. package/dist/common/utils/VersionChecker.js +0 -180
  133. package/dist/common/utils/VersionChecker.js.map +0 -1
  134. package/dist/common/utils/async.d.ts +0 -74
  135. package/dist/common/utils/async.d.ts.map +0 -1
  136. package/dist/common/utils/async.js +0 -228
  137. package/dist/common/utils/async.js.map +0 -1
  138. package/dist/common/utils/format.d.ts +0 -32
  139. package/dist/common/utils/format.d.ts.map +0 -1
  140. package/dist/common/utils/format.js +0 -121
  141. package/dist/common/utils/format.js.map +0 -1
  142. package/dist/common/utils/git.d.ts +0 -44
  143. package/dist/common/utils/git.d.ts.map +0 -1
  144. package/dist/common/utils/git.js +0 -147
  145. package/dist/common/utils/git.js.map +0 -1
  146. package/dist/common/utils/index.d.ts +0 -12
  147. package/dist/common/utils/index.d.ts.map +0 -1
  148. package/dist/common/utils/index.js +0 -12
  149. package/dist/common/utils/index.js.map +0 -1
  150. package/dist/common/utils/string.d.ts +0 -56
  151. package/dist/common/utils/string.d.ts.map +0 -1
  152. package/dist/common/utils/string.js +0 -134
  153. package/dist/common/utils/string.js.map +0 -1
  154. package/dist/common/utils/validation.d.ts +0 -88
  155. package/dist/common/utils/validation.d.ts.map +0 -1
  156. package/dist/common/utils/validation.js +0 -308
  157. package/dist/common/utils/validation.js.map +0 -1
  158. package/dist/domain/entities/Catalog.d.ts +0 -117
  159. package/dist/domain/entities/Catalog.d.ts.map +0 -1
  160. package/dist/domain/entities/Catalog.js +0 -240
  161. package/dist/domain/entities/Catalog.js.map +0 -1
  162. package/dist/domain/entities/Package.d.ts +0 -143
  163. package/dist/domain/entities/Package.d.ts.map +0 -1
  164. package/dist/domain/entities/Package.js +0 -272
  165. package/dist/domain/entities/Package.js.map +0 -1
  166. package/dist/domain/entities/Workspace.d.ts +0 -95
  167. package/dist/domain/entities/Workspace.d.ts.map +0 -1
  168. package/dist/domain/entities/Workspace.js +0 -173
  169. package/dist/domain/entities/Workspace.js.map +0 -1
  170. package/dist/domain/repositories/WorkspaceRepository.d.ts +0 -41
  171. package/dist/domain/repositories/WorkspaceRepository.d.ts.map +0 -1
  172. package/dist/domain/repositories/WorkspaceRepository.js +0 -8
  173. package/dist/domain/repositories/WorkspaceRepository.js.map +0 -1
  174. package/dist/domain/value-objects/CatalogCollection.d.ts +0 -106
  175. package/dist/domain/value-objects/CatalogCollection.d.ts.map +0 -1
  176. package/dist/domain/value-objects/CatalogCollection.js +0 -230
  177. package/dist/domain/value-objects/CatalogCollection.js.map +0 -1
  178. package/dist/domain/value-objects/PackageCollection.d.ts +0 -122
  179. package/dist/domain/value-objects/PackageCollection.d.ts.map +0 -1
  180. package/dist/domain/value-objects/PackageCollection.js +0 -263
  181. package/dist/domain/value-objects/PackageCollection.js.map +0 -1
  182. package/dist/domain/value-objects/Version.d.ts +0 -141
  183. package/dist/domain/value-objects/Version.d.ts.map +0 -1
  184. package/dist/domain/value-objects/Version.js +0 -268
  185. package/dist/domain/value-objects/Version.js.map +0 -1
  186. package/dist/domain/value-objects/WorkspaceConfig.d.ts +0 -144
  187. package/dist/domain/value-objects/WorkspaceConfig.d.ts.map +0 -1
  188. package/dist/domain/value-objects/WorkspaceConfig.js +0 -357
  189. package/dist/domain/value-objects/WorkspaceConfig.js.map +0 -1
  190. package/dist/domain/value-objects/WorkspaceId.d.ts +0 -51
  191. package/dist/domain/value-objects/WorkspaceId.d.ts.map +0 -1
  192. package/dist/domain/value-objects/WorkspaceId.js +0 -104
  193. package/dist/domain/value-objects/WorkspaceId.js.map +0 -1
  194. package/dist/domain/value-objects/WorkspacePath.d.ts +0 -75
  195. package/dist/domain/value-objects/WorkspacePath.d.ts.map +0 -1
  196. package/dist/domain/value-objects/WorkspacePath.js +0 -128
  197. package/dist/domain/value-objects/WorkspacePath.js.map +0 -1
  198. package/dist/index.d.ts +0 -25
  199. package/dist/index.d.ts.map +0 -1
  200. package/dist/infrastructure/cache/Cache.d.ts +0 -161
  201. package/dist/infrastructure/cache/Cache.d.ts.map +0 -1
  202. package/dist/infrastructure/cache/Cache.js +0 -398
  203. package/dist/infrastructure/cache/Cache.js.map +0 -1
  204. package/dist/infrastructure/cache/index.d.ts +0 -6
  205. package/dist/infrastructure/cache/index.d.ts.map +0 -1
  206. package/dist/infrastructure/cache/index.js +0 -6
  207. package/dist/infrastructure/cache/index.js.map +0 -1
  208. package/dist/infrastructure/external-services/NpmRegistryService.d.ts +0 -153
  209. package/dist/infrastructure/external-services/NpmRegistryService.d.ts.map +0 -1
  210. package/dist/infrastructure/external-services/NpmRegistryService.js +0 -511
  211. package/dist/infrastructure/external-services/NpmRegistryService.js.map +0 -1
  212. package/dist/infrastructure/file-system/FileSystemService.d.ts +0 -120
  213. package/dist/infrastructure/file-system/FileSystemService.d.ts.map +0 -1
  214. package/dist/infrastructure/file-system/FileSystemService.js +0 -663
  215. package/dist/infrastructure/file-system/FileSystemService.js.map +0 -1
  216. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts +0 -57
  217. package/dist/infrastructure/repositories/FileWorkspaceRepository.d.ts.map +0 -1
  218. package/dist/infrastructure/repositories/FileWorkspaceRepository.js +0 -179
  219. package/dist/infrastructure/repositories/FileWorkspaceRepository.js.map +0 -1
  220. package/dist/infrastructure/utils/NpmrcParser.d.ts +0 -40
  221. package/dist/infrastructure/utils/NpmrcParser.d.ts.map +0 -1
  222. package/dist/infrastructure/utils/NpmrcParser.js +0 -157
  223. 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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"}