@teambit/config-merger 0.0.136 → 0.0.137
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<testsuites tests="0" failures="0" errors="0" skipped="0">
|
|
3
|
-
<testsuite name="teambit.workspace/config-merger@0.0.
|
|
3
|
+
<testsuite name="teambit.workspace/config-merger@0.0.137" tests="0" failures="0" errors="0" skipped="0"/>
|
|
4
4
|
</testsuites>
|
package/artifacts/schema.json
CHANGED
|
@@ -466,7 +466,7 @@
|
|
|
466
466
|
"__schema": "VariableLikeSchema",
|
|
467
467
|
"location": {
|
|
468
468
|
"filePath": "config-merger.main.runtime.ts",
|
|
469
|
-
"line":
|
|
469
|
+
"line": 494,
|
|
470
470
|
"character": 3
|
|
471
471
|
},
|
|
472
472
|
"signature": "(property) ConfigMergerMain.slots: never[]",
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
"__schema": "InferenceTypeSchema",
|
|
476
476
|
"location": {
|
|
477
477
|
"filePath": "config-merger.main.runtime.ts",
|
|
478
|
-
"line":
|
|
478
|
+
"line": 494,
|
|
479
479
|
"character": 3
|
|
480
480
|
},
|
|
481
481
|
"type": "never[]"
|
|
@@ -487,7 +487,7 @@
|
|
|
487
487
|
"__schema": "VariableLikeSchema",
|
|
488
488
|
"location": {
|
|
489
489
|
"filePath": "config-merger.main.runtime.ts",
|
|
490
|
-
"line":
|
|
490
|
+
"line": 495,
|
|
491
491
|
"character": 3
|
|
492
492
|
},
|
|
493
493
|
"signature": "(property) ConfigMergerMain.dependencies: Aspect[]",
|
|
@@ -496,7 +496,7 @@
|
|
|
496
496
|
"__schema": "InferenceTypeSchema",
|
|
497
497
|
"location": {
|
|
498
498
|
"filePath": "config-merger.main.runtime.ts",
|
|
499
|
-
"line":
|
|
499
|
+
"line": 495,
|
|
500
500
|
"character": 3
|
|
501
501
|
},
|
|
502
502
|
"type": "Aspect[]"
|
|
@@ -508,7 +508,7 @@
|
|
|
508
508
|
"__schema": "VariableLikeSchema",
|
|
509
509
|
"location": {
|
|
510
510
|
"filePath": "config-merger.main.runtime.ts",
|
|
511
|
-
"line":
|
|
511
|
+
"line": 496,
|
|
512
512
|
"character": 3
|
|
513
513
|
},
|
|
514
514
|
"signature": "(property) ConfigMergerMain.runtime: RuntimeDefinition",
|
|
@@ -517,7 +517,7 @@
|
|
|
517
517
|
"__schema": "InferenceTypeSchema",
|
|
518
518
|
"location": {
|
|
519
519
|
"filePath": "config-merger.main.runtime.ts",
|
|
520
|
-
"line":
|
|
520
|
+
"line": 496,
|
|
521
521
|
"character": 3
|
|
522
522
|
},
|
|
523
523
|
"type": "RuntimeDefinition"
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
"__schema": "FunctionLikeSchema",
|
|
530
530
|
"location": {
|
|
531
531
|
"filePath": "config-merger.main.runtime.ts",
|
|
532
|
-
"line":
|
|
532
|
+
"line": 497,
|
|
533
533
|
"character": 3
|
|
534
534
|
},
|
|
535
535
|
"signature": "(method) ConfigMergerMain.provider([workspace, config, loggerMain, depsResolver]: [\n Workspace,\n ConfigMain,\n LoggerMain,\n DependencyResolverMain\n]): Promise<ConfigMergerMain>",
|
|
@@ -539,7 +539,7 @@
|
|
|
539
539
|
"__schema": "ParameterSchema",
|
|
540
540
|
"location": {
|
|
541
541
|
"filePath": "config-merger.main.runtime.ts",
|
|
542
|
-
"line":
|
|
542
|
+
"line": 497,
|
|
543
543
|
"character": 25
|
|
544
544
|
},
|
|
545
545
|
"name": "[ workspace, config, loggerMain, depsResolver ]",
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
"__schema": "TupleTypeSchema",
|
|
548
548
|
"location": {
|
|
549
549
|
"filePath": "config-merger.main.runtime.ts",
|
|
550
|
-
"line":
|
|
550
|
+
"line": 497,
|
|
551
551
|
"character": 72
|
|
552
552
|
},
|
|
553
553
|
"elements": [
|
|
@@ -555,7 +555,7 @@
|
|
|
555
555
|
"__schema": "TypeRefSchema",
|
|
556
556
|
"location": {
|
|
557
557
|
"filePath": "config-merger.main.runtime.ts",
|
|
558
|
-
"line":
|
|
558
|
+
"line": 498,
|
|
559
559
|
"character": 5
|
|
560
560
|
},
|
|
561
561
|
"name": "Workspace",
|
|
@@ -568,7 +568,7 @@
|
|
|
568
568
|
"__schema": "TypeRefSchema",
|
|
569
569
|
"location": {
|
|
570
570
|
"filePath": "config-merger.main.runtime.ts",
|
|
571
|
-
"line":
|
|
571
|
+
"line": 499,
|
|
572
572
|
"character": 5
|
|
573
573
|
},
|
|
574
574
|
"name": "ConfigMain",
|
|
@@ -581,7 +581,7 @@
|
|
|
581
581
|
"__schema": "TypeRefSchema",
|
|
582
582
|
"location": {
|
|
583
583
|
"filePath": "config-merger.main.runtime.ts",
|
|
584
|
-
"line":
|
|
584
|
+
"line": 500,
|
|
585
585
|
"character": 5
|
|
586
586
|
},
|
|
587
587
|
"name": "LoggerMain",
|
|
@@ -594,7 +594,7 @@
|
|
|
594
594
|
"__schema": "TypeRefSchema",
|
|
595
595
|
"location": {
|
|
596
596
|
"filePath": "config-merger.main.runtime.ts",
|
|
597
|
-
"line":
|
|
597
|
+
"line": 501,
|
|
598
598
|
"character": 5
|
|
599
599
|
},
|
|
600
600
|
"name": "DependencyResolverMain",
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
"__schema": "InferenceTypeSchema",
|
|
614
614
|
"location": {
|
|
615
615
|
"filePath": "config-merger.main.runtime.ts",
|
|
616
|
-
"line":
|
|
616
|
+
"line": 497,
|
|
617
617
|
"character": 3
|
|
618
618
|
},
|
|
619
619
|
"type": "Promise<ConfigMergerMain>"
|
|
@@ -2309,7 +2309,7 @@
|
|
|
2309
2309
|
"__schema": "VariableLikeSchema",
|
|
2310
2310
|
"location": {
|
|
2311
2311
|
"filePath": "config-merger.main.runtime.ts",
|
|
2312
|
-
"line":
|
|
2312
|
+
"line": 494,
|
|
2313
2313
|
"character": 3
|
|
2314
2314
|
},
|
|
2315
2315
|
"signature": "(property) ConfigMergerMain.slots: never[]",
|
|
@@ -2318,7 +2318,7 @@
|
|
|
2318
2318
|
"__schema": "InferenceTypeSchema",
|
|
2319
2319
|
"location": {
|
|
2320
2320
|
"filePath": "config-merger.main.runtime.ts",
|
|
2321
|
-
"line":
|
|
2321
|
+
"line": 494,
|
|
2322
2322
|
"character": 3
|
|
2323
2323
|
},
|
|
2324
2324
|
"type": "never[]"
|
|
@@ -2330,7 +2330,7 @@
|
|
|
2330
2330
|
"__schema": "VariableLikeSchema",
|
|
2331
2331
|
"location": {
|
|
2332
2332
|
"filePath": "config-merger.main.runtime.ts",
|
|
2333
|
-
"line":
|
|
2333
|
+
"line": 495,
|
|
2334
2334
|
"character": 3
|
|
2335
2335
|
},
|
|
2336
2336
|
"signature": "(property) ConfigMergerMain.dependencies: Aspect[]",
|
|
@@ -2339,7 +2339,7 @@
|
|
|
2339
2339
|
"__schema": "InferenceTypeSchema",
|
|
2340
2340
|
"location": {
|
|
2341
2341
|
"filePath": "config-merger.main.runtime.ts",
|
|
2342
|
-
"line":
|
|
2342
|
+
"line": 495,
|
|
2343
2343
|
"character": 3
|
|
2344
2344
|
},
|
|
2345
2345
|
"type": "Aspect[]"
|
|
@@ -2351,7 +2351,7 @@
|
|
|
2351
2351
|
"__schema": "VariableLikeSchema",
|
|
2352
2352
|
"location": {
|
|
2353
2353
|
"filePath": "config-merger.main.runtime.ts",
|
|
2354
|
-
"line":
|
|
2354
|
+
"line": 496,
|
|
2355
2355
|
"character": 3
|
|
2356
2356
|
},
|
|
2357
2357
|
"signature": "(property) ConfigMergerMain.runtime: RuntimeDefinition",
|
|
@@ -2360,7 +2360,7 @@
|
|
|
2360
2360
|
"__schema": "InferenceTypeSchema",
|
|
2361
2361
|
"location": {
|
|
2362
2362
|
"filePath": "config-merger.main.runtime.ts",
|
|
2363
|
-
"line":
|
|
2363
|
+
"line": 496,
|
|
2364
2364
|
"character": 3
|
|
2365
2365
|
},
|
|
2366
2366
|
"type": "RuntimeDefinition"
|
|
@@ -2372,7 +2372,7 @@
|
|
|
2372
2372
|
"__schema": "FunctionLikeSchema",
|
|
2373
2373
|
"location": {
|
|
2374
2374
|
"filePath": "config-merger.main.runtime.ts",
|
|
2375
|
-
"line":
|
|
2375
|
+
"line": 497,
|
|
2376
2376
|
"character": 3
|
|
2377
2377
|
},
|
|
2378
2378
|
"signature": "(method) ConfigMergerMain.provider([workspace, config, loggerMain, depsResolver]: [\n Workspace,\n ConfigMain,\n LoggerMain,\n DependencyResolverMain\n]): Promise<ConfigMergerMain>",
|
|
@@ -2382,7 +2382,7 @@
|
|
|
2382
2382
|
"__schema": "ParameterSchema",
|
|
2383
2383
|
"location": {
|
|
2384
2384
|
"filePath": "config-merger.main.runtime.ts",
|
|
2385
|
-
"line":
|
|
2385
|
+
"line": 497,
|
|
2386
2386
|
"character": 25
|
|
2387
2387
|
},
|
|
2388
2388
|
"name": "[ workspace, config, loggerMain, depsResolver ]",
|
|
@@ -2390,7 +2390,7 @@
|
|
|
2390
2390
|
"__schema": "TupleTypeSchema",
|
|
2391
2391
|
"location": {
|
|
2392
2392
|
"filePath": "config-merger.main.runtime.ts",
|
|
2393
|
-
"line":
|
|
2393
|
+
"line": 497,
|
|
2394
2394
|
"character": 72
|
|
2395
2395
|
},
|
|
2396
2396
|
"elements": [
|
|
@@ -2398,7 +2398,7 @@
|
|
|
2398
2398
|
"__schema": "TypeRefSchema",
|
|
2399
2399
|
"location": {
|
|
2400
2400
|
"filePath": "config-merger.main.runtime.ts",
|
|
2401
|
-
"line":
|
|
2401
|
+
"line": 498,
|
|
2402
2402
|
"character": 5
|
|
2403
2403
|
},
|
|
2404
2404
|
"name": "Workspace",
|
|
@@ -2411,7 +2411,7 @@
|
|
|
2411
2411
|
"__schema": "TypeRefSchema",
|
|
2412
2412
|
"location": {
|
|
2413
2413
|
"filePath": "config-merger.main.runtime.ts",
|
|
2414
|
-
"line":
|
|
2414
|
+
"line": 499,
|
|
2415
2415
|
"character": 5
|
|
2416
2416
|
},
|
|
2417
2417
|
"name": "ConfigMain",
|
|
@@ -2424,7 +2424,7 @@
|
|
|
2424
2424
|
"__schema": "TypeRefSchema",
|
|
2425
2425
|
"location": {
|
|
2426
2426
|
"filePath": "config-merger.main.runtime.ts",
|
|
2427
|
-
"line":
|
|
2427
|
+
"line": 500,
|
|
2428
2428
|
"character": 5
|
|
2429
2429
|
},
|
|
2430
2430
|
"name": "LoggerMain",
|
|
@@ -2437,7 +2437,7 @@
|
|
|
2437
2437
|
"__schema": "TypeRefSchema",
|
|
2438
2438
|
"location": {
|
|
2439
2439
|
"filePath": "config-merger.main.runtime.ts",
|
|
2440
|
-
"line":
|
|
2440
|
+
"line": 501,
|
|
2441
2441
|
"character": 5
|
|
2442
2442
|
},
|
|
2443
2443
|
"name": "DependencyResolverMain",
|
|
@@ -2456,7 +2456,7 @@
|
|
|
2456
2456
|
"__schema": "InferenceTypeSchema",
|
|
2457
2457
|
"location": {
|
|
2458
2458
|
"filePath": "config-merger.main.runtime.ts",
|
|
2459
|
-
"line":
|
|
2459
|
+
"line": 497,
|
|
2460
2460
|
"character": 3
|
|
2461
2461
|
},
|
|
2462
2462
|
"type": "Promise<ConfigMergerMain>"
|
|
@@ -2474,7 +2474,7 @@
|
|
|
2474
2474
|
"__schema": "UnImplementedSchema",
|
|
2475
2475
|
"location": {
|
|
2476
2476
|
"filePath": "config-merger.main.runtime.ts",
|
|
2477
|
-
"line":
|
|
2477
|
+
"line": 510,
|
|
2478
2478
|
"character": 16
|
|
2479
2479
|
},
|
|
2480
2480
|
"name": "ConfigMergerMain",
|
|
@@ -2598,7 +2598,7 @@
|
|
|
2598
2598
|
"__schema": "UnImplementedSchema",
|
|
2599
2599
|
"location": {
|
|
2600
2600
|
"filePath": "config-merger.main.runtime.ts",
|
|
2601
|
-
"line":
|
|
2601
|
+
"line": 508,
|
|
2602
2602
|
"character": 1
|
|
2603
2603
|
},
|
|
2604
2604
|
"name": "ConfigMergerAspect.addRuntime(ConfigMergerMain);",
|
|
@@ -3905,7 +3905,7 @@
|
|
|
3905
3905
|
"componentId": {
|
|
3906
3906
|
"scope": "teambit.workspace",
|
|
3907
3907
|
"name": "config-merger",
|
|
3908
|
-
"version": "0.0.
|
|
3908
|
+
"version": "0.0.137"
|
|
3909
3909
|
},
|
|
3910
3910
|
"taggedModuleExports": []
|
|
3911
3911
|
}
|
|
@@ -408,6 +408,10 @@ see the conflicts below and edit your workspace.jsonc as you see fit.`;
|
|
|
408
408
|
// depInCompVer is a version, depInWsVer is a range
|
|
409
409
|
const potentialRangeChar = depInWsVer[0];
|
|
410
410
|
const newRange = potentialRangeChar + depInCompVer;
|
|
411
|
+
if (newRange === depInWsVer) {
|
|
412
|
+
addNotUpdateToLogs(`the min version from ws ${depInWsVer} is the same as ${depInCompVer} from comp`);
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
411
415
|
if (!_semver().default.validRange(newRange)) {
|
|
412
416
|
const warnMsg = `failed to add the range "${potentialRangeChar}" to ${depInCompVer}, the result is not a valid range`;
|
|
413
417
|
this.logger.warn(warnMsg);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_semver","data","_interopRequireDefault","require","_lodash","_dependencyResolver","_componentPackageVersion","_tempy","_fsExtra","_cli","_workspace","_logger","_constants","_bitError","_mergeFiles","_config","_configMergeResult","_configMerger","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","WS_DEPS_FIELDS","ConfigMergerMain","constructor","workspace","logger","config","depsResolver","generateConfigMergeConflictFileForAll","allConfigMerge","configMergeFile","getConflictMergeFile","forEach","configMerge","conflict","generateMergeConflictFile","addConflict","compIdStr","hasConflict","write","writeWorkspaceJsoncWithConflictsGracefully","workspaceDepsConflicts","writeWorkspaceJsoncWithConflicts","undefined","err","error","errTitle","message","conflictsStr","map","depField","name","version","currentVal","otherVal","parseVersionLineWithConflict","flat","join","BitError","wsConfig","workspaceConfig","Error","wsJsoncPath","path","wsJsoncOriginalContent","fs","readFile","wsJsoncContent","originalDep","includes","replace","baseFilePath","tempy","otherFilePath","mergeFilesParams","filePath","currentFile","label","baseFile","otherFile","mergeResult","mergeFiles","conflictFile","debug","backupConfigFile","writeFile","updateWorkspaceJsoncWithDepsIfNeeded","allResults","c","getDepsResolverResult","nonConflictDeps","nonConflictSources","mergedConfig","mergedConfigPolicy","policy","DEPENDENCIES_FIELDS","pkg","force","push","conflictDeps","conflictDepsSources","mergedConfigConflict","notConflictedPackages","keys","conflictedPackages","length","depResolver","extensions","findCoreExtension","DependencyResolverAspect","id","workspaceJsonUpdates","pkgName","currentVer","newVer","workspaceJsonConflicts","dependencies","peerDependencies","conflictPackagesToRemoveFromConfigMerge","conflictRaw","split","otherValValid","snapToSemver","currentVerInWsJson","semver","satisfies","isEmpty","result","filter","dep","reasonForChange","workspaceDepsUpdates","updateDepsInWorkspaceConfig","components","workspacePolicy","getWorkspacePolicyFromConfig","workspacePolicyObj","entries","reduce","acc","current","dependencyId","componentDepsWithMultipleVer","component","deps","getDependenciesFromLegacyComponent","source","depId","getPackageName","compToLog","info","componentDeps","logs","depInCompVer","depInWsVer","isDepInCompVersion","Boolean","valid","isDepInCompRange","validRange","addNotUpdateToLogs","reason","isDepInWsVersion","isDepInWsRange","lifeCycle","find","d","lifecycleType","addToUpdate","addRangeFrom","potentialRangeChar","newRange","warnMsg","warn","addToConflict","gt","isRange1GreaterThanRange2Naively","wsMinVer","minVersion","compMinVer","JSON","stringify","updateWsConfigWithGivenChanges","workspaceConfigConflictWriteError","wsPolicy","getLifeCycle","newWorkspacePolicyEntries","addToRootPolicy","updateExisting","persistConfig","range1","range2","minVersion1","minVersion2","provider","loggerMain","createLogger","ConfigMergerAspect","exports","WorkspaceAspect","ConfigAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["config-merger.main.runtime.ts"],"sourcesContent":["import semver from 'semver';\nimport { isEmpty } from 'lodash';\nimport {\n DependencyResolverAspect,\n DependencyResolverMain,\n WorkspacePolicy,\n WorkspacePolicyConfigKeysNames,\n WorkspacePolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport tempy from 'tempy';\nimport fs from 'fs-extra';\nimport { MainRuntime } from '@teambit/cli';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport mergeFiles, { MergeFileParams } from '@teambit/legacy/dist/utils/merge-files';\nimport { ConfigAspect, ConfigMain } from '@teambit/config';\nimport { ConfigMergeResult, parseVersionLineWithConflict } from './config-merge-result';\nimport { ConfigMergerAspect } from './config-merger.aspect';\n\ntype PkgEntry = { name: string; version: string; force: boolean };\n\nconst WS_DEPS_FIELDS = ['dependencies', 'peerDependencies'];\n\nexport type WorkspaceDepsUpdates = { [pkgName: string]: [string, string] }; // from => to\nexport type WorkspaceDepsConflicts = Record<WorkspacePolicyConfigKeysNames, Array<{ name: string; version: string }>>; // the pkg value is in a format of CONFLICT::OURS::THEIRS\n\nexport type WorkspaceConfigUpdateResult = {\n workspaceDepsUpdates?: WorkspaceDepsUpdates; // in case workspace.jsonc has been updated with dependencies versions\n workspaceDepsConflicts?: WorkspaceDepsConflicts; // in case workspace.jsonc has conflicts\n workspaceConfigConflictWriteError?: Error; // in case workspace.jsonc has conflicts and we failed to write the conflicts to the file\n logs?: string[]; // verbose details about the updates/conflicts for each one of the deps\n};\nexport class ConfigMergerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private config: ConfigMain,\n private depsResolver: DependencyResolverMain\n ) {}\n\n async generateConfigMergeConflictFileForAll(allConfigMerge: ConfigMergeResult[]) {\n const configMergeFile = this.workspace.getConflictMergeFile();\n allConfigMerge.forEach((configMerge) => {\n const conflict = configMerge.generateMergeConflictFile();\n if (!conflict) return;\n configMergeFile.addConflict(configMerge.compIdStr, conflict);\n });\n if (configMergeFile.hasConflict()) {\n await configMergeFile.write();\n }\n }\n\n async writeWorkspaceJsoncWithConflictsGracefully(\n workspaceDepsConflicts: WorkspaceDepsConflicts\n ): Promise<Error | undefined> {\n try {\n await this.writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts);\n return undefined;\n } catch (err: any) {\n this.logger.error(`unable to write workspace.jsonc with conflicts`, err);\n const errTitle = `unable to write workspace.jsonc with conflicts, due to an error: \"${err.message}\".\nsee the conflicts below and edit your workspace.jsonc as you see fit.`;\n const conflictsStr = WS_DEPS_FIELDS.map((depField) => {\n if (!workspaceDepsConflicts[depField]) return [];\n return workspaceDepsConflicts[depField].map(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n return `(${depField}) ${name}: ours: ${currentVal}, theirs: ${otherVal}`;\n });\n })\n .flat()\n .join('\\n');\n return new BitError(`${errTitle}\\n${conflictsStr}`);\n }\n }\n\n private async writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts: WorkspaceDepsConflicts) {\n const wsConfig = this.config.workspaceConfig;\n if (!wsConfig) throw new Error(`unable to get workspace config`);\n const wsJsoncPath = wsConfig.path;\n const wsJsoncOriginalContent = await fs.readFile(wsJsoncPath, 'utf8');\n let wsJsoncContent = wsJsoncOriginalContent;\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!workspaceDepsConflicts[depField]) return;\n workspaceDepsConflicts[depField].forEach(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n // e.g. \"@ci/8oypmb6p-remote.bar.foo\": \"^0.0.3\"\n const originalDep = `\"${name}\": \"${currentVal}\"`;\n if (!wsJsoncContent.includes(originalDep)) {\n throw new Error(`unable to find the dependency ${originalDep} in the workspace.jsonc`);\n }\n wsJsoncContent = wsJsoncContent.replace(originalDep, `\"${name}\": \"${otherVal}\"`);\n });\n });\n\n const baseFilePath = await tempy.write('');\n const otherFilePath = await tempy.write(wsJsoncContent);\n const mergeFilesParams: MergeFileParams = {\n filePath: wsJsoncPath,\n currentFile: {\n label: 'ours',\n path: wsJsoncPath,\n },\n baseFile: {\n path: baseFilePath,\n },\n otherFile: {\n label: 'theirs',\n path: otherFilePath,\n },\n };\n const mergeResult = await mergeFiles(mergeFilesParams);\n const conflictFile = mergeResult.conflict;\n if (!conflictFile) {\n this.logger.debug(`original content:\\n${wsJsoncOriginalContent}`);\n this.logger.debug(`new content:\\n${wsJsoncContent}`);\n throw new Error('unable to generate conflict from the workspace.jsonc file. see debug.log for the file content');\n }\n await wsConfig.backupConfigFile('before writing conflicts');\n this.logger.debug('writing workspace.jsonc with conflicts');\n await fs.writeFile(wsJsoncPath, conflictFile);\n }\n\n async updateWorkspaceJsoncWithDepsIfNeeded(\n allConfigMerge: ConfigMergeResult[]\n ): Promise<{ workspaceDepsUpdates?: WorkspaceDepsUpdates; workspaceDepsConflicts?: WorkspaceDepsConflicts }> {\n const allResults = allConfigMerge.map((c) => c.getDepsResolverResult());\n\n // aggregate all dependencies that can be updated (not conflicting)\n const nonConflictDeps: { [pkgName: string]: string[] } = {};\n const nonConflictSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfig = configMerge.getDepsResolverResult()?.mergedConfig;\n if (!mergedConfig || mergedConfig === '-') return;\n const mergedConfigPolicy = mergedConfig.policy || {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigPolicy[depField]) return;\n mergedConfigPolicy[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (nonConflictDeps[pkg.name]) {\n if (!nonConflictDeps[pkg.name].includes(pkg.version)) nonConflictDeps[pkg.name].push(pkg.version);\n nonConflictSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n nonConflictDeps[pkg.name] = [pkg.version];\n nonConflictSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n // aggregate all dependencies that have conflicts\n const conflictDeps: { [pkgName: string]: string[] } = {};\n const conflictDepsSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfigConflict = configMerge.getDepsResolverResult()?.conflict;\n if (!mergedConfigConflict) return;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigConflict[depField]) return;\n mergedConfigConflict[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (conflictDeps[pkg.name]) {\n if (!conflictDeps[pkg.name].includes(pkg.version)) conflictDeps[pkg.name].push(pkg.version);\n conflictDepsSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n conflictDeps[pkg.name] = [pkg.version];\n conflictDepsSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n const notConflictedPackages = Object.keys(nonConflictDeps);\n const conflictedPackages = Object.keys(conflictDeps);\n if (!notConflictedPackages.length && !conflictedPackages.length) return {};\n\n const workspaceConfig = this.config.workspaceConfig;\n if (!workspaceConfig) throw new Error(`updateWorkspaceJsoncWithDepsIfNeeded unable to get workspace config`);\n const depResolver = workspaceConfig.extensions.findCoreExtension(DependencyResolverAspect.id);\n const policy = depResolver?.config.policy;\n if (!policy) {\n return {};\n }\n\n // calculate the workspace.json updates\n const workspaceJsonUpdates = {};\n notConflictedPackages.forEach((pkgName) => {\n if (nonConflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return; // doesn't exists in the workspace.json\n const currentVer = policy[depField][pkgName];\n const newVer = nonConflictDeps[pkgName][0];\n if (currentVer === newVer) return;\n workspaceJsonUpdates[pkgName] = [currentVer, newVer];\n policy[depField][pkgName] = newVer;\n this.logger.debug(\n `update workspace.jsonc: ${pkgName} from ${currentVer} to ${newVer}. Triggered by: ${nonConflictSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n\n // calculate the workspace.json conflicts\n const workspaceJsonConflicts = { dependencies: [], peerDependencies: [] };\n const conflictPackagesToRemoveFromConfigMerge: string[] = [];\n conflictedPackages.forEach((pkgName) => {\n if (conflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n const conflictRaw = conflictDeps[pkgName][0];\n const [, currentVal, otherVal] = conflictRaw.split('::');\n // in case of a snap, the otherVal is the snap-hash, we need to convert it to semver\n const otherValValid = snapToSemver(otherVal);\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return;\n const currentVerInWsJson = policy[depField][pkgName];\n if (!currentVerInWsJson) return;\n // the version is coming from the workspace.jsonc\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n if (semver.satisfies(otherValValid, currentVerInWsJson)) {\n // the other version is compatible with the current version in the workspace.json\n return;\n }\n workspaceJsonConflicts[depField].push({\n name: pkgName,\n version: conflictRaw.replace(currentVal, currentVerInWsJson),\n force: false,\n });\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n this.logger.debug(\n `conflict workspace.jsonc: ${pkgName} current: ${currentVerInWsJson}, other: ${otherValValid}. Triggered by: ${conflictDepsSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n WS_DEPS_FIELDS.forEach((depField) => {\n if (isEmpty(workspaceJsonConflicts[depField])) delete workspaceJsonConflicts[depField];\n });\n\n if (conflictPackagesToRemoveFromConfigMerge.length) {\n allResults.forEach((result) => {\n if (result?.conflict) {\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!result.conflict?.[depField]) return;\n result.conflict[depField] = result.conflict?.[depField].filter(\n (dep) => !conflictPackagesToRemoveFromConfigMerge.includes(dep.name)\n );\n if (!result.conflict[depField].length) delete result.conflict[depField];\n });\n if (isEmpty(result.conflict)) result.conflict = undefined;\n }\n });\n }\n\n if (Object.keys(workspaceJsonUpdates).length) {\n await workspaceConfig.write({ reasonForChange: 'merge (update dependencies)' });\n }\n\n this.logger.debug('final workspace.jsonc updates', workspaceJsonUpdates);\n this.logger.debug('final workspace.jsonc conflicts', workspaceJsonConflicts);\n\n return {\n workspaceDepsUpdates: Object.keys(workspaceJsonUpdates).length ? workspaceJsonUpdates : undefined,\n workspaceDepsConflicts: Object.keys(workspaceJsonConflicts).length ? workspaceJsonConflicts : undefined,\n };\n }\n\n async updateDepsInWorkspaceConfig(components: ConsumerComponent[]): Promise<WorkspaceConfigUpdateResult | undefined> {\n const workspacePolicy = this.depsResolver.getWorkspacePolicyFromConfig();\n const workspacePolicyObj = workspacePolicy.entries.reduce((acc, current) => {\n acc[current.dependencyId] = current.value.version;\n return acc;\n }, {});\n const componentDepsWithMultipleVer: Record<string, string[]> = {};\n components.forEach((component) => {\n const deps = this.depsResolver.getDependenciesFromLegacyComponent(component);\n deps.forEach((dep) => {\n if (dep.source !== 'auto') return;\n const depId = dep.getPackageName?.();\n if (!depId) return; // unclear when this happens.\n if (!workspacePolicyObj[depId]) return;\n if (workspacePolicyObj[depId] === dep.version) return;\n if (componentDepsWithMultipleVer[depId]?.includes(dep.version)) return;\n\n (componentDepsWithMultipleVer[depId] ||= []).push(dep.version);\n });\n });\n\n const compToLog = Object.keys(componentDepsWithMultipleVer)\n .map(\n (depId) =>\n `${depId} => workspace: ${workspacePolicyObj[depId]}, components: ${componentDepsWithMultipleVer[depId].join(\n ', '\n )}`\n )\n .join('\\n');\n this.logger.info(`found the following deps to update/conflict:\\n${compToLog}`);\n\n const componentDeps = Object.keys(componentDepsWithMultipleVer).reduce((acc, depId) => {\n // if there are different versions of this dep between the components, forget about it.\n if (componentDepsWithMultipleVer[depId].length > 1) return acc;\n acc[depId] = componentDepsWithMultipleVer[depId][0];\n return acc;\n }, {});\n\n if (isEmpty(componentDeps)) {\n return undefined;\n }\n\n const workspaceDepsUpdates: WorkspaceDepsUpdates = {};\n const workspaceDepsConflicts: WorkspaceDepsConflicts = { dependencies: [], peerDependencies: [] };\n\n const logs: string[] = [];\n\n Object.keys(componentDeps).forEach((depId) => {\n const depInCompVer: string = componentDeps[depId];\n const depInWsVer: string = workspacePolicyObj[depId];\n const isDepInCompVersion = Boolean(semver.valid(depInCompVer));\n const isDepInCompRange = !isDepInCompVersion && Boolean(semver.validRange(depInCompVer));\n\n const addNotUpdateToLogs = (reason: string) => {\n logs.push(`${depId} - not updating. ${reason}`);\n };\n\n if (!isDepInCompVersion && !isDepInCompRange) {\n addNotUpdateToLogs(`probably a snap-hash`);\n return; // probably a snap-hash.\n }\n const isDepInWsVersion = Boolean(semver.valid(depInWsVer));\n const isDepInWsRange = !isDepInWsVersion && Boolean(semver.validRange(depInWsVer));\n if (!isDepInWsVersion && !isDepInWsRange) {\n addNotUpdateToLogs(`probably a snap-hash`);\n return; // probably a snap-hash.\n }\n\n // both are either versions or ranges\n const lifeCycle =\n workspacePolicy.entries.find((d) => d.dependencyId === depId)?.lifecycleType === 'peer'\n ? 'peerDependencies'\n : 'dependencies';\n\n const addToUpdate = (addRangeFrom?: string) => {\n if (addRangeFrom) {\n // depInCompVer is a version, depInWsVer is a range\n const potentialRangeChar = depInWsVer[0];\n const newRange = potentialRangeChar + depInCompVer;\n if (!semver.validRange(newRange)) {\n const warnMsg = `failed to add the range \"${potentialRangeChar}\" to ${depInCompVer}, the result is not a valid range`;\n this.logger.warn(warnMsg);\n addNotUpdateToLogs(warnMsg);\n return;\n }\n logs.push(`${depId} - updating from ${depInWsVer} to ${newRange} (new range based on ${depInCompVer})`);\n workspaceDepsUpdates[depId] = [depInWsVer, newRange];\n } else {\n logs.push(`${depId} - updating from ${depInWsVer} to ${depInCompVer}`);\n workspaceDepsUpdates[depId] = [depInWsVer, depInCompVer];\n }\n };\n const addToConflict = () => {\n workspaceDepsConflicts[lifeCycle].push({ name: depId, version: `CONFLICT::${depInWsVer}::${depInCompVer}` });\n logs.push(`${depId} - conflict. ours: ${depInWsVer}, theirs: ${depInCompVer}`);\n };\n\n // both are versions\n if (isDepInCompVersion && isDepInWsVersion) {\n if (semver.gt(depInCompVer, depInWsVer)) {\n addToConflict();\n return;\n }\n addNotUpdateToLogs(`the version from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n\n // both are ranges\n if (isDepInCompRange && isDepInWsRange) {\n if (this.isRange1GreaterThanRange2Naively(depInCompVer, depInWsVer)) {\n addToUpdate();\n return;\n }\n addNotUpdateToLogs(`the range from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n\n if (isDepInCompVersion && isDepInWsRange) {\n const wsMinVer = semver.minVersion(depInWsVer);\n if (!wsMinVer) {\n this.logger.warn(`unable to calculate the min version of ${depInWsVer}`);\n addNotUpdateToLogs(`unable to calculate the min version of ${depInWsVer} from ws`);\n return;\n }\n if (semver.gt(wsMinVer, depInCompVer)) {\n addNotUpdateToLogs(`the min version from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n if (semver.satisfies(depInCompVer, depInWsVer)) {\n addToUpdate(depInWsVer);\n return;\n }\n addToConflict();\n return;\n }\n\n if (isDepInCompRange && isDepInWsVersion) {\n if (semver.satisfies(depInWsVer, depInCompVer)) {\n addToUpdate();\n return;\n }\n const compMinVer = semver.minVersion(depInCompVer);\n if (!compMinVer) {\n this.logger.warn(`unable to calculate the min version of ${compMinVer}`);\n addNotUpdateToLogs(`unable to calculate the min version of ${compMinVer} from comp`);\n return;\n }\n if (semver.gt(compMinVer, depInWsVer)) {\n addToConflict();\n return;\n }\n addNotUpdateToLogs(`the min version from comp ${compMinVer} is less than ${depInWsVer} from ws`);\n }\n throw new Error(`unhandled case: comp: ${depInCompVer}, ws: ${depInWsVer}`);\n });\n\n WS_DEPS_FIELDS.forEach((depField) => {\n if (isEmpty(workspaceDepsConflicts[depField])) delete workspaceDepsConflicts[depField];\n });\n\n this.logger.debug(`workspace config-merge all components logs\\n${logs.join('\\n')}`);\n this.logger.debug('final workspace.jsonc updates [from, to]', workspaceDepsUpdates);\n this.logger.debug(`final workspace.jsonc conflicts ${JSON.stringify(workspaceDepsConflicts, undefined, 2)}`);\n\n await this.updateWsConfigWithGivenChanges(workspaceDepsUpdates, workspacePolicy);\n let workspaceConfigConflictWriteError: Error | undefined;\n if (!isEmpty(workspaceDepsConflicts)) {\n workspaceConfigConflictWriteError = await this.writeWorkspaceJsoncWithConflictsGracefully(workspaceDepsConflicts);\n }\n\n return {\n workspaceDepsUpdates: isEmpty(workspaceDepsUpdates) ? undefined : workspaceDepsUpdates,\n workspaceDepsConflicts: isEmpty(workspaceDepsConflicts) ? undefined : workspaceDepsConflicts,\n workspaceConfigConflictWriteError,\n logs,\n };\n }\n\n private async updateWsConfigWithGivenChanges(workspaceDepsUpdates: WorkspaceDepsUpdates, wsPolicy: WorkspacePolicy) {\n if (isEmpty(workspaceDepsUpdates)) return;\n const getLifeCycle = (depId: string) => {\n const lifeCycle = wsPolicy.entries.find((d) => d.dependencyId === depId)?.lifecycleType;\n if (!lifeCycle) throw new Error(`unable to find the lifecycle of ${depId}`);\n return lifeCycle;\n };\n\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = Object.keys(workspaceDepsUpdates).map((pkgName) => {\n return {\n dependencyId: pkgName,\n lifecycleType: getLifeCycle(pkgName),\n value: {\n version: workspaceDepsUpdates[pkgName][1],\n },\n };\n });\n this.depsResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: true,\n });\n await this.depsResolver.persistConfig('config-merger (update root policy)');\n }\n\n /**\n * if both versions are ranges, it's hard to check which one is bigger. sometimes it's even impossible.\n * remember that a range can be something like `1.2 <1.2.9 || >2.0.0`.\n * this check is naive in a way that it assumes the range is simple, such as \"^1.2.3\" or \"~1.2.3.\n * in this case, it's possible to check for the minimum version and compare it.\n */\n private isRange1GreaterThanRange2Naively(range1: string, range2: string) {\n const minVersion1 = semver.minVersion(range1);\n const minVersion2 = semver.minVersion(range2);\n if (!minVersion1 || !minVersion2) return false;\n return semver.gt(minVersion1, minVersion2);\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, ConfigAspect, LoggerAspect, DependencyResolverAspect];\n static runtime = MainRuntime;\n static async provider([workspace, config, loggerMain, depsResolver]: [\n Workspace,\n ConfigMain,\n LoggerMain,\n DependencyResolverMain\n ]) {\n const logger = loggerMain.createLogger(ConfigMergerAspect.id);\n return new ConfigMergerMain(workspace, logger, config, depsResolver);\n }\n}\n\nConfigMergerAspect.addRuntime(ConfigMergerMain);\n\nexport default ConfigMergerMain;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_semver","data","_interopRequireDefault","require","_lodash","_dependencyResolver","_componentPackageVersion","_tempy","_fsExtra","_cli","_workspace","_logger","_constants","_bitError","_mergeFiles","_config","_configMergeResult","_configMerger","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","WS_DEPS_FIELDS","ConfigMergerMain","constructor","workspace","logger","config","depsResolver","generateConfigMergeConflictFileForAll","allConfigMerge","configMergeFile","getConflictMergeFile","forEach","configMerge","conflict","generateMergeConflictFile","addConflict","compIdStr","hasConflict","write","writeWorkspaceJsoncWithConflictsGracefully","workspaceDepsConflicts","writeWorkspaceJsoncWithConflicts","undefined","err","error","errTitle","message","conflictsStr","map","depField","name","version","currentVal","otherVal","parseVersionLineWithConflict","flat","join","BitError","wsConfig","workspaceConfig","Error","wsJsoncPath","path","wsJsoncOriginalContent","fs","readFile","wsJsoncContent","originalDep","includes","replace","baseFilePath","tempy","otherFilePath","mergeFilesParams","filePath","currentFile","label","baseFile","otherFile","mergeResult","mergeFiles","conflictFile","debug","backupConfigFile","writeFile","updateWorkspaceJsoncWithDepsIfNeeded","allResults","c","getDepsResolverResult","nonConflictDeps","nonConflictSources","mergedConfig","mergedConfigPolicy","policy","DEPENDENCIES_FIELDS","pkg","force","push","conflictDeps","conflictDepsSources","mergedConfigConflict","notConflictedPackages","keys","conflictedPackages","length","depResolver","extensions","findCoreExtension","DependencyResolverAspect","id","workspaceJsonUpdates","pkgName","currentVer","newVer","workspaceJsonConflicts","dependencies","peerDependencies","conflictPackagesToRemoveFromConfigMerge","conflictRaw","split","otherValValid","snapToSemver","currentVerInWsJson","semver","satisfies","isEmpty","result","filter","dep","reasonForChange","workspaceDepsUpdates","updateDepsInWorkspaceConfig","components","workspacePolicy","getWorkspacePolicyFromConfig","workspacePolicyObj","entries","reduce","acc","current","dependencyId","componentDepsWithMultipleVer","component","deps","getDependenciesFromLegacyComponent","source","depId","getPackageName","compToLog","info","componentDeps","logs","depInCompVer","depInWsVer","isDepInCompVersion","Boolean","valid","isDepInCompRange","validRange","addNotUpdateToLogs","reason","isDepInWsVersion","isDepInWsRange","lifeCycle","find","d","lifecycleType","addToUpdate","addRangeFrom","potentialRangeChar","newRange","warnMsg","warn","addToConflict","gt","isRange1GreaterThanRange2Naively","wsMinVer","minVersion","compMinVer","JSON","stringify","updateWsConfigWithGivenChanges","workspaceConfigConflictWriteError","wsPolicy","getLifeCycle","newWorkspacePolicyEntries","addToRootPolicy","updateExisting","persistConfig","range1","range2","minVersion1","minVersion2","provider","loggerMain","createLogger","ConfigMergerAspect","exports","WorkspaceAspect","ConfigAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["config-merger.main.runtime.ts"],"sourcesContent":["import semver from 'semver';\nimport { isEmpty } from 'lodash';\nimport {\n DependencyResolverAspect,\n DependencyResolverMain,\n WorkspacePolicy,\n WorkspacePolicyConfigKeysNames,\n WorkspacePolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport tempy from 'tempy';\nimport fs from 'fs-extra';\nimport { MainRuntime } from '@teambit/cli';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport mergeFiles, { MergeFileParams } from '@teambit/legacy/dist/utils/merge-files';\nimport { ConfigAspect, ConfigMain } from '@teambit/config';\nimport { ConfigMergeResult, parseVersionLineWithConflict } from './config-merge-result';\nimport { ConfigMergerAspect } from './config-merger.aspect';\n\ntype PkgEntry = { name: string; version: string; force: boolean };\n\nconst WS_DEPS_FIELDS = ['dependencies', 'peerDependencies'];\n\nexport type WorkspaceDepsUpdates = { [pkgName: string]: [string, string] }; // from => to\nexport type WorkspaceDepsConflicts = Record<WorkspacePolicyConfigKeysNames, Array<{ name: string; version: string }>>; // the pkg value is in a format of CONFLICT::OURS::THEIRS\n\nexport type WorkspaceConfigUpdateResult = {\n workspaceDepsUpdates?: WorkspaceDepsUpdates; // in case workspace.jsonc has been updated with dependencies versions\n workspaceDepsConflicts?: WorkspaceDepsConflicts; // in case workspace.jsonc has conflicts\n workspaceConfigConflictWriteError?: Error; // in case workspace.jsonc has conflicts and we failed to write the conflicts to the file\n logs?: string[]; // verbose details about the updates/conflicts for each one of the deps\n};\nexport class ConfigMergerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private config: ConfigMain,\n private depsResolver: DependencyResolverMain\n ) {}\n\n async generateConfigMergeConflictFileForAll(allConfigMerge: ConfigMergeResult[]) {\n const configMergeFile = this.workspace.getConflictMergeFile();\n allConfigMerge.forEach((configMerge) => {\n const conflict = configMerge.generateMergeConflictFile();\n if (!conflict) return;\n configMergeFile.addConflict(configMerge.compIdStr, conflict);\n });\n if (configMergeFile.hasConflict()) {\n await configMergeFile.write();\n }\n }\n\n async writeWorkspaceJsoncWithConflictsGracefully(\n workspaceDepsConflicts: WorkspaceDepsConflicts\n ): Promise<Error | undefined> {\n try {\n await this.writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts);\n return undefined;\n } catch (err: any) {\n this.logger.error(`unable to write workspace.jsonc with conflicts`, err);\n const errTitle = `unable to write workspace.jsonc with conflicts, due to an error: \"${err.message}\".\nsee the conflicts below and edit your workspace.jsonc as you see fit.`;\n const conflictsStr = WS_DEPS_FIELDS.map((depField) => {\n if (!workspaceDepsConflicts[depField]) return [];\n return workspaceDepsConflicts[depField].map(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n return `(${depField}) ${name}: ours: ${currentVal}, theirs: ${otherVal}`;\n });\n })\n .flat()\n .join('\\n');\n return new BitError(`${errTitle}\\n${conflictsStr}`);\n }\n }\n\n private async writeWorkspaceJsoncWithConflicts(workspaceDepsConflicts: WorkspaceDepsConflicts) {\n const wsConfig = this.config.workspaceConfig;\n if (!wsConfig) throw new Error(`unable to get workspace config`);\n const wsJsoncPath = wsConfig.path;\n const wsJsoncOriginalContent = await fs.readFile(wsJsoncPath, 'utf8');\n let wsJsoncContent = wsJsoncOriginalContent;\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!workspaceDepsConflicts[depField]) return;\n workspaceDepsConflicts[depField].forEach(({ name, version }) => {\n const { currentVal, otherVal } = parseVersionLineWithConflict(version);\n // e.g. \"@ci/8oypmb6p-remote.bar.foo\": \"^0.0.3\"\n const originalDep = `\"${name}\": \"${currentVal}\"`;\n if (!wsJsoncContent.includes(originalDep)) {\n throw new Error(`unable to find the dependency ${originalDep} in the workspace.jsonc`);\n }\n wsJsoncContent = wsJsoncContent.replace(originalDep, `\"${name}\": \"${otherVal}\"`);\n });\n });\n\n const baseFilePath = await tempy.write('');\n const otherFilePath = await tempy.write(wsJsoncContent);\n const mergeFilesParams: MergeFileParams = {\n filePath: wsJsoncPath,\n currentFile: {\n label: 'ours',\n path: wsJsoncPath,\n },\n baseFile: {\n path: baseFilePath,\n },\n otherFile: {\n label: 'theirs',\n path: otherFilePath,\n },\n };\n const mergeResult = await mergeFiles(mergeFilesParams);\n const conflictFile = mergeResult.conflict;\n if (!conflictFile) {\n this.logger.debug(`original content:\\n${wsJsoncOriginalContent}`);\n this.logger.debug(`new content:\\n${wsJsoncContent}`);\n throw new Error('unable to generate conflict from the workspace.jsonc file. see debug.log for the file content');\n }\n await wsConfig.backupConfigFile('before writing conflicts');\n this.logger.debug('writing workspace.jsonc with conflicts');\n await fs.writeFile(wsJsoncPath, conflictFile);\n }\n\n async updateWorkspaceJsoncWithDepsIfNeeded(\n allConfigMerge: ConfigMergeResult[]\n ): Promise<{ workspaceDepsUpdates?: WorkspaceDepsUpdates; workspaceDepsConflicts?: WorkspaceDepsConflicts }> {\n const allResults = allConfigMerge.map((c) => c.getDepsResolverResult());\n\n // aggregate all dependencies that can be updated (not conflicting)\n const nonConflictDeps: { [pkgName: string]: string[] } = {};\n const nonConflictSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfig = configMerge.getDepsResolverResult()?.mergedConfig;\n if (!mergedConfig || mergedConfig === '-') return;\n const mergedConfigPolicy = mergedConfig.policy || {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigPolicy[depField]) return;\n mergedConfigPolicy[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (nonConflictDeps[pkg.name]) {\n if (!nonConflictDeps[pkg.name].includes(pkg.version)) nonConflictDeps[pkg.name].push(pkg.version);\n nonConflictSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n nonConflictDeps[pkg.name] = [pkg.version];\n nonConflictSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n // aggregate all dependencies that have conflicts\n const conflictDeps: { [pkgName: string]: string[] } = {};\n const conflictDepsSources: { [pkgName: string]: string[] } = {}; // for logging/debugging purposes\n allConfigMerge.forEach((configMerge) => {\n const mergedConfigConflict = configMerge.getDepsResolverResult()?.conflict;\n if (!mergedConfigConflict) return;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!mergedConfigConflict[depField]) return;\n mergedConfigConflict[depField].forEach((pkg: PkgEntry) => {\n if (pkg.force) return; // we only care about auto-detected dependencies\n if (conflictDeps[pkg.name]) {\n if (!conflictDeps[pkg.name].includes(pkg.version)) conflictDeps[pkg.name].push(pkg.version);\n conflictDepsSources[pkg.name].push(configMerge.compIdStr);\n return;\n }\n conflictDeps[pkg.name] = [pkg.version];\n conflictDepsSources[pkg.name] = [configMerge.compIdStr];\n });\n });\n });\n\n const notConflictedPackages = Object.keys(nonConflictDeps);\n const conflictedPackages = Object.keys(conflictDeps);\n if (!notConflictedPackages.length && !conflictedPackages.length) return {};\n\n const workspaceConfig = this.config.workspaceConfig;\n if (!workspaceConfig) throw new Error(`updateWorkspaceJsoncWithDepsIfNeeded unable to get workspace config`);\n const depResolver = workspaceConfig.extensions.findCoreExtension(DependencyResolverAspect.id);\n const policy = depResolver?.config.policy;\n if (!policy) {\n return {};\n }\n\n // calculate the workspace.json updates\n const workspaceJsonUpdates = {};\n notConflictedPackages.forEach((pkgName) => {\n if (nonConflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return; // doesn't exists in the workspace.json\n const currentVer = policy[depField][pkgName];\n const newVer = nonConflictDeps[pkgName][0];\n if (currentVer === newVer) return;\n workspaceJsonUpdates[pkgName] = [currentVer, newVer];\n policy[depField][pkgName] = newVer;\n this.logger.debug(\n `update workspace.jsonc: ${pkgName} from ${currentVer} to ${newVer}. Triggered by: ${nonConflictSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n\n // calculate the workspace.json conflicts\n const workspaceJsonConflicts = { dependencies: [], peerDependencies: [] };\n const conflictPackagesToRemoveFromConfigMerge: string[] = [];\n conflictedPackages.forEach((pkgName) => {\n if (conflictDeps[pkgName].length > 1) {\n // we only want the deps that the other lane has them in the workspace.json and that all comps use the same dep.\n return;\n }\n const conflictRaw = conflictDeps[pkgName][0];\n const [, currentVal, otherVal] = conflictRaw.split('::');\n // in case of a snap, the otherVal is the snap-hash, we need to convert it to semver\n const otherValValid = snapToSemver(otherVal);\n WS_DEPS_FIELDS.forEach((depField) => {\n if (!policy[depField]?.[pkgName]) return;\n const currentVerInWsJson = policy[depField][pkgName];\n if (!currentVerInWsJson) return;\n // the version is coming from the workspace.jsonc\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n if (semver.satisfies(otherValValid, currentVerInWsJson)) {\n // the other version is compatible with the current version in the workspace.json\n return;\n }\n workspaceJsonConflicts[depField].push({\n name: pkgName,\n version: conflictRaw.replace(currentVal, currentVerInWsJson),\n force: false,\n });\n conflictPackagesToRemoveFromConfigMerge.push(pkgName);\n this.logger.debug(\n `conflict workspace.jsonc: ${pkgName} current: ${currentVerInWsJson}, other: ${otherValValid}. Triggered by: ${conflictDepsSources[\n pkgName\n ].join(', ')}`\n );\n });\n });\n WS_DEPS_FIELDS.forEach((depField) => {\n if (isEmpty(workspaceJsonConflicts[depField])) delete workspaceJsonConflicts[depField];\n });\n\n if (conflictPackagesToRemoveFromConfigMerge.length) {\n allResults.forEach((result) => {\n if (result?.conflict) {\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!result.conflict?.[depField]) return;\n result.conflict[depField] = result.conflict?.[depField].filter(\n (dep) => !conflictPackagesToRemoveFromConfigMerge.includes(dep.name)\n );\n if (!result.conflict[depField].length) delete result.conflict[depField];\n });\n if (isEmpty(result.conflict)) result.conflict = undefined;\n }\n });\n }\n\n if (Object.keys(workspaceJsonUpdates).length) {\n await workspaceConfig.write({ reasonForChange: 'merge (update dependencies)' });\n }\n\n this.logger.debug('final workspace.jsonc updates', workspaceJsonUpdates);\n this.logger.debug('final workspace.jsonc conflicts', workspaceJsonConflicts);\n\n return {\n workspaceDepsUpdates: Object.keys(workspaceJsonUpdates).length ? workspaceJsonUpdates : undefined,\n workspaceDepsConflicts: Object.keys(workspaceJsonConflicts).length ? workspaceJsonConflicts : undefined,\n };\n }\n\n async updateDepsInWorkspaceConfig(components: ConsumerComponent[]): Promise<WorkspaceConfigUpdateResult | undefined> {\n const workspacePolicy = this.depsResolver.getWorkspacePolicyFromConfig();\n const workspacePolicyObj = workspacePolicy.entries.reduce((acc, current) => {\n acc[current.dependencyId] = current.value.version;\n return acc;\n }, {});\n const componentDepsWithMultipleVer: Record<string, string[]> = {};\n components.forEach((component) => {\n const deps = this.depsResolver.getDependenciesFromLegacyComponent(component);\n deps.forEach((dep) => {\n if (dep.source !== 'auto') return;\n const depId = dep.getPackageName?.();\n if (!depId) return; // unclear when this happens.\n if (!workspacePolicyObj[depId]) return;\n if (workspacePolicyObj[depId] === dep.version) return;\n if (componentDepsWithMultipleVer[depId]?.includes(dep.version)) return;\n\n (componentDepsWithMultipleVer[depId] ||= []).push(dep.version);\n });\n });\n\n const compToLog = Object.keys(componentDepsWithMultipleVer)\n .map(\n (depId) =>\n `${depId} => workspace: ${workspacePolicyObj[depId]}, components: ${componentDepsWithMultipleVer[depId].join(\n ', '\n )}`\n )\n .join('\\n');\n this.logger.info(`found the following deps to update/conflict:\\n${compToLog}`);\n\n const componentDeps = Object.keys(componentDepsWithMultipleVer).reduce((acc, depId) => {\n // if there are different versions of this dep between the components, forget about it.\n if (componentDepsWithMultipleVer[depId].length > 1) return acc;\n acc[depId] = componentDepsWithMultipleVer[depId][0];\n return acc;\n }, {});\n\n if (isEmpty(componentDeps)) {\n return undefined;\n }\n\n const workspaceDepsUpdates: WorkspaceDepsUpdates = {};\n const workspaceDepsConflicts: WorkspaceDepsConflicts = { dependencies: [], peerDependencies: [] };\n\n const logs: string[] = [];\n\n Object.keys(componentDeps).forEach((depId) => {\n const depInCompVer: string = componentDeps[depId];\n const depInWsVer: string = workspacePolicyObj[depId];\n const isDepInCompVersion = Boolean(semver.valid(depInCompVer));\n const isDepInCompRange = !isDepInCompVersion && Boolean(semver.validRange(depInCompVer));\n\n const addNotUpdateToLogs = (reason: string) => {\n logs.push(`${depId} - not updating. ${reason}`);\n };\n\n if (!isDepInCompVersion && !isDepInCompRange) {\n addNotUpdateToLogs(`probably a snap-hash`);\n return; // probably a snap-hash.\n }\n const isDepInWsVersion = Boolean(semver.valid(depInWsVer));\n const isDepInWsRange = !isDepInWsVersion && Boolean(semver.validRange(depInWsVer));\n if (!isDepInWsVersion && !isDepInWsRange) {\n addNotUpdateToLogs(`probably a snap-hash`);\n return; // probably a snap-hash.\n }\n\n // both are either versions or ranges\n const lifeCycle =\n workspacePolicy.entries.find((d) => d.dependencyId === depId)?.lifecycleType === 'peer'\n ? 'peerDependencies'\n : 'dependencies';\n\n const addToUpdate = (addRangeFrom?: string) => {\n if (addRangeFrom) {\n // depInCompVer is a version, depInWsVer is a range\n const potentialRangeChar = depInWsVer[0];\n const newRange = potentialRangeChar + depInCompVer;\n if (newRange === depInWsVer) {\n addNotUpdateToLogs(`the min version from ws ${depInWsVer} is the same as ${depInCompVer} from comp`);\n return;\n }\n if (!semver.validRange(newRange)) {\n const warnMsg = `failed to add the range \"${potentialRangeChar}\" to ${depInCompVer}, the result is not a valid range`;\n this.logger.warn(warnMsg);\n addNotUpdateToLogs(warnMsg);\n return;\n }\n logs.push(`${depId} - updating from ${depInWsVer} to ${newRange} (new range based on ${depInCompVer})`);\n workspaceDepsUpdates[depId] = [depInWsVer, newRange];\n } else {\n logs.push(`${depId} - updating from ${depInWsVer} to ${depInCompVer}`);\n workspaceDepsUpdates[depId] = [depInWsVer, depInCompVer];\n }\n };\n const addToConflict = () => {\n workspaceDepsConflicts[lifeCycle].push({ name: depId, version: `CONFLICT::${depInWsVer}::${depInCompVer}` });\n logs.push(`${depId} - conflict. ours: ${depInWsVer}, theirs: ${depInCompVer}`);\n };\n\n // both are versions\n if (isDepInCompVersion && isDepInWsVersion) {\n if (semver.gt(depInCompVer, depInWsVer)) {\n addToConflict();\n return;\n }\n addNotUpdateToLogs(`the version from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n\n // both are ranges\n if (isDepInCompRange && isDepInWsRange) {\n if (this.isRange1GreaterThanRange2Naively(depInCompVer, depInWsVer)) {\n addToUpdate();\n return;\n }\n addNotUpdateToLogs(`the range from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n\n if (isDepInCompVersion && isDepInWsRange) {\n const wsMinVer = semver.minVersion(depInWsVer);\n if (!wsMinVer) {\n this.logger.warn(`unable to calculate the min version of ${depInWsVer}`);\n addNotUpdateToLogs(`unable to calculate the min version of ${depInWsVer} from ws`);\n return;\n }\n if (semver.gt(wsMinVer, depInCompVer)) {\n addNotUpdateToLogs(`the min version from ws ${depInWsVer} is greater than ${depInCompVer} from comp`);\n return;\n }\n if (semver.satisfies(depInCompVer, depInWsVer)) {\n addToUpdate(depInWsVer);\n return;\n }\n addToConflict();\n return;\n }\n\n if (isDepInCompRange && isDepInWsVersion) {\n if (semver.satisfies(depInWsVer, depInCompVer)) {\n addToUpdate();\n return;\n }\n const compMinVer = semver.minVersion(depInCompVer);\n if (!compMinVer) {\n this.logger.warn(`unable to calculate the min version of ${compMinVer}`);\n addNotUpdateToLogs(`unable to calculate the min version of ${compMinVer} from comp`);\n return;\n }\n if (semver.gt(compMinVer, depInWsVer)) {\n addToConflict();\n return;\n }\n addNotUpdateToLogs(`the min version from comp ${compMinVer} is less than ${depInWsVer} from ws`);\n }\n throw new Error(`unhandled case: comp: ${depInCompVer}, ws: ${depInWsVer}`);\n });\n\n WS_DEPS_FIELDS.forEach((depField) => {\n if (isEmpty(workspaceDepsConflicts[depField])) delete workspaceDepsConflicts[depField];\n });\n\n this.logger.debug(`workspace config-merge all components logs\\n${logs.join('\\n')}`);\n this.logger.debug('final workspace.jsonc updates [from, to]', workspaceDepsUpdates);\n this.logger.debug(`final workspace.jsonc conflicts ${JSON.stringify(workspaceDepsConflicts, undefined, 2)}`);\n\n await this.updateWsConfigWithGivenChanges(workspaceDepsUpdates, workspacePolicy);\n let workspaceConfigConflictWriteError: Error | undefined;\n if (!isEmpty(workspaceDepsConflicts)) {\n workspaceConfigConflictWriteError = await this.writeWorkspaceJsoncWithConflictsGracefully(workspaceDepsConflicts);\n }\n\n return {\n workspaceDepsUpdates: isEmpty(workspaceDepsUpdates) ? undefined : workspaceDepsUpdates,\n workspaceDepsConflicts: isEmpty(workspaceDepsConflicts) ? undefined : workspaceDepsConflicts,\n workspaceConfigConflictWriteError,\n logs,\n };\n }\n\n private async updateWsConfigWithGivenChanges(workspaceDepsUpdates: WorkspaceDepsUpdates, wsPolicy: WorkspacePolicy) {\n if (isEmpty(workspaceDepsUpdates)) return;\n const getLifeCycle = (depId: string) => {\n const lifeCycle = wsPolicy.entries.find((d) => d.dependencyId === depId)?.lifecycleType;\n if (!lifeCycle) throw new Error(`unable to find the lifecycle of ${depId}`);\n return lifeCycle;\n };\n\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = Object.keys(workspaceDepsUpdates).map((pkgName) => {\n return {\n dependencyId: pkgName,\n lifecycleType: getLifeCycle(pkgName),\n value: {\n version: workspaceDepsUpdates[pkgName][1],\n },\n };\n });\n this.depsResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: true,\n });\n await this.depsResolver.persistConfig('config-merger (update root policy)');\n }\n\n /**\n * if both versions are ranges, it's hard to check which one is bigger. sometimes it's even impossible.\n * remember that a range can be something like `1.2 <1.2.9 || >2.0.0`.\n * this check is naive in a way that it assumes the range is simple, such as \"^1.2.3\" or \"~1.2.3.\n * in this case, it's possible to check for the minimum version and compare it.\n */\n private isRange1GreaterThanRange2Naively(range1: string, range2: string) {\n const minVersion1 = semver.minVersion(range1);\n const minVersion2 = semver.minVersion(range2);\n if (!minVersion1 || !minVersion2) return false;\n return semver.gt(minVersion1, minVersion2);\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, ConfigAspect, LoggerAspect, DependencyResolverAspect];\n static runtime = MainRuntime;\n static async provider([workspace, config, loggerMain, depsResolver]: [\n Workspace,\n ConfigMain,\n LoggerMain,\n DependencyResolverMain\n ]) {\n const logger = loggerMain.createLogger(ConfigMergerAspect.id);\n return new ConfigMergerMain(workspace, logger, config, depsResolver);\n }\n}\n\nConfigMergerAspect.addRuntime(ConfigMergerMain);\n\nexport default ConfigMergerMain;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/config-merger",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.137",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/workspace/config-merger",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.workspace",
|
|
8
8
|
"name": "config-merger",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.137"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"@teambit/component-version": "1.0.3",
|
|
18
18
|
"@teambit/harmony": "0.4.6",
|
|
19
19
|
"@teambit/bit-error": "0.0.404",
|
|
20
|
-
"@teambit/builder": "1.0.
|
|
21
|
-
"@teambit/dependency-resolver": "1.0.
|
|
22
|
-
"@teambit/envs": "1.0.
|
|
20
|
+
"@teambit/builder": "1.0.270",
|
|
21
|
+
"@teambit/dependency-resolver": "1.0.270",
|
|
22
|
+
"@teambit/envs": "1.0.270",
|
|
23
23
|
"@teambit/logger": "0.0.958",
|
|
24
24
|
"@teambit/cli": "0.0.865",
|
|
25
25
|
"@teambit/component-package-version": "0.0.433",
|
|
26
|
-
"@teambit/config": "0.0.
|
|
27
|
-
"@teambit/workspace": "1.0.
|
|
26
|
+
"@teambit/config": "0.0.1021",
|
|
27
|
+
"@teambit/workspace": "1.0.270"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/lodash": "4.14.165",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@teambit/harmony.envs.core-aspect-env": "0.0.33"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@teambit/legacy": "1.0.
|
|
38
|
+
"@teambit/legacy": "1.0.699"
|
|
39
39
|
},
|
|
40
40
|
"license": "Apache-2.0",
|
|
41
41
|
"optionalDependencies": {},
|
|
File without changes
|