@teambit/lanes 0.0.686 → 0.0.688

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":["useComponentFilters","idFromLocation","useIdFromLocation","lanesModel","loading","useLanes","laneFromUrl","useViewedLaneFromUrl","laneComponentId","isDefault","resolveComponentFromUrl","log","head","version","useLaneComponentIdFromUrl","query","useQuery","componentVersion","get","componentId","ComponentID","fromString","undefined","useComponentId","toString","LanesUI","constructor","componentUI","componentCompareUI","routeSlot","navSlot","menuWidgetSlot","overviewSlot","laneProviderIgnoreSlot","workspace","scope","children","ignoreFns","values","props","tabs","base","compare","host","hostAspect","lanesHost","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","getLaneRoutes","registerMenuRoutes","getMenuRoutes","path","LanesModel","lanesPrefix","lanePath","getLaneOverview","getLaneComponent","getLanesComparePage","overrideComputeLaneUrl","fn","prefix","getLaneComponentUrl","getLaneIdFromPathname","getLaneUrl","getComponentUI","getLaneComponentMenu","getMenu","getLaneCompare","getLanesOverviewMenu","registerMenuWidget","menuItems","register","registerLaneProviderIgnoreSlot","ignoreFn","registerLanesRoutes","registerNavigation","href","exact","order","hide","viewedLane","lanes","length","getLanesSwitcher","mainIcon","useContext","ScopeContext","icon","backgroundIconColor","styles","mainLaneIcon","LanesSwitcher","getLanesProvider","LanesProvider","getUseLanes","registerLanesDropdown","registerSidebarLink","component","Gallery","weight","registerRoute","route","registerOverviewLine","lines","routes","provider","uiUi","workspaceUi","scopeUi","_","harmony","config","String","lanesUi","registerRenderHooks","reactContext","renderContext","currentLane","UIAspect","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","LanesAspect","addRuntime"],"sources":["lanes.ui.runtime.tsx"],"sourcesContent":["import React, { ReactNode, useContext } from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { LaneCompare, LaneCompareProps as DefaultLaneCompareProps } from '@teambit/lanes.ui.compare.lane-compare';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NotFoundPage } from '@teambit/design.ui.pages.not-found';\nimport ScopeAspect, { ScopeContext, ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport ComponentAspect, { ComponentUI, useIdFromLocation, ComponentID } from '@teambit/component';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { LaneOverview, LaneOverviewLine, LaneOverviewLineSlot } from '@teambit/lanes.ui.lane-overview';\nimport {\n LanesNavPlugin,\n LanesOrderedNavigationSlot,\n LanesOverviewMenu,\n} from '@teambit/lanes.ui.menus.lanes-overview-menu';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { UseLaneMenu } from '@teambit/lanes.ui.menus.use-lanes-menu';\nimport { LanesHost, LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { LanesProvider, useLanes, IgnoreDerivingFromUrl } from '@teambit/lanes.hooks.use-lanes';\nimport { LaneSwitcher } from '@teambit/lanes.ui.navigation.lane-switcher';\nimport { LaneId } from '@teambit/lane-id';\nimport { useViewedLaneFromUrl } from '@teambit/lanes.hooks.use-viewed-lane-from-url';\nimport { ComponentCompareAspect, ComponentCompareUI } from '@teambit/component-compare';\nimport { LaneComparePage } from '@teambit/lanes.ui.compare.lane-compare-page';\nimport { ScopeIcon } from '@teambit/scope.ui.scope-icon';\n\nimport styles from './lanes.ui.module.scss';\n\nexport type LaneCompareProps = Partial<DefaultLaneCompareProps>;\nexport type LaneProviderIgnoreSlot = SlotRegistry<IgnoreDerivingFromUrl>;\nexport function useComponentFilters() {\n const idFromLocation = useIdFromLocation();\n const { lanesModel, loading } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl) ?? null\n : null;\n\n if (laneComponentId === null || loading) {\n return {\n loading: true,\n };\n }\n\n return {\n loading: false,\n log: {\n head: laneComponentId.version,\n },\n };\n}\nexport function useLaneComponentIdFromUrl(): ComponentID | undefined | null {\n const idFromLocation = useIdFromLocation();\n const { lanesModel, loading } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const query = useQuery();\n const componentVersion = query.get('version');\n\n if (componentVersion && laneFromUrl) {\n const componentId = ComponentID.fromString(`${idFromLocation}@${componentVersion}`);\n return componentId;\n }\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl) ?? null\n : null;\n\n return loading ? undefined : laneComponentId;\n}\n\nexport function useComponentId() {\n return useLaneComponentIdFromUrl()?.toString();\n}\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n Slot.withType<LaneProviderIgnoreSlot>(),\n ];\n\n constructor(\n private componentUI: ComponentUI,\n private componentCompareUI: ComponentCompareUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private laneProviderIgnoreSlot: LaneProviderIgnoreSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes(this.getLaneRoutes());\n this.hostAspect.registerMenuRoutes(this.getMenuRoutes());\n }\n\n getLaneRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <>\n <Route path={LanesModel.lanePath}>\n <Route index element={this.getLaneOverview()} />\n <Route path=\"~component/*\" element={this.getLaneComponent()} />\n <Route path=\"~compare/*\" element={this.getLanesComparePage()} />\n <Route path=\"*\" element={<NotFoundPage />} />\n </Route>\n <Route path=\"*\" element={<NotFoundPage />} />\n </>\n ),\n },\n ];\n }\n\n overrideComputeLaneUrl(\n fn: () => {\n prefix: string;\n path: string;\n getLaneIdFromPathname: (pathname: string) => LaneId | undefined;\n getLaneUrl: (laneId: LaneId, relative?: boolean) => string;\n getLaneComponentUrl: (componentId: ComponentID, laneId: LaneId) => string;\n }\n ) {\n const { prefix, path, getLaneComponentUrl, getLaneIdFromPathname, getLaneUrl } = fn();\n LanesModel.lanesPrefix = prefix;\n LanesModel.lanePath = path;\n LanesModel.getLaneComponentUrl = getLaneComponentUrl;\n LanesModel.getLaneUrl = getLaneUrl;\n LanesModel.getLaneIdFromPathname = getLaneIdFromPathname;\n }\n\n // getLaneReadme() {\n // return <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />;\n // }\n\n getLaneComponent() {\n return this.componentUI.getComponentUI(this.host, {\n componentId: useComponentId,\n useComponentFilters,\n });\n }\n\n getLaneComponentMenu() {\n return this.componentUI.getMenu(this.host, {\n componentId: useComponentId,\n useComponentFilters,\n });\n }\n\n getLaneOverview() {\n return (\n <LaneOverview\n routeSlot={this.routeSlot}\n overviewSlot={this.overviewSlot}\n host={this.lanesHost}\n useLanes={useLanes}\n />\n );\n }\n\n getLanesComparePage() {\n return <LaneComparePage getLaneCompare={this.getLaneCompare} groupByScope={this.lanesHost === 'workspace'} />;\n }\n\n getMenuRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <Route path={`${LanesModel.lanePath}/*`}>\n <Route path={'*'} element={this.getLanesOverviewMenu()} />\n <Route path=\"~component/*\" element={this.getLaneComponentMenu()} />\n </Route>\n ),\n },\n ];\n }\n\n getLanesOverviewMenu() {\n return <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />;\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n return this;\n }\n\n registerLaneProviderIgnoreSlot(ignoreFn: IgnoreDerivingFromUrl) {\n this.laneProviderIgnoreSlot.register(ignoreFn);\n return this;\n }\n\n private registerLanesRoutes() {\n this.registerNavigation([\n // {\n // props: {\n // href: '.',\n // exact: true,\n // children: 'README',\n // },\n // order: 1,\n // hide: () => {\n // const { lanesModel } = useLanes();\n // return !lanesModel?.viewedLane?.readmeComponent;\n // },\n // },\n {\n props: {\n href: '.',\n exact: true,\n children: 'Overview',\n },\n order: 1,\n },\n {\n props: {\n href: '~compare',\n children: 'Compare',\n },\n order: 2,\n hide: () => {\n const { lanesModel } = useLanes();\n return !lanesModel?.viewedLane || lanesModel?.lanes.length < 2;\n },\n },\n ]);\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n getLanesSwitcher() {\n const mainIcon = () => {\n const scope = useContext(ScopeContext);\n return (\n <ScopeIcon\n size={24}\n scopeImage={scope.icon}\n bgColor={scope.backgroundIconColor}\n className={styles.mainLaneIcon}\n />\n );\n };\n\n const LanesSwitcher = (\n <LaneSwitcher\n groupByScope={this.lanesHost === 'workspace'}\n mainIcon={this.lanesHost === 'scope' ? mainIcon : undefined}\n useLanes={useLanes}\n />\n );\n\n return LanesSwitcher;\n }\n\n getLanesProvider() {\n return LanesProvider;\n }\n\n getUseLanes() {\n return useLanes;\n }\n\n private registerLanesDropdown() {\n const LanesSwitcher = this.getLanesSwitcher();\n\n this.hostAspect?.registerSidebarLink({\n component: function Gallery() {\n return LanesSwitcher;\n },\n weight: 1000,\n });\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n const ignoreFns = this.laneProviderIgnoreSlot.values();\n\n return <LanesProvider ignoreDerivingFromUrl={ignoreFns}>{children}</LanesProvider>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(routes: LanesNavPlugin[]) {\n this.navSlot.register(routes);\n }\n\n getLaneCompare = (props: LaneCompareProps) => {\n const tabs = this.componentCompareUI.tabs;\n\n if (!props.base || !props.compare) return null;\n\n return (\n <LaneCompare\n {...props}\n base={props.base}\n compare={props.compare}\n host={props.host || this.host}\n tabs={props.tabs || tabs}\n />\n );\n };\n\n static async provider(\n [uiUi, componentUI, workspaceUi, scopeUi, componentCompareUI]: [\n UiUI,\n ComponentUI,\n WorkspaceUI,\n ScopeUI,\n ComponentCompareUI\n ],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot, laneProviderIgnoreSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot,\n LaneProviderIgnoreSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(\n componentUI,\n componentCompareUI,\n routeSlot,\n navSlot,\n overviewSlot,\n menuWidgetSlot,\n laneProviderIgnoreSlot,\n workspace,\n scope\n );\n if (uiUi) uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => {\n const { lanesModel } = useLanes();\n if (!lanesModel?.viewedLane) return null;\n const { viewedLane, currentLane } = lanesModel;\n return (\n <UseLaneMenu\n actionName={'Import'}\n actionIcon={'terminal'}\n host={lanesUi.lanesHost}\n viewedLaneId={viewedLane.id}\n currentLaneId={currentLane?.id}\n />\n );\n });\n lanesUi.registerLanesDropdown();\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_harmony","_lanesUiCompare","_ui","_lanes","_designUiPages","_scope","_workspace","_interopRequireDefault","_component","_lanesUi","_lanesUiMenus","_uiFoundationUiReactRouter","_lanesUiMenus2","_lanesUiModels","_lanesHooks","_lanesUiNavigation","_lanesHooks2","_componentCompare","_lanesUiCompare2","_scopeUi","_lanesUiModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useComponentFilters","_lanesModel$resolveCo","idFromLocation","useIdFromLocation","lanesModel","loading","useLanes","laneFromUrl","useViewedLaneFromUrl","laneComponentId","isDefault","resolveComponentFromUrl","log","head","version","useLaneComponentIdFromUrl","_lanesModel$resolveCo2","query","useQuery","componentVersion","componentId","ComponentID","fromString","undefined","useComponentId","_useLaneComponentIdFr","toString","LanesUI","constructor","componentUI","componentCompareUI","routeSlot","navSlot","menuWidgetSlot","overviewSlot","laneProviderIgnoreSlot","workspace","scope","_defineProperty2","children","ignoreFns","values","createElement","LanesProvider","ignoreDerivingFromUrl","props","tabs","base","compare","LaneCompare","_extends2","host","hostAspect","lanesHost","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","getLaneRoutes","registerMenuRoutes","getMenuRoutes","path","LanesModel","lanesPrefix","Fragment","Route","lanePath","index","element","getLaneOverview","getLaneComponent","getLanesComparePage","NotFoundPage","overrideComputeLaneUrl","fn","prefix","getLaneComponentUrl","getLaneIdFromPathname","getLaneUrl","getComponentUI","getLaneComponentMenu","getMenu","LaneOverview","LaneComparePage","getLaneCompare","groupByScope","getLanesOverviewMenu","LanesOverviewMenu","navigationSlot","widgetSlot","registerMenuWidget","menuItems","register","registerLaneProviderIgnoreSlot","ignoreFn","registerLanesRoutes","registerNavigation","href","exact","order","hide","viewedLane","lanes","length","getLanesSwitcher","mainIcon","useContext","ScopeContext","ScopeIcon","size","scopeImage","icon","bgColor","backgroundIconColor","className","styles","mainLaneIcon","LanesSwitcher","LaneSwitcher","getLanesProvider","getUseLanes","registerLanesDropdown","_this$hostAspect","registerSidebarLink","component","Gallery","weight","registerRoute","route","registerOverviewLine","lines","routes","provider","uiUi","workspaceUi","scopeUi","_","harmony","config","String","lanesUi","registerRenderHooks","reactContext","renderContext","currentLane","UseLaneMenu","actionName","actionIcon","viewedLaneId","currentLaneId","exports","UIAspect","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","_default","LanesAspect","addRuntime"],"sources":["lanes.ui.runtime.tsx"],"sourcesContent":["import React, { ReactNode, useContext } from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { LaneCompare, LaneCompareProps as DefaultLaneCompareProps } from '@teambit/lanes.ui.compare.lane-compare';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NotFoundPage } from '@teambit/design.ui.pages.not-found';\nimport ScopeAspect, { ScopeContext, ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport ComponentAspect, { ComponentUI, useIdFromLocation, ComponentID } from '@teambit/component';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { LaneOverview, LaneOverviewLine, LaneOverviewLineSlot } from '@teambit/lanes.ui.lane-overview';\nimport {\n LanesNavPlugin,\n LanesOrderedNavigationSlot,\n LanesOverviewMenu,\n} from '@teambit/lanes.ui.menus.lanes-overview-menu';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { UseLaneMenu } from '@teambit/lanes.ui.menus.use-lanes-menu';\nimport { LanesHost, LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { LanesProvider, useLanes, IgnoreDerivingFromUrl } from '@teambit/lanes.hooks.use-lanes';\nimport { LaneSwitcher } from '@teambit/lanes.ui.navigation.lane-switcher';\nimport { LaneId } from '@teambit/lane-id';\nimport { useViewedLaneFromUrl } from '@teambit/lanes.hooks.use-viewed-lane-from-url';\nimport { ComponentCompareAspect, ComponentCompareUI } from '@teambit/component-compare';\nimport { LaneComparePage } from '@teambit/lanes.ui.compare.lane-compare-page';\nimport { ScopeIcon } from '@teambit/scope.ui.scope-icon';\n\nimport styles from './lanes.ui.module.scss';\n\nexport type LaneCompareProps = Partial<DefaultLaneCompareProps>;\nexport type LaneProviderIgnoreSlot = SlotRegistry<IgnoreDerivingFromUrl>;\nexport function useComponentFilters() {\n const idFromLocation = useIdFromLocation();\n const { lanesModel, loading } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl) ?? null\n : null;\n\n if (laneComponentId === null || loading) {\n return {\n loading: true,\n };\n }\n\n return {\n loading: false,\n log: {\n head: laneComponentId.version,\n },\n };\n}\nexport function useLaneComponentIdFromUrl(): ComponentID | undefined | null {\n const idFromLocation = useIdFromLocation();\n const { lanesModel, loading } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const query = useQuery();\n const componentVersion = query.get('version');\n\n if (componentVersion && laneFromUrl) {\n const componentId = ComponentID.fromString(`${idFromLocation}@${componentVersion}`);\n return componentId;\n }\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl) ?? null\n : null;\n\n return loading ? undefined : laneComponentId;\n}\n\nexport function useComponentId() {\n return useLaneComponentIdFromUrl()?.toString();\n}\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n Slot.withType<LaneProviderIgnoreSlot>(),\n ];\n\n constructor(\n private componentUI: ComponentUI,\n private componentCompareUI: ComponentCompareUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private laneProviderIgnoreSlot: LaneProviderIgnoreSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes(this.getLaneRoutes());\n this.hostAspect.registerMenuRoutes(this.getMenuRoutes());\n }\n\n getLaneRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <>\n <Route path={LanesModel.lanePath}>\n <Route index element={this.getLaneOverview()} />\n <Route path=\"~component/*\" element={this.getLaneComponent()} />\n <Route path=\"~compare/*\" element={this.getLanesComparePage()} />\n <Route path=\"*\" element={<NotFoundPage />} />\n </Route>\n <Route path=\"*\" element={<NotFoundPage />} />\n </>\n ),\n },\n ];\n }\n\n overrideComputeLaneUrl(\n fn: () => {\n prefix: string;\n path: string;\n getLaneIdFromPathname: (pathname: string) => LaneId | undefined;\n getLaneUrl: (laneId: LaneId, relative?: boolean) => string;\n getLaneComponentUrl: (componentId: ComponentID, laneId: LaneId) => string;\n }\n ) {\n const { prefix, path, getLaneComponentUrl, getLaneIdFromPathname, getLaneUrl } = fn();\n LanesModel.lanesPrefix = prefix;\n LanesModel.lanePath = path;\n LanesModel.getLaneComponentUrl = getLaneComponentUrl;\n LanesModel.getLaneUrl = getLaneUrl;\n LanesModel.getLaneIdFromPathname = getLaneIdFromPathname;\n }\n\n // getLaneReadme() {\n // return <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />;\n // }\n\n getLaneComponent() {\n return this.componentUI.getComponentUI(this.host, {\n componentId: useComponentId,\n useComponentFilters,\n });\n }\n\n getLaneComponentMenu() {\n return this.componentUI.getMenu(this.host, {\n componentId: useComponentId,\n useComponentFilters,\n });\n }\n\n getLaneOverview() {\n return (\n <LaneOverview\n routeSlot={this.routeSlot}\n overviewSlot={this.overviewSlot}\n host={this.lanesHost}\n useLanes={useLanes}\n />\n );\n }\n\n getLanesComparePage() {\n return <LaneComparePage getLaneCompare={this.getLaneCompare} groupByScope={this.lanesHost === 'workspace'} />;\n }\n\n getMenuRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <Route path={`${LanesModel.lanePath}/*`}>\n <Route path={'*'} element={this.getLanesOverviewMenu()} />\n <Route path=\"~component/*\" element={this.getLaneComponentMenu()} />\n </Route>\n ),\n },\n ];\n }\n\n getLanesOverviewMenu() {\n return <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />;\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n return this;\n }\n\n registerLaneProviderIgnoreSlot(ignoreFn: IgnoreDerivingFromUrl) {\n this.laneProviderIgnoreSlot.register(ignoreFn);\n return this;\n }\n\n private registerLanesRoutes() {\n this.registerNavigation([\n // {\n // props: {\n // href: '.',\n // exact: true,\n // children: 'README',\n // },\n // order: 1,\n // hide: () => {\n // const { lanesModel } = useLanes();\n // return !lanesModel?.viewedLane?.readmeComponent;\n // },\n // },\n {\n props: {\n href: '.',\n exact: true,\n children: 'Overview',\n },\n order: 1,\n },\n {\n props: {\n href: '~compare',\n children: 'Compare',\n },\n order: 2,\n hide: () => {\n const { lanesModel } = useLanes();\n return !lanesModel?.viewedLane || lanesModel?.lanes.length < 2;\n },\n },\n ]);\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n getLanesSwitcher() {\n const mainIcon = () => {\n const scope = useContext(ScopeContext);\n return (\n <ScopeIcon\n size={24}\n scopeImage={scope.icon}\n bgColor={scope.backgroundIconColor}\n className={styles.mainLaneIcon}\n />\n );\n };\n\n const LanesSwitcher = (\n <LaneSwitcher\n groupByScope={this.lanesHost === 'workspace'}\n mainIcon={this.lanesHost === 'scope' ? mainIcon : undefined}\n useLanes={useLanes}\n />\n );\n\n return LanesSwitcher;\n }\n\n getLanesProvider() {\n return LanesProvider;\n }\n\n getUseLanes() {\n return useLanes;\n }\n\n private registerLanesDropdown() {\n const LanesSwitcher = this.getLanesSwitcher();\n\n this.hostAspect?.registerSidebarLink({\n component: function Gallery() {\n return LanesSwitcher;\n },\n weight: 1000,\n });\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n const ignoreFns = this.laneProviderIgnoreSlot.values();\n\n return <LanesProvider ignoreDerivingFromUrl={ignoreFns}>{children}</LanesProvider>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(routes: LanesNavPlugin[]) {\n this.navSlot.register(routes);\n }\n\n getLaneCompare = (props: LaneCompareProps) => {\n const tabs = this.componentCompareUI.tabs;\n\n if (!props.base || !props.compare) return null;\n\n return (\n <LaneCompare\n {...props}\n base={props.base}\n compare={props.compare}\n host={props.host || this.host}\n tabs={props.tabs || tabs}\n />\n );\n };\n\n static async provider(\n [uiUi, componentUI, workspaceUi, scopeUi, componentCompareUI]: [\n UiUI,\n ComponentUI,\n WorkspaceUI,\n ScopeUI,\n ComponentCompareUI\n ],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot, laneProviderIgnoreSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot,\n LaneProviderIgnoreSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(\n componentUI,\n componentCompareUI,\n routeSlot,\n navSlot,\n overviewSlot,\n menuWidgetSlot,\n laneProviderIgnoreSlot,\n workspace,\n scope\n );\n if (uiUi) uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => {\n const { lanesModel } = useLanes();\n if (!lanesModel?.viewedLane) return null;\n const { viewedLane, currentLane } = lanesModel;\n return (\n <UseLaneMenu\n actionName={'Import'}\n actionIcon={'terminal'}\n host={lanesUi.lanesHost}\n viewedLaneId={viewedLane.id}\n currentLaneId={currentLane?.id}\n />\n );\n });\n lanesUi.registerLanesDropdown();\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.686/dist/lanes.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.686/dist/lanes.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.688/dist/lanes.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.688/dist/lanes.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -78,7 +78,6 @@ function _createLane() {
78
78
  return data;
79
79
  }
