@teambit/lanes 1.0.1011 → 1.0.1013

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 +1 @@
1
- {"version":3,"names":["_chai","data","require","_fsExtra","_interopRequireDefault","_path","_harmonyTesting","_remove","_snapping","_workspace","_export","_workspaceTesting","_componentTesting","_lanesEntities","_lanes","_mergeLanes","_graphql","e","__esModule","default","describe","timeout","lanes","workspaceData","before","mockWorkspace","workspacePath","mockComponents","loadAspect","LanesAspect","createLane","after","destroyWorkspace","it","currentLanes","getLanes","expect","to","have","lengthOf","name","equal","snapping","harmony","loadManyAspects","SnappingAspect","ExportAspect","WorkspaceAspect","get","id","tag","ids","build","ignoreIssues","exporter","export","modifyMockedComponents","result","snap","pattern","snappedComponents","length","currentLane","getCurrentLane","Error","isUpToDate","diffStatus","toLaneId","undefined","skipChanges","componentsStatus","every","c","upToDate","be","true","switchLanes","skipDependencyInstallation","unmodified","false","laneDiffResults","changeType","ChangeType","NONE","removeLanes","lanesAfterDelete","restoreLane","hash","output","laneHash","error","err","instanceOf","message","include","laneId","currentLaneId","getCurrentLaneId","laneHistory","getLaneHistory","history","getHistory","Object","keys","snappingResult","snapHistory","log","components","toString","exportResults","compFile","path","join","fs","appendFile","componentsIds","exportedLanes","newWorkspace","bareScopeName","remoteScopeName","importLaneObject","snapHistoryId","find","key","includes","results","checkoutHistory","failedComponents","revertWorkspace","revertHistory","compFileContent","readFile","not","secondSnapHistoryId","secondSnapHistory","workspace","listIds","scope","skip","RemoveAspect","remove","deleteComps","lane","isDeleted","deleted","workspaceData2","harmony2","MergeLanesAspect","mergeLanes2","lanes2","currentLaneId2","mergeLane","mergeStrategy","export2","head","graphql","GraphqlAspect","schemas","getSchemas","an","schema","getSchema"],"sources":["lanes.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport type { Harmony } from '@teambit/harmony';\nimport { loadAspect, loadManyAspects } from '@teambit/harmony.testing.load-aspect';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { SnappingMain } from '@teambit/snapping';\nimport { SnappingAspect } from '@teambit/snapping';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { mockWorkspace, destroyWorkspace } from '@teambit/workspace.testing.mock-workspace';\nimport { mockComponents, modifyMockedComponents } from '@teambit/component.testing.mock-components';\nimport { ChangeType } from '@teambit/lanes.entities.lane-diff';\nimport { LanesAspect } from './lanes.aspect';\nimport type { LanesMain } from './lanes.main.runtime';\nimport type { MergeLanesMain } from '@teambit/merge-lanes';\nimport { MergeLanesAspect } from '@teambit/merge-lanes';\nimport { GraphqlAspect, type GraphqlMain } from '@teambit/graphql';\n\ndescribe('LanesAspect', function () {\n this.timeout(0);\n\n describe('getLanes()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should list all lanes', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].name).to.equal('stage');\n });\n });\n\n describe('isLaneUpToDate', () => {\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false, ignoreIssues: 'MissingManuallyConfiguredPackages' });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n await modifyMockedComponents(workspacePath, 'v2');\n const result = await snapping.snap({\n pattern: 'comp1',\n build: false,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.true;\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({\n pattern: 'comp1',\n build: false,\n unmodified: true,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.false;\n });\n });\n\n describe('laneDiff', () => {\n let harmony: Harmony;\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n const result = await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.true;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.false;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n });\n\n describe('restoreLane()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n // as an intermediate step, make sure the lane was removed\n const lanesAfterDelete = await lanes.getLanes({});\n expect(lanesAfterDelete).to.have.lengthOf(0);\n\n await lanes.restoreLane(currentLanes[0].hash);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should restore the deleted lane', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].id.name).to.equal('stage');\n });\n describe('delete restored lane', () => {\n let output: string[];\n before(async () => {\n output = await lanes.removeLanes(['stage']);\n });\n it('should not throw', () => {\n expect(output).to.have.lengthOf(1);\n });\n });\n });\n\n describe('restore lane when an existing lane has the same id', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let laneHash: string;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n await lanes.createLane('stage');\n laneHash = currentLanes[0].hash;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should throw when restoring the lane', async () => {\n let error: Error | undefined;\n try {\n await lanes.restoreLane(laneHash);\n } catch (err: any) {\n error = err;\n }\n expect(error).to.be.instanceOf(Error);\n expect(error?.message).to.include('unable to restore lane');\n });\n });\n\n describe('lane history', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n snapping = await loadAspect(SnappingAspect, workspacePath);\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should create lane history object when creating a new lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(1);\n });\n describe('snapping', () => {\n let snappingResult;\n before(async () => {\n snappingResult = await snapping.snap({ pattern: 'comp1', build: false, message: 'first snap' });\n });\n it('should add a record to LaneHistory when snapping', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(2);\n const snapHistory = history[Object.keys(history)[1]];\n expect(snapHistory.log.message).to.equal('snap (first snap)');\n expect(snapHistory.components.length).to.equal(1);\n expect(snapHistory.components[0]).to.equal(snappingResult?.snappedComponents[0].id.toString() as string);\n });\n describe('snap again and export', () => {\n let exportResults;\n\n before(async () => {\n const compFile = path.join(workspaceData.workspacePath, 'comp1/index.js');\n await fs.appendFile(compFile, `\\nconsole.log('second-snap');`);\n // make another snap to check to test the checkout later.\n await snapping.snap({ pattern: 'comp1', build: false, message: 'second snap' });\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n\n const exporter: ExportMain = await loadAspect(ExportAspect, workspaceData.workspacePath);\n exportResults = await exporter.export();\n });\n it('should export successfully', () => {\n expect(exportResults.componentsIds.length).to.equal(1);\n expect(exportResults.exportedLanes.length).to.equal(1);\n });\n describe('import to another workspace', () => {\n let newWorkspace: WorkspaceData;\n before(async () => {\n newWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n\n lanes = await loadAspect(LanesAspect, newWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n });\n after(async () => {\n await destroyWorkspace(newWorkspace);\n });\n it('should not add a record to the lane-history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n });\n it('should be able to checkout to a previous state of the lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.checkoutHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n });\n it('should be able to revert to a previous history id', async () => {\n const revertWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n lanes = await loadAspect(LanesAspect, revertWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.revertHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n\n const compFile = path.join(\n revertWorkspace.workspacePath,\n revertWorkspace.remoteScopeName,\n 'comp1/index.js'\n );\n const compFileContent = await fs.readFile(compFile, 'utf8');\n\n // make sure it reverts to the first snap.\n expect(compFileContent).to.not.include('second-snap');\n\n // make sure it keeps the version in .bitmap intact and doesn't change it to the first snap. (as with checkout)\n const secondSnapHistoryId = Object.keys(history).find((key) =>\n history[key].log.message?.includes('second snap')\n );\n if (!secondSnapHistoryId) throw new Error('unable to find snap history of the second snap');\n const secondSnapHistory = history[secondSnapHistoryId];\n const workspace: Workspace = await loadAspect(WorkspaceAspect, revertWorkspace.workspacePath);\n const ids = await workspace.listIds();\n expect(ids[0].toString()).to.equal(secondSnapHistory.components[0]);\n await destroyWorkspace(revertWorkspace);\n });\n });\n });\n });\n });\n\n describe('create lanes with the same name different scope', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should not throw when creating the second lane', async () => {\n await lanes.createLane('stage', { scope: 'new-scope' });\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes.length).to.equal(2);\n expect(currentLanes[0].id.name).to.equal('stage');\n expect(currentLanes[1].id.name).to.equal('stage');\n });\n });\n\n // todo: fix after deleting teambit.legacy\n // for some reason it is trying to add the core-aspect teambit.component/remove to the graph and then\n // it complains that it has no version. from the cli it doesn't happen.\n describe.skip('delete component on a lane after export', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n const harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n const remove: RemoveMain = harmony.get(RemoveAspect.id);\n await remove.deleteComps('comp1');\n\n await snapping.snap({ build: false });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should save the deleted data into the lane object', async () => {\n const lane = await lanes.getCurrentLane();\n expect(lane?.components[0].isDeleted).to.be.true;\n });\n it('should save the deleted data into lane history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n const snapHistory = history[Object.keys(history)[2]];\n expect(snapHistory.deleted?.length).to.equal(1);\n });\n });\n\n describe('create comps on a lane then switch to main with --head', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n // in another workspace, merge the lane into main.\n const workspaceData2 = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n const harmony2 = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect, MergeLanesAspect],\n workspaceData2.workspacePath\n );\n const mergeLanes2 = harmony2.get<MergeLanesMain>(MergeLanesAspect.id);\n const lanes2 = harmony2.get<LanesMain>(LanesAspect.id);\n const currentLaneId2 = lanes2.getCurrentLaneId() as LaneId;\n await mergeLanes2.mergeLane(laneId, currentLaneId2, {\n mergeStrategy: 'manual',\n skipDependencyInstallation: true,\n });\n const export2 = harmony2.get<ExportMain>(ExportAspect.id);\n await export2.export();\n\n // reload harmony, otherwise, the \"lanes\" aspect has the workspace of harmony2.\n harmony = await loadManyAspects([LanesAspect], workspaceData.workspacePath);\n lanes = harmony.get(LanesAspect.id);\n await lanes.switchLanes('main', { head: true, skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('the components should be available on main', () => {\n const workspace: Workspace = harmony.get(WorkspaceAspect.id);\n const ids = workspace.listIds();\n expect(ids.length).to.equal(1);\n });\n });\n});\n\n/**\n * TODO: this should not be here. It belongs to the GraphQL aspect.\n * The reason it was moved here is that otherwise, it forms circular dependencies.\n * we should think of a better way to handle this.\n */\ndescribe('GraphQL Aspect', function () {\n this.timeout(0);\n\n describe('getSchemas and getSchema APIs', () => {\n let graphql: GraphqlMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n const harmony = await loadManyAspects([WorkspaceAspect, GraphqlAspect, LanesAspect], workspacePath);\n graphql = harmony.get<GraphqlMain>(GraphqlAspect.id);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should bring the schemas when calling getSchemas API', async () => {\n const schemas = graphql.getSchemas([LanesAspect.id]);\n expect(schemas).to.be.an('array');\n expect(schemas).to.have.lengthOf(1);\n expect(schemas[0]).to.be.an('object');\n expect(schemas[0]).to.not.be.an('function');\n });\n it('should bring the schemas when calling getSchema API', async () => {\n const schema = graphql.getSchema(LanesAspect.id);\n expect(schema).to.be.an('object');\n expect(schema).to.not.be.an('function');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_fsExtra","_interopRequireDefault","_path","_harmonyTesting","_remove","_snapping","_workspace","_export","_workspaceTesting","_componentTesting","_lanesEntities","_lanes","_mergeLanes","_graphql","e","__esModule","default","describe","timeout","lanes","workspaceData","before","mockWorkspace","workspacePath","mockComponents","loadAspect","LanesAspect","createLane","after","destroyWorkspace","it","currentLanes","getLanes","expect","to","have","lengthOf","name","equal","snapping","harmony","loadManyAspects","SnappingAspect","ExportAspect","WorkspaceAspect","get","id","tag","ids","build","ignoreIssues","exporter","export","modifyMockedComponents","result","snap","pattern","snappedComponents","length","currentLane","getCurrentLane","Error","isUpToDate","diffStatus","toLaneId","undefined","skipChanges","componentsStatus","every","c","upToDate","be","true","switchLanes","skipDependencyInstallation","unmodified","false","laneDiffResults","changeType","ChangeType","NONE","removeLanes","lanesAfterDelete","restoreLane","hash","output","laneHash","error","err","instanceOf","message","include","laneId","currentLaneId","getCurrentLaneId","laneHistory","getLaneHistory","history","getHistory","Object","keys","snappingResult","snapHistory","log","components","toString","exportResults","compFile","path","join","fs","appendFile","componentsIds","exportedLanes","newWorkspace","bareScopeName","remoteScopeName","importLaneObject","snapHistoryId","find","key","includes","results","checkoutHistory","failedComponents","revertWorkspace","revertHistory","compFileContent","readFile","not","secondSnapHistoryId","secondSnapHistory","workspace","listIds","scope","skip","RemoveAspect","remove","deleteComps","lane","isDeleted","deleted","workspaceData2","harmony2","MergeLanesAspect","mergeLanes2","lanes2","currentLaneId2","mergeLane","mergeStrategy","export2","graphql","GraphqlAspect","schemas","getSchemas","an","schema","getSchema"],"sources":["lanes.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport type { Harmony } from '@teambit/harmony';\nimport { loadAspect, loadManyAspects } from '@teambit/harmony.testing.load-aspect';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { SnappingMain } from '@teambit/snapping';\nimport { SnappingAspect } from '@teambit/snapping';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { mockWorkspace, destroyWorkspace } from '@teambit/workspace.testing.mock-workspace';\nimport { mockComponents, modifyMockedComponents } from '@teambit/component.testing.mock-components';\nimport { ChangeType } from '@teambit/lanes.entities.lane-diff';\nimport { LanesAspect } from './lanes.aspect';\nimport type { LanesMain } from './lanes.main.runtime';\nimport type { MergeLanesMain } from '@teambit/merge-lanes';\nimport { MergeLanesAspect } from '@teambit/merge-lanes';\nimport { GraphqlAspect, type GraphqlMain } from '@teambit/graphql';\n\ndescribe('LanesAspect', function () {\n this.timeout(0);\n\n describe('getLanes()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should list all lanes', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].name).to.equal('stage');\n });\n });\n\n describe('isLaneUpToDate', () => {\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false, ignoreIssues: 'MissingManuallyConfiguredPackages' });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n await modifyMockedComponents(workspacePath, 'v2');\n const result = await snapping.snap({\n pattern: 'comp1',\n build: false,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.true;\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({\n pattern: 'comp1',\n build: false,\n unmodified: true,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.false;\n });\n });\n\n describe('laneDiff', () => {\n let harmony: Harmony;\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n const result = await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.true;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.false;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n });\n\n describe('restoreLane()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n // as an intermediate step, make sure the lane was removed\n const lanesAfterDelete = await lanes.getLanes({});\n expect(lanesAfterDelete).to.have.lengthOf(0);\n\n await lanes.restoreLane(currentLanes[0].hash);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should restore the deleted lane', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].id.name).to.equal('stage');\n });\n describe('delete restored lane', () => {\n let output: string[];\n before(async () => {\n output = await lanes.removeLanes(['stage']);\n });\n it('should not throw', () => {\n expect(output).to.have.lengthOf(1);\n });\n });\n });\n\n describe('restore lane when an existing lane has the same id', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let laneHash: string;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n await lanes.createLane('stage');\n laneHash = currentLanes[0].hash;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should throw when restoring the lane', async () => {\n let error: Error | undefined;\n try {\n await lanes.restoreLane(laneHash);\n } catch (err: any) {\n error = err;\n }\n expect(error).to.be.instanceOf(Error);\n expect(error?.message).to.include('unable to restore lane');\n });\n });\n\n describe('lane history', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n snapping = await loadAspect(SnappingAspect, workspacePath);\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should create lane history object when creating a new lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(1);\n });\n describe('snapping', () => {\n let snappingResult;\n before(async () => {\n snappingResult = await snapping.snap({ pattern: 'comp1', build: false, message: 'first snap' });\n });\n it('should add a record to LaneHistory when snapping', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(2);\n const snapHistory = history[Object.keys(history)[1]];\n expect(snapHistory.log.message).to.equal('snap (first snap)');\n expect(snapHistory.components.length).to.equal(1);\n expect(snapHistory.components[0]).to.equal(snappingResult?.snappedComponents[0].id.toString() as string);\n });\n describe('snap again and export', () => {\n let exportResults;\n\n before(async () => {\n const compFile = path.join(workspaceData.workspacePath, 'comp1/index.js');\n await fs.appendFile(compFile, `\\nconsole.log('second-snap');`);\n // make another snap to check to test the checkout later.\n await snapping.snap({ pattern: 'comp1', build: false, message: 'second snap' });\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n\n const exporter: ExportMain = await loadAspect(ExportAspect, workspaceData.workspacePath);\n exportResults = await exporter.export();\n });\n it('should export successfully', () => {\n expect(exportResults.componentsIds.length).to.equal(1);\n expect(exportResults.exportedLanes.length).to.equal(1);\n });\n describe('import to another workspace', () => {\n let newWorkspace: WorkspaceData;\n before(async () => {\n newWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n\n lanes = await loadAspect(LanesAspect, newWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n });\n after(async () => {\n await destroyWorkspace(newWorkspace);\n });\n it('should not add a record to the lane-history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n });\n it('should be able to checkout to a previous state of the lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.checkoutHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n });\n it('should be able to revert to a previous history id', async () => {\n const revertWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n lanes = await loadAspect(LanesAspect, revertWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.revertHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n\n const compFile = path.join(\n revertWorkspace.workspacePath,\n revertWorkspace.remoteScopeName,\n 'comp1/index.js'\n );\n const compFileContent = await fs.readFile(compFile, 'utf8');\n\n // make sure it reverts to the first snap.\n expect(compFileContent).to.not.include('second-snap');\n\n // make sure it keeps the version in .bitmap intact and doesn't change it to the first snap. (as with checkout)\n const secondSnapHistoryId = Object.keys(history).find((key) =>\n history[key].log.message?.includes('second snap')\n );\n if (!secondSnapHistoryId) throw new Error('unable to find snap history of the second snap');\n const secondSnapHistory = history[secondSnapHistoryId];\n const workspace: Workspace = await loadAspect(WorkspaceAspect, revertWorkspace.workspacePath);\n const ids = await workspace.listIds();\n expect(ids[0].toString()).to.equal(secondSnapHistory.components[0]);\n await destroyWorkspace(revertWorkspace);\n });\n });\n });\n });\n });\n\n describe('create lanes with the same name different scope', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should not throw when creating the second lane', async () => {\n await lanes.createLane('stage', { scope: 'new-scope' });\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes.length).to.equal(2);\n expect(currentLanes[0].id.name).to.equal('stage');\n expect(currentLanes[1].id.name).to.equal('stage');\n });\n });\n\n // todo: fix after deleting teambit.legacy\n // for some reason it is trying to add the core-aspect teambit.component/remove to the graph and then\n // it complains that it has no version. from the cli it doesn't happen.\n describe.skip('delete component on a lane after export', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n const harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n const remove: RemoveMain = harmony.get(RemoveAspect.id);\n await remove.deleteComps('comp1');\n\n await snapping.snap({ build: false });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should save the deleted data into the lane object', async () => {\n const lane = await lanes.getCurrentLane();\n expect(lane?.components[0].isDeleted).to.be.true;\n });\n it('should save the deleted data into lane history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n const snapHistory = history[Object.keys(history)[2]];\n expect(snapHistory.deleted?.length).to.equal(1);\n });\n });\n\n describe('create comps on a lane then switch to main with --head', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n // in another workspace, merge the lane into main.\n const workspaceData2 = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n const harmony2 = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect, MergeLanesAspect],\n workspaceData2.workspacePath\n );\n const mergeLanes2 = harmony2.get<MergeLanesMain>(MergeLanesAspect.id);\n const lanes2 = harmony2.get<LanesMain>(LanesAspect.id);\n const currentLaneId2 = lanes2.getCurrentLaneId() as LaneId;\n await mergeLanes2.mergeLane(laneId, currentLaneId2, {\n mergeStrategy: 'manual',\n skipDependencyInstallation: true,\n });\n const export2 = harmony2.get<ExportMain>(ExportAspect.id);\n await export2.export();\n\n // reload harmony, otherwise, the \"lanes\" aspect has the workspace of harmony2.\n harmony = await loadManyAspects([LanesAspect], workspaceData.workspacePath);\n lanes = harmony.get(LanesAspect.id);\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('the components should be available on main', () => {\n const workspace: Workspace = harmony.get(WorkspaceAspect.id);\n const ids = workspace.listIds();\n expect(ids.length).to.equal(1);\n });\n });\n});\n\n/**\n * TODO: this should not be here. It belongs to the GraphQL aspect.\n * The reason it was moved here is that otherwise, it forms circular dependencies.\n * we should think of a better way to handle this.\n */\ndescribe('GraphQL Aspect', function () {\n this.timeout(0);\n\n describe('getSchemas and getSchema APIs', () => {\n let graphql: GraphqlMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n const harmony = await loadManyAspects([WorkspaceAspect, GraphqlAspect, LanesAspect], workspacePath);\n graphql = harmony.get<GraphqlMain>(GraphqlAspect.id);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should bring the schemas when calling getSchemas API', async () => {\n const schemas = graphql.getSchemas([LanesAspect.id]);\n expect(schemas).to.be.an('array');\n expect(schemas).to.have.lengthOf(1);\n expect(schemas[0]).to.be.an('object');\n expect(schemas[0]).to.not.be.an('function');\n });\n it('should bring the schemas when calling getSchema API', async () => {\n const schema = graphql.getSchema(LanesAspect.id);\n expect(schema).to.be.an('object');\n expect(schema).to.not.be.an('function');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,7 @@ export declare class LanesUI {
43
43
  private scope?;
44
44
  static dependencies: import("@teambit/harmony").Aspect[];
45
45
  static runtime: import("@teambit/harmony").RuntimeDefinition;
46
- static slots: (((registerFn: () => string) => SlotRegistry<RouteProps>) | ((registerFn: () => string) => SlotRegistry<MenuWidgetSlot>) | ((registerFn: () => string) => SlotRegistry<NavigationSlot>) | ((registerFn: () => string) => SlotRegistry<LaneProviderIgnoreSlot>))[];
46
+ static slots: (((registerFn: () => string) => SlotRegistry<RouteProps>) | ((registerFn: () => string) => SlotRegistry<LaneOverviewLineSlot>) | ((registerFn: () => string) => SlotRegistry<NavigationSlot>) | ((registerFn: () => string) => SlotRegistry<LaneProviderIgnoreSlot>))[];
47
47
  constructor(componentUI: ComponentUI, componentCompareUI: ComponentCompareUI, routeSlot: RouteSlot, navSlot: LanesOrderedNavigationSlot, menuWidgetSlot: MenuWidgetSlot,
48
48
  /**
49
49
  * overview line slot to add new lines beneath the overview section
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1011/dist/lanes.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1011/dist/lanes.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1013/dist/lanes.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1013/dist/lanes.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -10,7 +10,7 @@ export type SwitchProps = {
10
10
  ids?: ComponentID[];
11
11
  laneBitIds?: ComponentID[];
12
12
  pattern?: string;
13
- head?: boolean;
13
+ skipFetch?: boolean;
14
14
  existingOnWorkspaceOnly?: boolean;
15
15
  remoteLane?: Lane;
16
16
  localTrackedLane?: string;
@@ -76,25 +76,42 @@ class LaneSwitcher {
76
76
  }
77
77
  async populateSwitchProps() {
78
78
  const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);
79
+ const skipFetch = this.switchProps.skipFetch;
79
80
  const localLane = await this.consumer.scope.loadLane(laneId);
80
81
  const getMainIds = async () => {
81
- if (this.switchProps.head) {
82
+ if (!skipFetch) {
82
83
  const allIds = this.workspace.listIds();
83
- await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {
84
- cache: false,
85
- ignoreMissingHead: true
86
- });
87
- return this.consumer.getIdsOfDefaultLane();
84
+ try {
85
+ await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {
86
+ cache: false,
87
+ ignoreMissingHead: true
88
+ });
89
+ } catch (err) {
90
+ this.logger.consoleWarning(`failed to fetch the latest from the remote, falling back to local state. ${err.message}\nuse --skip-fetch to skip this step.`);
91
+ }
88
92
  }
89
- const mainIds = await this.consumer.getIdsOfDefaultLane();
90
- return mainIds;
93
+ return this.consumer.getIdsOfDefaultLane();
91
94
  };
92
95
  const mainIds = await getMainIds();
93
96
  if (laneId.isDefault()) {
94
97
  await this.populatePropsAccordingToDefaultLane();
95
98
  this.switchProps.ids = mainIds;
96
99
  } else {
97
- const laneIds = localLane && !this.switchProps.head ? this.populatePropsAccordingToLocalLane(localLane) : await this.populatePropsAccordingToRemoteLane(laneId);
100
+ let laneIds;
101
+ if (skipFetch) {
102
+ if (!localLane) {
103
+ throw new (_bitError().BitError)(`unable to switch to lane "${laneId.toString()}" with --skip-fetch: the lane doesn't exist in the local scope. run without --skip-fetch to fetch it from the remote.`);
104
+ }
105
+ laneIds = this.populatePropsAccordingToLocalLane(localLane);
106
+ } else {
107
+ try {
108
+ laneIds = await this.populatePropsAccordingToRemoteLane(laneId);
109
+ } catch (err) {
110
+ if (!localLane) throw err;
111
+ this.logger.consoleWarning(`failed to fetch lane "${laneId.toString()}" from the remote, falling back to local state. ${err.message}\nuse --skip-fetch to skip this step.`);
112
+ laneIds = this.populatePropsAccordingToLocalLane(localLane);
113
+ }
114
+ }
98
115
  const idsOnLaneOnly = laneIds.filter(id => !mainIds.find(i => i.isEqualWithoutVersion(id)));
99
116
  const idsOnMainOnly = mainIds.filter(id => !laneIds.find(i => i.isEqualWithoutVersion(id)));
100
117
  this.switchProps.ids = [...idsOnMainOnly, ...laneIds];
@@ -1 +1 @@
1
- {"version":3,"names":["_laneId","data","require","_componentId","_bitError","_lanesModules","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","lanes","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","bitMapIds","bitmapIdsFromCurrentLaneIncludeRemoved","idsToSwitch","ids","map","id","bitMapId","searchWithoutVersion","allowAddingComponentsFromScope","versionPerId","resolveMultipleComponentIds","lane","laneToSwitchTo","results","checkout","saveLanesData","onDestroy","laneId","scope","parseLaneIdFromString","laneName","localLane","loadLane","getMainIds","head","allIds","listIds","legacyScope","scopeImporter","importWithoutDeps","cache","ignoreMissingHead","getIdsOfDefaultLane","mainIds","isDefault","populatePropsAccordingToDefaultLane","laneIds","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","idsOnLaneOnly","find","isEqualWithoutVersion","idsOnMainOnly","laneBitIds","populateIdsAccordingToPattern","pattern","bitMap","getAllBitIdsFromAllLanes","BitError","filterIdsFromPoolIdsByPattern","remoteLaneId","laneIdToSwitchTo","debug","toString","throwForSwitchingToCurrentLane","remoteLane","fetchLaneWithItsComponents","name","localTrackedLane","getAliasByLaneId","undefined","toComponentIds","LaneId","from","DEFAULT_LANE","toLaneId","getCurrentLaneId","isEqual","laneIdStr","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithIds","ComponentIdList","fromArray","objects","clearObjectsFromCache","exports"],"sources":["switch-lanes.ts"],"sourcesContent":["import type { Consumer } from '@teambit/legacy.consumer';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { ApplyVersionResults } from '@teambit/component.modules.merge-helper';\nimport type { Lane } from '@teambit/objects';\nimport type { CheckoutProps } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { throwForStagedComponents } from '@teambit/lanes.modules.create-lane';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: ComponentID[];\n laneBitIds?: ComponentID[]; // only needed for the deprecated onLanesOnly prop. once this prop is removed, this prop can be removed as well.\n pattern?: string;\n head?: boolean;\n existingOnWorkspaceOnly?: boolean;\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitchTo: LaneId; // populated by `this.populateSwitchProps()`\n private laneToSwitchTo: Lane | undefined; // populated by `this.populateSwitchProps()`, if default-lane, it's undefined\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps,\n private lanes: LanesMain\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n if (this.workspace.isOnMain()) {\n await throwForStagedComponents(this.workspace);\n }\n await this.populateSwitchProps();\n const bitMapIds = this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const idsToSwitch = this.switchProps.ids || [];\n const ids = idsToSwitch.map((id) => {\n const bitMapId = bitMapIds.searchWithoutVersion(id);\n return bitMapId || id;\n });\n\n const checkoutProps: CheckoutProps = {\n ...this.checkoutProps,\n ids,\n allowAddingComponentsFromScope: true,\n versionPerId: await this.workspace.resolveMultipleComponentIds(idsToSwitch),\n lane: this.laneToSwitchTo,\n };\n\n const results = await this.lanes.checkout.checkout(checkoutProps);\n\n await this.saveLanesData();\n await this.consumer.onDestroy('lane-switch');\n\n return results;\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n const getMainIds = async () => {\n if (this.switchProps.head) {\n const allIds = this.workspace.listIds();\n await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {\n cache: false,\n ignoreMissingHead: true,\n });\n return this.consumer.getIdsOfDefaultLane();\n }\n const mainIds = await this.consumer.getIdsOfDefaultLane();\n return mainIds;\n };\n const mainIds = await getMainIds();\n if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n this.switchProps.ids = mainIds;\n } else {\n const laneIds =\n localLane && !this.switchProps.head\n ? this.populatePropsAccordingToLocalLane(localLane)\n : await this.populatePropsAccordingToRemoteLane(laneId);\n const idsOnLaneOnly = laneIds.filter((id) => !mainIds.find((i) => i.isEqualWithoutVersion(id)));\n const idsOnMainOnly = mainIds.filter((id) => !laneIds.find((i) => i.isEqualWithoutVersion(id)));\n this.switchProps.ids = [...idsOnMainOnly, ...laneIds];\n this.switchProps.laneBitIds = idsOnLaneOnly;\n }\n await this.populateIdsAccordingToPattern();\n }\n\n private async populateIdsAccordingToPattern() {\n if (!this.switchProps.pattern) {\n return;\n }\n if (this.consumer.bitMap.getAllBitIdsFromAllLanes().length) {\n // if the workspace is not empty, it's possible that it has components from lane-x, and is now switching\n // partially to lane-y, while lane-y has the same components as lane-x. in which case, the user ends up with\n // an invalid state of components from lane-x and lane-y together.\n throw new BitError('error: use --pattern only when the workspace is empty');\n }\n const allIds = this.switchProps.ids || [];\n this.switchProps.ids = await this.workspace.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId): Promise<ComponentID[]> {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.throwForSwitchingToCurrentLane();\n const remoteLane = await this.lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.laneToSwitchTo = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n return [...remoteLane.toComponentIds()];\n }\n\n private async populatePropsAccordingToDefaultLane() {\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n this.throwForSwitchingToCurrentLane();\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane): ComponentID[] {\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n this.throwForSwitchingToCurrentLane();\n return [...localLane.toComponentIds()];\n }\n\n private throwForSwitchingToCurrentLane() {\n if (this.consumer.getCurrentLaneId().isEqual(this.laneIdToSwitchTo)) {\n const laneIdStr = this.laneIdToSwitchTo.isDefault()\n ? this.laneIdToSwitchTo.name\n : this.laneIdToSwitchTo.toString();\n throw new BitError(`already checked out to \"${laneIdStr}\".\nto be up to date with the remote lane, please run \"bit checkout head\"`);\n }\n }\n\n private async saveLanesData() {\n const localLaneName = this.switchProps.alias || this.laneIdToSwitchTo.name;\n if (this.switchProps.remoteLane) {\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitchTo.name,\n remoteScope: this.laneIdToSwitchTo.scope,\n });\n }\n }\n\n this.consumer.setCurrentLane(this.laneIdToSwitchTo, !this.laneToSwitchTo?.isNew);\n this.consumer.bitMap.syncWithIds(\n ComponentIdList.fromArray(this.switchProps.ids || []),\n ComponentIdList.fromArray(this.switchProps.laneBitIds || [])\n );\n\n // If this cache isn't cleared, here's what can happen:\n // Switching from \"lane-dev\" to \"main\": while on \"lane-dev\", ModelComponent keeps in-memory props\n // `laneHeadLocal` and `laneHeadRemote`. Methods like `headIncludeRemote()` use them and may return\n // the lane-dev head instead of the head on main.\n this.consumer.scope.objects.clearObjectsFromCache();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_laneId","data","require","_componentId","_bitError","_lanesModules","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","lanes","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","bitMapIds","bitmapIdsFromCurrentLaneIncludeRemoved","idsToSwitch","ids","map","id","bitMapId","searchWithoutVersion","allowAddingComponentsFromScope","versionPerId","resolveMultipleComponentIds","lane","laneToSwitchTo","results","checkout","saveLanesData","onDestroy","laneId","scope","parseLaneIdFromString","laneName","skipFetch","localLane","loadLane","getMainIds","allIds","listIds","legacyScope","scopeImporter","importWithoutDeps","cache","ignoreMissingHead","err","consoleWarning","message","getIdsOfDefaultLane","mainIds","isDefault","populatePropsAccordingToDefaultLane","laneIds","BitError","toString","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","idsOnLaneOnly","find","isEqualWithoutVersion","idsOnMainOnly","laneBitIds","populateIdsAccordingToPattern","pattern","bitMap","getAllBitIdsFromAllLanes","filterIdsFromPoolIdsByPattern","remoteLaneId","laneIdToSwitchTo","debug","throwForSwitchingToCurrentLane","remoteLane","fetchLaneWithItsComponents","name","localTrackedLane","getAliasByLaneId","undefined","toComponentIds","LaneId","from","DEFAULT_LANE","toLaneId","getCurrentLaneId","isEqual","laneIdStr","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithIds","ComponentIdList","fromArray","objects","clearObjectsFromCache","exports"],"sources":["switch-lanes.ts"],"sourcesContent":["import type { Consumer } from '@teambit/legacy.consumer';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { ApplyVersionResults } from '@teambit/component.modules.merge-helper';\nimport type { Lane } from '@teambit/objects';\nimport type { CheckoutProps } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { throwForStagedComponents } from '@teambit/lanes.modules.create-lane';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: ComponentID[];\n laneBitIds?: ComponentID[]; // only needed for the deprecated onLanesOnly prop. once this prop is removed, this prop can be removed as well.\n pattern?: string;\n skipFetch?: boolean;\n existingOnWorkspaceOnly?: boolean;\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitchTo: LaneId; // populated by `this.populateSwitchProps()`\n private laneToSwitchTo: Lane | undefined; // populated by `this.populateSwitchProps()`, if default-lane, it's undefined\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps,\n private lanes: LanesMain\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n if (this.workspace.isOnMain()) {\n await throwForStagedComponents(this.workspace);\n }\n await this.populateSwitchProps();\n const bitMapIds = this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const idsToSwitch = this.switchProps.ids || [];\n const ids = idsToSwitch.map((id) => {\n const bitMapId = bitMapIds.searchWithoutVersion(id);\n return bitMapId || id;\n });\n\n const checkoutProps: CheckoutProps = {\n ...this.checkoutProps,\n ids,\n allowAddingComponentsFromScope: true,\n versionPerId: await this.workspace.resolveMultipleComponentIds(idsToSwitch),\n lane: this.laneToSwitchTo,\n };\n\n const results = await this.lanes.checkout.checkout(checkoutProps);\n\n await this.saveLanesData();\n await this.consumer.onDestroy('lane-switch');\n\n return results;\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n const skipFetch = this.switchProps.skipFetch;\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n const getMainIds = async () => {\n if (!skipFetch) {\n const allIds = this.workspace.listIds();\n try {\n await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {\n cache: false,\n ignoreMissingHead: true,\n });\n } catch (err: any) {\n this.logger.consoleWarning(\n `failed to fetch the latest from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n }\n }\n return this.consumer.getIdsOfDefaultLane();\n };\n const mainIds = await getMainIds();\n if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n this.switchProps.ids = mainIds;\n } else {\n let laneIds: ComponentID[];\n if (skipFetch) {\n if (!localLane) {\n throw new BitError(\n `unable to switch to lane \"${laneId.toString()}\" with --skip-fetch: the lane doesn't exist in the local scope. run without --skip-fetch to fetch it from the remote.`\n );\n }\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n } else {\n try {\n laneIds = await this.populatePropsAccordingToRemoteLane(laneId);\n } catch (err: any) {\n if (!localLane) throw err;\n this.logger.consoleWarning(\n `failed to fetch lane \"${laneId.toString()}\" from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n }\n }\n const idsOnLaneOnly = laneIds.filter((id) => !mainIds.find((i) => i.isEqualWithoutVersion(id)));\n const idsOnMainOnly = mainIds.filter((id) => !laneIds.find((i) => i.isEqualWithoutVersion(id)));\n this.switchProps.ids = [...idsOnMainOnly, ...laneIds];\n this.switchProps.laneBitIds = idsOnLaneOnly;\n }\n await this.populateIdsAccordingToPattern();\n }\n\n private async populateIdsAccordingToPattern() {\n if (!this.switchProps.pattern) {\n return;\n }\n if (this.consumer.bitMap.getAllBitIdsFromAllLanes().length) {\n // if the workspace is not empty, it's possible that it has components from lane-x, and is now switching\n // partially to lane-y, while lane-y has the same components as lane-x. in which case, the user ends up with\n // an invalid state of components from lane-x and lane-y together.\n throw new BitError('error: use --pattern only when the workspace is empty');\n }\n const allIds = this.switchProps.ids || [];\n this.switchProps.ids = await this.workspace.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId): Promise<ComponentID[]> {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.throwForSwitchingToCurrentLane();\n const remoteLane = await this.lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.laneToSwitchTo = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n return [...remoteLane.toComponentIds()];\n }\n\n private async populatePropsAccordingToDefaultLane() {\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n this.throwForSwitchingToCurrentLane();\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane): ComponentID[] {\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n this.throwForSwitchingToCurrentLane();\n return [...localLane.toComponentIds()];\n }\n\n private throwForSwitchingToCurrentLane() {\n if (this.consumer.getCurrentLaneId().isEqual(this.laneIdToSwitchTo)) {\n const laneIdStr = this.laneIdToSwitchTo.isDefault()\n ? this.laneIdToSwitchTo.name\n : this.laneIdToSwitchTo.toString();\n throw new BitError(`already checked out to \"${laneIdStr}\".\nto be up to date with the remote lane, please run \"bit checkout head\"`);\n }\n }\n\n private async saveLanesData() {\n const localLaneName = this.switchProps.alias || this.laneIdToSwitchTo.name;\n if (this.switchProps.remoteLane) {\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitchTo.name,\n remoteScope: this.laneIdToSwitchTo.scope,\n });\n }\n }\n\n this.consumer.setCurrentLane(this.laneIdToSwitchTo, !this.laneToSwitchTo?.isNew);\n this.consumer.bitMap.syncWithIds(\n ComponentIdList.fromArray(this.switchProps.ids || []),\n ComponentIdList.fromArray(this.switchProps.laneBitIds || [])\n );\n\n // If this cache isn't cleared, here's what can happen:\n // Switching from \"lane-dev\" to \"main\": while on \"lane-dev\", ModelComponent keeps in-memory props\n // `laneHeadLocal` and `laneHeadRemote`. Methods like `headIncludeRemote()` use them and may return\n // the lane-dev head instead of the head on main.\n this.consumer.scope.objects.clearObjectsFromCache();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,8 +16,9 @@ export declare class SwitchCmd implements Command {
16
16
  options: CommandOptions;
17
17
  loader: boolean;
18
18
  constructor(lanes: LanesMain);
19
- report([lane]: [string], { head, alias, autoMergeResolve, forceOurs, forceTheirs, getAll, workspaceOnly, skipDependencyInstallation, pattern, verbose, json, branch, }: {
19
+ report([lane]: [string], { head, skipFetch, alias, autoMergeResolve, forceOurs, forceTheirs, getAll, workspaceOnly, skipDependencyInstallation, pattern, verbose, json, branch, }: {
20
20
  head?: boolean;
21
+ skipFetch?: boolean;
21
22
  alias?: string;
22
23
  autoMergeResolve?: MergeStrategy;
23
24
  forceOurs?: boolean;
@@ -49,12 +49,13 @@ class SwitchCmd {
49
49
  name: 'lane',
50
50
  description: 'lane-name or lane-id (if lane is not local) to switch to'
51
51
  }]);
52
- _defineProperty(this, "options", [['h', 'head', 'switch to the head of the lane/main (fetches the latest changes from the remote)'], ['r', 'auto-merge-resolve <merge-strategy>', 'merge local changes with the checked out version. strategy should be "theirs", "ours" or "manual"'], ['', 'force-ours', 'do not merge, preserve local files as is'], ['', 'force-theirs', 'do not merge, just overwrite with incoming files'], ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'], ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'], ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'], ['p', 'pattern <component-pattern>', `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\n
52
+ _defineProperty(this, "options", [['h', 'head', 'DEPRECATED. this is currently the default behavior'], ['', 'skip-fetch', "don't fetch the latest from the remote; switch to the lane/main state already in the local scope"], ['r', 'auto-merge-resolve <merge-strategy>', 'merge local changes with the checked out version. strategy should be "theirs", "ours" or "manual"'], ['', 'force-ours', 'do not merge, preserve local files as is'], ['', 'force-theirs', 'do not merge, just overwrite with incoming files'], ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'], ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'], ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'], ['p', 'pattern <component-pattern>', `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\n
53
53
  ${_legacy().COMPONENT_PATTERN_HELP}`], ['n', 'alias <string>', "relevant when the specified lane is a remote lane. create a local alias for the lane (doesnt affect the lane's name on the remote"], ['', 'verbose', 'display detailed information about components that legitimately were not switched'], ['j', 'json', 'return the output as JSON'], ['', 'branch', 'create and checkout a new git branch named after the lane']]);
54
54
  _defineProperty(this, "loader", true);
55
55
  }
56
56
  async report([lane], {
57
57
  head,
58
+ skipFetch = false,
58
59
  alias,
59
60
  autoMergeResolve,
60
61
  forceOurs,
@@ -68,7 +69,7 @@ ${_legacy().COMPONENT_PATTERN_HELP}`], ['n', 'alias <string>', "relevant when th
68
69
  branch = false
69
70
  }) {
70
71
  const switchResult = await this.lanes.switchLanes(lane, {
71
- head,
72
+ skipFetch,
72
73
  alias,
73
74
  merge: autoMergeResolve,
74
75
  forceOurs,
@@ -86,7 +87,10 @@ ${_legacy().COMPONENT_PATTERN_HELP}`], ['n', 'alias <string>', "relevant when th
86
87
  gitBranchWarning
87
88
  } = switchResult;
88
89
  if (getAll) {
89
- this.lanes.logger.warn('the --get-all flag is deprecated and currently the default behavior');
90
+ this.lanes.logger.consoleWarning('the --get-all flag is deprecated and currently the default behavior');
91
+ }
92
+ if (head) {
93
+ this.lanes.logger.consoleWarning('the --head flag is deprecated and currently the default behavior');
90
94
  }
91
95
  if (json) {
92
96
  return JSON.stringify({
@@ -108,7 +112,8 @@ ${_legacy().COMPONENT_PATTERN_HELP}`], ['n', 'alias <string>', "relevant when th
108
112
  const getSuccessfulOutput = () => {
109
113
  const laneSwitched = (0, _cli().formatSuccessSummary)(`successfully set "${_chalk().default.bold(lane)}" as the active lane`);
110
114
  if (!components || !components.length) return `No components have been changed.\n${laneSwitched}`;
111
- const title = `successfully switched ${components.length} components to the head of lane ${lane}`;
115
+ const target = skipFetch ? `local head of lane ${lane}` : `head of lane ${lane}`;
116
+ const title = `successfully switched ${components.length} components to the ${target}`;
112
117
  return [(0, _cli().formatSuccessSummary)(title), (0, _componentModules().applyVersionReport)(components, true, false), laneSwitched].filter(Boolean).join('\n');
113
118
  };
114
119
  const getGitBranchWarningOutput = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentModules","_cli","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SwitchCmd","constructor","lanes","name","description","COMPONENT_PATTERN_HELP","report","lane","head","alias","autoMergeResolve","forceOurs","forceTheirs","getAll","workspaceOnly","skipDependencyInstallation","pattern","verbose","json","branch","switchResult","switchLanes","merge","components","failedComponents","installationError","compilationError","gitBranchWarning","logger","warn","JSON","stringify","skippedComponents","hasSkippedComponents","length","getFailureOutputMinimal","formatDetailsHint","getFailureOutputDetailed","items","map","failedComponent","formatItem","chalk","bold","id","toString","unchangedMessage","formatSection","getSuccessfulOutput","laneSwitched","formatSuccessSummary","title","applyVersionReport","filter","Boolean","join","getGitBranchWarningOutput","yellow","buildOutput","failureOutput","joinSections","installationErrorOutput","compilationErrorOutput","details","code","exports"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport {\n applyVersionReport,\n installationErrorOutput,\n compilationErrorOutput,\n} from '@teambit/component.modules.merge-helper';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatItem, formatSection, formatSuccessSummary, formatDetailsHint, joinSections } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane>';\n description = `switch to the specified lane`;\n extendedDescription = ``;\n private = true;\n group = 'collaborate';\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if lane is not local) to switch to',\n },\n ];\n options = [\n ['h', 'head', 'switch to the head of the lane/main (fetches the latest changes from the remote)'],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'],\n ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'],\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\\n\n${COMPONENT_PATTERN_HELP}`,\n ],\n [\n 'n',\n 'alias <string>',\n \"relevant when the specified lane is a remote lane. create a local alias for the lane (doesnt affect the lane's name on the remote\",\n ],\n ['', 'verbose', 'display detailed information about components that legitimately were not switched'],\n ['j', 'json', 'return the output as JSON'],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n head,\n alias,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n getAll = false,\n workspaceOnly = false,\n skipDependencyInstallation = false,\n pattern,\n verbose,\n json = false,\n branch = false,\n }: {\n head?: boolean;\n alias?: string;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n getAll?: boolean;\n workspaceOnly?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n verbose?: boolean;\n json?: boolean;\n branch?: boolean;\n }\n ) {\n const switchResult = await this.lanes.switchLanes(lane, {\n head,\n alias,\n merge: autoMergeResolve,\n forceOurs,\n forceTheirs,\n workspaceOnly,\n pattern,\n skipDependencyInstallation,\n branch,\n });\n const { components, failedComponents, installationError, compilationError, gitBranchWarning } = switchResult;\n\n if (getAll) {\n this.lanes.logger.warn('the --get-all flag is deprecated and currently the default behavior');\n }\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const skippedComponents = failedComponents ?? [];\n const hasSkippedComponents = skippedComponents.length > 0 && !verbose;\n\n const getFailureOutputMinimal = () => {\n if (!hasSkippedComponents) return '';\n return formatDetailsHint(`full list of ${skippedComponents.length} skipped component(s)`);\n };\n const getFailureOutputDetailed = () => {\n if (!skippedComponents.length) return '';\n const items = skippedComponents.map((failedComponent) =>\n formatItem(`${chalk.bold(failedComponent.id.toString())} - ${failedComponent.unchangedMessage}`)\n );\n return formatSection('switch skipped', '', items);\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = formatSuccessSummary(`successfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No components have been changed.\\n${laneSwitched}`;\n const title = `successfully switched ${components.length} components to the head of lane ${lane}`;\n return [formatSuccessSummary(title), applyVersionReport(components, true, false), laneSwitched]\n .filter(Boolean)\n .join('\\n');\n };\n\n const getGitBranchWarningOutput = () => {\n return gitBranchWarning ? chalk.yellow(`Warning: ${gitBranchWarning}`) : '';\n };\n\n const buildOutput = (failureOutput: string) =>\n joinSections([\n failureOutput,\n getSuccessfulOutput(),\n getGitBranchWarningOutput(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]);\n\n if (!hasSkippedComponents) {\n return buildOutput(getFailureOutputDetailed());\n }\n\n const data = buildOutput(getFailureOutputMinimal());\n const details = buildOutput(getFailureOutputDetailed());\n return { data, code: 0, details };\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,kBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,iBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAAI,KAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,IAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmE,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAG5D,MAAMgB,SAAS,CAAoB;EA0CxCC,WAAWA,CAASC,KAAgB,EAAE;IAAA,KAAlBA,KAAgB,GAAhBA,KAAgB;IAAApB,eAAA,eAzC7B,eAAe;IAAAA,eAAA,sBACR,8BAA8B;IAAAA,eAAA,8BACtB,EAAE;IAAAA,eAAA,kBACd,IAAI;IAAAA,eAAA,gBACN,aAAa;IAAAA,eAAA,gBACb,EAAE;IAAAA,eAAA,oBACE,CACV;MACEqB,IAAI,EAAE,MAAM;MACZC,WAAW,EAAE;IACf,CAAC,CACF;IAAAtB,eAAA,kBACS,CACR,CAAC,GAAG,EAAE,MAAM,EAAE,kFAAkF,CAAC,EACjG,CACE,GAAG,EACH,qCAAqC,EACrC,mGAAmG,CACpG,EACD,CAAC,EAAE,EAAE,YAAY,EAAE,0CAA0C,CAAC,EAC9D,CAAC,EAAE,EAAE,cAAc,EAAE,kDAAkD,CAAC,EACxE,CAAC,GAAG,EAAE,SAAS,EAAE,oDAAoD,CAAC,EACtE,CAAC,EAAE,EAAE,gBAAgB,EAAE,oEAAoE,CAAC,EAC5F,CAAC,GAAG,EAAE,8BAA8B,EAAE,wDAAwD,CAAC,EAC/F,CACE,GAAG,EACH,6BAA6B,EAC7B;AACN,EAAEuB,gCAAsB,EAAE,CACrB,EACD,CACE,GAAG,EACH,gBAAgB,EAChB,mIAAmI,CACpI,EACD,CAAC,EAAE,EAAE,SAAS,EAAE,mFAAmF,CAAC,EACpG,CAAC,GAAG,EAAE,MAAM,EAAE,2BAA2B,CAAC,EAC1C,CAAC,EAAE,EAAE,QAAQ,EAAE,2DAA2D,CAAC,CAC5E;IAAAvB,eAAA,iBACQ,IAAI;EAE0B;EAEvC,MAAMwB,MAAMA,CACV,CAACC,IAAI,CAAW,EAChB;IACEC,IAAI;IACJC,KAAK;IACLC,gBAAgB;IAChBC,SAAS;IACTC,WAAW;IACXC,MAAM,GAAG,KAAK;IACdC,aAAa,GAAG,KAAK;IACrBC,0BAA0B,GAAG,KAAK;IAClCC,OAAO;IACPC,OAAO;IACPC,IAAI,GAAG,KAAK;IACZC,MAAM,GAAG;EAeX,CAAC,EACD;IACA,MAAMC,YAAY,GAAG,MAAM,IAAI,CAAClB,KAAK,CAACmB,WAAW,CAACd,IAAI,EAAE;MACtDC,IAAI;MACJC,KAAK;MACLa,KAAK,EAAEZ,gBAAgB;MACvBC,SAAS;MACTC,WAAW;MACXE,aAAa;MACbE,OAAO;MACPD,0BAA0B;MAC1BI;IACF,CAAC,CAAC;IACF,MAAM;MAAEI,UAAU;MAAEC,gBAAgB;MAAEC,iBAAiB;MAAEC,gBAAgB;MAAEC;IAAiB,CAAC,GAAGP,YAAY;IAE5G,IAAIP,MAAM,EAAE;MACV,IAAI,CAACX,KAAK,CAAC0B,MAAM,CAACC,IAAI,CAAC,qEAAqE,CAAC;IAC/F;IACA,IAAIX,IAAI,EAAE;MACR,OAAOY,IAAI,CAACC,SAAS,CAAC;QAAER,UAAU;QAAEC;MAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE;IACA,MAAMQ,iBAAiB,GAAGR,gBAAgB,IAAI,EAAE;IAChD,MAAMS,oBAAoB,GAAGD,iBAAiB,CAACE,MAAM,GAAG,CAAC,IAAI,CAACjB,OAAO;IAErE,MAAMkB,uBAAuB,GAAGA,CAAA,KAAM;MACpC,IAAI,CAACF,oBAAoB,EAAE,OAAO,EAAE;MACpC,OAAO,IAAAG,wBAAiB,EAAC,gBAAgBJ,iBAAiB,CAACE,MAAM,uBAAuB,CAAC;IAC3F,CAAC;IACD,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;MACrC,IAAI,CAACL,iBAAiB,CAACE,MAAM,EAAE,OAAO,EAAE;MACxC,MAAMI,KAAK,GAAGN,iBAAiB,CAACO,GAAG,CAAEC,eAAe,IAClD,IAAAC,iBAAU,EAAC,GAAGC,gBAAK,CAACC,IAAI,CAACH,eAAe,CAACI,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC,MAAML,eAAe,CAACM,gBAAgB,EAAE,CACjG,CAAC;MACD,OAAO,IAAAC,oBAAa,EAAC,gBAAgB,EAAE,EAAE,EAAET,KAAK,CAAC;IACnD,CAAC;IACD,MAAMU,mBAAmB,GAAGA,CAAA,KAAM;MAChC,MAAMC,YAAY,GAAG,IAAAC,2BAAoB,EAAC,qBAAqBR,gBAAK,CAACC,IAAI,CAACpC,IAAI,CAAC,sBAAsB,CAAC;MACtG,IAAI,CAACgB,UAAU,IAAI,CAACA,UAAU,CAACW,MAAM,EAAE,OAAO,qCAAqCe,YAAY,EAAE;MACjG,MAAME,KAAK,GAAG,yBAAyB5B,UAAU,CAACW,MAAM,mCAAmC3B,IAAI,EAAE;MACjG,OAAO,CAAC,IAAA2C,2BAAoB,EAACC,KAAK,CAAC,EAAE,IAAAC,sCAAkB,EAAC7B,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE0B,YAAY,CAAC,CAC5FI,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,IAAI,CAAC;IACf,CAAC;IAED,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;MACtC,OAAO7B,gBAAgB,GAAGe,gBAAK,CAACe,MAAM,CAAC,YAAY9B,gBAAgB,EAAE,CAAC,GAAG,EAAE;IAC7E,CAAC;IAED,MAAM+B,WAAW,GAAIC,aAAqB,IACxC,IAAAC,mBAAY,EAAC,CACXD,aAAa,EACbX,mBAAmB,CAAC,CAAC,EACrBQ,yBAAyB,CAAC,CAAC,EAC3B,IAAAK,2CAAuB,EAACpC,iBAAiB,CAAC,EAC1C,IAAAqC,0CAAsB,EAACpC,gBAAgB,CAAC,CACzC,CAAC;IAEJ,IAAI,CAACO,oBAAoB,EAAE;MACzB,OAAOyB,WAAW,CAACrB,wBAAwB,CAAC,CAAC,CAAC;IAChD;IAEA,MAAMhE,IAAI,GAAGqF,WAAW,CAACvB,uBAAuB,CAAC,CAAC,CAAC;IACnD,MAAM4B,OAAO,GAAGL,WAAW,CAACrB,wBAAwB,CAAC,CAAC,CAAC;IACvD,OAAO;MAAEhE,IAAI;MAAE2F,IAAI,EAAE,CAAC;MAAED;IAAQ,CAAC;EACnC;AACF;AAACE,OAAA,CAAAjE,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentModules","_cli","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SwitchCmd","constructor","lanes","name","description","COMPONENT_PATTERN_HELP","report","lane","head","skipFetch","alias","autoMergeResolve","forceOurs","forceTheirs","getAll","workspaceOnly","skipDependencyInstallation","pattern","verbose","json","branch","switchResult","switchLanes","merge","components","failedComponents","installationError","compilationError","gitBranchWarning","logger","consoleWarning","JSON","stringify","skippedComponents","hasSkippedComponents","length","getFailureOutputMinimal","formatDetailsHint","getFailureOutputDetailed","items","map","failedComponent","formatItem","chalk","bold","id","toString","unchangedMessage","formatSection","getSuccessfulOutput","laneSwitched","formatSuccessSummary","target","title","applyVersionReport","filter","Boolean","join","getGitBranchWarningOutput","yellow","buildOutput","failureOutput","joinSections","installationErrorOutput","compilationErrorOutput","details","code","exports"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport {\n applyVersionReport,\n installationErrorOutput,\n compilationErrorOutput,\n} from '@teambit/component.modules.merge-helper';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatItem, formatSection, formatSuccessSummary, formatDetailsHint, joinSections } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane>';\n description = `switch to the specified lane`;\n extendedDescription = ``;\n private = true;\n group = 'collaborate';\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if lane is not local) to switch to',\n },\n ];\n options = [\n ['h', 'head', 'DEPRECATED. this is currently the default behavior'],\n [\n '',\n 'skip-fetch',\n \"don't fetch the latest from the remote; switch to the lane/main state already in the local scope\",\n ],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'],\n ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'],\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\\n\n${COMPONENT_PATTERN_HELP}`,\n ],\n [\n 'n',\n 'alias <string>',\n \"relevant when the specified lane is a remote lane. create a local alias for the lane (doesnt affect the lane's name on the remote\",\n ],\n ['', 'verbose', 'display detailed information about components that legitimately were not switched'],\n ['j', 'json', 'return the output as JSON'],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n head,\n skipFetch = false,\n alias,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n getAll = false,\n workspaceOnly = false,\n skipDependencyInstallation = false,\n pattern,\n verbose,\n json = false,\n branch = false,\n }: {\n head?: boolean;\n skipFetch?: boolean;\n alias?: string;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n getAll?: boolean;\n workspaceOnly?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n verbose?: boolean;\n json?: boolean;\n branch?: boolean;\n }\n ) {\n const switchResult = await this.lanes.switchLanes(lane, {\n skipFetch,\n alias,\n merge: autoMergeResolve,\n forceOurs,\n forceTheirs,\n workspaceOnly,\n pattern,\n skipDependencyInstallation,\n branch,\n });\n const { components, failedComponents, installationError, compilationError, gitBranchWarning } = switchResult;\n\n if (getAll) {\n this.lanes.logger.consoleWarning('the --get-all flag is deprecated and currently the default behavior');\n }\n if (head) {\n this.lanes.logger.consoleWarning('the --head flag is deprecated and currently the default behavior');\n }\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const skippedComponents = failedComponents ?? [];\n const hasSkippedComponents = skippedComponents.length > 0 && !verbose;\n\n const getFailureOutputMinimal = () => {\n if (!hasSkippedComponents) return '';\n return formatDetailsHint(`full list of ${skippedComponents.length} skipped component(s)`);\n };\n const getFailureOutputDetailed = () => {\n if (!skippedComponents.length) return '';\n const items = skippedComponents.map((failedComponent) =>\n formatItem(`${chalk.bold(failedComponent.id.toString())} - ${failedComponent.unchangedMessage}`)\n );\n return formatSection('switch skipped', '', items);\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = formatSuccessSummary(`successfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No components have been changed.\\n${laneSwitched}`;\n const target = skipFetch ? `local head of lane ${lane}` : `head of lane ${lane}`;\n const title = `successfully switched ${components.length} components to the ${target}`;\n return [formatSuccessSummary(title), applyVersionReport(components, true, false), laneSwitched]\n .filter(Boolean)\n .join('\\n');\n };\n\n const getGitBranchWarningOutput = () => {\n return gitBranchWarning ? chalk.yellow(`Warning: ${gitBranchWarning}`) : '';\n };\n\n const buildOutput = (failureOutput: string) =>\n joinSections([\n failureOutput,\n getSuccessfulOutput(),\n getGitBranchWarningOutput(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]);\n\n if (!hasSkippedComponents) {\n return buildOutput(getFailureOutputDetailed());\n }\n\n const data = buildOutput(getFailureOutputMinimal());\n const details = buildOutput(getFailureOutputDetailed());\n return { data, code: 0, details };\n }\n}\n"],"mappings":"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","ignoreList":[]}