@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.
- package/OPTIMIZATION_GUIDE.md +122 -0
- package/README.md +586 -0
- package/dist/common/fast-installer.d.ts +20 -0
- package/dist/common/fast-installer.d.ts.map +1 -0
- package/dist/common/fast-installer.js +141 -0
- package/dist/common/fast-installer.js.map +1 -0
- package/dist/common/sync-utils.d.ts +104 -0
- package/dist/common/sync-utils.d.ts.map +1 -0
- package/dist/common/sync-utils.js +614 -0
- package/dist/common/sync-utils.js.map +1 -0
- package/dist/dependencies/categories/libs-categories.d.ts +3 -0
- package/dist/dependencies/categories/libs-categories.d.ts.map +1 -0
- package/dist/dependencies/categories/libs-categories.js +318 -0
- package/dist/dependencies/categories/libs-categories.js.map +1 -0
- package/dist/dependencies/mfes-libs/index.d.ts +25 -0
- package/dist/dependencies/mfes-libs/index.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/index.js +88 -0
- package/dist/dependencies/mfes-libs/index.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-account.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-account.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-account.js +8 -0
- package/dist/dependencies/mfes-libs/mf-account.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-add-to-cart.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-add-to-cart.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-add-to-cart.js +8 -0
- package/dist/dependencies/mfes-libs/mf-add-to-cart.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-autocomplete.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-autocomplete.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-autocomplete.js +8 -0
- package/dist/dependencies/mfes-libs/mf-autocomplete.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-cms.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-cms.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-cms.js +8 -0
- package/dist/dependencies/mfes-libs/mf-cms.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-footer.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-footer.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-footer.js +8 -0
- package/dist/dependencies/mfes-libs/mf-footer.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-header.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-header.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-header.js +8 -0
- package/dist/dependencies/mfes-libs/mf-header.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-pdp.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-pdp.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-pdp.js +8 -0
- package/dist/dependencies/mfes-libs/mf-pdp.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-recommendation.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-recommendation.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-recommendation.js +8 -0
- package/dist/dependencies/mfes-libs/mf-recommendation.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-search.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-search.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-search.js +8 -0
- package/dist/dependencies/mfes-libs/mf-search.js.map +1 -0
- package/dist/dependencies/mfes-libs/mf-shell.d.ts +3 -0
- package/dist/dependencies/mfes-libs/mf-shell.d.ts.map +1 -0
- package/dist/dependencies/mfes-libs/mf-shell.js +46 -0
- package/dist/dependencies/mfes-libs/mf-shell.js.map +1 -0
- package/dist/dependencies/runtime-sync.d.ts +18 -0
- package/dist/dependencies/runtime-sync.d.ts.map +1 -0
- package/dist/dependencies/runtime-sync.js +105 -0
- package/dist/dependencies/runtime-sync.js.map +1 -0
- package/dist/dependencies/versions/mfes-versions.d.ts +3 -0
- package/dist/dependencies/versions/mfes-versions.d.ts.map +1 -0
- package/dist/dependencies/versions/mfes-versions.js +89 -0
- package/dist/dependencies/versions/mfes-versions.js.map +1 -0
- package/dist/dev-dependencies/categories/dev-libs-categories.d.ts +5 -0
- package/dist/dev-dependencies/categories/dev-libs-categories.d.ts.map +1 -0
- package/dist/dev-dependencies/categories/dev-libs-categories.js +400 -0
- package/dist/dev-dependencies/categories/dev-libs-categories.js.map +1 -0
- package/dist/dev-dependencies/dev-sync.d.ts +18 -0
- package/dist/dev-dependencies/dev-sync.d.ts.map +1 -0
- package/dist/dev-dependencies/dev-sync.js +104 -0
- package/dist/dev-dependencies/dev-sync.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/index.d.ts +24 -0
- package/dist/dev-dependencies/mfes-dev-libs/index.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/index.js +87 -0
- package/dist/dev-dependencies/mfes-dev-libs/index.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-account.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-account.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-account.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-account.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-add-to-cart.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-autocomplete.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-cms.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-cms.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-cms.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-cms.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-footer.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-footer.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-footer.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-footer.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-header.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-header.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-header.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-header.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-pdp.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-recommendation.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-search.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-search.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-search.js +5 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-search.js.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-shell.d.ts +3 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-shell.d.ts.map +1 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-shell.js +54 -0
- package/dist/dev-dependencies/mfes-dev-libs/mf-shell.js.map +1 -0
- package/dist/dev-dependencies/versions/dev-versions.d.ts +3 -0
- package/dist/dev-dependencies/versions/dev-versions.d.ts.map +1 -0
- package/dist/dev-dependencies/versions/dev-versions.js +111 -0
- package/dist/dev-dependencies/versions/dev-versions.js.map +1 -0
- package/dist/performance/perf.d.ts +7 -0
- package/dist/performance/perf.d.ts.map +1 -0
- package/dist/performance/perf.js +48 -0
- package/dist/performance/perf.js.map +1 -0
- package/dist/sync-all-deps.d.ts +7 -0
- package/dist/sync-all-deps.d.ts.map +1 -0
- package/dist/sync-all-deps.js +304 -0
- package/dist/sync-all-deps.js.map +1 -0
- package/dist/types/interfaces.d.ts +54 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/interfaces.js +4 -0
- package/dist/types/interfaces.js.map +1 -0
- package/dist/types/mfe-projects.d.ts +21 -0
- package/dist/types/mfe-projects.d.ts.map +1 -0
- package/dist/types/mfe-projects.js +47 -0
- package/dist/types/mfe-projects.js.map +1 -0
- package/package.json +27 -0
- package/test/package-lock.json +26690 -0
- package/test/package.json +125 -0
- package/todo.md +340 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Main Dependency Synchronization Orchestrator
|
|
5
|
+
* Clean and focused - delegates to specialized synchronizers
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const sync_utils_1 = require("./common/sync-utils");
|
|
9
|
+
const runtime_sync_1 = require("./dependencies/runtime-sync");
|
|
10
|
+
const dev_sync_1 = require("./dev-dependencies/dev-sync");
|
|
11
|
+
const mfe_projects_1 = require("./types/mfe-projects");
|
|
12
|
+
class DependencySynchronizer {
|
|
13
|
+
constructor(projectName) {
|
|
14
|
+
this.config = {
|
|
15
|
+
projectName,
|
|
16
|
+
syncFlag: '--sync-deps',
|
|
17
|
+
isRunning: false,
|
|
18
|
+
environment: sync_utils_1.SyncUtils.sanitizeEnvironment(process.env.NODE_ENV),
|
|
19
|
+
timestamp: Date.now(),
|
|
20
|
+
retryCount: 0,
|
|
21
|
+
maxRetries: 3,
|
|
22
|
+
backoffMs: 1000,
|
|
23
|
+
failureThreshold: 5
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Sync all dependencies (runtime + dev)
|
|
28
|
+
*/
|
|
29
|
+
async syncAll() {
|
|
30
|
+
console.log('🚀 Enhanced Dependency Synchronization Starting...');
|
|
31
|
+
console.log(`📋 Project: ${this.config.projectName}`);
|
|
32
|
+
console.log(`🌍 Environment: ${this.config.environment}`);
|
|
33
|
+
this.config.isRunning = true;
|
|
34
|
+
const results = [];
|
|
35
|
+
try {
|
|
36
|
+
// Pre-sync validation with error boundary
|
|
37
|
+
try {
|
|
38
|
+
const validation = await sync_utils_1.SyncUtils.validateDependencies();
|
|
39
|
+
if (!validation.isValid) {
|
|
40
|
+
console.warn('⚠️ Pre-sync validation issues:');
|
|
41
|
+
validation.issues.forEach(issue => console.warn(` • ${issue}`));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
46
|
+
console.warn('⚠️ Pre-sync validation failed:', msg);
|
|
47
|
+
// Continue anyway - validation failure shouldn't stop sync
|
|
48
|
+
}
|
|
49
|
+
// 1. Sync runtime dependencies with error boundary
|
|
50
|
+
try {
|
|
51
|
+
const runtimeResult = await sync_utils_1.SyncUtils.syncWithRetry('runtime-dependencies', () => runtime_sync_1.RuntimeDependenciesSync.syncRuntimeDependencies(this.config), this.config);
|
|
52
|
+
results.push(runtimeResult);
|
|
53
|
+
if (!runtimeResult.success) {
|
|
54
|
+
throw new Error(`Runtime dependency sync failed: ${runtimeResult.error || 'Unknown error'}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
59
|
+
console.error('❌ Critical: Runtime dependency sync failed:', msg);
|
|
60
|
+
throw error; // Runtime deps are critical
|
|
61
|
+
}
|
|
62
|
+
// 2. Sync dev dependencies with error boundary
|
|
63
|
+
try {
|
|
64
|
+
const devResult = await sync_utils_1.SyncUtils.syncWithRetry('dev-dependencies', () => dev_sync_1.DevDependenciesSync.syncDevDependencies(this.config), this.config);
|
|
65
|
+
results.push(devResult);
|
|
66
|
+
if (!devResult.success) {
|
|
67
|
+
// Dev deps failure is not critical in production
|
|
68
|
+
if (this.config.environment === 'production') {
|
|
69
|
+
console.warn('⚠️ Dev dependency sync failed (non-critical in production)');
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error(`Dev dependency sync failed: ${devResult.error || 'Unknown error'}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
78
|
+
if (this.config.environment === 'production') {
|
|
79
|
+
console.warn('⚠️ Dev dependency sync error (continuing):', msg);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.error('❌ Critical: Dev dependency sync failed:', msg);
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// 3. Post-sync validation with error boundary
|
|
87
|
+
try {
|
|
88
|
+
const postValidation = await sync_utils_1.SyncUtils.validateDependencies();
|
|
89
|
+
const validationResult = {
|
|
90
|
+
success: postValidation.isValid,
|
|
91
|
+
operation: 'post-sync-validation',
|
|
92
|
+
duration: 0,
|
|
93
|
+
error: postValidation.isValid ? undefined : postValidation.issues.join(', ')
|
|
94
|
+
};
|
|
95
|
+
results.push(validationResult);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
99
|
+
console.warn('⚠️ Post-sync validation failed:', msg);
|
|
100
|
+
// Continue - validation failure is not critical
|
|
101
|
+
}
|
|
102
|
+
// Write and install with error boundaries
|
|
103
|
+
try {
|
|
104
|
+
const counts = await sync_utils_1.SyncUtils.writeQueuedToPackageJson();
|
|
105
|
+
// Use the new fast chunked installation for large dependency sets
|
|
106
|
+
console.log('🚀 Using fast chunked installation for optimal performance...');
|
|
107
|
+
await sync_utils_1.SyncUtils.installQueuedFast();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
111
|
+
console.error('❌ Failed to write or install dependencies:', msg);
|
|
112
|
+
throw error; // This is critical
|
|
113
|
+
}
|
|
114
|
+
// Summary report
|
|
115
|
+
this.printSummary(results);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
119
|
+
console.error('💥 Critical error during synchronization:', errorMessage);
|
|
120
|
+
// Attempt to provide recovery suggestions
|
|
121
|
+
console.error('\n📋 Recovery Suggestions:');
|
|
122
|
+
console.error(' 1. Check your network connection');
|
|
123
|
+
console.error(' 2. Verify package.json exists and is valid');
|
|
124
|
+
console.error(' 3. Try running: npm cache clean --force');
|
|
125
|
+
console.error(' 4. Check npm registry accessibility: npm ping');
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
// Always reset running state
|
|
130
|
+
this.config.isRunning = false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Sync only runtime dependencies (production mode)
|
|
135
|
+
*/
|
|
136
|
+
async syncRuntime() {
|
|
137
|
+
console.log('📦 Runtime Dependencies Sync Starting...');
|
|
138
|
+
this.config.isRunning = true;
|
|
139
|
+
try {
|
|
140
|
+
const result = await sync_utils_1.SyncUtils.syncWithRetry('runtime-dependencies', () => runtime_sync_1.RuntimeDependenciesSync.syncRuntimeDependencies(this.config), this.config);
|
|
141
|
+
if (result.success) {
|
|
142
|
+
try {
|
|
143
|
+
// Batching finalize for runtime only
|
|
144
|
+
const counts = await sync_utils_1.SyncUtils.writeQueuedToPackageJson();
|
|
145
|
+
await sync_utils_1.SyncUtils.installQueuedOnce();
|
|
146
|
+
console.log('✅ Runtime dependencies synchronized successfully!');
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
150
|
+
console.error('❌ Failed to finalize installation:', msg);
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.error('❌ Runtime dependency sync failed:', result.error || 'Unknown error');
|
|
156
|
+
// Provide recovery suggestions
|
|
157
|
+
console.error('\n📋 Recovery Suggestions:');
|
|
158
|
+
console.error(' 1. Check network connection and npm registry access');
|
|
159
|
+
console.error(' 2. Verify all package versions are valid');
|
|
160
|
+
console.error(' 3. Try: npm cache clean --force');
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
166
|
+
console.error('💥 Critical error during runtime sync:', errorMessage);
|
|
167
|
+
// Stack trace in development
|
|
168
|
+
if (this.config.environment === 'development' && error instanceof Error && error.stack) {
|
|
169
|
+
console.error('\n📚 Stack trace:');
|
|
170
|
+
console.error(error.stack);
|
|
171
|
+
}
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
// Always reset running state
|
|
176
|
+
this.config.isRunning = false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
printSummary(results) {
|
|
180
|
+
const totalTime = results.reduce((sum, r) => sum + r.duration, 0);
|
|
181
|
+
const successCount = results.filter(r => r.success).length;
|
|
182
|
+
const totalPackages = results.reduce((sum, r) => sum + (r.packagesSynced || 0), 0);
|
|
183
|
+
console.log('\n📈 Synchronization Summary:');
|
|
184
|
+
console.log('═'.repeat(40));
|
|
185
|
+
console.log(`✅ Successful operations: ${successCount}/${results.length}`);
|
|
186
|
+
console.log(`⏱️ Total time: ${totalTime.toFixed(2)}ms`);
|
|
187
|
+
console.log(`📦 Total packages processed: ${totalPackages}`);
|
|
188
|
+
if (successCount === results.length) {
|
|
189
|
+
console.log('\n🎉 All operations completed successfully!');
|
|
190
|
+
process.exit(0);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
console.error('\n❌ Some operations failed. Check logs above.');
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Parse arguments to extract project name and mode
|
|
200
|
+
*/
|
|
201
|
+
function parseArgs(args) {
|
|
202
|
+
let projectName = null;
|
|
203
|
+
let mode = 'development';
|
|
204
|
+
// Check for production mode flag
|
|
205
|
+
if (args.includes('--production') || args.includes('--runtime')) {
|
|
206
|
+
mode = 'production';
|
|
207
|
+
}
|
|
208
|
+
// Find project name (any arg starting with -- that's a valid MFE project)
|
|
209
|
+
for (const arg of args) {
|
|
210
|
+
if (arg.startsWith('--') && !['--production', '--runtime'].includes(arg)) {
|
|
211
|
+
// Sanitize the argument before processing
|
|
212
|
+
const sanitizedArg = sync_utils_1.SyncUtils.sanitizeArgument(arg);
|
|
213
|
+
const candidateProject = sanitizedArg.slice(2); // Remove --
|
|
214
|
+
if ((0, mfe_projects_1.isValidMFEProject)(candidateProject)) {
|
|
215
|
+
projectName = candidateProject;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return { projectName, mode };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Show usage help
|
|
224
|
+
*/
|
|
225
|
+
function showHelp() {
|
|
226
|
+
console.log('🚀 Dependency Synchronization Tool\n');
|
|
227
|
+
console.log('Usage:');
|
|
228
|
+
console.log(' sync-all-deps --<project-name> # Development (runtime + all dev tools)');
|
|
229
|
+
console.log(' sync-all-deps --<project-name> --production # Production (runtime only)');
|
|
230
|
+
console.log(' sync-all-deps --help # Show this help');
|
|
231
|
+
console.log(' sync-all-deps --list # List available projects\n');
|
|
232
|
+
console.log('Available Projects:');
|
|
233
|
+
mfe_projects_1.MicroFrontends.forEach(project => {
|
|
234
|
+
console.log(` --${project}`);
|
|
235
|
+
});
|
|
236
|
+
console.log('\n📋 Mode Descriptions:');
|
|
237
|
+
console.log(' Development: Full sync with runtime + all dev tools (linting, testing, etc.)');
|
|
238
|
+
console.log(' Production: Runtime only (for Docker images after build)');
|
|
239
|
+
console.log('\nExamples:');
|
|
240
|
+
console.log(' sync-all-deps --mf-header # Development mode');
|
|
241
|
+
console.log(' sync-all-deps --mf-header --production # Production container');
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* List available projects
|
|
245
|
+
*/
|
|
246
|
+
function listProjects() {
|
|
247
|
+
console.log('📋 Available MFE Projects:\n');
|
|
248
|
+
mfe_projects_1.MicroFrontends.forEach((project, index) => {
|
|
249
|
+
console.log(` ${index + 1}. ${project}`);
|
|
250
|
+
});
|
|
251
|
+
console.log(`\nTotal: ${mfe_projects_1.MicroFrontends.length} projects`);
|
|
252
|
+
}
|
|
253
|
+
// Command line interface
|
|
254
|
+
async function main() {
|
|
255
|
+
const args = process.argv.slice(2);
|
|
256
|
+
// Handle help and list commands first
|
|
257
|
+
if (args.includes('--help') || args.length === 0) {
|
|
258
|
+
showHelp();
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
if (args.includes('--list')) {
|
|
262
|
+
listProjects();
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
try {
|
|
266
|
+
// Parse arguments
|
|
267
|
+
const { projectName, mode } = parseArgs(args);
|
|
268
|
+
if (!projectName) {
|
|
269
|
+
console.error('❌ Invalid or missing project name!\n');
|
|
270
|
+
console.error('Usage: sync-all-deps --<project-name> [--production]');
|
|
271
|
+
console.error('Example: sync-all-deps --mf-header\n');
|
|
272
|
+
console.error('Available projects:');
|
|
273
|
+
mfe_projects_1.MicroFrontends.forEach(project => console.error(` --${project}`));
|
|
274
|
+
process.exit(1);
|
|
275
|
+
}
|
|
276
|
+
console.log(`🎯 Target Project: ${projectName}`);
|
|
277
|
+
console.log(`🔧 Mode: ${mode}`);
|
|
278
|
+
const synchronizer = new DependencySynchronizer(projectName);
|
|
279
|
+
if (mode === 'production') {
|
|
280
|
+
// Production: runtime dependencies only (for containers)
|
|
281
|
+
console.log('📦 Production mode: Runtime dependencies only');
|
|
282
|
+
await synchronizer.syncRuntime();
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// Development: everything
|
|
286
|
+
console.log('🛠️ Development mode: Full sync (runtime + all dev tools)');
|
|
287
|
+
await synchronizer.syncAll();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
292
|
+
console.error('💥 Synchronization failed:', errorMessage);
|
|
293
|
+
process.exit(1);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// Execute if called directly
|
|
297
|
+
if (require.main === module) {
|
|
298
|
+
main().catch(error => {
|
|
299
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
300
|
+
console.error('💥 Unhandled error:', errorMessage);
|
|
301
|
+
process.exit(1);
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=sync-all-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-all-deps.js","sourceRoot":"","sources":["../src/sync-all-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ValidMFEProject } from './mfe-projects';
|
|
2
|
+
export type { ValidMFEProject } from './mfe-projects';
|
|
3
|
+
export interface PackageInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
version: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LibraryCategory {
|
|
8
|
+
[key: string]: PackageInfo;
|
|
9
|
+
}
|
|
10
|
+
export interface LibrariesConfig {
|
|
11
|
+
[categoryName: string]: LibraryCategory;
|
|
12
|
+
}
|
|
13
|
+
export interface MFEConfig {
|
|
14
|
+
[packageKey: string]: PackageInfo;
|
|
15
|
+
}
|
|
16
|
+
export type MFEConfigSpread = Record<string, PackageInfo | string>;
|
|
17
|
+
export interface ProjectsConfig {
|
|
18
|
+
[projectName: string]: MFEConfig;
|
|
19
|
+
}
|
|
20
|
+
export interface VersionsConfig {
|
|
21
|
+
[versionKey: string]: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ValidationResult {
|
|
24
|
+
isValid: boolean;
|
|
25
|
+
issues: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface SyncResult {
|
|
28
|
+
success: boolean;
|
|
29
|
+
operation: string;
|
|
30
|
+
duration: number;
|
|
31
|
+
error?: string;
|
|
32
|
+
packagesSynced?: number;
|
|
33
|
+
skippedPackages?: string[];
|
|
34
|
+
}
|
|
35
|
+
export type MFEProjectName = ValidMFEProject;
|
|
36
|
+
export type NodeEnvironment = 'development' | 'production' | 'test';
|
|
37
|
+
export interface SyncConfig {
|
|
38
|
+
projectName: MFEProjectName;
|
|
39
|
+
syncFlag: string;
|
|
40
|
+
isRunning: boolean;
|
|
41
|
+
environment: NodeEnvironment;
|
|
42
|
+
timestamp: number;
|
|
43
|
+
retryCount: number;
|
|
44
|
+
maxRetries: number;
|
|
45
|
+
backoffMs: number;
|
|
46
|
+
failureThreshold: number;
|
|
47
|
+
}
|
|
48
|
+
export interface DependencyError extends Error {
|
|
49
|
+
code: 'INVALID_VERSION' | 'PACKAGE_NOT_FOUND' | 'NETWORK_ERROR' | 'VALIDATION_FAILED';
|
|
50
|
+
packageName?: string;
|
|
51
|
+
timestamp: number;
|
|
52
|
+
recoverable: boolean;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC;AAGD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAGD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAGD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAGpE,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,cAAc,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,CAAC;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":";AAAA,mDAAmD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized MicroFrontend Projects Registry
|
|
3
|
+
* This is the single source of truth for all valid MFE project names
|
|
4
|
+
* Used for parameter validation across the dependency management system
|
|
5
|
+
*/
|
|
6
|
+
export declare const MicroFrontends: readonly ["mf-footer", "mf-header", "mf-autocomplete", "mf-search", "mf-recommendation", "mf-pdp", "mf-add-to-cart", "mf-account", "mf-cms", "mf-shell"];
|
|
7
|
+
export type ValidMFEProject = typeof MicroFrontends[number];
|
|
8
|
+
export declare const ValidMFESet: Set<"mf-footer" | "mf-header" | "mf-autocomplete" | "mf-search" | "mf-recommendation" | "mf-pdp" | "mf-add-to-cart" | "mf-account" | "mf-cms" | "mf-shell">;
|
|
9
|
+
/**
|
|
10
|
+
* Validates if a project name is a valid MFE
|
|
11
|
+
*/
|
|
12
|
+
export declare function isValidMFEProject(projectName: string): projectName is ValidMFEProject;
|
|
13
|
+
/**
|
|
14
|
+
* Gets all available MFE project names
|
|
15
|
+
*/
|
|
16
|
+
export declare function getAvailableMFEProjects(): readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* Validates and throws error if project name is invalid
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateMFEProject(projectName: string): ValidMFEProject;
|
|
21
|
+
//# sourceMappingURL=mfe-projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfe-projects.d.ts","sourceRoot":"","sources":["../../src/types/mfe-projects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,0JAWjB,CAAC;AAGX,MAAM,MAAM,eAAe,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAG5D,eAAO,MAAM,WAAW,6JAA0B,CAAC;AAEnD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,IAAI,eAAe,CAErF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,SAAS,MAAM,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAKvE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized MicroFrontend Projects Registry
|
|
4
|
+
* This is the single source of truth for all valid MFE project names
|
|
5
|
+
* Used for parameter validation across the dependency management system
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ValidMFESet = exports.MicroFrontends = void 0;
|
|
9
|
+
exports.isValidMFEProject = isValidMFEProject;
|
|
10
|
+
exports.getAvailableMFEProjects = getAvailableMFEProjects;
|
|
11
|
+
exports.validateMFEProject = validateMFEProject;
|
|
12
|
+
exports.MicroFrontends = [
|
|
13
|
+
'mf-footer',
|
|
14
|
+
'mf-header',
|
|
15
|
+
'mf-autocomplete', //ok
|
|
16
|
+
'mf-search',
|
|
17
|
+
'mf-recommendation', // ok
|
|
18
|
+
'mf-pdp', // Fiche produit
|
|
19
|
+
'mf-add-to-cart', // ok
|
|
20
|
+
'mf-account',
|
|
21
|
+
'mf-cms', // hybris
|
|
22
|
+
'mf-shell'
|
|
23
|
+
];
|
|
24
|
+
// Set for fast lookup validation
|
|
25
|
+
exports.ValidMFESet = new Set(exports.MicroFrontends);
|
|
26
|
+
/**
|
|
27
|
+
* Validates if a project name is a valid MFE
|
|
28
|
+
*/
|
|
29
|
+
function isValidMFEProject(projectName) {
|
|
30
|
+
return exports.ValidMFESet.has(projectName);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Gets all available MFE project names
|
|
34
|
+
*/
|
|
35
|
+
function getAvailableMFEProjects() {
|
|
36
|
+
return exports.MicroFrontends;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Validates and throws error if project name is invalid
|
|
40
|
+
*/
|
|
41
|
+
function validateMFEProject(projectName) {
|
|
42
|
+
if (!isValidMFEProject(projectName)) {
|
|
43
|
+
throw new Error(`Invalid MFE project: ${projectName}. Valid projects: ${exports.MicroFrontends.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
return projectName;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=mfe-projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfe-projects.js","sourceRoot":"","sources":["../../src/types/mfe-projects.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAwBH,8CAEC;AAKD,0DAEC;AAKD,gDAKC;AAzCY,QAAA,cAAc,GAAG;IAC1B,WAAW;IACX,WAAW;IACX,iBAAiB,EAAC,KAAK;IACvB,WAAW;IACX,mBAAmB,EAAC,MAAM;IAC1B,QAAQ,EAAE,iBAAiB;IAC3B,gBAAgB,EAAE,OAAO;IACzB,YAAY;IACZ,QAAQ,EAAE,UAAU;IACpB,UAAU;CACJ,CAAC;AAKX,iCAAiC;AACpB,QAAA,WAAW,GAAG,IAAI,GAAG,CAAC,sBAAc,CAAC,CAAC;AAEnD;;GAEG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACjD,OAAO,mBAAW,CAAC,GAAG,CAAC,WAA8B,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACnC,OAAO,sBAAc,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,WAAmB;IAClD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,qBAAqB,sBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@houssem__/xxxx",
|
|
3
|
+
"version": "7.0.3",
|
|
4
|
+
"description": "Centralized dependency management for micro-frontend projects - TypeScript Edition",
|
|
5
|
+
"main": "./dist/sync-all-deps.js",
|
|
6
|
+
"types": "./dist/sync-all-deps.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"sync-all-deps": "./dist/sync-all-deps.js",
|
|
9
|
+
"sync-deps": "./dist/dependencies/sync-deps.js",
|
|
10
|
+
"sync-dev-deps": "./dist/dev-deps/sync-dev-deps.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"prebuild": "rimraf dist",
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"perf": "npm run build && node dist/performance/perf.js",
|
|
17
|
+
"install:fast": "npm ci --no-audit --no-fund --prefer-offline",
|
|
18
|
+
"cache:optimize": "npm cache verify && npm config set prefer-offline true",
|
|
19
|
+
"deps:clean": "rm -rf node_modules package-lock.json && npm cache clean --force"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/node": "^22.19.1",
|
|
23
|
+
"rimraf": "^5.0.10",
|
|
24
|
+
"typescript": "^5.6.3"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {}
|
|
27
|
+
}
|