@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,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Fast Installation Utility
|
|
4
|
+
* Optimized batch installation for micro-frontend dependencies
|
|
5
|
+
*/
|
|
6
|
+
interface InstallOptions {
|
|
7
|
+
useCache?: boolean;
|
|
8
|
+
concurrent?: boolean;
|
|
9
|
+
skipOptional?: boolean;
|
|
10
|
+
production?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare class FastInstaller {
|
|
13
|
+
private static readonly NPM_FLAGS;
|
|
14
|
+
static optimizeForFastInstall(options?: InstallOptions): Promise<void>;
|
|
15
|
+
static batchInstallPackages(packages: string[], isDev?: boolean): Promise<void>;
|
|
16
|
+
private static runCommand;
|
|
17
|
+
static preInstallOptimizations(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export { FastInstaller };
|
|
20
|
+
//# sourceMappingURL=fast-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-installer.d.ts","sourceRoot":"","sources":["../../src/common/fast-installer.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAKH,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAK/B;WAEW,sBAAsB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;WA8BnE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5F,OAAO,CAAC,MAAM,CAAC,UAAU;WAYZ,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBtD;AAqBD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Fast Installation Utility
|
|
5
|
+
* Optimized batch installation for micro-frontend dependencies
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.FastInstaller = void 0;
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
class FastInstaller {
|
|
45
|
+
static async optimizeForFastInstall(options = {}) {
|
|
46
|
+
console.log('🚀 Optimizing for fast installation...');
|
|
47
|
+
try {
|
|
48
|
+
// 1. Use npm ci if package-lock exists and we're in production
|
|
49
|
+
if (options.production && fs.existsSync('package-lock.json')) {
|
|
50
|
+
console.log('📦 Using npm ci for production install...');
|
|
51
|
+
this.runCommand(`npm ci ${this.NPM_FLAGS.join(' ')}`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// 2. For development, use optimized npm install
|
|
55
|
+
console.log('🛠️ Using optimized npm install...');
|
|
56
|
+
let installCmd = `npm install ${this.NPM_FLAGS.join(' ')}`;
|
|
57
|
+
if (options.skipOptional) {
|
|
58
|
+
installCmd += ' --no-optional';
|
|
59
|
+
}
|
|
60
|
+
this.runCommand(installCmd);
|
|
61
|
+
console.log('✅ Fast installation completed!');
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error('❌ Fast installation failed:', error);
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
static async batchInstallPackages(packages, isDev = false) {
|
|
69
|
+
if (packages.length === 0)
|
|
70
|
+
return;
|
|
71
|
+
console.log(`📦 Batch installing ${packages.length} ${isDev ? 'dev ' : ''}packages...`);
|
|
72
|
+
// Install in chunks to avoid command line length limits
|
|
73
|
+
const chunkSize = 10;
|
|
74
|
+
for (let i = 0; i < packages.length; i += chunkSize) {
|
|
75
|
+
const chunk = packages.slice(i, i + chunkSize);
|
|
76
|
+
const saveFlag = isDev ? '--save-dev' : '--save';
|
|
77
|
+
const cmd = `npm install ${chunk.join(' ')} ${saveFlag} ${this.NPM_FLAGS.join(' ')}`;
|
|
78
|
+
console.log(` Installing chunk ${Math.floor(i / chunkSize) + 1}/${Math.ceil(packages.length / chunkSize)}...`);
|
|
79
|
+
this.runCommand(cmd);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
static runCommand(cmd) {
|
|
83
|
+
try {
|
|
84
|
+
(0, child_process_1.execSync)(cmd, {
|
|
85
|
+
stdio: 'pipe',
|
|
86
|
+
timeout: 300000, // 5 minutes per command
|
|
87
|
+
maxBuffer: 1024 * 1024 * 20 // 20MB buffer
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throw new Error(`Command failed: ${cmd}\n${error}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static async preInstallOptimizations() {
|
|
95
|
+
console.log('⚡ Running pre-install optimizations...');
|
|
96
|
+
try {
|
|
97
|
+
// Verify and optimize npm cache
|
|
98
|
+
this.runCommand('npm cache verify');
|
|
99
|
+
// Set optimal npm configurations
|
|
100
|
+
const configs = [
|
|
101
|
+
'npm config set progress false',
|
|
102
|
+
'npm config set audit false',
|
|
103
|
+
'npm config set fund false',
|
|
104
|
+
'npm config set prefer-offline true',
|
|
105
|
+
'npm config set maxsockets 15'
|
|
106
|
+
];
|
|
107
|
+
for (const config of configs) {
|
|
108
|
+
this.runCommand(config);
|
|
109
|
+
}
|
|
110
|
+
console.log('✅ Pre-install optimizations complete');
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.warn('⚠️ Some optimizations failed, but continuing...', error);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.FastInstaller = FastInstaller;
|
|
118
|
+
FastInstaller.NPM_FLAGS = [
|
|
119
|
+
'--no-audit',
|
|
120
|
+
'--no-fund',
|
|
121
|
+
'--prefer-offline',
|
|
122
|
+
'--maxsockets=15'
|
|
123
|
+
];
|
|
124
|
+
// CLI interface
|
|
125
|
+
if (require.main === module) {
|
|
126
|
+
const args = process.argv.slice(2);
|
|
127
|
+
const isProduction = args.includes('--production');
|
|
128
|
+
const skipOptional = args.includes('--no-optional');
|
|
129
|
+
FastInstaller.preInstallOptimizations()
|
|
130
|
+
.then(() => FastInstaller.optimizeForFastInstall({
|
|
131
|
+
production: isProduction,
|
|
132
|
+
skipOptional,
|
|
133
|
+
useCache: true,
|
|
134
|
+
concurrent: true
|
|
135
|
+
}))
|
|
136
|
+
.catch(error => {
|
|
137
|
+
console.error('💥 Fast installation failed:', error);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=fast-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-installer.js","sourceRoot":"","sources":["../../src/common/fast-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common utilities for dependency synchronization
|
|
3
|
+
*/
|
|
4
|
+
import { DependencyError, NodeEnvironment, PackageInfo, MFEProjectName } from '../types/interfaces';
|
|
5
|
+
export interface SyncConfig {
|
|
6
|
+
projectName: MFEProjectName;
|
|
7
|
+
syncFlag: string;
|
|
8
|
+
isRunning: boolean;
|
|
9
|
+
environment: NodeEnvironment;
|
|
10
|
+
timestamp: number;
|
|
11
|
+
retryCount: number;
|
|
12
|
+
maxRetries: number;
|
|
13
|
+
backoffMs: number;
|
|
14
|
+
failureThreshold: number;
|
|
15
|
+
}
|
|
16
|
+
export interface SyncResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
operation: string;
|
|
19
|
+
duration: number;
|
|
20
|
+
error?: string;
|
|
21
|
+
packagesSynced?: number;
|
|
22
|
+
skippedPackages?: string[];
|
|
23
|
+
}
|
|
24
|
+
export declare class SyncUtils {
|
|
25
|
+
/**
|
|
26
|
+
* Create structured error with recovery information
|
|
27
|
+
*/
|
|
28
|
+
static createDependencyError(error: unknown, operation: string): DependencyError;
|
|
29
|
+
/**
|
|
30
|
+
* Attempt recovery from failures
|
|
31
|
+
*/
|
|
32
|
+
static attemptRecovery(error: DependencyError): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Simple validation - just check if package.json exists
|
|
35
|
+
*/
|
|
36
|
+
static validateDependencies(): Promise<{
|
|
37
|
+
isValid: boolean;
|
|
38
|
+
issues: string[];
|
|
39
|
+
}>;
|
|
40
|
+
/**
|
|
41
|
+
* Install a package with proper error handling
|
|
42
|
+
*/
|
|
43
|
+
private static pendingDependencies;
|
|
44
|
+
private static pendingDevDependencies;
|
|
45
|
+
static queueDependency(name: string, version: string, isDev: boolean): void;
|
|
46
|
+
static writeQueuedToPackageJson(): Promise<{
|
|
47
|
+
runtime: number;
|
|
48
|
+
dev: number;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Optimize npm configuration for faster installations
|
|
52
|
+
*/
|
|
53
|
+
static optimizeNpmConfig(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Install with performance optimizations
|
|
56
|
+
*/
|
|
57
|
+
static installQueuedOnce(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Batch dependencies for more efficient installation
|
|
60
|
+
*/
|
|
61
|
+
static batchInstallDependencies(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Super-fast chunked installation for large dependency sets (90+ packages)
|
|
64
|
+
*/
|
|
65
|
+
static installQueuedFast(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Split array into chunks for batch processing
|
|
68
|
+
*/
|
|
69
|
+
static chunkArray<T>(array: T[], size: number): T[][];
|
|
70
|
+
/**
|
|
71
|
+
* Enhanced cache management
|
|
72
|
+
*/
|
|
73
|
+
static optimizeCache(): Promise<void>;
|
|
74
|
+
static installPackage(packageName: string, version: string, isDev: boolean): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Sync with retry logic
|
|
77
|
+
*/
|
|
78
|
+
static syncWithRetry(operation: string, syncFunction: () => Promise<any>, config: SyncConfig): Promise<SyncResult>;
|
|
79
|
+
static delay(ms: number): Promise<void>;
|
|
80
|
+
static extractPackageName(errorMessage: string): string | undefined;
|
|
81
|
+
static checkNetworkConnectivity(): Promise<void>;
|
|
82
|
+
static clearNpmCache(): Promise<void>;
|
|
83
|
+
static generalCleanup(): Promise<void>;
|
|
84
|
+
static isValidPackageInfo(info: PackageInfo): boolean;
|
|
85
|
+
static isValidMFEProject(projectName: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Sanitize and validate environment variable input
|
|
88
|
+
*/
|
|
89
|
+
static sanitizeEnvironment(env: string | undefined): NodeEnvironment;
|
|
90
|
+
/**
|
|
91
|
+
* Sanitize command-line argument to prevent injection
|
|
92
|
+
* Removes dangerous characters that could be used for command injection
|
|
93
|
+
*/
|
|
94
|
+
static sanitizeArgument(arg: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Sanitize package name to prevent injection in npm commands
|
|
97
|
+
*/
|
|
98
|
+
static sanitizePackageName(packageName: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* Sanitize version string to prevent injection
|
|
101
|
+
*/
|
|
102
|
+
static sanitizeVersion(version: string): string;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=sync-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-utils.d.ts","sourceRoot":"","sources":["../../src/common/sync-utils.ts"],"names":[],"mappings":"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"}
|