@houssem__/xxxx 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/OPTIMIZATION_GUIDE.md +122 -0
  2. package/README.md +586 -0
  3. package/dist/common/fast-installer.d.ts +20 -0
  4. package/dist/common/fast-installer.d.ts.map +1 -0
  5. package/dist/common/fast-installer.js +141 -0
  6. package/dist/common/fast-installer.js.map +1 -0
  7. package/dist/common/sync-utils.d.ts +104 -0
  8. package/dist/common/sync-utils.d.ts.map +1 -0
  9. package/dist/common/sync-utils.js +614 -0
  10. package/dist/common/sync-utils.js.map +1 -0
  11. package/dist/dependencies/categories/libs-categories.d.ts +3 -0
  12. package/dist/dependencies/categories/libs-categories.d.ts.map +1 -0
  13. package/dist/dependencies/categories/libs-categories.js +318 -0
  14. package/dist/dependencies/categories/libs-categories.js.map +1 -0
  15. package/dist/dependencies/mfes-libs/index.d.ts +25 -0
  16. package/dist/dependencies/mfes-libs/index.d.ts.map +1 -0
  17. package/dist/dependencies/mfes-libs/index.js +88 -0
  18. package/dist/dependencies/mfes-libs/index.js.map +1 -0
  19. package/dist/dependencies/mfes-libs/mf-account.d.ts +3 -0
  20. package/dist/dependencies/mfes-libs/mf-account.d.ts.map +1 -0
  21. package/dist/dependencies/mfes-libs/mf-account.js +8 -0
  22. package/dist/dependencies/mfes-libs/mf-account.js.map +1 -0
  23. package/dist/dependencies/mfes-libs/mf-add-to-cart.d.ts +3 -0
  24. package/dist/dependencies/mfes-libs/mf-add-to-cart.d.ts.map +1 -0
  25. package/dist/dependencies/mfes-libs/mf-add-to-cart.js +8 -0
  26. package/dist/dependencies/mfes-libs/mf-add-to-cart.js.map +1 -0
  27. package/dist/dependencies/mfes-libs/mf-autocomplete.d.ts +3 -0
  28. package/dist/dependencies/mfes-libs/mf-autocomplete.d.ts.map +1 -0
  29. package/dist/dependencies/mfes-libs/mf-autocomplete.js +8 -0
  30. package/dist/dependencies/mfes-libs/mf-autocomplete.js.map +1 -0
  31. package/dist/dependencies/mfes-libs/mf-cms.d.ts +3 -0
  32. package/dist/dependencies/mfes-libs/mf-cms.d.ts.map +1 -0
  33. package/dist/dependencies/mfes-libs/mf-cms.js +8 -0
  34. package/dist/dependencies/mfes-libs/mf-cms.js.map +1 -0
  35. package/dist/dependencies/mfes-libs/mf-footer.d.ts +3 -0
  36. package/dist/dependencies/mfes-libs/mf-footer.d.ts.map +1 -0
  37. package/dist/dependencies/mfes-libs/mf-footer.js +8 -0
  38. package/dist/dependencies/mfes-libs/mf-footer.js.map +1 -0
  39. package/dist/dependencies/mfes-libs/mf-header.d.ts +3 -0
  40. package/dist/dependencies/mfes-libs/mf-header.d.ts.map +1 -0
  41. package/dist/dependencies/mfes-libs/mf-header.js +8 -0
  42. package/dist/dependencies/mfes-libs/mf-header.js.map +1 -0
  43. package/dist/dependencies/mfes-libs/mf-pdp.d.ts +3 -0
  44. package/dist/dependencies/mfes-libs/mf-pdp.d.ts.map +1 -0
  45. package/dist/dependencies/mfes-libs/mf-pdp.js +8 -0
  46. package/dist/dependencies/mfes-libs/mf-pdp.js.map +1 -0
  47. package/dist/dependencies/mfes-libs/mf-recommendation.d.ts +3 -0
  48. package/dist/dependencies/mfes-libs/mf-recommendation.d.ts.map +1 -0
  49. package/dist/dependencies/mfes-libs/mf-recommendation.js +8 -0
  50. package/dist/dependencies/mfes-libs/mf-recommendation.js.map +1 -0
  51. package/dist/dependencies/mfes-libs/mf-search.d.ts +3 -0
  52. package/dist/dependencies/mfes-libs/mf-search.d.ts.map +1 -0
  53. package/dist/dependencies/mfes-libs/mf-search.js +8 -0
  54. package/dist/dependencies/mfes-libs/mf-search.js.map +1 -0
  55. package/dist/dependencies/mfes-libs/mf-shell.d.ts +3 -0
  56. package/dist/dependencies/mfes-libs/mf-shell.d.ts.map +1 -0
  57. package/dist/dependencies/mfes-libs/mf-shell.js +46 -0
  58. package/dist/dependencies/mfes-libs/mf-shell.js.map +1 -0
  59. package/dist/dependencies/runtime-sync.d.ts +18 -0
  60. package/dist/dependencies/runtime-sync.d.ts.map +1 -0
  61. package/dist/dependencies/runtime-sync.js +105 -0
  62. package/dist/dependencies/runtime-sync.js.map +1 -0
  63. package/dist/dependencies/versions/mfes-versions.d.ts +3 -0
  64. package/dist/dependencies/versions/mfes-versions.d.ts.map +1 -0
  65. package/dist/dependencies/versions/mfes-versions.js +89 -0
  66. package/dist/dependencies/versions/mfes-versions.js.map +1 -0
  67. package/dist/dev-dependencies/categories/dev-libs-categories.d.ts +5 -0
  68. package/dist/dev-dependencies/categories/dev-libs-categories.d.ts.map +1 -0
  69. package/dist/dev-dependencies/categories/dev-libs-categories.js +400 -0
  70. package/dist/dev-dependencies/categories/dev-libs-categories.js.map +1 -0
  71. package/dist/dev-dependencies/dev-sync.d.ts +18 -0
  72. package/dist/dev-dependencies/dev-sync.d.ts.map +1 -0
  73. package/dist/dev-dependencies/dev-sync.js +104 -0
  74. package/dist/dev-dependencies/dev-sync.js.map +1 -0
  75. package/dist/dev-dependencies/mfes-dev-libs/index.d.ts +24 -0
  76. package/dist/dev-dependencies/mfes-dev-libs/index.d.ts.map +1 -0
  77. package/dist/dev-dependencies/mfes-dev-libs/index.js +87 -0
  78. package/dist/dev-dependencies/mfes-dev-libs/index.js.map +1 -0
  79. package/dist/dev-dependencies/mfes-dev-libs/mf-account.d.ts +3 -0
  80. package/dist/dev-dependencies/mfes-dev-libs/mf-account.d.ts.map +1 -0
  81. package/dist/dev-dependencies/mfes-dev-libs/mf-account.js +5 -0
  82. package/dist/dev-dependencies/mfes-dev-libs/mf-account.js.map +1 -0
  83. package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.d.ts +3 -0
  84. package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.d.ts.map +1 -0
  85. package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.js +5 -0
  86. package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.js.map +1 -0
  87. package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.d.ts +3 -0
  88. package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.d.ts.map +1 -0
  89. package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.js +5 -0
  90. package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.js.map +1 -0
  91. package/dist/dev-dependencies/mfes-dev-libs/mf-cms.d.ts +3 -0
  92. package/dist/dev-dependencies/mfes-dev-libs/mf-cms.d.ts.map +1 -0
  93. package/dist/dev-dependencies/mfes-dev-libs/mf-cms.js +5 -0
  94. package/dist/dev-dependencies/mfes-dev-libs/mf-cms.js.map +1 -0
  95. package/dist/dev-dependencies/mfes-dev-libs/mf-footer.d.ts +3 -0
  96. package/dist/dev-dependencies/mfes-dev-libs/mf-footer.d.ts.map +1 -0
  97. package/dist/dev-dependencies/mfes-dev-libs/mf-footer.js +5 -0
  98. package/dist/dev-dependencies/mfes-dev-libs/mf-footer.js.map +1 -0
  99. package/dist/dev-dependencies/mfes-dev-libs/mf-header.d.ts +3 -0
  100. package/dist/dev-dependencies/mfes-dev-libs/mf-header.d.ts.map +1 -0
  101. package/dist/dev-dependencies/mfes-dev-libs/mf-header.js +5 -0
  102. package/dist/dev-dependencies/mfes-dev-libs/mf-header.js.map +1 -0
  103. package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.d.ts +3 -0
  104. package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.d.ts.map +1 -0
  105. package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.js +5 -0
  106. package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.js.map +1 -0
  107. package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.d.ts +3 -0
  108. package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.d.ts.map +1 -0
  109. package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.js +5 -0
  110. package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.js.map +1 -0
  111. package/dist/dev-dependencies/mfes-dev-libs/mf-search.d.ts +3 -0
  112. package/dist/dev-dependencies/mfes-dev-libs/mf-search.d.ts.map +1 -0
  113. package/dist/dev-dependencies/mfes-dev-libs/mf-search.js +5 -0
  114. package/dist/dev-dependencies/mfes-dev-libs/mf-search.js.map +1 -0
  115. package/dist/dev-dependencies/mfes-dev-libs/mf-shell.d.ts +3 -0
  116. package/dist/dev-dependencies/mfes-dev-libs/mf-shell.d.ts.map +1 -0
  117. package/dist/dev-dependencies/mfes-dev-libs/mf-shell.js +54 -0
  118. package/dist/dev-dependencies/mfes-dev-libs/mf-shell.js.map +1 -0
  119. package/dist/dev-dependencies/versions/dev-versions.d.ts +3 -0
  120. package/dist/dev-dependencies/versions/dev-versions.d.ts.map +1 -0
  121. package/dist/dev-dependencies/versions/dev-versions.js +111 -0
  122. package/dist/dev-dependencies/versions/dev-versions.js.map +1 -0
  123. package/dist/performance/perf.d.ts +7 -0
  124. package/dist/performance/perf.d.ts.map +1 -0
  125. package/dist/performance/perf.js +48 -0
  126. package/dist/performance/perf.js.map +1 -0
  127. package/dist/sync-all-deps.d.ts +7 -0
  128. package/dist/sync-all-deps.d.ts.map +1 -0
  129. package/dist/sync-all-deps.js +304 -0
  130. package/dist/sync-all-deps.js.map +1 -0
  131. package/dist/types/interfaces.d.ts +54 -0
  132. package/dist/types/interfaces.d.ts.map +1 -0
  133. package/dist/types/interfaces.js +4 -0
  134. package/dist/types/interfaces.js.map +1 -0
  135. package/dist/types/mfe-projects.d.ts +21 -0
  136. package/dist/types/mfe-projects.d.ts.map +1 -0
  137. package/dist/types/mfe-projects.js +47 -0
  138. package/dist/types/mfe-projects.js.map +1 -0
  139. package/package.json +27 -0
  140. package/test/package-lock.json +26690 -0
  141. package/test/package.json +125 -0
  142. package/todo.md +340 -0
