@teambit/merging 1.0.228 → 1.0.230

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.
@@ -0,0 +1,6 @@
1
+ import { MergingAspect } from './merging.aspect';
2
+ export { mergeReport, applyVersionReport, conflictSummaryReport, installationErrorOutput, compilationErrorOutput, getRemovedOutput, getAddedOutput, getWorkspaceConfigUpdateOutput, } from './merge-cmd';
3
+ export { compIsAlreadyMergedMsg } from './merge-status-provider';
4
+ export type { MergingMain, ComponentMergeStatus, ApplyVersionResults, ApplyVersionResult, FilesStatus, FailedComponents, } from './merging.main.runtime';
5
+ export default MergingAspect;
6
+ export { MergingAspect };
@@ -0,0 +1,50 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { ComponentID } from '@teambit/component-id';
3
+ import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
4
+ import { GlobalConfigMain } from '@teambit/global-config';
5
+ import { ConfigMergeResult, WorkspaceConfigUpdateResult } from '@teambit/config-merger';
6
+ import { ApplyVersionResults, MergingMain, ApplyVersionResult } from './merging.main.runtime';
7
+ export declare class MergeCmd implements Command {
8
+ private merging;
9
+ private globalConfig;
10
+ name: string;
11
+ description: string;
12
+ helpUrl: string;
13
+ group: string;
14
+ extendedDescription: string;
15
+ alias: string;
16
+ options: CommandOptions;
17
+ loader: boolean;
18
+ constructor(merging: MergingMain, globalConfig: GlobalConfigMain);
19
+ report([ids]: [string[]], { ours, theirs, manual, autoMergeResolve, abort, resolve, build, noSnap, verbose, message, skipDependencyInstallation, }: {
20
+ ours?: boolean;
21
+ theirs?: boolean;
22
+ manual?: boolean;
23
+ autoMergeResolve?: MergeStrategy;
24
+ abort?: boolean;
25
+ resolve?: boolean;
26
+ build?: boolean;
27
+ noSnap?: boolean;
28
+ verbose?: boolean;
29
+ message: string;
30
+ skipDependencyInstallation?: boolean;
31
+ }): Promise<string>;
32
+ }
33
+ export declare function mergeReport({ components, failedComponents, removedComponents, version, mergeSnapResults, mergeSnapError, leftUnresolvedConflicts, verbose, configMergeResults, workspaceConfigUpdateResult, }: ApplyVersionResults & {
34
+ configMergeResults?: ConfigMergeResult[];
35
+ }): string;
36
+ export declare function getWorkspaceConfigUpdateOutput(workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult): string;
37
+ /**
38
+ * shows only the file-changes section.
39
+ * if all files are "unchanged", it returns an empty string
40
+ */
41
+ export declare function applyVersionReport(components: ApplyVersionResult[], addName?: boolean, showVersion?: boolean): string;
42
+ export declare function conflictSummaryReport(components: ApplyVersionResult[]): {
43
+ conflictedComponents: number;
44
+ conflictedFiles: number;
45
+ conflictStr: string;
46
+ };
47
+ export declare function installationErrorOutput(installationError?: Error): string;
48
+ export declare function compilationErrorOutput(compilationError?: Error): string;
49
+ export declare function getRemovedOutput(removedComponents?: ComponentID[]): string;
50
+ export declare function getAddedOutput(addedComponents?: ComponentID[]): string;
@@ -0,0 +1,31 @@
1
+ import { Workspace } from '@teambit/workspace';
2
+ import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
3
+ import { ComponentID } from '@teambit/component-id';
4
+ import { Lane } from '@teambit/legacy/dist/scope/models';
5
+ import { ImporterMain } from '@teambit/importer';
6
+ import { Logger } from '@teambit/logger';
7
+ import { ScopeMain } from '@teambit/scope';
8
+ import { ComponentMergeStatus } from './merging.main.runtime';
9
+ export type MergeStatusProviderOptions = {
10
+ resolveUnrelated?: MergeStrategy;
11
+ mergeStrategy: MergeStrategy;
12
+ ignoreConfigChanges?: boolean;
13
+ shouldSquash?: boolean;
14
+ };
15
+ export declare const compIsAlreadyMergedMsg = "component is already merged";
16
+ export declare class MergeStatusProvider {
17
+ private scope;
18
+ private logger;
19
+ private importer;
20
+ private options;
21
+ private workspace?;
22
+ private currentLane?;
23
+ private otherLane?;
24
+ constructor(scope: ScopeMain, logger: Logger, importer: ImporterMain, options: MergeStatusProviderOptions, workspace?: Workspace | undefined, currentLane?: Lane | undefined, // currently checked out lane. if on main, then it's undefined.
25
+ otherLane?: Lane | undefined);
26
+ getStatus(bitIds: ComponentID[]): Promise<ComponentMergeStatus[]>;
27
+ private getComponentMergeStatus;
28
+ private returnUnmerged;
29
+ private getComponentStatusBeforeMergeAttempt;
30
+ private handleNoCommonSnap;
31
+ }
@@ -0,0 +1,2 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+ export declare const MergingAspect: Aspect;
@@ -0,0 +1,152 @@
1
+ import { CLIMain } from '@teambit/cli';
2
+ import { Workspace } from '@teambit/workspace';
3
+ import { Consumer } from '@teambit/legacy/dist/consumer';
4
+ import { MergeStrategy, FileStatus } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
5
+ import { SnappingMain } from '@teambit/snapping';
6
+ import { ComponentID, ComponentIdList } from '@teambit/component-id';
7
+ import { LaneId } from '@teambit/lane-id';
8
+ import { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';
9
+ import { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';
10
+ import { Ref } from '@teambit/legacy/dist/scope/objects';
11
+ import { ConfigMain } from '@teambit/config';
12
+ import { RemoveMain } from '@teambit/remove';
13
+ import { ComponentWriterMain } from '@teambit/component-writer';
14
+ import ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';
15
+ import { ImporterMain } from '@teambit/importer';
16
+ import { Logger, LoggerMain } from '@teambit/logger';
17
+ import { GlobalConfigMain } from '@teambit/global-config';
18
+ import { MergeResultsThreeWay } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';
19
+ import { CheckoutMain, ComponentStatusBase } from '@teambit/checkout';
20
+ import { ConfigMergerMain, ConfigMergeResult, WorkspaceConfigUpdateResult } from '@teambit/config-merger';
21
+ import { SnapsDistance } from '@teambit/legacy/dist/scope/component-ops/snaps-distance';
22
+ import { InstallMain } from '@teambit/install';
23
+ import { ScopeMain } from '@teambit/scope';
24
+ import { MergeStatusProviderOptions } from './merge-status-provider';
25
+ type ResolveUnrelatedData = {
26
+ strategy: MergeStrategy;
27
+ headOnCurrentLane: Ref;
28
+ unrelatedHead: Ref;
29
+ unrelatedLaneId: LaneId;
30
+ };
31
+ export type ComponentMergeStatus = ComponentStatusBase & {
32
+ mergeResults?: MergeResultsThreeWay | null;
33
+ divergeData?: SnapsDistance;
34
+ resolvedUnrelated?: ResolveUnrelatedData;
35
+ configMergeResult?: ConfigMergeResult;
36
+ };
37
+ export type ComponentMergeStatusBeforeMergeAttempt = ComponentStatusBase & {
38
+ divergeData?: SnapsDistance;
39
+ resolvedUnrelated?: ResolveUnrelatedData;
40
+ mergeProps?: {
41
+ otherLaneHead: Ref;
42
+ currentId: ComponentID;
43
+ modelComponent: ModelComponent;
44
+ };
45
+ };
46
+ export type FailedComponents = {
47
+ id: ComponentID;
48
+ unchangedMessage: string;
49
+ unchangedLegitimately?: boolean;
50
+ };
51
+ export type FilesStatus = {
52
+ [fileName: string]: keyof typeof FileStatus;
53
+ };
54
+ export type MergeSnapResults = {
55
+ snappedComponents: ConsumerComponent[];
56
+ autoSnappedResults: AutoTagResult[];
57
+ removedComponents?: ComponentIdList;
58
+ exportedIds?: ComponentID[];
59
+ } | null;
60
+ export type ApplyVersionResult = {
61
+ id: ComponentID;
62
+ filesStatus: FilesStatus;
63
+ };
64
+ export type ApplyVersionResults = {
65
+ components?: ApplyVersionResult[];
66
+ version?: string;
67
+ failedComponents?: FailedComponents[];
68
+ removedComponents?: ComponentID[];
69
+ addedComponents?: ComponentID[];
70
+ resolvedComponents?: ConsumerComponent[];
71
+ abortedComponents?: ApplyVersionResult[];
72
+ mergeSnapResults?: MergeSnapResults;
73
+ mergeSnapError?: Error;
74
+ leftUnresolvedConflicts?: boolean;
75
+ verbose?: boolean;
76
+ newFromLane?: string[];
77
+ newFromLaneAdded?: boolean;
78
+ installationError?: Error;
79
+ compilationError?: Error;
80
+ workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult;
81
+ };
82
+ export declare class MergingMain {
83
+ private workspace;
84
+ private scope;
85
+ private install;
86
+ private snapping;
87
+ private checkout;
88
+ private logger;
89
+ private componentWriter;
90
+ private importer;
91
+ private config;
92
+ private remove;
93
+ private configMerger;
94
+ constructor(workspace: Workspace, scope: ScopeMain, install: InstallMain, snapping: SnappingMain, checkout: CheckoutMain, logger: Logger, componentWriter: ComponentWriterMain, importer: ImporterMain, config: ConfigMain, remove: RemoveMain, configMerger: ConfigMergerMain);
95
+ merge(ids: string[], mergeStrategy: MergeStrategy, abort: boolean, resolve: boolean, noSnap: boolean, message: string, build: boolean, skipDependencyInstallation: boolean): Promise<ApplyVersionResults>;
96
+ /**
97
+ * when user is on main, it merges the remote main components into local.
98
+ * when user is on a lane, it merges the remote lane components into the local lane.
99
+ */
100
+ mergeComponentsFromRemote(consumer: Consumer, bitIds: ComponentID[], mergeStrategy: MergeStrategy, noSnap: boolean, snapMessage: string, build: boolean, skipDependencyInstallation: boolean): Promise<ApplyVersionResults>;
101
+ /**
102
+ * merge multiple components according to the "allComponentsStatus".
103
+ */
104
+ mergeSnaps({ mergeStrategy, allComponentsStatus, otherLaneId, currentLane, noSnap, tag, snapMessage, build, skipDependencyInstallation, }: {
105
+ mergeStrategy: MergeStrategy;
106
+ allComponentsStatus: ComponentMergeStatus[];
107
+ otherLaneId: LaneId;
108
+ currentLane: Lane | null;
109
+ noSnap: boolean;
110
+ tag?: boolean;
111
+ snapMessage: string;
112
+ build: boolean;
113
+ skipDependencyInstallation?: boolean;
114
+ }): Promise<ApplyVersionResults>;
115
+ /**
116
+ * this function gets called from two different commands:
117
+ * 1. "bit merge <ids...>", when merging a component from a remote to the local.
118
+ * in this case, the remote and local are on the same lane or both on main.
119
+ * 2. "bit lane merge", when merging from one lane to another.
120
+ */
121
+ getMergeStatus(bitIds: ComponentID[], // the id.version is the version we want to merge to the current component
122
+ options: MergeStatusProviderOptions, currentLane: Lane | null, // currently checked out lane. if on main, then it's null.
123
+ otherLane?: Lane | null): Promise<ComponentMergeStatus[]>;
124
+ private applyVersionMultiple;
125
+ private applyVersion;
126
+ private abortMerge;
127
+ private resolveMerge;
128
+ private getAllComponentsStatus;
129
+ private snapResolvedComponents;
130
+ private tagAllLaneComponent;
131
+ private getIdsForUnmerged;
132
+ private getComponentsToMerge;
133
+ static slots: never[];
134
+ static dependencies: import("@teambit/harmony").Aspect[];
135
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
136
+ static provider([cli, workspace, scope, snapping, checkout, install, loggerMain, compWriter, importer, config, remove, globalConfig, configMerger,]: [
137
+ CLIMain,
138
+ Workspace,
139
+ ScopeMain,
140
+ SnappingMain,
141
+ CheckoutMain,
142
+ InstallMain,
143
+ LoggerMain,
144
+ ComponentWriterMain,
145
+ ImporterMain,
146
+ ConfigMain,
147
+ RemoveMain,
148
+ GlobalConfigMain,
149
+ ConfigMergerMain
150
+ ]): Promise<MergingMain>;
151
+ }
152
+ export {};
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/merging",
3
- "version": "1.0.228",
3
+ "version": "1.0.230",
4
4
  "homepage": "https://bit.cloud/teambit/component/merging",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "merging",
9
- "version": "1.0.228"
9
+ "version": "1.0.230"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -16,25 +16,25 @@
16
16
  "@teambit/component-id": "1.2.0",
17
17
  "@teambit/lane-id": "0.0.311",
18
18
  "@teambit/harmony": "0.4.6",
19
- "@teambit/cli": "0.0.861",
20
- "@teambit/config-merger": "0.0.95",
21
- "@teambit/global-config": "0.0.864",
22
- "@teambit/importer": "1.0.228",
23
- "@teambit/logger": "0.0.954",
24
- "@teambit/scope": "1.0.228",
25
- "@teambit/workspace": "1.0.228",
26
- "@teambit/checkout": "1.0.228",
27
- "@teambit/component-writer": "1.0.228",
28
- "@teambit/config": "0.0.979",
29
- "@teambit/install": "1.0.228",
30
- "@teambit/remove": "1.0.228",
31
- "@teambit/snapping": "1.0.228"
19
+ "@teambit/cli": "0.0.862",
20
+ "@teambit/config-merger": "0.0.97",
21
+ "@teambit/global-config": "0.0.865",
22
+ "@teambit/importer": "1.0.230",
23
+ "@teambit/logger": "0.0.955",
24
+ "@teambit/scope": "1.0.230",
25
+ "@teambit/workspace": "1.0.230",
26
+ "@teambit/checkout": "1.0.230",
27
+ "@teambit/component-writer": "1.0.230",
28
+ "@teambit/config": "0.0.981",
29
+ "@teambit/install": "1.0.230",
30
+ "@teambit/remove": "1.0.230",
31
+ "@teambit/snapping": "1.0.230"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/lodash": "4.14.165",
35
35
  "@types/mocha": "9.1.0",
36
36
  "chai": "4.3.0",
37
- "@teambit/harmony.envs.core-aspect-env": "0.0.30"
37
+ "@teambit/harmony.envs.core-aspect-env": "0.0.33"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@teambit/legacy": "1.0.624"
package/tsconfig.json CHANGED
@@ -20,8 +20,7 @@
20
20
  "emitDeclarationOnly": true,
21
21
  "strict": true,
22
22
  "strictPropertyInitialization": false,
23
- "noImplicitAny": false,
24
- "composite": true
23
+ "noImplicitAny": false
25
24
  },
26
25
  "exclude": [
27
26
  "artifacts",
@@ -36,46 +35,5 @@
36
35
  "include": [
37
36
  "**/*",
38
37
  "**/*.json"
39
- ],
40
- "references": [
41
- {
42
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_cli@0.0.861"
43
- },
44
- {
45
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_config-merger@0.0.95"
46
- },
47
- {
48
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_global-config@0.0.864"
49
- },
50
- {
51
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_importer@1.0.228"
52
- },
53
- {
54
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_logger@0.0.954"
55
- },
56
- {
57
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.228"
58
- },
59
- {
60
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.228"
61
- },
62
- {
63
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_checkout@1.0.228"
64
- },
65
- {
66
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component-writer@1.0.228"
67
- },
68
- {
69
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_config@0.0.979"
70
- },
71
- {
72
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_install@1.0.228"
73
- },
74
- {
75
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_remove@1.0.228"
76
- },
77
- {
78
- "path": "/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_snapping@1.0.228"
79
- }
80
38
  ]
81
39
  }