@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,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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"}