@@ -0,0 +1,614 @@
1
+ "use strict";
2
+ /**
3
+ * Common utilities for dependency synchronization
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SyncUtils = void 0;
40
+ const child_process_1 = require("child_process");
41
+ const util_1 = require("util");
42
+ const fs = __importStar(require("fs/promises"));
43
+ const fsSync = __importStar(require("fs")); // Keep for existsSync only
44
+ const path = __importStar(require("path"));
45
+ const perf_hooks_1 = require("perf_hooks");
46
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
47
+ class SyncUtils {
48
+ /**
49
+ * Create structured error with recovery information
50
+ */
51
+ static createDependencyError(error, operation) {
52
+ const errorMessage = error instanceof Error ? error.message : String(error);
53
+ const depError = new Error(errorMessage);
54
+ // Classify error type
55
+ if (errorMessage.includes('ENOTFOUND') || errorMessage.includes('network')) {
56
+ depError.code = 'NETWORK_ERROR';
57
+ depError.recoverable = true;
58
+ }
59
+ else if (errorMessage.includes('version') || errorMessage.includes('semver')) {
60
+ depError.code = 'INVALID_VERSION';
61
+ depError.recoverable = false;
62
+ }
63
+ else if (errorMessage.includes('not found') || errorMessage.includes('404')) {
64
+ depError.code = 'PACKAGE_NOT_FOUND';
65
+ depError.recoverable = false;
66
+ }
67
+ else {
68
+ depError.code = 'VALIDATION_FAILED';
69
+ depError.recoverable = true;
70
+ }
71
+ depError.timestamp = Date.now();
72
+ depError.packageName = SyncUtils.extractPackageName(errorMessage);
73
+ return depError;
74
+ }
75
+ /**
76
+ * Attempt recovery from failures
77
+ */
78
+ static async attemptRecovery(error) {
79
+ console.log('🔄 Attempting recovery...');
80
+ switch (error.code) {
81
+ case 'NETWORK_ERROR':
82
+ console.log('📡 Checking network connectivity...');
83
+ await SyncUtils.checkNetworkConnectivity();
84
+ break;
85
+ case 'VALIDATION_FAILED':
86
+ console.log('🔍 Clearing npm cache...');
87
+ await SyncUtils.clearNpmCache();
88
+ break;
89
+ default:
90
+ console.log('🧹 Running general cleanup...');
91
+ await SyncUtils.generalCleanup();
92
+ }
93
+ }
94
+ /**
95
+ * Simple validation - just check if package.json exists
96
+ */
97
+ static async validateDependencies() {
98
+ const issues = [];
99
+ try {
100
+ // Check package.json integrity
101
+ const packageJsonPath = path.resolve(process.cwd(), 'package.json');
102
+ try {
103
+ await fs.access(packageJsonPath);
104
+ }
105
+ catch {
106
+ issues.push('package.json not found');
107
+ return { isValid: false, issues };
108
+ }
109
+ return { isValid: true, issues };
110
+ }
111
+ catch (error) {
112
+ const errorMessage = error instanceof Error ? error.message : String(error);
113
+ issues.push(`Validation error: ${errorMessage}`);
114
+ return { isValid: false, issues };
115
+ }
116
+ }
117
+ static queueDependency(name, version, isDev) {
118
+ // Validate inputs - null/undefined/empty checks
119
+ if (!name || typeof name !== 'string' || name.trim() === '') {
120
+ console.warn('⚠️ Cannot queue dependency: invalid package name');
121
+ return;
122
+ }
123
+ if (!version || typeof version !== 'string' || version.trim() === '') {
124
+ console.warn(`⚠️ Cannot queue dependency "${name}": invalid version`);
125
+ return;
126
+ }
127
+ // Sanitize inputs to prevent injection
128
+ try {
129
+ const sanitizedName = SyncUtils.sanitizePackageName(name);
130
+ const sanitizedVersion = SyncUtils.sanitizeVersion(version);
131
+ if (isDev) {
132
+ if (!SyncUtils.pendingDevDependencies.has(sanitizedName)) {
133
+ SyncUtils.pendingDevDependencies.set(sanitizedName, sanitizedVersion);
134
+ }
135
+ }
136
+ else {
137
+ if (!SyncUtils.pendingDependencies.has(sanitizedName)) {
138
+ SyncUtils.pendingDependencies.set(sanitizedName, sanitizedVersion);
139
+ }
140
+ }
141
+ }
142
+ catch (error) {
143
+ const msg = error instanceof Error ? error.message : String(error);
144
+ console.error(`❌ Failed to queue dependency "${name}@${version}": ${msg}`);
145
+ // Don't throw - log and skip this dependency
146
+ }
147
+ }
148
+ static async writeQueuedToPackageJson() {
149
+ const pkgPath = path.resolve(process.cwd(), 'package.json');
150
+ try {
151
+ await fs.access(pkgPath);
152
+ }
153
+ catch {
154
+ throw new Error('package.json not found');
155
+ }
156
+ const raw = await fs.readFile(pkgPath, 'utf8');
157
+ const pkg = JSON.parse(raw);
158
+ pkg.dependencies = pkg.dependencies || {};
159
+ pkg.devDependencies = pkg.devDependencies || {};
160
+ for (const [name, version] of SyncUtils.pendingDependencies.entries()) {
161
+ pkg.dependencies[name] = version; // keep as given
162
+ }
163
+ for (const [name, version] of SyncUtils.pendingDevDependencies.entries()) {
164
+ pkg.devDependencies[name] = version;
165
+ }
166
+ await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2), 'utf8');
167
+ const counts = { runtime: SyncUtils.pendingDependencies.size, dev: SyncUtils.pendingDevDependencies.size };
168
+ console.log(`🗂️ Updated package.json with ${counts.runtime} runtime and ${counts.dev} dev dependencies.`);
169
+ return counts;
170
+ }
171
+ /**
172
+ * Optimize npm configuration for faster installations
173
+ */
174
+ static async optimizeNpmConfig() {
175
+ console.log('⚡ Optimizing npm configuration for faster installs...');
176
+ try {
177
+ // Set npm configurations for performance (updated for current npm versions)
178
+ const optimizations = [
179
+ 'npm config set progress false', // Disable progress bars
180
+ 'npm config set audit false', // Skip audit during install
181
+ 'npm config set fund false', // Skip funding messages
182
+ 'npm config set prefer-offline true', // Use cache when possible
183
+ 'npm config set maxsockets 15', // Increase concurrent downloads
184
+ 'npm config set registry https://registry.npmjs.org/', // Ensure fast registry
185
+ 'npm config set fetch-retries 3', // Retry failed downloads
186
+ 'npm config set fetch-retry-mintimeout 10000', // Min retry timeout
187
+ 'npm config set fetch-timeout 60000', // Increase fetch timeout
188
+ ];
189
+ for (const cmd of optimizations) {
190
+ try {
191
+ await execAsync(cmd);
192
+ }
193
+ catch (error) {
194
+ // Log individual failures but continue
195
+ const msg = error instanceof Error ? error.message : String(error);
196
+ console.warn(`⚠️ Skipped config: ${cmd.split(' ')[3]} (${msg.split('\n')[0]})`);
197
+ }
198
+ }
199
+ console.log('✅ npm configuration optimized');
200
+ }
201
+ catch (error) {
202
+ const msg = error instanceof Error ? error.message : String(error);
203
+ console.warn('⚠️ Could not optimize npm config:', msg);
204
+ // Continue - this is not critical
205
+ }
206
+ }
207
+ /**
208
+ * Install with performance optimizations
209
+ */
210
+ static async installQueuedOnce() {
211
+ if (SyncUtils.pendingDependencies.size === 0 && SyncUtils.pendingDevDependencies.size === 0) {
212
+ console.log('ℹ️ No dependencies queued for installation.');
213
+ return;
214
+ }
215
+ // Optimize npm before installation
216
+ await SyncUtils.optimizeNpmConfig();
217
+ console.log('📦 Running optimized npm install for all queued dependencies...');
218
+ try {
219
+ // Use faster npm install flags with legacy peer deps to handle Angular conflicts
220
+ const installCmd = 'npm install --no-audit --no-fund --prefer-offline --maxsockets=15 --legacy-peer-deps';
221
+ await execAsync(installCmd, {
222
+ timeout: 600000, // Increase to 10 minutes for large installs
223
+ maxBuffer: 1024 * 1024 * 20 // Increase buffer to 20MB
224
+ });
225
+ console.log('✅ Optimized install completed successfully.');
226
+ }
227
+ catch (error) {
228
+ const msg = error instanceof Error ? error.message : String(error);
229
+ console.error('❌ Optimized install failed:', msg);
230
+ // Attempt recovery with cache refresh
231
+ console.log('🔄 Attempting recovery with cache refresh...');
232
+ try {
233
+ await execAsync('npm cache verify');
234
+ console.log('✅ Cache verified, retrying installation...');
235
+ // Retry with even more aggressive caching and legacy peer deps
236
+ await execAsync('npm install --no-audit --no-fund --prefer-offline --legacy-peer-deps', {
237
+ timeout: 600000,
238
+ maxBuffer: 1024 * 1024 * 20
239
+ });
240
+ console.log('✅ Installation succeeded on retry.');
241
+ }
242
+ catch (retryError) {
243
+ const retryMsg = retryError instanceof Error ? retryError.message : String(retryError);
244
+ console.error('❌ Recovery attempt failed:', retryMsg);
245
+ throw error;
246
+ }
247
+ }
248
+ finally {
249
+ SyncUtils.pendingDependencies.clear();
250
+ SyncUtils.pendingDevDependencies.clear();
251
+ }
252
+ }
253
+ /**
254
+ * Batch dependencies for more efficient installation
255
+ */
256
+ static async batchInstallDependencies() {
257
+ const runtimeDeps = Array.from(SyncUtils.pendingDependencies.entries());
258
+ const devDeps = Array.from(SyncUtils.pendingDevDependencies.entries());
259
+ if (runtimeDeps.length === 0 && devDeps.length === 0) {
260
+ console.log('ℹ️ No dependencies to batch install.');
261
+ return;
262
+ }
263
+ console.log(`📦 Batch installing ${runtimeDeps.length} runtime + ${devDeps.length} dev dependencies...`);
264
+ try {
265
+ await SyncUtils.optimizeNpmConfig();
266
+ // Install all runtime dependencies at once
267
+ if (runtimeDeps.length > 0) {
268
+ const runtimePackages = runtimeDeps.map(([name, version]) => `${name}@${version}`);
269
+ const chunks = SyncUtils.chunkArray(runtimePackages, 10); // Install in chunks of 10
270
+ for (const chunk of chunks) {
271
+ const installCmd = `npm install ${chunk.join(' ')} --save --no-audit --no-fund --prefer-offline`;
272
+ console.log(`📦 Installing runtime chunk: ${chunk.length} packages...`);
273
+ await execAsync(installCmd, { timeout: 300000, maxBuffer: 1024 * 1024 * 15 });
274
+ }
275
+ }
276
+ // Install all dev dependencies at once
277
+ if (devDeps.length > 0) {
278
+ const devPackages = devDeps.map(([name, version]) => `${name}@${version}`);
279
+ const chunks = SyncUtils.chunkArray(devPackages, 10);
280
+ for (const chunk of chunks) {
281
+ const installCmd = `npm install ${chunk.join(' ')} --save-dev --no-audit --no-fund --prefer-offline`;
282
+ console.log(`🛠️ Installing dev chunk: ${chunk.length} packages...`);
283
+ await execAsync(installCmd, { timeout: 300000, maxBuffer: 1024 * 1024 * 15 });
284
+ }
285
+ }
286
+ console.log('✅ Batch installation completed successfully.');
287
+ }
288
+ catch (error) {
289
+ const msg = error instanceof Error ? error.message : String(error);
290
+ console.error('❌ Batch installation failed:', msg);
291
+ throw error;
292
+ }
293
+ finally {
294
+ SyncUtils.pendingDependencies.clear();
295
+ SyncUtils.pendingDevDependencies.clear();
296
+ }
297
+ }
298
+ /**
299
+ * Super-fast chunked installation for large dependency sets (90+ packages)
300
+ */
301
+ static async installQueuedFast() {
302
+ if (SyncUtils.pendingDependencies.size === 0 && SyncUtils.pendingDevDependencies.size === 0) {
303
+ console.log('ℹ️ No dependencies queued for installation.');
304
+ return;
305
+ }
306
+ const totalPackages = SyncUtils.pendingDependencies.size + SyncUtils.pendingDevDependencies.size;
307
+ console.log(`🚀 Fast chunked installation for ${totalPackages} packages...`);
308
+ // Pre-optimize npm configuration
309
+ await SyncUtils.optimizeNpmConfig();
310
+ try {
311
+ // Strategy: Install in smaller chunks to avoid timeout/memory issues
312
+ const chunkSize = 8; // Smaller chunks for reliability
313
+ let installedCount = 0;
314
+ // Process runtime dependencies in chunks
315
+ if (SyncUtils.pendingDependencies.size > 0) {
316
+ console.log(`📦 Installing ${SyncUtils.pendingDependencies.size} runtime dependencies in chunks...`);
317
+ const runtimeDeps = Array.from(SyncUtils.pendingDependencies.entries());
318
+ const runtimeChunks = SyncUtils.chunkArray(runtimeDeps, chunkSize);
319
+ for (let i = 0; i < runtimeChunks.length; i++) {
320
+ const chunk = runtimeChunks[i];
321
+ const packages = chunk.map(([name, version]) => `${name}@${version}`).join(' ');
322
+ console.log(` 📦 Chunk ${i + 1}/${runtimeChunks.length}: ${chunk.length} packages`);
323
+ const cmd = `npm install ${packages} --save --no-audit --no-fund --prefer-offline --legacy-peer-deps`;
324
+ await execAsync(cmd, {
325
+ timeout: 180000, // 3 minutes per chunk
326
+ maxBuffer: 1024 * 1024 * 10
327
+ });
328
+ installedCount += chunk.length;
329
+ console.log(` ✅ Installed ${installedCount}/${totalPackages} packages`);
330
+ }
331
+ }
332
+ // Process dev dependencies in chunks
333
+ if (SyncUtils.pendingDevDependencies.size > 0) {
334
+ console.log(`🛠️ Installing ${SyncUtils.pendingDevDependencies.size} dev dependencies in chunks...`);
335
+ const devDeps = Array.from(SyncUtils.pendingDevDependencies.entries());
336
+ const devChunks = SyncUtils.chunkArray(devDeps, chunkSize);
337
+ for (let i = 0; i < devChunks.length; i++) {
338
+ const chunk = devChunks[i];
339
+ const packages = chunk.map(([name, version]) => `${name}@${version}`).join(' ');
340
+ console.log(` 🛠️ Chunk ${i + 1}/${devChunks.length}: ${chunk.length} packages`);
341
+ const cmd = `npm install ${packages} --save-dev --no-audit --no-fund --prefer-offline --legacy-peer-deps`;
342
+ await execAsync(cmd, {
343
+ timeout: 180000, // 3 minutes per chunk
344
+ maxBuffer: 1024 * 1024 * 10
345
+ });
346
+ installedCount += chunk.length;
347
+ console.log(` ✅ Installed ${installedCount}/${totalPackages} packages`);
348
+ }
349
+ }
350
+ console.log(`🎉 Fast chunked installation completed! ${totalPackages} packages installed successfully.`);
351
+ }
352
+ catch (error) {
353
+ const msg = error instanceof Error ? error.message : String(error);
354
+ console.error('❌ Fast chunked installation failed:', msg);
355
+ // Fallback: try single install with more aggressive settings
356
+ console.log('🔄 Falling back to single install with aggressive caching...');
357
+ try {
358
+ const fallbackCmd = 'npm install --legacy-peer-deps --no-audit --no-fund --prefer-offline --force';
359
+ await execAsync(fallbackCmd, {
360
+ timeout: 900000, // 15 minutes for fallback
361
+ maxBuffer: 1024 * 1024 * 30
362
+ });
363
+ console.log('✅ Fallback installation succeeded.');
364
+ }
365
+ catch (fallbackError) {
366
+ const fallbackMsg = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
367
+ console.error('❌ Fallback installation also failed:', fallbackMsg);
368
+ throw error;
369
+ }
370
+ }
371
+ finally {
372
+ SyncUtils.pendingDependencies.clear();
373
+ SyncUtils.pendingDevDependencies.clear();
374
+ }
375
+ }
376
+ /**
377
+ * Split array into chunks for batch processing
378
+ */
379
+ static chunkArray(array, size) {
380
+ const chunks = [];
381
+ for (let i = 0; i < array.length; i += size) {
382
+ chunks.push(array.slice(i, i + size));
383
+ }
384
+ return chunks;
385
+ }
386
+ /**
387
+ * Enhanced cache management
388
+ */
389
+ static async optimizeCache() {
390
+ console.log('🗄️ Optimizing npm cache...');
391
+ try {
392
+ // Verify cache integrity
393
+ await execAsync('npm cache verify');
394
+ // Set optimal cache configuration
395
+ await execAsync('npm config set cache-min 86400'); // Cache for 24 hours
396
+ await execAsync('npm config set cache-max 604800000'); // Max 7 days
397
+ console.log('✅ Cache optimization completed');
398
+ }
399
+ catch (error) {
400
+ const msg = error instanceof Error ? error.message : String(error);
401
+ console.warn('⚠️ Cache optimization failed:', msg);
402
+ }
403
+ }
404
+ // Keep installPackage for backwards compatibility but redirect to queue
405
+ static async installPackage(packageName, version, isDev) {
406
+ SyncUtils.queueDependency(packageName, version, isDev);
407
+ }
408
+ /**
409
+ * Sync with retry logic
410
+ */
411
+ static async syncWithRetry(operation, syncFunction, config) {
412
+ const startTime = perf_hooks_1.performance.now();
413
+ for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
414
+ try {
415
+ if (attempt > 0) {
416
+ const backoffTime = config.backoffMs * Math.pow(2, attempt - 1);
417
+ console.log(`⏳ Retry attempt ${attempt}/${config.maxRetries} after ${backoffTime}ms...`);
418
+ await SyncUtils.delay(backoffTime);
419
+ }
420
+ const result = await syncFunction();
421
+ return {
422
+ success: true,
423
+ operation,
424
+ duration: perf_hooks_1.performance.now() - startTime,
425
+ packagesSynced: result?.packageCount || 0
426
+ };
427
+ }
428
+ catch (error) {
429
+ const depError = SyncUtils.createDependencyError(error, operation);
430
+ if (attempt === config.maxRetries || !depError.recoverable) {
431
+ console.error(`❌ Final attempt failed for ${operation}:`, depError.message);
432
+ // Attempt recovery if possible
433
+ if (depError.recoverable) {
434
+ await SyncUtils.attemptRecovery(depError);
435
+ }
436
+ return {
437
+ success: false,
438
+ operation,
439
+ duration: perf_hooks_1.performance.now() - startTime,
440
+ error: depError.message
441
+ };
442
+ }
443
+ console.warn(`⚠️ Attempt ${attempt + 1} failed: ${depError.message}`);
444
+ }
445
+ }
446
+ return {
447
+ success: false,
448
+ operation,
449
+ duration: perf_hooks_1.performance.now() - startTime,
450
+ error: 'Maximum retry attempts exceeded'
451
+ };
452
+ }
453
+ // Utility methods
454
+ static delay(ms) {
455
+ return new Promise(resolve => setTimeout(resolve, ms));
456
+ }
457
+ static extractPackageName(errorMessage) {
458
+ const match = errorMessage.match(/(?:package\s+)?['"]?([^'"@\s]+)/i);
459
+ return match?.[1];
460
+ }
461
+ static async checkNetworkConnectivity() {
462
+ try {
463
+ await execAsync('npm ping', { timeout: 5000 });
464
+ console.log('✅ Network connectivity confirmed');
465
+ }
466
+ catch (error) {
467
+ const errorMessage = error instanceof Error ? error.message : String(error);
468
+ console.warn('⚠️ Network connectivity issues detected:', errorMessage);
469
+ throw new Error('Network connectivity failed');
470
+ }
471
+ }
472
+ static async clearNpmCache() {
473
+ try {
474
+ await execAsync('npm cache clean --force');
475
+ console.log('✅ NPM cache cleared');
476
+ }
477
+ catch (error) {
478
+ const errorMessage = error instanceof Error ? error.message : String(error);
479
+ console.warn('⚠️ Failed to clear NPM cache:', errorMessage);
480
+ // Don't throw - this is a recovery operation
481
+ }
482
+ }
483
+ static async generalCleanup() {
484
+ const errors = [];
485
+ try {
486
+ // Remove node_modules with error boundary
487
+ if (fsSync.existsSync('node_modules')) {
488
+ try {
489
+ await execAsync('rm -rf node_modules');
490
+ console.log('✅ Removed node_modules directory');
491
+ }
492
+ catch (error) {
493
+ const msg = error instanceof Error ? error.message : String(error);
494
+ errors.push(`Failed to remove node_modules: ${msg}`);
495
+ console.warn('⚠️ Could not remove node_modules:', msg);
496
+ }
497
+ }
498
+ // Remove package-lock.json with error boundary
499
+ if (fsSync.existsSync('package-lock.json')) {
500
+ try {
501
+ await fs.unlink('package-lock.json');
502
+ console.log('✅ Removed package-lock.json');
503
+ }
504
+ catch (error) {
505
+ const msg = error instanceof Error ? error.message : String(error);
506
+ errors.push(`Failed to remove package-lock.json: ${msg}`);
507
+ console.warn('⚠️ Could not remove package-lock.json:', msg);
508
+ }
509
+ }
510
+ if (errors.length === 0) {
511
+ console.log('✅ Cleanup completed successfully');
512
+ }
513
+ else {
514
+ console.warn(`⚠️ Cleanup completed with ${errors.length} error(s)`);
515
+ }
516
+ }
517
+ catch (error) {
518
+ const errorMessage = error instanceof Error ? error.message : String(error);
519
+ console.warn('⚠️ Cleanup failed:', errorMessage);
520
+ // Don't throw - this is a recovery operation
521
+ }
522
+ }
523
+ static isValidPackageInfo(info) {
524
+ return !!(info.name && info.version && /^\d+\.\d+\.\d+/.test(info.version));
525
+ }
526
+ static isValidMFEProject(projectName) {
527
+ // Use centralized registry instead of hardcoded list
528
+ const { isValidMFEProject } = require('../types/mfe-projects');
529
+ return isValidMFEProject(projectName);
530
+ }
531
+ /**
532
+ * Sanitize and validate environment variable input
533
+ */
534
+ static sanitizeEnvironment(env) {
535
+ if (!env || typeof env !== 'string') {
536
+ return 'development';
537
+ }
538
+ // Whitelist of allowed environment values
539
+ const allowedEnvironments = ['development', 'production', 'test'];
540
+ const sanitized = env.trim().toLowerCase();
541
+ if (allowedEnvironments.includes(sanitized)) {
542
+ return sanitized;
543
+ }
544
+ console.warn(`⚠️ Invalid NODE_ENV value: "${env}". Defaulting to "development"`);
545
+ return 'development';
546
+ }
547
+ /**
548
+ * Sanitize command-line argument to prevent injection
549
+ * Removes dangerous characters that could be used for command injection
550
+ */
551
+ static sanitizeArgument(arg) {
552
+ if (!arg || typeof arg !== 'string') {
553
+ return '';
554
+ }
555
+ // Remove potentially dangerous characters
556
+ // Allow only: alphanumeric, hyphens, underscores, dots
557
+ const sanitized = arg
558
+ .trim()
559
+ .replace(/[^a-zA-Z0-9\-_.]/g, ''); // Remove anything not alphanumeric, -, _, .
560
+ if (sanitized !== arg.trim()) {
561
+ console.warn(`⚠️ Sanitized argument: "${arg}" → "${sanitized}"`);
562
+ }
563
+ return sanitized;
564
+ }
565
+ /**
566
+ * Sanitize package name to prevent injection in npm commands
567
+ */
568
+ static sanitizePackageName(packageName) {
569
+ if (!packageName || typeof packageName !== 'string') {
570
+ throw new Error('Invalid package name: must be a non-empty string');
571
+ }
572
+ // npm package names can contain: lowercase, numbers, hyphens, dots, underscores, @, /
573
+ // See: https://docs.npmjs.com/cli/v7/configuring-npm/package-json#name
574
+ const sanitized = packageName.trim();
575
+ // Validate npm package name format
576
+ const validPackageNameRegex = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
577
+ if (!validPackageNameRegex.test(sanitized)) {
578
+ throw new Error(`Invalid package name format: "${packageName}". Must follow npm naming conventions.`);
579
+ }
580
+ // Additional security: prevent shell metacharacters
581
+ const dangerousChars = /[;&|`$(){}[\]<>\\'"]/;
582
+ if (dangerousChars.test(sanitized)) {
583
+ throw new Error(`Package name contains dangerous characters: "${packageName}"`);
584
+ }
585
+ return sanitized;
586
+ }
587
+ /**
588
+ * Sanitize version string to prevent injection
589
+ */
590
+ static sanitizeVersion(version) {
591
+ if (!version || typeof version !== 'string') {
592
+ throw new Error('Invalid version: must be a non-empty string');
593
+ }
594
+ const sanitized = version.trim();
595
+ // Valid semver patterns: 1.2.3, ^1.2.3, ~1.2.3, >=1.2.3, etc.
596
+ const validVersionRegex = /^[~^>=<*]?\d+(\.\d+){0,2}(\.\*)?(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
597
+ if (!validVersionRegex.test(sanitized)) {
598
+ throw new Error(`Invalid version format: "${version}". Must be valid semver.`);
599
+ }
600
+ // Prevent shell metacharacters
601
+ const dangerousChars = /[;&|`$(){}[\]<>\\'"]/;
602
+ if (dangerousChars.test(sanitized)) {
603
+ throw new Error(`Version contains dangerous characters: "${version}"`);
604
+ }
605
+ return sanitized;
606
+ }
607
+ }
608
+ exports.SyncUtils = SyncUtils;
609
+ /**
610
+ * Install a package with proper error handling
611
+ */
612
+ SyncUtils.pendingDependencies = new Map();
613
+ SyncUtils.pendingDevDependencies = new Map();
614
+ //# sourceMappingURL=sync-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-utils.js","sourceRoot":"","sources":["../../src/common/sync-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { LibrariesConfig } from '../../types/interfaces';
2
+ export declare const LIBS: LibrariesConfig;
3
+ //# sourceMappingURL=libs-categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libs-categories.d.ts","sourceRoot":"","sources":["../../../src/dependencies/categories/libs-categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,eAAO,MAAM,IAAI,EAAE,eAoUlB,CAAC"}