80
80
  class LaneSwitcher {
81
- // populated by `this.populateSwitchProps()`
82
81
  // populated by `this.populateSwitchProps()`, if default-lane, it's undefined
83
82
  constructor(workspace, logger, switchProps, checkoutProps, Lanes) {
84
83
  this.workspace = workspace;
@@ -88,6 +87,7 @@ class LaneSwitcher {
88
87
  this.Lanes = Lanes;
89
88
  (0, _defineProperty2().default)(this, "consumer", void 0);
90
89
  (0, _defineProperty2().default)(this, "laneIdToSwitchTo", void 0);
90
+ // populated by `this.populateSwitchProps()`
91
91
  (0, _defineProperty2().default)(this, "laneToSwitchTo", void 0);
92
92
  this.consumer = this.workspace.consumer;
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"names":["LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","Lanes","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","filter","componentStatus","failureMessage","map","unchangedLegitimately","succeededComponents","componentsResults","mapSeries","currentComponent","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","saveLanesData","components","c","manyComponentsWriterOpts","skipDependencyInstallation","skipNpmInstall","verbose","writeConfig","installationError","compilationError","componentWriter","writeMany","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","onDestroy","laneId","scope","lanes","parseLaneIdFromString","laneName","localLane","loadLane","isDefault","populatePropsAccordingToDefaultLane","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","pattern","bitMap","getAllBitIdsFromAllLanes","length","BitError","allIds","resolveMultipleComponentIds","ids","patternIds","filterIdsFromPoolIdsByPattern","_legacy","remoteLaneId","laneIdToSwitchTo","debug","toString","getCurrentLaneId","isEqual","remoteLane","fetchLaneWithItsComponents","name","l","changeVersion","head","localTrackedLane","getAliasByLaneId","undefined","laneToSwitchTo","isOnLane","getIdsOfDefaultLane","LaneId","from","DEFAULT_LANE","toLaneId","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithLanes","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","isRemoved","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentSourceCodeModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","threeWayMerge","otherLabel","currentLabel"],"sources":["switch-lanes.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutPropsLegacy,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/checkout';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { LanesMain } from './lanes.main.runtime';\nimport { throwForStagedComponents } from './create-lane';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: BitId[];\n pattern?: string;\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: CheckoutPropsLegacy,\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.consumer);\n }\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({\n id: componentStatus.id,\n failureMessage: componentStatus.failureMessage as string,\n unchangedLegitimately: componentStatus.unchangedLegitimately,\n }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(\n succeededComponents,\n ({ id, currentComponent: componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n }\n );\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const components = componentsResults.map((c) => c.component).filter((c) => c) as ConsumerComponent[];\n\n const manyComponentsWriterOpts = {\n components,\n skipDependencyInstallation: this.checkoutProps.skipNpmInstall,\n verbose: this.checkoutProps.verbose,\n writeConfig: this.checkoutProps.writeConfig,\n };\n const { installationError, compilationError } = await this.Lanes.componentWriter.writeMany(\n manyComponentsWriterOpts\n );\n await deleteFilesIfNeeded(componentsResults, this.workspace);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents, installationError, compilationError };\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 if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n } else if (localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(laneId);\n }\n\n if (this.switchProps.pattern) {\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 = await this.workspace.resolveMultipleComponentIds(this.switchProps.ids || []);\n const patternIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n this.switchProps.ids = patternIds.map((id) => id._legacy);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId) {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n if (this.consumer.getCurrentLaneId().isEqual(remoteLaneId)) {\n throw new BitError(`already checked out to \"${remoteLaneId.toString()}\"`);\n }\n const remoteLane = await this.Lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.ids = remoteLane.components.map((l) => l.id.changeVersion(l.head.toString()));\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 }\n\n private async populatePropsAccordingToDefaultLane() {\n if (!this.consumer.isOnLane()) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = await this.consumer.getIdsOfDefaultLane();\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane) {\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\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.syncWithLanes(this.laneToSwitchTo);\n }\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string, unchangedLegitimately = false) => {\n componentStatus.failureMessage = msg;\n componentStatus.unchangedLegitimately = unchangedLegitimately;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`, true);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} is in during-merge state, please snap/tag it first (or use \"bit lane merge-abort\"/\"bit merge --resolve/--abort\")`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`, true);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (componentOnLane.isRemoved()) {\n return returnFailure(`component has been removed`, true);\n }\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`, true);\n }\n return { componentFromModel: componentOnLane, id };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromModel: componentOnLane, id };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`, true);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them\n // and won't be able to switch lanes.\n const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { currentComponent: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_generalError","_laneId","_repositories","_checkout","_mergeVersion","_threeWayMerge","_bitError","_createLane","LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","Lanes","_defineProperty2","default","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","filter","componentStatus","failureMessage","map","unchangedLegitimately","succeededComponents","componentsResults","mapSeries","currentComponent","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","saveLanesData","components","c","manyComponentsWriterOpts","skipDependencyInstallation","skipNpmInstall","verbose","writeConfig","installationError","compilationError","componentWriter","writeMany","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","onDestroy","laneId","scope","lanes","parseLaneIdFromString","laneName","localLane","loadLane","isDefault","populatePropsAccordingToDefaultLane","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","pattern","bitMap","getAllBitIdsFromAllLanes","length","BitError","allIds","resolveMultipleComponentIds","ids","patternIds","filterIdsFromPoolIdsByPattern","_legacy","remoteLaneId","laneIdToSwitchTo","debug","toString","getCurrentLaneId","isEqual","remoteLane","fetchLaneWithItsComponents","name","l","changeVersion","head","localTrackedLane","getAliasByLaneId","undefined","laneToSwitchTo","isOnLane","getIdsOfDefaultLane","LaneId","from","DEFAULT_LANE","toLaneId","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","_this$laneToSwitchTo","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithLanes","exports","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","isRemoved","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentSourceCodeModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","threeWayMerge","otherLabel","currentLabel"],"sources":["switch-lanes.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutPropsLegacy,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/checkout';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { LanesMain } from './lanes.main.runtime';\nimport { throwForStagedComponents } from './create-lane';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: BitId[];\n pattern?: string;\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: CheckoutPropsLegacy,\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.consumer);\n }\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({\n id: componentStatus.id,\n failureMessage: componentStatus.failureMessage as string,\n unchangedLegitimately: componentStatus.unchangedLegitimately,\n }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(\n succeededComponents,\n ({ id, currentComponent: componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n }\n );\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const components = componentsResults.map((c) => c.component).filter((c) => c) as ConsumerComponent[];\n\n const manyComponentsWriterOpts = {\n components,\n skipDependencyInstallation: this.checkoutProps.skipNpmInstall,\n verbose: this.checkoutProps.verbose,\n writeConfig: this.checkoutProps.writeConfig,\n };\n const { installationError, compilationError } = await this.Lanes.componentWriter.writeMany(\n manyComponentsWriterOpts\n );\n await deleteFilesIfNeeded(componentsResults, this.workspace);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents, installationError, compilationError };\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 if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n } else if (localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(laneId);\n }\n\n if (this.switchProps.pattern) {\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 = await this.workspace.resolveMultipleComponentIds(this.switchProps.ids || []);\n const patternIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n this.switchProps.ids = patternIds.map((id) => id._legacy);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId) {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n if (this.consumer.getCurrentLaneId().isEqual(remoteLaneId)) {\n throw new BitError(`already checked out to \"${remoteLaneId.toString()}\"`);\n }\n const remoteLane = await this.Lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.ids = remoteLane.components.map((l) => l.id.changeVersion(l.head.toString()));\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 }\n\n private async populatePropsAccordingToDefaultLane() {\n if (!this.consumer.isOnLane()) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = await this.consumer.getIdsOfDefaultLane();\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane) {\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\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.syncWithLanes(this.laneToSwitchTo);\n }\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string, unchangedLegitimately = false) => {\n componentStatus.failureMessage = msg;\n componentStatus.unchangedLegitimately = unchangedLegitimately;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`, true);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} is in during-merge state, please snap/tag it first (or use \"bit lane merge-abort\"/\"bit merge --resolve/--abort\")`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`, true);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (componentOnLane.isRemoved()) {\n return returnFailure(`component has been removed`, true);\n }\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`, true);\n }\n return { componentFromModel: componentOnLane, id };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromModel: componentOnLane, id };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`, true);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them\n // and won't be able to switch lanes.\n const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { currentComponent: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["SwitchCmd","constructor","lanes","name","description","report","lane","alias","merge","getAll","skipDependencyInstallation","pattern","json","components","failedComponents","installationError","compilationError","switchLanes","JSON","stringify","getFailureOutput","length","title","body","map","failedComponent","color","unchangedLegitimately","chalk","bold","id","toString","failureMessage","join","getSuccessfulOutput","laneSwitched","green","component","componentName","toStringWithoutVersion","version","applyVersionReport","componentsStr","failedOutput","successOutput","installationErrorOutput","compilationErrorOutput"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { applyVersionReport, installationErrorOutput, compilationErrorOutput } from '@teambit/merging';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane> [pattern]';\n description = `switch to the specified lane`;\n private = true;\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if not exists locally) to switch to',\n },\n ];\n options = [\n [\n 'n',\n 'alias <string>',\n 'relevant when the specified lane is a remote late. name a local lane differently than the remote lane',\n ],\n [\n 'm',\n 'merge [strategy]',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['a', 'get-all', 'checkout all components in a lane include ones that do not exist in the workspace'],\n ['x', 'skip-dependency-installation', 'do not install packages of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n 'switch only the specified component-pattern. works only when the workspace is empty',\n ],\n ['j', 'json', 'return the output as JSON'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n alias,\n merge,\n getAll = false,\n skipDependencyInstallation = false,\n pattern,\n json = false,\n }: {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n json?: boolean;\n }\n ) {\n const { components, failedComponents, installationError, compilationError } = await this.lanes.switchLanes(lane, {\n alias,\n merge,\n getAll,\n pattern,\n skipDependencyInstallation,\n });\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const getFailureOutput = () => {\n if (!failedComponents || !failedComponents.length) return '';\n const title = 'the switch has been canceled on the following component(s)';\n const body = failedComponents\n .map((failedComponent) => {\n const color = failedComponent.unchangedLegitimately ? 'white' : 'red';\n return `${chalk.bold(failedComponent.id.toString())} - ${chalk[color](failedComponent.failureMessage)}`;\n })\n .join('\\n');\n return `${title}\\n${body}\\n\\n`;\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = chalk.green(`\\nsuccessfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No component had been changed.${laneSwitched}`;\n if (components.length === 1) {\n const component = components[0];\n const componentName = component.id.toStringWithoutVersion();\n const title = `successfully switched ${chalk.bold(componentName)} to version ${chalk.bold(\n component.id.version as string\n )}\\n`;\n return `${title} ${applyVersionReport(components, false)}${laneSwitched}`;\n }\n const title = `successfully switched the following components to the version of ${lane}\\n\\n`;\n const componentsStr = applyVersionReport(components, true, false);\n return title + componentsStr + laneSwitched;\n };\n const failedOutput = getFailureOutput();\n const successOutput = getSuccessfulOutput();\n return (\n failedOutput +\n successOutput +\n installationErrorOutput(installationError) +\n compilationErrorOutput(compilationError)\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_merging","SwitchCmd","constructor","lanes","_defineProperty2","default","name","description","report","lane","alias","merge","getAll","skipDependencyInstallation","pattern","json","components","failedComponents","installationError","compilationError","switchLanes","JSON","stringify","getFailureOutput","length","title","body","map","failedComponent","color","unchangedLegitimately","chalk","bold","id","toString","failureMessage","join","getSuccessfulOutput","laneSwitched","green","component","componentName","toStringWithoutVersion","version","applyVersionReport","componentsStr","failedOutput","successOutput","installationErrorOutput","compilationErrorOutput","exports"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { applyVersionReport, installationErrorOutput, compilationErrorOutput } from '@teambit/merging';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane> [pattern]';\n description = `switch to the specified lane`;\n private = true;\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if not exists locally) to switch to',\n },\n ];\n options = [\n [\n 'n',\n 'alias <string>',\n 'relevant when the specified lane is a remote late. name a local lane differently than the remote lane',\n ],\n [\n 'm',\n 'merge [strategy]',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['a', 'get-all', 'checkout all components in a lane include ones that do not exist in the workspace'],\n ['x', 'skip-dependency-installation', 'do not install packages of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n 'switch only the specified component-pattern. works only when the workspace is empty',\n ],\n ['j', 'json', 'return the output as JSON'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n alias,\n merge,\n getAll = false,\n skipDependencyInstallation = false,\n pattern,\n json = false,\n }: {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n json?: boolean;\n }\n ) {\n const { components, failedComponents, installationError, compilationError } = await this.lanes.switchLanes(lane, {\n alias,\n merge,\n getAll,\n pattern,\n skipDependencyInstallation,\n });\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const getFailureOutput = () => {\n if (!failedComponents || !failedComponents.length) return '';\n const title = 'the switch has been canceled on the following component(s)';\n const body = failedComponents\n .map((failedComponent) => {\n const color = failedComponent.unchangedLegitimately ? 'white' : 'red';\n return `${chalk.bold(failedComponent.id.toString())} - ${chalk[color](failedComponent.failureMessage)}`;\n })\n .join('\\n');\n return `${title}\\n${body}\\n\\n`;\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = chalk.green(`\\nsuccessfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No component had been changed.${laneSwitched}`;\n if (components.length === 1) {\n const component = components[0];\n const componentName = component.id.toStringWithoutVersion();\n const title = `successfully switched ${chalk.bold(componentName)} to version ${chalk.bold(\n component.id.version as string\n )}\\n`;\n return `${title} ${applyVersionReport(components, false)}${laneSwitched}`;\n }\n const title = `successfully switched the following components to the version of ${lane}\\n\\n`;\n const componentsStr = applyVersionReport(components, true, false);\n return title + componentsStr + laneSwitched;\n };\n const failedOutput = getFailureOutput();\n const successOutput = getSuccessfulOutput();\n return (\n failedOutput +\n successOutput +\n installationErrorOutput(installationError) +\n compilationErrorOutput(compilationError)\n );\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/lanes",
3
- "version": "0.0.686",
3
+ "version": "0.0.688",
4
4
  "homepage": "https://bit.cloud/teambit/lanes/lanes",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.lanes",
8
8
  "name": "lanes",
9
- "version": "0.0.686"
9
+ "version": "0.0.688"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -23,37 +23,37 @@
23
23
  "@teambit/scope.ui.scope-icon": "0.0.91",
24
24
  "@teambit/bit-error": "0.0.402",
25
25
  "@teambit/component-version": "0.0.409",
26
- "@teambit/lane-id": "0.0.262",
27
- "@teambit/scope": "0.0.1114",
28
- "@teambit/snapping": "0.0.429",
29
- "@teambit/workspace": "0.0.1114",
30
- "@teambit/lanes.ui.models.lanes-model": "0.0.162",
31
- "@teambit/cli": "0.0.746",
32
- "@teambit/express": "0.0.844",
33
- "@teambit/logger": "0.0.839",
34
- "@teambit/graphql": "0.0.1114",
35
- "@teambit/component-compare": "0.0.362",
36
- "@teambit/component-writer": "0.0.150",
37
- "@teambit/component": "0.0.1114",
38
- "@teambit/export": "0.0.1114",
39
- "@teambit/importer": "0.0.543",
40
- "@teambit/lanes.entities.lane-diff": "0.0.107",
41
- "@teambit/lanes.modules.diff": "0.0.380",
42
- "@teambit/merging": "0.0.429",
43
- "@teambit/remove": "0.0.291",
44
- "@teambit/lanes.hooks.use-lanes": "0.0.209",
45
- "@teambit/lanes.hooks.use-viewed-lane-from-url": "0.0.171",
46
- "@teambit/lanes.ui.compare.lane-compare-page": "0.0.105",
47
- "@teambit/lanes.ui.compare.lane-compare": "0.0.122",
48
- "@teambit/lanes.ui.lane-overview": "0.0.164",
26
+ "@teambit/lane-id": "0.0.263",
27
+ "@teambit/scope": "0.0.1116",
28
+ "@teambit/snapping": "0.0.431",
29
+ "@teambit/workspace": "0.0.1116",
30
+ "@teambit/lanes.ui.models.lanes-model": "0.0.163",
31
+ "@teambit/cli": "0.0.748",
32
+ "@teambit/express": "0.0.846",
33
+ "@teambit/logger": "0.0.841",
34
+ "@teambit/graphql": "0.0.1116",
35
+ "@teambit/component-compare": "0.0.364",
36
+ "@teambit/component-writer": "0.0.152",
37
+ "@teambit/component": "0.0.1116",
38
+ "@teambit/export": "0.0.1116",
39
+ "@teambit/importer": "0.0.545",
40
+ "@teambit/lanes.entities.lane-diff": "0.0.108",
41
+ "@teambit/lanes.modules.diff": "0.0.381",
42
+ "@teambit/merging": "0.0.431",
43
+ "@teambit/remove": "0.0.293",
44
+ "@teambit/lanes.hooks.use-lanes": "0.0.210",
45
+ "@teambit/lanes.hooks.use-viewed-lane-from-url": "0.0.172",
46
+ "@teambit/lanes.ui.compare.lane-compare-page": "0.0.106",
47
+ "@teambit/lanes.ui.compare.lane-compare": "0.0.124",
48
+ "@teambit/lanes.ui.lane-overview": "0.0.165",
49
49
  "@teambit/lanes.ui.menus.lanes-overview-menu": "0.0.5",
50
- "@teambit/lanes.ui.menus.use-lanes-menu": "0.0.162",
51
- "@teambit/lanes.ui.navigation.lane-switcher": "0.0.166",
50
+ "@teambit/lanes.ui.menus.use-lanes-menu": "0.0.163",
51
+ "@teambit/lanes.ui.navigation.lane-switcher": "0.0.167",
52
52
  "@teambit/ui-foundation.ui.menu": "0.0.497",
53
53
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501",
54
54
  "@teambit/ui-foundation.ui.react-router.use-query": "0.0.496",
55
- "@teambit/ui": "0.0.1114",
56
- "@teambit/checkout": "0.0.283"
55
+ "@teambit/ui": "0.0.1116",
56
+ "@teambit/checkout": "0.0.285"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/lodash": "4.14.165",
@@ -65,13 +65,13 @@
65
65
  "@types/react-dom": "^17.0.5",
66
66
  "@types/jest": "^26.0.0",
67
67
  "@types/testing-library__jest-dom": "5.9.5",
68
- "@teambit/component.testing.mock-components": "0.0.109",
69
- "@teambit/harmony.testing.load-aspect": "0.0.108",
68
+ "@teambit/component.testing.mock-components": "0.0.110",
69
+ "@teambit/harmony.testing.load-aspect": "0.0.109",
70
70
  "@teambit/workspace.testing.mock-workspace": "0.0.14"
71
71
  },
72
72
  "peerDependencies": {
73
73
  "react-router-dom": "^6.0.0",
74
- "@teambit/legacy": "1.0.526",
74
+ "@teambit/legacy": "1.0.527",
75
75
  "react": "^16.8.0 || ^17.0.0",
76
76
  "react-dom": "^16.8.0 || ^17.0.0"
77
77
  },