@teambit/workspace 0.0.989 → 0.0.991

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.
@@ -12,5 +12,4 @@ export declare type OnComponentEventResult = {
12
12
  extensionId: string;
13
13
  results: SerializableResults;
14
14
  };
15
- export declare type OnMultipleComponentsAdd = () => Promise<void>;
16
15
  export declare type OnComponentLoad = (component: Component, loadOpts?: ComponentLoadOptions) => Promise<AspectData | undefined>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["on-component-events.ts"],"sourcesContent":["import { Component, ComponentID, AspectData } from '@teambit/component';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\n\nexport type SerializableResults = { results: any; toString: () => string };\nexport type OnComponentChange = (\n component: Component,\n files: string[],\n initiator?: CompilationInitiator\n) => Promise<SerializableResults>;\nexport type OnComponentAdd = (component: Component, files: string[]) => Promise<SerializableResults>;\nexport type OnComponentRemove = (componentId: ComponentID) => Promise<SerializableResults>;\nexport type OnComponentEventResult = { extensionId: string; results: SerializableResults };\nexport type OnMultipleComponentsAdd = () => Promise<void>;\n\nexport type OnComponentLoad = (\n component: Component,\n loadOpts?: ComponentLoadOptions\n) => Promise<AspectData | undefined>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["on-component-events.ts"],"sourcesContent":["import { Component, ComponentID, AspectData } from '@teambit/component';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\n\nexport type SerializableResults = { results: any; toString: () => string };\nexport type OnComponentChange = (\n component: Component,\n files: string[],\n initiator?: CompilationInitiator\n) => Promise<SerializableResults>;\nexport type OnComponentAdd = (component: Component, files: string[]) => Promise<SerializableResults>;\nexport type OnComponentRemove = (componentId: ComponentID) => Promise<SerializableResults>;\nexport type OnComponentEventResult = { extensionId: string; results: SerializableResults };\n\nexport type OnComponentLoad = (\n component: Component,\n loadOpts?: ComponentLoadOptions\n) => Promise<AspectData | undefined>;\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.989/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.989/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.991/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.991/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -26,10 +26,10 @@ import { CompilationInitiator } from '@teambit/compiler';
26
26
  import { Lane } from '@teambit/legacy/dist/scope/models';
27
27
  import { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';
28
28
  import { ComponentConfigFile } from './component-config-file';
29
- import { OnComponentAdd, OnComponentChange, OnComponentEventResult, OnComponentLoad, OnComponentRemove, OnMultipleComponentsAdd } from './on-component-events';
29
+ import { OnComponentAdd, OnComponentChange, OnComponentEventResult, OnComponentLoad, OnComponentRemove } from './on-component-events';
30
30
  import { WorkspaceExtConfig } from './types';
31
31
  import { ComponentStatus } from './workspace-component/component-status';
32
- import { OnComponentAddSlot, OnComponentChangeSlot, OnComponentLoadSlot, OnComponentRemoveSlot, OnMultipleComponentsAddSlot } from './workspace.provider';
32
+ import { OnComponentAddSlot, OnComponentChangeSlot, OnComponentLoadSlot, OnComponentRemoveSlot } from './workspace.provider';
33
33
  import { WorkspaceComponentLoader } from './workspace-component/workspace-component-loader';
34
34
  import { ShouldLoadFunc } from './build-graph-from-fs';
35
35
  import { BitMap } from './bit-map';
@@ -90,7 +90,6 @@ export declare class Workspace implements ComponentFactory {
90
90
  */
91
91
  private onComponentAddSlot;
92
92
  private onComponentRemoveSlot;
93
- private onMultipleComponentsAddSlot;
94
93
  private graphql;
95
94
  priority: boolean;
96
95
  owner?: string;
@@ -132,7 +131,7 @@ export declare class Workspace implements ComponentFactory {
132
131
  /**
133
132
  * on component add slot.
134
133
  */
135
- onComponentAddSlot: OnComponentAddSlot, onComponentRemoveSlot: OnComponentRemoveSlot, onMultipleComponentsAddSlot: OnMultipleComponentsAddSlot, graphql: GraphqlMain);
134
+ onComponentAddSlot: OnComponentAddSlot, onComponentRemoveSlot: OnComponentRemoveSlot, graphql: GraphqlMain);
136
135
  private validateConfig;
137
136
  /**
138
137
  * root path of the Workspace.
@@ -144,7 +143,6 @@ export declare class Workspace implements ComponentFactory {
144
143
  onComponentLoad(loadFn: OnComponentLoad): this;
145
144
  registerOnComponentChange(onComponentChangeFunc: OnComponentChange): this;
146
145
  registerOnComponentAdd(onComponentAddFunc: OnComponentAdd): this;
147
- registerOnMultipleComponentsAdd(onMultipleComponentsAddFunc: OnMultipleComponentsAdd): this;
148
146
  registerOnComponentRemove(onComponentRemoveFunc: OnComponentRemove): this;
149
147
  /**
150
148
  * name of the workspace as configured in either `workspace.json`.
@@ -228,7 +226,6 @@ export declare class Workspace implements ComponentFactory {
228
226
  triggerOnComponentChange(id: ComponentID, files: string[], initiator?: CompilationInitiator): Promise<OnComponentEventResult[]>;
229
227
  triggerOnComponentAdd(id: ComponentID): Promise<OnComponentEventResult[]>;
230
228
  triggerOnComponentRemove(id: ComponentID): Promise<OnComponentEventResult[]>;
231
- triggerOnMultipleComponentsAdd(): Promise<void>;
232
229
  getState(id: ComponentID, hash: string): Promise<import("@teambit/component").State>;
233
230
  getSnap(id: ComponentID, hash: string): Promise<import("@teambit/component").Snap>;
234
231
  getCurrentLaneId(): LaneId;
package/dist/workspace.js CHANGED
@@ -362,7 +362,7 @@ class Workspace {
362
362
  /**
363
363
  * on component add slot.
364
364
  */
365
- onComponentAddSlot, onComponentRemoveSlot, onMultipleComponentsAddSlot, graphql) {
365
+ onComponentAddSlot, onComponentRemoveSlot, graphql) {
366
366
  var _this$config;
367
367
  this.pubsub = pubsub;
368
368
  this.config = config;
@@ -380,7 +380,6 @@ class Workspace {
380
380
  this.envs = envs;
381
381
  this.onComponentAddSlot = onComponentAddSlot;
382
382
  this.onComponentRemoveSlot = onComponentRemoveSlot;
383
- this.onMultipleComponentsAddSlot = onMultipleComponentsAddSlot;
384
383
  this.graphql = graphql;
385
384
  (0, _defineProperty2().default)(this, "priority", true);
386
385
  (0, _defineProperty2().default)(this, "owner", void 0);
@@ -442,10 +441,6 @@ class Workspace {
442
441
  this.onComponentAddSlot.register(onComponentAddFunc);
443
442
  return this;
444
443
  }
445
- registerOnMultipleComponentsAdd(onMultipleComponentsAddFunc) {
446
- this.onMultipleComponentsAddSlot.register(onMultipleComponentsAddFunc);
447
- return this;
448
- }
449
444
  registerOnComponentRemove(onComponentRemoveFunc) {
450
445
  this.onComponentRemoveSlot.register(onComponentRemoveFunc);
451
446
  return this;
@@ -801,10 +796,6 @@ class Workspace {
801
796
  });
802
797
  return results;
803
798
  }
804
- async triggerOnMultipleComponentsAdd() {
805
- const onAddEntries = this.onMultipleComponentsAddSlot.toArray();
806
- await (0, _pMapSeries().default)(onAddEntries, async ([, onAddFunc]) => onAddFunc());
807
- }
808
799
  getState(id, hash) {
809
800
  return this.scope.getState(id, hash);
810
801
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AspectSpecificField","ComponentAdded","ComponentChanged","ComponentRemoved","DEFAULT_VENDOR_DIR","Workspace","constructor","pubsub","config","consumer","scope","componentAspect","dependencyResolver","variants","aspectLoader","logger","componentList","ComponentsList","harmony","onComponentLoadSlot","onComponentChangeSlot","envs","onComponentAddSlot","onComponentRemoveSlot","onMultipleComponentsAddSlot","graphql","componentLoadedSelfAsAspects","createInMemoryCache","maxSize","getMaxSizeForComponents","owner","defaultOwner","componentLoader","WorkspaceComponentLoader","validateConfig","bitMap","BitMap","componentDefaultScopeFromComponentDirAndNameWithoutConfigFile","memoize","bind","primitive","promise","maxAge","aspectsMerger","AspectsMerger","isLegacy","isEmpty","BitError","defaultScope","isValidScopeName","InvalidScopeName","path","getPath","modulesPath","join","onComponentLoad","loadFn","register","registerOnComponentChange","onComponentChangeFunc","registerOnComponentAdd","onComponentAddFunc","registerOnMultipleComponentsAdd","onMultipleComponentsAddFunc","registerOnComponentRemove","onComponentRemoveFunc","name","tokenizedPath","split","length","icon","hasModifiedDependencies","component","componentsList","listAutoTagPendingComponents","isAutoTag","find","consumerComponent","id","isEqualWithoutVersion","_legacy","getComponentIssues","state","_consumer","issues","getComponentStatus","status","getComponentStatusById","ComponentStatus","fromLegacy","isOutdated","list","filter","loadOpts","legacyIds","getAllIdsAvailableOnLane","ids","resolveMultipleComponentIds","idsToGet","limit","slice","offset","getMany","listInvalid","getInvalid","listIds","_cachedListIds","hasChanged","bitmapIdsFromCurrentLane","hasId","componentId","found","isEqual","hasName","Boolean","fullName","hasIdNested","includeCache","modified","listModifiedComponents","componentIds","map","ComponentID","newComponents","listNewComponents","getAllComponentIds","bitIds","getAllBitIds","getNewAndModifiedIds","listTagPendingComponents","newAndModified","getLogs","shortHash","startsFrom","getGraph","shouldThrowOnMissingDep","buildOneGraphForComponents","undefined","getGraphIds","graphIdsFromFsBuilder","GraphIdsFromFsBuilder","buildGraph","getUnavailableOnMainComponents","currentLaneId","getCurrentLaneId","isDefault","allIds","getAllBitIdsFromAllLanes","availableIds","unavailableIds","hasWithoutScopeAndVersion","removedIds","getRemoved","compsWithHead","Promise","all","has","modelComp","legacyScope","getModelComponentIfExist","head","push","getSavedGraphOfComponentIfExist","versionObj","getVersionInstance","err","flattenedEdges","flattenedDependencies","flattenedBitIdCompIdMap","toString","bitId","resolveComponentId","getCompIdByIdStr","idStr","compId","Error","nodes","Object","values","edges","edge","source","target","graph","Graph","forEach","node","setNode","Node","setEdge","Edge","type","getDependentsIds","workspaceGraph","DependencyGraph","buildGraphFromWorkspace","workspaceDependencyGraph","workspaceDependents","getDependentsInfo","dependentsLegacyIds","flat","_","dependentsLegacyNoDup","BitIds","uniqFromArray","dependentsIds","createAspectList","extensionDataList","entiresP","entry","extensionDataEntryToAspectEntry","entries","createAspectListFromEntries","dataEntry","AspectEntry","get","legacyComponent","useCache","storeInCache","debug","tryLoadAsAspect","isUsingEnvEnv","isCoreAspect","toStringWithoutVersion","isAspectLoaded","set","loadAspects","e","delete","getEnvSystemDescriptor","env","calculateEnv","__getDescriptor","systemDescriptor","services","isEnvRegistered","getServices","getDescriptor","description","toObject","clearCache","resetFailedLoadAspects","clearComponentCache","clearOneComponentCache","triggerOnComponentChange","files","initiator","write","onChangeEntries","toArray","results","mapSeries","extension","onChangeFunc","onChangeResult","extensionId","publish","componentChanged","triggerOnComponentAdd","onAddEntries","filesystem","file","onAddFunc","onAddResult","componentAdded","triggerOnComponentRemove","onRemoveEntries","onRemoveFunc","onRemoveResult","componentRemoved","triggerOnMultipleComponentsAdd","getState","hash","getSnap","isOnMain","getCurrentRemoteLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","lanes","importLanes","ScopeNotFoundOrDenied","LaneNotFound","InvalidScopeNameFromRemote","bitMapLaneId","getExportedLaneId","loader","stop","warn","message","getDefaultExtensions","extensions","ExtensionDataList","fromConfigObject","ejectMultipleConfigs","options","ejectConfig","getExtensionsFromScopeAndSpecific","aspects","componentDir","ignoreVersion","componentConfigFile","ComponentConfigFile","propagate","override","removeEntireConfig","configPath","composePath","componentFromScope","componentExtensions","resolveScopeAspectListIds","aspectListFromScope","resolvedList","pmap","newId","newEntry","legacy","byPattern","pattern","finalPattern","targetIds","spec","isMatchNamespacePatternItem","match","components","idsByPattern","throwForNoMatch","includes","exists","MissingBitMapComponent","filterIdsFromPoolIdsByPattern","getComponentsByUserInput","includeDependents","newAndModifiedIds","comp","dependentsIdsFiltered","dependents","getComponentsUsingEnv","throwIfNotFound","allComps","allEnvs","createEnvironment","foundEnv","runtimeEnvs","runtimeEnv","envWithoutVersion","availableEnvs","getManyByLegacy","getIfExist","importAndGetMany","importCurrentLaneIfMissing","import","reFetchUnBuiltVersion","shouldReFetchUnBuiltVersion","laneId","laneObj","getCurrentLaneObject","lane","info","objects","writeObjectsToTheFS","scopeComponentsImporter","fromArray","toBitIds","hasScope","importManyDeltaWithoutDeps","fromHead","importMany","use","aspectIdStr","aspectId","aspectIdToAdd","loadedIds","workspaceConfig","setExtension","overrideExisting","rootPath","pathToWrite","relative","fs","outputFile","contents","bitMapOptions","componentDirFromLegacyId","componentPackageDir","packageName","componentPackageName","packageDir","toAbsolutePath","componentIdToPackageName","componentMap","getComponent","relativeComponentDir","getComponentDir","NoComponentDir","componentDirToAbsolute","componentDefaultScope","componentDefaultScopeFromComponentDirAndName","componentConfigFileFromComponentDirAndName","bitMapId","getExistingBitId","bitMapEntry","variantConfig","byRootDirAndName","isVendor","isVendorComponentByComponentDir","excludeOrigins","merge","getConfigMergeFilePath","MergeConfigFilename","getConflictMergeFile","mergeConflictFile","getDepsDataOfMergeConfig","listComponentsDuringMerge","unmergedComps","unmergedComponents","getComponents","u","BitId","getUnmergedComponent","unmerged","getEntry","changeVersion","isModified","consumerComp","_isModified","componentStatus","setDefaultScopeToComponents","scopeName","newComponentIds","hasVersion","compIdsStr","setDefaultScope","WorkspaceAspect","mergeIntoExisting","dir","dirname","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","addAspect","obj","toConfigObject","addComponentConfig","removeSpecificComponentConfig","markWithMinusIfNotExist","removeAspect","removeComponentConfig","getAspectIdFromConfig","ignoreAspectVersion","aspectEntry","findExtension","getSpecificComponentConfig","getBitmapEntry","vendorDir","vendor","directory","pathIsInside","getComponentIdByPath","componentPath","relativePath","isAbsolute","linuxPath","pathNormalizeToLinux","absComponentDir","defaultScopeFromVariantsOrWs","load","getAspectsGraphWithoutCore","isAspect","coreAspectsStringIds","getCoreAspectIds","throwOnError","neededFor","callId","Math","floor","random","loggerPrefix","notLoadedIds","idsWithoutCore","difference","importAndGetAspects","isUsingAspectEnv","isValidAspect","attr","workspaceComps","scopeComps","groupComponentsByWorkspaceAndScope","c","scopeIds","aspect","workspaceAspects","requireComponents","workspaceManifests","getManifestsFromRequireableExtensions","potentialPluginsIndexes","compact","manifest","index","workspaceManifestsIds","m","scopeIdsGrouped","groupAspectIdsByEnvOfTheList","scopeEnvsManifestsIds","currentLane","manifests","scopeOtherManifests","other","getManifestsGraphRecursively","packageManagerConfigRootDir","scopeOtherManifestsIds","loadExtensionsByManifests","pluginsWorkspaceComps","pluginsWorkspaceAspects","pluginsWorkspaceManifests","concat","ignoreIds","shouldLoadFunc","graphFromFsBuilder","GraphFromFsBuilder","resolveAspects","runtimeName","opts","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","missingPaths","idsToResolve","extensionsIds","coreAspectsIds","userAspectsIds","componentIdsToResolve","workspaceIds","groupIdsByWorkspaceAndScope","wsComponents","aspectDefs","compStringId","localPath","getComponentPackagePath","isExist","pathExists","runtimePath","getRuntimePath","aspectFilePath","getAspectFilePath","aspectPath","scopeAspectDefs","coreAspectDefs","coreId","rawDef","getAspectDef","loadDefinition","coreAspect","linkToNodeModulesByIds","allDefs","fromString","afterExclusion","def","isCore","getId","isTarget","uniqDefs","uniqBy","defs","componentIdsString","existOnWorkspace","getTempDir","PREFIX","cacheDir","existsSync","mkdirSync","recursive","resolveP","requireFunc","plugins","getPlugins","MainRuntime","require","RequireableComponent","resolved","ComponentNotFound","configStr","JSON","stringify","raw","_reloadConsumer","loadConsumer","getRuntimeModulePath","defaultDirectory","legacyDefaultDirectory","getDefaultScope","toStringWithoutScopeAndVersion","legacyId","getParsedIdIfExist","shouldSearchWithoutScopeInProvidedId","startsWith","idWithVersion","idWithoutVersion","version","_bitMapId","_bitMapIdWithoutVersion","_bitMapIdWithVersion","endsWith","defaultScopeForBitmapId","getFromBitmapAddDefaultScope","_bitmapIdWithVersionForSource","fromScope","error","parse","resolveExtensionsList","resolveMergedExtensionsP","extensionEntry","resolvedId","addDefaultScopeToExtensionsList","changeScope","setEnvToComponents","envId","envStrWithPossiblyVersion","resolveEnvIdWithPotentialVersionForConfig","envIdStrNoVersion","unsetEnvFromComponents","EnvsAspect","existsOnWorkspace","comps","changed","unchanged","envsAspect","findCoreExtension","rawConfig","currentEnv","REMOVE_EXTENSION_SPECIAL_SIGN","currentEnvWithPotentialVersion","updateEnvForComponents","envIdStr","allWsComps","allWsIds","isInWs","getEnvWithVersion","fromRemote","getRemoteComponent","getEnvs","envCompId","envWithVer","allEnvsIds","allEnvsCompIds","nonLocalEnvs","envsWithVersions","envsWithVerToUpdate","compIdsToUpdate","compsToUpdate","alreadyUpToDate","updated","compEnvs","compEnv","envToUpdate","commandsToReFetch","process","argv"],"sources":["workspace.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport memoize from 'memoizee';\nimport mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { IssuesList } from '@teambit/component-issues';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { getAspectDef } from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport DependencyGraph from '@teambit/legacy/dist/scope/graph/scope-graph';\nimport {\n AspectEntry,\n ComponentMain,\n Component,\n ComponentFactory,\n ComponentID,\n AspectList,\n AspectData,\n InvalidComponent,\n ResolveAspectsOptions,\n} from '@teambit/component';\nimport { BitError } from '@teambit/bit-error';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentScopeDirMap, ConfigMain } from '@teambit/config';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { EnvsMain, EnvsAspect, EnvServiceList } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony } from '@teambit/harmony';\nimport { Logger } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { VariantsMain } from '@teambit/variants';\n// import { link } from '@teambit/legacy/dist/api/consumer';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { BitId, InvalidScopeName, InvalidScopeNameFromRemote, isValidScopeName } from '@teambit/legacy-bit-id';\nimport { LaneId } from '@teambit/lane-id';\nimport { Consumer, loadConsumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport { NoComponentDir } from '@teambit/legacy/dist/consumer/component/exceptions/no-component-dir';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { pathIsInside } from '@teambit/legacy/dist/utils';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport {\n PathOsBased,\n PathOsBasedRelative,\n PathOsBasedAbsolute,\n pathNormalizeToLinux,\n} from '@teambit/legacy/dist/utils/path';\nimport fs from 'fs-extra';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport { slice, uniqBy, difference, compact, isEmpty, merge } from 'lodash';\nimport { MergeConfigFilename } from '@teambit/legacy/dist/constants';\nimport path from 'path';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { Lane, Version } from '@teambit/legacy/dist/scope/models';\nimport { LaneNotFound } from '@teambit/legacy/dist/api/scope/lib/exceptions/lane-not-found';\nimport { ScopeNotFoundOrDenied } from '@teambit/legacy/dist/remotes/exceptions/scope-not-found-or-denied';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentConfigFile } from './component-config-file';\nimport {\n OnComponentAdd,\n OnComponentChange,\n OnComponentEventResult,\n OnComponentLoad,\n OnComponentRemove,\n OnMultipleComponentsAdd,\n SerializableResults,\n} from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { ComponentStatus } from './workspace-component/component-status';\nimport {\n OnComponentAddSlot,\n OnComponentChangeSlot,\n OnComponentLoadSlot,\n OnComponentRemoveSlot,\n OnMultipleComponentsAddSlot,\n} from './workspace.provider';\nimport { WorkspaceComponentLoader } from './workspace-component/workspace-component-loader';\nimport { GraphFromFsBuilder, ShouldLoadFunc } from './build-graph-from-fs';\nimport { BitMap } from './bit-map';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { GraphIdsFromFsBuilder } from './build-graph-ids-from-fs';\nimport { AspectsMerger } from './aspects-merger';\nimport { MergeConflictFile } from './merge-conflict-file';\n\nexport type EjectConfResult = {\n configPath: string;\n};\n\nexport const AspectSpecificField = '__specific';\nexport const ComponentAdded = 'componentAdded';\nexport const ComponentChanged = 'componentChanged';\nexport const ComponentRemoved = 'componentRemoved';\n\nexport interface EjectConfOptions {\n propagate?: boolean;\n override?: boolean;\n}\n\nexport type ExtensionsOrigin =\n | 'BitmapFile'\n | 'ModelSpecific'\n | 'ModelNonSpecific'\n | 'ConfigMerge'\n | 'WorkspaceVariants'\n | 'ComponentJsonFile'\n | 'WorkspaceDefault'\n | 'FinalAfterMerge';\n\nconst DEFAULT_VENDOR_DIR = 'vendor';\n\n/**\n * API of the Bit Workspace\n */\nexport class Workspace implements ComponentFactory {\n priority = true;\n owner?: string;\n componentsScopeDirsMap: ComponentScopeDirMap;\n componentLoader: WorkspaceComponentLoader;\n bitMap: BitMap;\n private _cachedListIds?: ComponentID[];\n private componentLoadedSelfAsAspects: InMemoryCache<boolean>; // cache loaded components\n private aspectsMerger: AspectsMerger;\n constructor(\n /**\n * private pubsub.\n */\n private pubsub: PubsubMain,\n\n private config: WorkspaceExtConfig,\n /**\n * private access to the legacy consumer instance.\n */\n public consumer: Consumer,\n\n /**\n * access to the workspace `Scope` instance\n */\n readonly scope: ScopeMain,\n\n /**\n * access to the `ComponentProvider` instance\n */\n private componentAspect: ComponentMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n readonly variants: VariantsMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly logger: Logger,\n\n private componentList: ComponentsList = new ComponentsList(consumer),\n\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n\n /**\n * on component load slot.\n */\n public onComponentLoadSlot: OnComponentLoadSlot,\n\n /**\n * on component change slot.\n */\n private onComponentChangeSlot: OnComponentChangeSlot,\n\n readonly envs: EnvsMain,\n\n /**\n * on component add slot.\n */\n private onComponentAddSlot: OnComponentAddSlot,\n\n private onComponentRemoveSlot: OnComponentRemoveSlot,\n\n private onMultipleComponentsAddSlot: OnMultipleComponentsAddSlot,\n\n private graphql: GraphqlMain\n ) {\n this.componentLoadedSelfAsAspects = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n\n // TODO: refactor - prefer to avoid code inside the constructor.\n this.owner = this.config?.defaultOwner;\n this.componentLoader = new WorkspaceComponentLoader(this, logger, dependencyResolver, envs);\n this.validateConfig();\n this.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n // memoize this method to improve performance.\n this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile = memoize(\n this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile.bind(this),\n {\n primitive: true,\n promise: true,\n maxAge: 60 * 1000, // 1 min\n }\n );\n this.aspectsMerger = new AspectsMerger(this, this.harmony);\n }\n\n private validateConfig() {\n if (this.consumer.isLegacy) return;\n if (isEmpty(this.config))\n throw new BitError(\n `fatal: workspace config is empty. probably one of bit files is missing. consider running \"bit init\"`\n );\n const defaultScope = this.config.defaultScope;\n if (!defaultScope) throw new BitError('defaultScope is missing');\n if (!isValidScopeName(defaultScope)) throw new InvalidScopeName(defaultScope);\n }\n\n /**\n * root path of the Workspace.\n */\n get path() {\n return this.consumer.getPath();\n }\n\n /** get the `node_modules` folder of this workspace */\n private get modulesPath() {\n return path.join(this.path, 'node_modules');\n }\n\n get isLegacy(): boolean {\n return this.consumer.isLegacy;\n }\n\n onComponentLoad(loadFn: OnComponentLoad) {\n this.onComponentLoadSlot.register(loadFn);\n return this;\n }\n\n registerOnComponentChange(onComponentChangeFunc: OnComponentChange) {\n this.onComponentChangeSlot.register(onComponentChangeFunc);\n return this;\n }\n\n registerOnComponentAdd(onComponentAddFunc: OnComponentAdd) {\n this.onComponentAddSlot.register(onComponentAddFunc);\n return this;\n }\n\n registerOnMultipleComponentsAdd(onMultipleComponentsAddFunc: OnMultipleComponentsAdd) {\n this.onMultipleComponentsAddSlot.register(onMultipleComponentsAddFunc);\n return this;\n }\n\n registerOnComponentRemove(onComponentRemoveFunc: OnComponentRemove) {\n this.onComponentRemoveSlot.register(onComponentRemoveFunc);\n return this;\n }\n\n /**\n * name of the workspace as configured in either `workspace.json`.\n * defaults to workspace root directory name.\n */\n get name() {\n if (this.config.name) return this.config.name;\n const tokenizedPath = this.path.split('/');\n return tokenizedPath[tokenizedPath.length - 1];\n }\n\n get icon() {\n return this.config.icon;\n }\n\n async hasModifiedDependencies(component: Component) {\n const componentsList = new ComponentsList(this.consumer);\n const listAutoTagPendingComponents = await componentsList.listAutoTagPendingComponents();\n const isAutoTag = listAutoTagPendingComponents.find((consumerComponent) =>\n consumerComponent.id.isEqualWithoutVersion(component.id._legacy)\n );\n if (isAutoTag) return true;\n return false;\n }\n\n /**\n * get Component issues\n */\n getComponentIssues(component: Component): IssuesList | null {\n return component.state._consumer.issues || null;\n }\n\n /**\n * provides status of all components in the workspace.\n */\n async getComponentStatus(component: Component): Promise<ComponentStatus> {\n const status = await this.consumer.getComponentStatusById(component.id._legacy);\n const hasModifiedDependencies = await this.hasModifiedDependencies(component);\n return ComponentStatus.fromLegacy(status, hasModifiedDependencies, component.isOutdated());\n }\n\n /**\n * list all workspace components.\n */\n async list(filter?: { offset: number; limit: number }, loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const ids = await this.resolveMultipleComponentIds(legacyIds);\n const idsToGet = filter && filter.limit ? slice(ids, filter.offset, filter.offset + filter.limit) : ids;\n return this.getMany(idsToGet, loadOpts);\n }\n\n /**\n * list all invalid components.\n * (see the invalid criteria in ConsumerComponent.isComponentInvalidByErrorType())\n */\n async listInvalid(): Promise<InvalidComponent[]> {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const ids = await this.resolveMultipleComponentIds(legacyIds);\n return this.componentLoader.getInvalid(ids);\n }\n\n /**\n * get ids of all workspace components.\n */\n async listIds(): Promise<ComponentID[]> {\n if (this._cachedListIds && this.bitMap.hasChanged()) {\n delete this._cachedListIds;\n }\n if (!this._cachedListIds) {\n this._cachedListIds = await this.resolveMultipleComponentIds(this.consumer.bitmapIdsFromCurrentLane);\n }\n return this._cachedListIds;\n }\n\n /**\n * Check if a specific id exist in the workspace\n * @param componentId\n */\n async hasId(componentId: ComponentID): Promise<boolean> {\n const ids = await this.listIds();\n const found = ids.find((id) => {\n return id.isEqual(componentId);\n });\n return !!found;\n }\n\n /**\n * whether or not a workspace has a component with the given name\n */\n async hasName(name: string): Promise<boolean> {\n const ids = await this.listIds();\n return Boolean(ids.find((id) => id.fullName === name));\n }\n\n /**\n * Check if a specific id exist in the workspace or in the scope\n * @param componentId\n */\n async hasIdNested(componentId: ComponentID, includeCache = true): Promise<boolean> {\n const found = await this.hasId(componentId);\n if (found) return found;\n return this.scope.hasIdNested(componentId, includeCache);\n }\n\n /**\n * list all modified components in the workspace.\n */\n async modified(): Promise<Component[]> {\n const ids: any = await this.componentList.listModifiedComponents(false);\n const componentIds = ids.map(ComponentID.fromLegacy);\n return this.getMany(componentIds);\n }\n\n /**\n * list all new components in the workspace.\n */\n async newComponents() {\n const ids: any = await this.componentList.listNewComponents(false);\n const componentIds = ids.map(ComponentID.fromLegacy);\n return this.getMany(componentIds);\n }\n\n /**\n * get all workspace component-ids, include vendor components.\n * (exclude nested dependencies in case dependencies are saved as components and not packages)\n */\n getAllComponentIds(): Promise<ComponentID[]> {\n const bitIds = this.consumer.bitMap.getAllBitIds();\n return this.resolveMultipleComponentIds(bitIds);\n }\n\n async getNewAndModifiedIds(): Promise<ComponentID[]> {\n const ids = await this.componentList.listTagPendingComponents();\n return this.resolveMultipleComponentIds(ids);\n }\n\n async newAndModified(): Promise<Component[]> {\n const ids = await this.getNewAndModifiedIds();\n return this.getMany(ids);\n }\n\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.scope.getLogs(id, shortHash, startsFrom);\n }\n\n async getGraph(ids?: ComponentID[], shouldThrowOnMissingDep = true): Promise<Graph<Component, string>> {\n if (!ids || ids.length < 1) ids = await this.listIds();\n\n return this.buildOneGraphForComponents(ids, undefined, undefined, shouldThrowOnMissingDep);\n }\n\n async getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep = true): Promise<CompIdGraph> {\n if (!ids || ids.length < 1) ids = await this.listIds();\n\n const graphIdsFromFsBuilder = new GraphIdsFromFsBuilder(\n this,\n this.logger,\n this.dependencyResolver,\n shouldThrowOnMissingDep\n );\n return graphIdsFromFsBuilder.buildGraph(ids);\n }\n\n async getUnavailableOnMainComponents(): Promise<ComponentID[]> {\n const currentLaneId = this.consumer.getCurrentLaneId();\n if (!currentLaneId.isDefault()) return [];\n const allIds = this.consumer.bitMap.getAllBitIdsFromAllLanes();\n const availableIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n if (allIds.length === availableIds.length) return [];\n const unavailableIds = allIds.filter((id) => !availableIds.hasWithoutScopeAndVersion(id));\n if (!unavailableIds.length) return [];\n const removedIds = this.consumer.bitMap.getRemoved();\n const compsWithHead: BitId[] = [];\n await Promise.all(\n unavailableIds.map(async (id) => {\n if (removedIds.has(id)) return; // we don't care about removed components\n const modelComp = await this.scope.legacyScope.getModelComponentIfExist(id);\n if (modelComp && modelComp.head) compsWithHead.push(id);\n })\n );\n return this.resolveMultipleComponentIds(compsWithHead);\n }\n\n async getSavedGraphOfComponentIfExist(component: Component) {\n let versionObj: Version;\n try {\n versionObj = await this.scope.legacyScope.getVersionInstance(component.id._legacy);\n } catch (err) {\n return null;\n }\n\n const flattenedEdges = versionObj.flattenedEdges;\n if (!flattenedEdges.length && versionObj.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const flattenedBitIdCompIdMap: { [bitIdStr: string]: ComponentID } = {};\n flattenedBitIdCompIdMap[component.id._legacy.toString()] = component.id;\n await Promise.all(\n versionObj.flattenedDependencies.map(async (bitId) => {\n flattenedBitIdCompIdMap[bitId.toString()] = await this.resolveComponentId(bitId);\n })\n );\n const getCompIdByIdStr = (idStr: string): ComponentID => {\n const compId = flattenedBitIdCompIdMap[idStr];\n if (!compId)\n throw new Error(`id ${idStr} exists in flattenedEdges but not in flattened of ${component.id.toString()}`);\n return compId;\n };\n const nodes = Object.values(flattenedBitIdCompIdMap);\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: getCompIdByIdStr(edge.source.toString()),\n target: getCompIdByIdStr(edge.target.toString()),\n }));\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * given component ids, find their dependents in the workspace\n */\n async getDependentsIds(ids: ComponentID[]): Promise<ComponentID[]> {\n const workspaceGraph = await DependencyGraph.buildGraphFromWorkspace(this.consumer, true);\n const workspaceDependencyGraph = new DependencyGraph(workspaceGraph);\n const workspaceDependents = ids.map((id) => workspaceDependencyGraph.getDependentsInfo(id._legacy));\n const dependentsLegacyIds = workspaceDependents.flat().map((_) => _.id);\n const dependentsLegacyNoDup = BitIds.uniqFromArray(dependentsLegacyIds);\n const dependentsIds = await this.resolveMultipleComponentIds(dependentsLegacyNoDup);\n return dependentsIds;\n }\n\n public async createAspectList(extensionDataList: ExtensionDataList) {\n const entiresP = extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry));\n const entries: AspectEntry[] = await Promise.all(entiresP);\n return this.componentAspect.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n /**\n * get a component from workspace\n * @param id component ID\n */\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n this.logger.debug(`get ${componentId.toString()}`);\n const component = await this.componentLoader.get(componentId, legacyComponent, useCache, storeInCache, loadOpts);\n // When loading a component if it's an env make sure to load it as aspect as well\n // We only want to try load it as aspect if it's the first time we load the component\n const tryLoadAsAspect = this.componentLoadedSelfAsAspects.get(component.id.toString()) === undefined;\n // const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n\n // We are loading the component as aspect if it's an env, in order to be able to run the env-preview-template task which run only on envs.\n // Without this loading we will have a problem in case the env is the only component in the workspace. in that case we will load it as component\n // then we don't run it's provider so it doesn't register to the env slot, so we don't know it's an env.\n if (\n tryLoadAsAspect &&\n this.envs.isUsingEnvEnv(component) &&\n !this.aspectLoader.isCoreAspect(component.id.toStringWithoutVersion()) &&\n !this.aspectLoader.isAspectLoaded(component.id.toString()) &&\n (await this.hasId(component.id))\n // !config.extension(component.id.toStringWithoutVersion(), true)\n ) {\n try {\n this.componentLoadedSelfAsAspects.set(component.id.toString(), true);\n this.logger.debug(`trying to load self as aspect with id ${component.id.toString()}`);\n await this.loadAspects([component.id.toString()], undefined, component.id.toString());\n // In most cases if the load self as aspect failed we don't care about it.\n // we only need it in specific cases to work, but this workspace.get runs on different\n // cases where it might fail (like when importing aspect, after the import objects\n // when we write the package.json we run the applyTransformers which get to pkg which call\n // host.get, but the component not written yet to the fs, so it fails.)\n } catch (e) {\n this.logger.debug(`fail to load self as aspect with id ${component.id.toString()}`);\n this.componentLoadedSelfAsAspects.delete(component.id.toString());\n return component;\n }\n }\n this.componentLoadedSelfAsAspects.set(component.id.toString(), false);\n\n return component;\n }\n\n // TODO: @gilad we should refactor this asap into to the envs aspect.\n async getEnvSystemDescriptor(component: Component): Promise<AspectData> {\n const env = this.envs.calculateEnv(component);\n if (env.env.__getDescriptor && typeof env.env.__getDescriptor === 'function') {\n const systemDescriptor = await env.env.__getDescriptor();\n // !important persist services only on the env itself.\n let services: undefined | EnvServiceList;\n if (this.envs.isEnvRegistered(component.id.toString())) services = this.envs.getServices(env);\n const icon = this.aspectLoader.getDescriptor(env.id)?.icon || env.env.icon;\n\n return {\n type: systemDescriptor.type,\n // Make sure to store the env id in the data without the version\n // The version should always come from the aspect id configured on the component\n id: env.id.split('@')[0],\n name: env.name,\n icon,\n description: env.description,\n services: services?.toObject(),\n };\n }\n\n return {};\n }\n\n clearCache() {\n this.aspectLoader.resetFailedLoadAspects();\n this.logger.debug('clearing the workspace and scope caches');\n delete this._cachedListIds;\n this.componentLoader.clearCache();\n this.scope.clearCache();\n this.componentList = new ComponentsList(this.consumer);\n }\n\n clearComponentCache(id: ComponentID) {\n this.componentLoader.clearComponentCache(id);\n this.consumer.componentLoader.clearOneComponentCache(id._legacy);\n this.componentList = new ComponentsList(this.consumer);\n }\n\n async triggerOnComponentChange(\n id: ComponentID,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\n // if a new file was added, upon component-load, its .bitmap entry is updated to include the\n // new file. write these changes to the .bitmap file so then other processes have access to\n // this new file. If the .bitmap wasn't change, it won't do anything.\n await this.bitMap.write();\n const onChangeEntries = this.onComponentChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n await mapSeries(onChangeEntries, async ([extension, onChangeFunc]) => {\n const onChangeResult = await onChangeFunc(component, files, initiator);\n results.push({ extensionId: extension, results: onChangeResult });\n });\n\n // TODO: find way to standardize event names.\n await this.graphql.pubsub.publish(ComponentChanged, { componentChanged: { component } });\n return results;\n }\n\n async triggerOnComponentAdd(id: ComponentID): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\n const onAddEntries = this.onComponentAddSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n const files = component.state.filesystem.files.map((file) => file.path);\n await mapSeries(onAddEntries, async ([extension, onAddFunc]) => {\n const onAddResult = await onAddFunc(component, files);\n results.push({ extensionId: extension, results: onAddResult });\n });\n\n await this.graphql.pubsub.publish(ComponentAdded, { componentAdded: { component } });\n return results;\n }\n\n async triggerOnComponentRemove(id: ComponentID): Promise<OnComponentEventResult[]> {\n const onRemoveEntries = this.onComponentRemoveSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n await mapSeries(onRemoveEntries, async ([extension, onRemoveFunc]) => {\n const onRemoveResult = await onRemoveFunc(id);\n results.push({ extensionId: extension, results: onRemoveResult });\n });\n\n await this.graphql.pubsub.publish(ComponentRemoved, { componentRemoved: { componentIds: [id.toObject()] } });\n return results;\n }\n\n async triggerOnMultipleComponentsAdd(): Promise<void> {\n const onAddEntries = this.onMultipleComponentsAddSlot.toArray();\n await mapSeries(onAddEntries, async ([, onAddFunc]) => onAddFunc());\n }\n\n getState(id: ComponentID, hash: string) {\n return this.scope.getState(id, hash);\n }\n\n getSnap(id: ComponentID, hash: string) {\n return this.scope.getSnap(id, hash);\n }\n\n getCurrentLaneId(): LaneId {\n return this.consumer.getCurrentLaneId();\n }\n\n isOnMain(): boolean {\n return this.consumer.isOnMain();\n }\n\n /**\n * if checked out to a lane and the lane exists in the remote,\n * return the remote lane id (name+scope). otherwise, return null.\n */\n async getCurrentRemoteLane(): Promise<Lane | null> {\n const currentLaneId = this.getCurrentLaneId();\n if (currentLaneId.isDefault()) {\n return null;\n }\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n try {\n const lanes = await scopeComponentImporter.importLanes([currentLaneId]);\n\n return lanes[0];\n } catch (err) {\n if (\n err instanceof InvalidScopeName ||\n err instanceof ScopeNotFoundOrDenied ||\n err instanceof LaneNotFound ||\n err instanceof InvalidScopeNameFromRemote\n ) {\n const bitMapLaneId = this.bitMap.getExportedLaneId();\n if (bitMapLaneId?.isEqual(currentLaneId)) {\n throw err; // we know the lane is not new, so the error is legit\n }\n // the lane could be a local lane so no need to throw an error in such case\n loader.stop();\n this.logger.warn(`unable to get lane's data from a remote due to an error:\\n${err.message}`);\n return null;\n }\n throw err;\n }\n }\n\n getDefaultExtensions(): ExtensionDataList {\n if (!this.config.extensions) {\n return new ExtensionDataList();\n }\n return ExtensionDataList.fromConfigObject(this.config.extensions);\n }\n\n async ejectMultipleConfigs(ids: ComponentID[], options: EjectConfOptions): Promise<EjectConfResult[]> {\n return Promise.all(ids.map((id) => this.ejectConfig(id, options)));\n }\n\n async ejectConfig(id: ComponentID, options: EjectConfOptions): Promise<EjectConfResult> {\n const componentId = await this.resolveComponentId(id);\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const aspects = await this.createAspectList(extensions);\n const componentDir = this.componentDir(id, { ignoreVersion: true });\n const componentConfigFile = new ComponentConfigFile(componentId, aspects, componentDir, options.propagate);\n await componentConfigFile.write({ override: options.override });\n // remove config from the .bitmap as it's not needed anymore. it is replaced by the component.json\n this.bitMap.removeEntireConfig(id);\n await this.bitMap.write();\n return {\n configPath: ComponentConfigFile.composePath(componentDir),\n };\n }\n\n async getExtensionsFromScopeAndSpecific(id: ComponentID): Promise<ExtensionDataList> {\n const componentFromScope = await this.scope.get(id);\n const { extensions } = await this.componentExtensions(id, componentFromScope, [\n 'WorkspaceDefault',\n 'WorkspaceVariants',\n ]);\n\n return extensions;\n }\n\n /**\n * see component-aspect, createAspectListFromLegacy() method for a context why this is needed.\n */\n private async resolveScopeAspectListIds(aspectListFromScope: AspectList): Promise<AspectList> {\n const resolvedList = await aspectListFromScope.pmap(async (entry) => {\n if (entry.id.scope !== this.scope.name) {\n return entry;\n }\n const newId = await this.resolveComponentId(entry.id.fullName);\n const newEntry = new AspectEntry(newId, entry.legacy);\n return newEntry;\n });\n return resolvedList;\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency. also, it supports negation and list of patterns.\n *\n * load components into the workspace through a variants pattern.\n * @param pattern variants.\n * @param scope scope name.\n */\n async byPattern(pattern: string, scope = '**'): Promise<Component[]> {\n const ids = await this.listIds();\n const finalPattern = `${scope}/${pattern || '**'}`;\n const targetIds = ids.filter((id) => {\n const spec = isMatchNamespacePatternItem(id.toStringWithoutVersion(), finalPattern);\n return spec.match;\n });\n\n const components = await this.getMany(targetIds);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it supports negate (!) character to exclude ids.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n if (this.exists(id)) return [id];\n if (throwForNoMatch) throw new MissingBitMapComponent(pattern);\n return [];\n }\n const ids = await this.listIds();\n return this.scope.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n /**\n * useful for workspace commands, such as `bit build`, `bit compile`.\n * by default, it should be running on new and modified components.\n * a user can specify `--all` to run on all components or specify a pattern to limit to specific components.\n * some commands such as build/test needs to run also on the dependents.\n */\n async getComponentsByUserInput(all?: boolean, pattern?: string, includeDependents = false): Promise<Component[]> {\n if (all) {\n return this.list();\n }\n if (pattern) {\n const ids = await this.idsByPattern(pattern);\n return this.getMany(ids);\n }\n const newAndModified = await this.newAndModified();\n if (includeDependents) {\n const newAndModifiedIds = newAndModified.map((comp) => comp.id);\n const dependentsIds = await this.getDependentsIds(newAndModifiedIds);\n const dependentsIdsFiltered = dependentsIds.filter((id) => !newAndModified.find((_) => _.id.isEqual(id)));\n const dependents = await this.getMany(dependentsIdsFiltered);\n newAndModified.push(...dependents);\n }\n return newAndModified;\n }\n\n async getComponentsUsingEnv(env: string, ignoreVersion = true, throwIfNotFound = false): Promise<Component[]> {\n const allComps = await this.list();\n const allEnvs = await this.envs.createEnvironment(allComps);\n const foundEnv = allEnvs.runtimeEnvs.find((runtimeEnv) => {\n if (runtimeEnv.id === env) return true;\n if (!ignoreVersion) return false;\n const envWithoutVersion = runtimeEnv.id.split('@')[0];\n return env === envWithoutVersion;\n });\n if (!foundEnv && throwIfNotFound) {\n const availableEnvs = allEnvs.runtimeEnvs.map((runtimeEnv) => runtimeEnv.id);\n throw new BitError(`unable to find components that using \"${env}\" env.\nthe following envs are used in this workspace: ${availableEnvs.join(', ')}`);\n }\n return foundEnv?.components || [];\n }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return this.componentLoader.getMany(ids, loadOpts);\n }\n\n getManyByLegacy(components: ConsumerComponent[], loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return mapSeries(components, async (component) => {\n const id = await this.resolveComponentId(component.id);\n return this.get(id, component, true, true, loadOpts);\n });\n }\n\n /**\n * don't throw an error if the component was not found, simply return undefined.\n */\n async getIfExist(componentId: ComponentID): Promise<Component | undefined> {\n return this.componentLoader.getIfExist(componentId);\n }\n\n /**\n * whether a component exists in the workspace\n */\n exists(componentId: ComponentID): boolean {\n return Boolean(this.consumer.bitmapIdsFromCurrentLane.find((_) => _.isEqualWithoutVersion(componentId._legacy)));\n }\n\n /**\n * This will make sure to fetch the objects prior to load them\n * do not use it if you are not sure you need it.\n * It will influence the performance\n * currently it used only for get many of aspects\n * @param ids\n */\n async importAndGetMany(ids: Array<ComponentID>): Promise<Component[]> {\n await this.importCurrentLaneIfMissing();\n await this.scope.import(ids, { reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion() });\n return this.componentLoader.getMany(ids);\n }\n\n async importCurrentLaneIfMissing() {\n const laneId = this.getCurrentLaneId();\n const laneObj = await this.scope.legacyScope.getCurrentLaneObject();\n if (laneId.isDefault() || laneObj) {\n return;\n }\n const lane = await this.getCurrentRemoteLane();\n if (!lane) {\n return;\n }\n this.logger.info(`current lane ${laneId.toString()} is missing, importing it`);\n await this.scope.legacyScope.objects.writeObjectsToTheFS([lane]);\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const ids = BitIds.fromArray(lane.toBitIds().filter((id) => id.hasScope()));\n await scopeComponentsImporter.importManyDeltaWithoutDeps({ ids, fromHead: true, lane });\n await scopeComponentsImporter.importMany({ ids, lanes: [lane] });\n }\n\n async use(aspectIdStr: string): Promise<string> {\n const aspectId = await this.resolveComponentId(aspectIdStr);\n let aspectIdToAdd = aspectId.toStringWithoutVersion();\n if (!(await this.hasId(aspectId))) {\n const loadedIds = await this.scope.loadAspects([aspectIdStr], true, 'bit use command');\n if (loadedIds[0]) aspectIdToAdd = loadedIds[0];\n }\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config').workspaceConfig;\n if (!config) {\n throw new Error(`use() unable to get the workspace config`);\n }\n config.setExtension(\n aspectIdToAdd,\n {},\n {\n overrideExisting: false,\n ignoreVersion: false,\n }\n );\n await config.write();\n return aspectIdToAdd;\n }\n\n async write(component: Component, rootPath?: string) {\n await Promise.all(\n component.filesystem.files.map(async (file) => {\n const pathToWrite = rootPath ? path.join(this.path, rootPath, file.relative) : file.path;\n await fs.outputFile(pathToWrite, file.contents);\n })\n );\n }\n\n /**\n * Get the component root dir in the file system (relative to workspace or full) in Linux format\n * @param componentId\n * @param relative return the path relative to the workspace or full path\n */\n componentDir(\n componentId: ComponentID,\n bitMapOptions?: GetBitMapComponentOptions,\n options = { relative: false }\n ): PathOsBased {\n return this.componentDirFromLegacyId(componentId._legacy, bitMapOptions, options);\n }\n\n /**\n * component's files in the workspace are symlinked to the node_modules, and a package.json file is generated on that\n * package directory to simulate a valid node package.\n * @returns the package directory inside the node_module.\n * by default the absolute path, unless `options.relative` was set\n */\n componentPackageDir(component: Component, options = { relative: false }): string {\n const packageName = this.componentPackageName(component);\n const packageDir = path.join('node_modules', packageName);\n return options.relative ? packageDir : this.consumer.toAbsolutePath(packageDir);\n }\n\n componentPackageName(component: Component): string {\n return componentIdToPackageName(component.state._consumer);\n }\n\n private componentDirFromLegacyId(\n bitId: BitId,\n bitMapOptions?: GetBitMapComponentOptions,\n options = { relative: false }\n ): PathOsBased {\n const componentMap = this.consumer.bitMap.getComponent(bitId, bitMapOptions);\n const relativeComponentDir = componentMap.getComponentDir();\n if (!relativeComponentDir) {\n throw new NoComponentDir(bitId.toString());\n }\n if (options.relative) {\n return relativeComponentDir;\n }\n\n return path.join(this.path, relativeComponentDir);\n }\n\n componentDirToAbsolute(relativeComponentDir: PathOsBasedRelative): PathOsBasedAbsolute {\n return path.join(this.path, relativeComponentDir);\n }\n\n async componentDefaultScope(componentId: ComponentID): Promise<string | undefined> {\n const relativeComponentDir = this.componentDir(componentId, { ignoreVersion: true }, { relative: true });\n return this.componentDefaultScopeFromComponentDirAndName(relativeComponentDir, componentId.fullName);\n }\n\n async componentDefaultScopeFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<string | undefined> {\n const componentConfigFile = await this.componentConfigFileFromComponentDirAndName(relativeComponentDir, name);\n if (componentConfigFile && componentConfigFile.defaultScope) {\n return componentConfigFile.defaultScope;\n }\n const bitMapId = this.consumer.bitMap.getExistingBitId(name);\n const bitMapEntry = bitMapId ? this.consumer.bitMap.getComponent(bitMapId) : undefined;\n if (bitMapEntry && bitMapEntry.defaultScope) {\n return bitMapEntry.defaultScope;\n }\n return this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(relativeComponentDir, name);\n }\n\n get defaultScope() {\n return this.config.defaultScope;\n }\n\n private async componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<string | undefined> {\n const variantConfig = this.variants.byRootDirAndName(relativeComponentDir, name);\n if (variantConfig && variantConfig.defaultScope) {\n return variantConfig.defaultScope;\n }\n const isVendor = this.isVendorComponentByComponentDir(relativeComponentDir);\n if (!isVendor) {\n return this.config.defaultScope;\n }\n return undefined;\n }\n\n /**\n * Calculate the component config based on:\n * the config property in the .bitmap file\n * the component.json file in the component folder\n * matching pattern in the variants config\n * defaults extensions from workspace config\n * extensions from the model.\n */\n async componentExtensions(\n componentId: ComponentID,\n componentFromScope?: Component,\n excludeOrigins: ExtensionsOrigin[] = []\n ): Promise<{\n extensions: ExtensionDataList;\n beforeMerge: Array<{ extensions: ExtensionDataList; origin: ExtensionsOrigin; extraData: any }>; // useful for debugging\n errors?: Error[];\n }> {\n return this.aspectsMerger.merge(componentId, componentFromScope, excludeOrigins);\n }\n\n getConfigMergeFilePath(): string {\n return path.join(this.path, MergeConfigFilename);\n }\n\n getConflictMergeFile(): MergeConflictFile {\n return this.aspectsMerger.mergeConflictFile;\n }\n\n getDepsDataOfMergeConfig(id: BitId): Record<string, any> | undefined {\n return this.aspectsMerger.getDepsDataOfMergeConfig(id);\n }\n\n async listComponentsDuringMerge(): Promise<ComponentID[]> {\n const unmergedComps = this.scope.legacyScope.objects.unmergedComponents.getComponents();\n const bitIds = unmergedComps.map((u) => new BitId(u.id));\n return this.resolveMultipleComponentIds(bitIds);\n }\n\n async getUnmergedComponent(componentId: ComponentID): Promise<Component | undefined> {\n const unmerged = this.scope.legacyScope.objects.unmergedComponents.getEntry(componentId._legacy.name);\n if (unmerged?.head) {\n return this.scope.get(componentId.changeVersion(unmerged?.head.toString()));\n }\n return undefined;\n }\n\n async isModified(component: Component): Promise<boolean> {\n const head = component.head;\n if (!head) {\n return true; // it's a new component\n }\n const consumerComp = component.state._consumer as ConsumerComponent;\n if (typeof consumerComp._isModified === 'boolean') return consumerComp._isModified;\n const componentStatus = await this.consumer.getComponentStatusById(component.id._legacy);\n return componentStatus.modified === true;\n }\n\n /**\n * filter the given component-ids and set default-scope only to the new ones.\n * returns the affected components.\n */\n async setDefaultScopeToComponents(componentIds: ComponentID[], scopeName: string): Promise<ComponentID[]> {\n if (!isValidScopeName(scopeName)) {\n throw new InvalidScopeName(scopeName);\n }\n const newComponentIds = componentIds.filter((id) => !id.hasVersion());\n if (!newComponentIds.length) {\n const compIdsStr = componentIds.map((compId) => compId.toString()).join(', ');\n throw new BitError(\n `unable to set default-scope for the following components, as they are not new:\\n${compIdsStr}`\n );\n }\n newComponentIds.map((comp) => this.bitMap.setDefaultScope(comp, scopeName));\n await this.bitMap.write();\n return newComponentIds;\n }\n\n async setDefaultScope(scopeName: string) {\n if (this.defaultScope === scopeName) {\n throw new Error(`the default-scope is already set as \"${scopeName}\", nothing to change`);\n }\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n config.workspaceConfig?.setExtension(\n WorkspaceAspect.id,\n { defaultScope: scopeName },\n { mergeIntoExisting: true, ignoreVersion: true }\n );\n await config.workspaceConfig?.write({ dir: path.dirname(config.workspaceConfig.path) });\n }\n\n async addSpecificComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeWithExisting = false,\n /**\n * relevant only when writing to .bitmap.\n * eject config of the given aspect-id, so then it won't override previous config. (see \"adding prod dep, tagging then adding devDep\" e2e-test)\n */\n shouldMergeWithPrevious = false\n ) {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n await componentConfigFile.addAspect(\n aspectId,\n config,\n this.resolveComponentId.bind(this),\n shouldMergeWithExisting\n );\n await componentConfigFile.write({ override: true });\n } else {\n if (shouldMergeWithPrevious) {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const obj = extensions.toConfigObject();\n config = obj[aspectId] ? merge(obj[aspectId], config) : config;\n }\n this.bitMap.addComponentConfig(id, aspectId, config, shouldMergeWithExisting);\n }\n }\n\n async removeSpecificComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist = false) {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n await componentConfigFile.removeAspect(aspectId, markWithMinusIfNotExist, this.resolveComponentId.bind(this));\n await componentConfigFile.write({ override: true });\n } else {\n this.bitMap.removeComponentConfig(id, aspectId, markWithMinusIfNotExist);\n }\n }\n\n async getAspectIdFromConfig(\n componentId: ComponentID,\n aspectIdStr: string,\n ignoreAspectVersion = false\n ): Promise<string | undefined> {\n const config = await this.getExtensionsFromScopeAndSpecific(componentId);\n const aspectEntry = config.findExtension(aspectIdStr, ignoreAspectVersion);\n return aspectEntry?.id.toString();\n }\n\n async getSpecificComponentConfig(id: ComponentID, aspectId: string): Promise<any> {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n return componentConfigFile.aspects.get(aspectId)?.config;\n }\n return this.bitMap.getBitmapEntry(id, { ignoreVersion: true }).config?.[aspectId];\n }\n\n private isVendorComponentByComponentDir(relativeComponentDir: PathOsBasedRelative): boolean {\n const vendorDir = this.config.vendor?.directory || DEFAULT_VENDOR_DIR;\n if (pathIsInside(relativeComponentDir, vendorDir)) {\n return true;\n }\n // TODO: implement\n return false;\n }\n\n /**\n * return the component config from its folder (component.json)\n * @param componentId\n */\n public async componentConfigFile(id: ComponentID): Promise<ComponentConfigFile | undefined> {\n const relativeComponentDir = this.componentDir(id, { ignoreVersion: true }, { relative: true });\n return this.componentConfigFileFromComponentDirAndName(relativeComponentDir, id.fullName);\n }\n\n /**\n * @param componentPath can be relative or absolute. supports Linux and Windows\n */\n async getComponentIdByPath(componentPath: PathOsBased): Promise<ComponentID | undefined> {\n const relativePath = path.isAbsolute(componentPath) ? path.relative(this.path, componentPath) : componentPath;\n const linuxPath = pathNormalizeToLinux(relativePath);\n const bitId = this.consumer.bitMap.getComponentIdByPath(linuxPath);\n if (bitId) {\n return this.resolveComponentId(bitId);\n }\n return undefined;\n }\n\n private async componentConfigFileFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<ComponentConfigFile | undefined> {\n let componentConfigFile;\n if (relativeComponentDir) {\n const absComponentDir = this.componentDirToAbsolute(relativeComponentDir);\n const defaultScopeFromVariantsOrWs = await this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(\n relativeComponentDir,\n name\n );\n componentConfigFile = await ComponentConfigFile.load(\n absComponentDir,\n this.createAspectList.bind(this),\n defaultScopeFromVariantsOrWs\n );\n }\n\n return componentConfigFile;\n }\n\n async getAspectsGraphWithoutCore(components: Component[], isAspect?: ShouldLoadFunc) {\n const ids = components.map((component) => component.id);\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n // const coreAspectsComponentIds = coreAspectsStringIds.map((id) => BitId.parse(id, true));\n // const aspectsIds = components.reduce((acc, curr) => {\n // const currIds = curr.state.aspects.ids;\n // acc = acc.concat(currIds);\n // return acc;\n // }, [] as any);\n // const otherDependenciesMap = components.reduce((acc, curr) => {\n // // const currIds = curr.state.dependencies.dependencies.map(dep => dep.id.toString());\n // const currMap = curr.state.dependencies.getIdsMap();\n // Object.assign(acc, currMap);\n // return acc;\n // }, {});\n\n // const depsWhichAreNotAspects = difference(Object.keys(otherDependenciesMap), aspectsIds);\n // const depsWhichAreNotAspectsBitIds = depsWhichAreNotAspects.map((strId) => otherDependenciesMap[strId]);\n // We only want to load into the graph components which are aspects and not regular dependencies\n // This come to solve a circular loop when an env aspect use an aspect (as regular dep) and the aspect use the env aspect as its env\n // TODO: @gilad it causes many issues we need to find a better solution. removed for now.\n return this.buildOneGraphForComponents(ids, coreAspectsStringIds, isAspect);\n }\n\n /**\n * load aspects from the workspace and if not exists in the workspace, load from the scope.\n * keep in mind that the graph may have circles.\n */\n async loadAspects(ids: string[] = [], throwOnError = false, neededFor?: string): Promise<string[]> {\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(notLoadedIds, coreAspectsStringIds);\n const componentIds = await this.resolveMultipleComponentIds(idsWithoutCore);\n const components = await this.importAndGetAspects(componentIds);\n\n const isAspect = async (id: ComponentID) => {\n const component = await this.get(id);\n const isUsingAspectEnv = this.envs.isUsingAspectEnv(component);\n const isUsingEnvEnv = this.envs.isUsingEnvEnv(component);\n const isValidAspect = isUsingAspectEnv || isUsingEnvEnv;\n // if (!isValidAspect && idsWithoutCore.includes(component.id.toString())) {\n // const data = this.envs.getEnvData(component);\n // const err = new IncorrectEnvAspect(component.id.toString(), data.type, data.id);\n // if (data.id === DEFAULT_ENV) {\n // // when cloning a project, or when the node-modules dir is deleted, nothing works and all\n // // components are default to the DEFAULT_ENV, which is node-env. we must allow \"bit\n // // install\" to prepare the workspace and let the proper the envs to be loaded\n // this.logger.error(err.message);\n // } else {\n // throw err;\n // }\n // }\n return isValidAspect;\n };\n\n const graph = await this.getAspectsGraphWithoutCore(components, isAspect);\n const aspects = graph.nodes.map((node) => node.attr);\n this.logger.debug(`${loggerPrefix} found ${aspects.length} aspects in the aspects-graph`);\n const { workspaceComps, scopeComps } = await this.groupComponentsByWorkspaceAndScope(aspects);\n this.logger.debug(\n `${loggerPrefix} found ${workspaceComps.length} components in the workspace:\\n${workspaceComps\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n this.logger.debug(\n `${loggerPrefix} ${\n scopeComps.length\n } components are not in the workspace and are loaded from the scope:\\n${scopeComps\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n const scopeIds = scopeComps.map((aspect) => aspect.id.toString());\n const workspaceAspects = await this.requireComponents(workspaceComps);\n const workspaceManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n workspaceAspects,\n throwOnError\n );\n const potentialPluginsIndexes = compact(\n workspaceManifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n return index;\n })\n );\n const workspaceManifestsIds = compact(workspaceManifests.map((m) => m.id));\n // We are grouping the scope aspects by whether they are envs of something of the list or not\n // if yes, we want to load them first\n // the rest we will load together with the workspace aspects\n const scopeIdsGrouped = await this.scope.groupAspectIdsByEnvOfTheList(scopeIds);\n const scopeEnvsManifestsIds =\n scopeIdsGrouped.envs && scopeIdsGrouped.envs.length\n ? await this.scope.loadAspects(\n scopeIdsGrouped.envs,\n throwOnError,\n 'workspace.loadAspects loading scope aspects'\n )\n : [];\n const currentLane = await this.consumer.getCurrentLaneObject();\n const { manifests: scopeOtherManifests } =\n scopeIdsGrouped.other && scopeIdsGrouped.other.length\n ? await this.scope.getManifestsGraphRecursively(\n scopeIdsGrouped.other,\n compact(workspaceManifestsIds),\n throwOnError,\n currentLane || undefined,\n {\n packageManagerConfigRootDir: this.path,\n }\n )\n : { manifests: [] };\n const scopeOtherManifestsIds = compact(scopeOtherManifests.map((m) => m.id));\n\n await this.aspectLoader.loadExtensionsByManifests(\n [...scopeOtherManifests, ...workspaceManifests],\n throwOnError,\n idsWithoutCore\n );\n // Try require components for potential plugins\n const pluginsWorkspaceComps = potentialPluginsIndexes.map((index) => {\n return workspaceComps[index];\n });\n // Do the require again now that the plugins defs already registered\n const pluginsWorkspaceAspects = await this.requireComponents(pluginsWorkspaceComps);\n const pluginsWorkspaceManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n pluginsWorkspaceAspects,\n throwOnError\n );\n await this.aspectLoader.loadExtensionsByManifests(pluginsWorkspaceManifests, throwOnError);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return compact(scopeEnvsManifestsIds.concat(scopeOtherManifestsIds).concat(workspaceManifestsIds));\n }\n\n /**\n * returns one graph that includes all dependencies types. each edge has a label of the dependency\n * type. the nodes content is the Component object.\n */\n async buildOneGraphForComponents(\n ids: ComponentID[],\n ignoreIds?: string[],\n shouldLoadFunc?: ShouldLoadFunc,\n shouldThrowOnMissingDep = true\n ): Promise<Graph<Component, string>> {\n const graphFromFsBuilder = new GraphFromFsBuilder(\n this,\n this.logger,\n this.dependencyResolver,\n ignoreIds,\n shouldLoadFunc,\n shouldThrowOnMissingDep\n );\n return graphFromFsBuilder.buildGraph(ids);\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n this.logger.debug(`workspace resolveAspects, runtimeName: ${runtimeName}, componentIds: ${componentIds}`);\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n let missingPaths = false;\n const bitIds: BitId[] = [];\n const idsToResolve = componentIds ? componentIds.map((id) => id.toString()) : this.harmony.extensionsIds;\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const userAspectsIds: string[] = difference(idsToResolve, coreAspectsIds);\n const componentIdsToResolve = await this.resolveMultipleComponentIds(userAspectsIds);\n const { workspaceIds, scopeIds } = await this.groupIdsByWorkspaceAndScope(componentIdsToResolve);\n const wsComponents = await this.getMany(workspaceIds);\n const aspectDefs = await this.aspectLoader.resolveAspects(wsComponents, async (component) => {\n const compStringId = component.id._legacy.toString();\n bitIds.push(component.id._legacy);\n const localPath = this.getComponentPackagePath(component);\n const isExist = await fs.pathExists(localPath);\n if (!isExist) {\n missingPaths = true;\n }\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n\n let scopeAspectDefs: AspectDefinition[] = [];\n if (scopeIds.length) {\n scopeAspectDefs = await this.scope.resolveAspects(runtimeName, scopeIds, mergedOpts);\n }\n\n let coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n // due to lack of workspace and scope runtimes. TODO: fix after adding them.\n if (runtimeName && mergedOpts.filterByRuntime) {\n coreAspectDefs = coreAspectDefs.filter((coreAspect) => {\n return coreAspect.runtimePath;\n });\n }\n\n if (missingPaths) {\n await linkToNodeModulesByIds(this, bitIds);\n }\n\n const allDefs = aspectDefs.concat(coreAspectDefs).concat(scopeAspectDefs);\n const ids = idsToResolve.map((idStr) => ComponentID.fromString(idStr).toStringWithoutVersion());\n const afterExclusion = mergedOpts.excludeCore\n ? allDefs.filter((def) => {\n const isCore = coreAspectDefs.find((coreId) => def.getId === coreId.getId);\n const id = ComponentID.fromString(def.getId || '');\n const isTarget = ids.includes(id.toStringWithoutVersion());\n if (isTarget) return true;\n return !isCore;\n })\n : allDefs;\n\n const uniqDefs = uniqBy(afterExclusion, (def) => `${def.aspectPath}-${def.runtimePath}`);\n let defs = uniqDefs;\n if (runtimeName && mergedOpts.filterByRuntime) {\n defs = defs.filter((def) => def.runtimePath);\n }\n\n if (componentIds && componentIds.length && mergedOpts.requestedOnly) {\n const componentIdsString = componentIds.map((id) => id.toString());\n defs = defs.filter((def) => {\n return (\n (def.id && componentIdsString.includes(def.id)) ||\n (def.component && componentIdsString.includes(def.component?.id.toString()))\n );\n });\n }\n\n return defs;\n }\n\n private async groupIdsByWorkspaceAndScope(\n ids: ComponentID[]\n ): Promise<{ workspaceIds: ComponentID[]; scopeIds: ComponentID[] }> {\n const workspaceIds: ComponentID[] = [];\n const scopeIds: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const existOnWorkspace = await this.hasId(id);\n existOnWorkspace ? workspaceIds.push(id) : scopeIds.push(id);\n })\n );\n return { workspaceIds, scopeIds };\n }\n\n private async groupComponentsByWorkspaceAndScope(\n components: Component[]\n ): Promise<{ workspaceComps: Component[]; scopeComps: Component[] }> {\n const workspaceComps: Component[] = [];\n const scopeComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const existOnWorkspace = await this.hasId(component.id);\n existOnWorkspace ? workspaceComps.push(component) : scopeComps.push(component);\n })\n );\n return { workspaceComps, scopeComps };\n }\n\n /**\n * Provides a cache folder, unique per key.\n * Return value may be undefined, if workspace folder is unconventional (bare-scope, no node_modules, etc)\n */\n getTempDir(\n /*\n * unique key, i.e. aspect or component id\n */\n id: string\n ) {\n const PREFIX = 'bit';\n const cacheDir = path.join(this.modulesPath, '.cache', PREFIX, id);\n\n // maybe should also check it's a folder and has write permissions\n if (!fs.existsSync(cacheDir)) {\n fs.mkdirSync(cacheDir, { recursive: true });\n }\n\n return cacheDir;\n }\n\n async requireComponents(components: Component[]): Promise<RequireableComponent[]> {\n let missingPaths = false;\n const bitIds: BitId[] = [];\n const resolveP = components.map(async (component) => {\n bitIds.push(component.id._legacy);\n const localPath = this.getComponentPackagePath(component);\n const isExist = await fs.pathExists(localPath);\n if (!isExist) {\n missingPaths = true;\n }\n\n const requireFunc = async () => {\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(localPath);\n // require aspect runtimes\n const runtimePath = await this.aspectLoader.getRuntimePath(component, localPath, MainRuntime.name);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n return aspect;\n };\n return new RequireableComponent(component, requireFunc);\n });\n const resolved = await Promise.all(resolveP);\n // Make sure to link missing components\n if (missingPaths) {\n await linkToNodeModulesByIds(this, bitIds);\n }\n return resolved;\n }\n\n /**\n * same as `this.importAndGetMany()` with a specific error handling of ComponentNotFound\n */\n private async importAndGetAspects(componentIds: ComponentID[]): Promise<Component[]> {\n try {\n return await this.importAndGetMany(componentIds);\n } catch (err: any) {\n if (err instanceof ComponentNotFound) {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const configStr = JSON.stringify(config.workspaceConfig?.raw || {});\n if (configStr.includes(err.id)) {\n throw new BitError(`error: a component \"${err.id}\" was not found\nyour workspace.jsonc has this component-id set. you might want to remove/change it.`);\n }\n }\n\n throw err;\n }\n }\n\n /**\n * this should be rarely in-use.\n * it's currently used by watch extension as a quick workaround to load .bitmap and the components\n */\n async _reloadConsumer() {\n this.consumer = await loadConsumer(this.path, true);\n this.clearCache();\n }\n\n getComponentPackagePath(component: Component) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component);\n return path.join(this.path, relativePath);\n }\n\n // TODO: should we return here the dir as it defined (aka components) or with /{name} prefix (as it used in legacy)\n get defaultDirectory(): string {\n return this.config.defaultDirectory;\n }\n\n get legacyDefaultDirectory(): string {\n if (this.defaultDirectory && !this.defaultDirectory.includes('{name}')) {\n return `${this.defaultDirectory}/{name}`;\n }\n return this.defaultDirectory;\n }\n\n /**\n * Transform the id to ComponentId and get the exact id as appear in bitmap\n *\n * @param {(string | ComponentID | BitId)} id\n * @returns {Promise<ComponentID>}\n * @memberof Workspace\n */\n async resolveComponentId(id: string | ComponentID | BitId): Promise<ComponentID> {\n const getDefaultScope = async (bitId: BitId, bitMapOptions?: GetBitMapComponentOptions) => {\n if (bitId.scope) {\n return bitId.scope;\n }\n const relativeComponentDir = this.componentDirFromLegacyId(bitId, bitMapOptions, { relative: true });\n const defaultScope = await this.componentDefaultScopeFromComponentDirAndName(\n relativeComponentDir,\n bitId.toStringWithoutScopeAndVersion()\n );\n return defaultScope;\n };\n\n // This is required in case where you have in your workspace a component with the same name as a core aspect\n // let's say you have component called react-native (which is eventually my-org.my-scope/react-native)\n // and you set teambit.react/react-native as your env\n // bit will get here with the string teambit.react/react-native and will try to resolve it from the workspace\n // during this it will find the my-org.my-scope/react-native which is incorrect as the core one doesn't exist in the\n // workspace\n if (this.aspectLoader.isCoreAspect(id.toString())) {\n return ComponentID.fromString(id.toString());\n }\n let legacyId = this.consumer.getParsedIdIfExist(id.toString(), true, true);\n if (legacyId) {\n const defaultScope = await getDefaultScope(legacyId);\n // only reason to strip the scopeName from the given id is when this id has the defaultScope, because .bitmap\n // doesn't have the defaultScope. if the given id doesn't have scope or has scope different than the default,\n // then don't ignore it. search with the scope-name.\n const shouldSearchWithoutScopeInProvidedId = id.toString().startsWith(`${defaultScope}/`);\n legacyId = this.consumer.getParsedIdIfExist(id.toString(), true, shouldSearchWithoutScopeInProvidedId);\n if (legacyId) {\n return ComponentID.fromLegacy(legacyId, defaultScope);\n }\n }\n try {\n const idWithVersion = id.toString();\n const [idWithoutVersion, version] = id.toString().split('@');\n const _bitMapId = this.consumer.getParsedIdIfExist(idWithoutVersion, false, true);\n // This logic is very specific, and very sensitive for changes please do not touch this without consulting with @ran or @gilad\n // example (partial list) cases which should be handled are:\n // use case 1 - ws component provided with the local scope name:\n // source id : my-scope1/my-name1\n // bitmap res (_id) : my-name1 (comp is tagged but not exported)\n // local scope name : my-scope1\n // scope content : my-name1\n // expected result : my-name1\n // use case 2 - component with same name exist in ws and scope (but with different scope name)\n // source id : my-scope2/my-name1\n // bitmap res (_id) : my-name1 (comp exist in ws but it's actually different component)\n // local scope name : my-scope1\n // scope content : my-scope2/my-name1\n // expected result : my-scope2/my-name1\n // use case 3 - component with same name exist in ws and scope (but with different scope name) - source provided without scope name\n // source id : my-name1\n // bitmap res (_id) : my-name1 (comp exist in ws but it's actually different component)\n // local scope name : my-scope1\n // scope content : my-scope1/my-name1 and my-scope2/my-name1\n // expected result : my-name1 (get the name from the bitmap)\n // use case 4 - component with the same name and different scope are imported into the ws\n // source id : my-name1\n // bitmap res (_id) : my-scope2/my-name1 (comp exist in ws from different scope (imported))\n // local scope name : my-scope1\n // scope content : my-scope2/my-name1\n // expected result : my-scope2/my-name1 (get the name from the bitmap)\n\n // No entry in bitmap at all, search for the original input id\n if (!_bitMapId) {\n return await this.scope.resolveComponentId(id.toString());\n }\n const _bitMapIdWithoutVersion = _bitMapId.toStringWithoutVersion();\n const _bitMapIdWithVersion = _bitMapId.changeVersion(version).toString();\n // The id in the bitmap has prefix which is not in the source id - the bitmap entry has scope name\n // Handle use case 4\n if (_bitMapIdWithoutVersion.endsWith(idWithoutVersion) && _bitMapIdWithoutVersion !== idWithoutVersion) {\n return await this.scope.resolveComponentId(_bitMapIdWithVersion);\n }\n // Handle case when I tagged the component locally with a default scope which is not the local scope\n // but not exported it yet\n // now i'm trying to load it with source id contain the default scope prefix\n // we want to get it from the local first before assuming it's something coming from outside\n if (!_bitMapId.scope) {\n const defaultScopeForBitmapId = await getDefaultScope(_bitMapId, { ignoreVersion: true });\n const getFromBitmapAddDefaultScope = () => {\n let _bitmapIdWithVersionForSource = _bitMapId;\n if (version) {\n _bitmapIdWithVersionForSource = _bitMapId.changeVersion(version);\n }\n return ComponentID.fromLegacy(_bitmapIdWithVersionForSource, defaultScopeForBitmapId);\n };\n // a case when the given id contains the default scope\n if (idWithVersion.startsWith(`${defaultScopeForBitmapId}/${_bitMapIdWithoutVersion}`)) {\n return getFromBitmapAddDefaultScope();\n }\n // a case when the given id does not contain the default scope\n const fromScope = await this.scope.resolveComponentId(idWithVersion);\n if (!fromScope._legacy.hasScope()) {\n return getFromBitmapAddDefaultScope();\n }\n }\n\n if (idWithoutVersion.endsWith(_bitMapIdWithoutVersion) && _bitMapIdWithoutVersion !== idWithoutVersion) {\n // The id in the bitmap doesn't have scope, the source id has scope\n // Handle use case 2 and use case 1\n if (id.toString().startsWith(this.scope.name)) {\n // Handle use case 1 - the provided id has scope name same as the local scope name\n // we want to send it as it appear in the bitmap\n return await this.scope.resolveComponentId(_bitMapIdWithVersion);\n }\n // Handle use case 2 - the provided id has scope which is not the local scope\n // we want to search by the source id\n return await this.scope.resolveComponentId(idWithVersion);\n }\n // Handle use case 3\n return await this.scope.resolveComponentId(idWithVersion);\n } catch (error: any) {\n legacyId = BitId.parse(id.toString(), true);\n return ComponentID.fromLegacy(legacyId);\n }\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | BitId>): Promise<ComponentID[]> {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * This will mutate the original extensions list and resolve it's ids\n *\n * @param {ExtensionDataList} extensions\n * @returns {Promise<void[]>}\n * @memberof Workspace\n */\n resolveExtensionsList(extensions: ExtensionDataList): Promise<void[]> {\n const resolveMergedExtensionsP = extensions.map(async (extensionEntry) => {\n if (extensionEntry.extensionId) {\n // const hasVersion = extensionEntry.extensionId.hasVersion();\n // const useBitmapVersion = !hasVersion;\n // const resolvedId = await this.resolveComponentId(extensionEntry.extensionId, true, useBitmapVersion);\n\n // Assuming extensionId always has scope - do not allow extension id without scope\n const resolvedId = await this.resolveComponentId(extensionEntry.extensionId);\n extensionEntry.extensionId = resolvedId._legacy;\n }\n });\n return Promise.all(resolveMergedExtensionsP);\n }\n\n /**\n * This will mutate the original extensions list and make sure all extensions has the ids with the scope / default scope\n *\n * @param {ExtensionDataList} extensions\n * @returns {Promise<void[]>}\n * @memberof Workspace\n */\n addDefaultScopeToExtensionsList(extensions: ExtensionDataList): Promise<void[]> {\n const resolveMergedExtensionsP = extensions.map(async (extensionEntry) => {\n if (extensionEntry.extensionId && !extensionEntry.extensionId.hasScope()) {\n const componentId = ComponentID.fromLegacy(extensionEntry.extensionId);\n const defaultScope = await this.componentDefaultScope(componentId);\n extensionEntry.extensionId = extensionEntry.extensionId.changeScope(defaultScope);\n }\n });\n return Promise.all(resolveMergedExtensionsP);\n }\n\n /**\n * configure an environment to the given components in the .bitmap file, this configuration overrides other, such as\n * overrides in workspace.jsonc.\n */\n async setEnvToComponents(envId: ComponentID, componentIds: ComponentID[]) {\n const envStrWithPossiblyVersion = await this.resolveEnvIdWithPotentialVersionForConfig(envId);\n const envIdStrNoVersion = envId.toStringWithoutVersion();\n await this.unsetEnvFromComponents(componentIds);\n await Promise.all(\n componentIds.map(async (componentId) => {\n await this.addSpecificComponentConfig(componentId, envStrWithPossiblyVersion);\n await this.addSpecificComponentConfig(componentId, EnvsAspect.id, { env: envIdStrNoVersion });\n })\n );\n await this.bitMap.write();\n }\n\n /**\n * helpful when a user provides an env-string to be set and this env has no version.\n * in the workspace config, a custom-env needs to be set with a version unless it's part of the workspace.\n * (inside envs/envs it's set without a version).\n */\n async resolveEnvIdWithPotentialVersionForConfig(envId: ComponentID): Promise<string> {\n const isCore = this.aspectLoader.isCoreAspect(envId.toStringWithoutVersion());\n const existsOnWorkspace = await this.hasId(envId);\n if (isCore || existsOnWorkspace) {\n // the env needs to be without version\n return envId.toStringWithoutVersion();\n }\n // the env must include a version\n if (envId.hasVersion()) {\n return envId.toString();\n }\n const extensions = this.harmony.get<ConfigMain>('teambit.harmony/config').extensions;\n const found = extensions?.findExtension(envId.toString(), true);\n if (found && found.extensionId?.version) {\n return found.extensionId.toString();\n }\n const comps = await this.importAndGetMany([envId]);\n return comps[0].id.toString();\n }\n\n /**\n * remove env configuration from the .bitmap file, so then other configuration, such as \"variants\" will take place\n */\n async unsetEnvFromComponents(ids: ComponentID[]): Promise<{ changed: ComponentID[]; unchanged: ComponentID[] }> {\n const changed: ComponentID[] = [];\n const unchanged: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id)?.rawConfig;\n const currentEnv = envsAspect && envsAspect !== REMOVE_EXTENSION_SPECIAL_SIGN ? envsAspect.env : null;\n if (!currentEnv) {\n unchanged.push(id);\n return;\n }\n const currentEnvWithPotentialVersion = await this.getAspectIdFromConfig(id, currentEnv, true);\n await this.removeSpecificComponentConfig(id, currentEnvWithPotentialVersion || currentEnv);\n await this.removeSpecificComponentConfig(id, EnvsAspect.id);\n changed.push(id);\n })\n );\n await this.bitMap.write();\n return { changed, unchanged };\n }\n\n async updateEnvForComponents(envIdStr?: string, pattern?: string) {\n const allWsComps = await this.list();\n const allWsIds = await this.listIds();\n const isInWs = (envId: ComponentID) => allWsIds.find((id) => id.isEqual(envId, { ignoreVersion: true }));\n const allEnvs = await this.envs.createEnvironment(allWsComps);\n const getEnvWithVersion = async (envId: ComponentID) => {\n if (envId.hasVersion()) return envId;\n try {\n const fromRemote = await this.scope.getRemoteComponent(envId);\n return envId.changeVersion(fromRemote.id.version);\n } catch (err) {\n throw new BitError(`unable to find ${envIdStr} in the remote`);\n }\n };\n const getEnvs = async (): Promise<ComponentID[]> => {\n if (envIdStr) {\n const envCompId = await this.resolveComponentId(envIdStr);\n if (isInWs(envCompId)) {\n throw new BitError(\n `error: unable to update the env ${envCompId.toString()}, it's already part of the workspace, as such, it's always using the workspace version`\n );\n }\n const envWithVer = await getEnvWithVersion(envCompId);\n return [envWithVer];\n }\n // get all non-local envs.\n const allEnvsIds = allEnvs.runtimeEnvs.map((env) => env.id);\n const allEnvsCompIds = await this.resolveMultipleComponentIds(allEnvsIds);\n // also check the envId has version, otherwise, it's a core env.\n const nonLocalEnvs = allEnvsCompIds.filter((envId) => !isInWs(envId) && envId.hasVersion());\n if (!nonLocalEnvs.length) {\n throw new BitError(\n `error: unable to update envs ${allEnvsIds\n .map((e) => e.toString())\n .join(', ')}, they're already part of the workspace`\n );\n }\n const envsWithVersions = await mapSeries(nonLocalEnvs, (envId) =>\n getEnvWithVersion(envId.changeVersion(undefined))\n );\n return envsWithVersions;\n };\n const envsWithVerToUpdate = await getEnvs();\n\n const compIdsToUpdate = pattern ? await this.idsByPattern(pattern) : allWsIds;\n const compsToUpdate = await this.getMany(compIdsToUpdate);\n const alreadyUpToDate: ComponentID[] = [];\n const updated: { [envId: string]: ComponentID[] } = {};\n await Promise.all(\n compsToUpdate.map(async (comp) => {\n const compEnvs = compact(\n envsWithVerToUpdate.map((envId) => comp.state.aspects.get(envId.toStringWithoutVersion()))\n );\n if (!compEnvs.length) return;\n const compEnv = compEnvs[0]; // should not be more than one\n const envToUpdate = envsWithVerToUpdate.find((e) => e.isEqual(compEnv.id, { ignoreVersion: true }));\n if (!envToUpdate) throw new Error(`unable to find ${compEnv.id.toString()} in the envs to update`);\n if (compEnv.id.version === envToUpdate.version) {\n // nothing to update\n alreadyUpToDate.push(comp.id);\n return;\n }\n // don't mark with minus if not exist in .bitmap. it's not needed. when the component is loaded, the\n // merge-operation of the aspects removes duplicate aspect-id with different versions.\n await this.removeSpecificComponentConfig(comp.id, compEnv.id.toString(), false);\n await this.addSpecificComponentConfig(comp.id, envToUpdate.toString(), compEnv.config);\n (updated[envToUpdate.toString()] ||= []).push(comp.id);\n })\n );\n await this.bitMap.write();\n return { updated, alreadyUpToDate };\n }\n}\n\n/**\n * this is a super hacky way to do it. problem is that loadAspect is running as onStart hook, where we don't\n * have the CLI fully loaded yet, so we can't get the command from the CLI aspect, we have to retrieve it from\n * process.argv.\n * in general, we don't want every command to try again and again fetching un-built versions. otherwise, every time\n * Bit loads (even bit --help), it'll fetch them and slow down everything.\n * instead, long-running commands and those that need the artifacts from the Version objects, should try to re-fetch.\n */\nfunction shouldReFetchUnBuiltVersion() {\n const commandsToReFetch = ['import'];\n return commandsToReFetch.includes(process.argv[2]);\n}\n\nexport default Workspace;\n"],"mappings":"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"}
1
+ {"version":3,"names":["AspectSpecificField","ComponentAdded","ComponentChanged","ComponentRemoved","DEFAULT_VENDOR_DIR","Workspace","constructor","pubsub","config","consumer","scope","componentAspect","dependencyResolver","variants","aspectLoader","logger","componentList","ComponentsList","harmony","onComponentLoadSlot","onComponentChangeSlot","envs","onComponentAddSlot","onComponentRemoveSlot","graphql","componentLoadedSelfAsAspects","createInMemoryCache","maxSize","getMaxSizeForComponents","owner","defaultOwner","componentLoader","WorkspaceComponentLoader","validateConfig","bitMap","BitMap","componentDefaultScopeFromComponentDirAndNameWithoutConfigFile","memoize","bind","primitive","promise","maxAge","aspectsMerger","AspectsMerger","isLegacy","isEmpty","BitError","defaultScope","isValidScopeName","InvalidScopeName","path","getPath","modulesPath","join","onComponentLoad","loadFn","register","registerOnComponentChange","onComponentChangeFunc","registerOnComponentAdd","onComponentAddFunc","registerOnComponentRemove","onComponentRemoveFunc","name","tokenizedPath","split","length","icon","hasModifiedDependencies","component","componentsList","listAutoTagPendingComponents","isAutoTag","find","consumerComponent","id","isEqualWithoutVersion","_legacy","getComponentIssues","state","_consumer","issues","getComponentStatus","status","getComponentStatusById","ComponentStatus","fromLegacy","isOutdated","list","filter","loadOpts","legacyIds","getAllIdsAvailableOnLane","ids","resolveMultipleComponentIds","idsToGet","limit","slice","offset","getMany","listInvalid","getInvalid","listIds","_cachedListIds","hasChanged","bitmapIdsFromCurrentLane","hasId","componentId","found","isEqual","hasName","Boolean","fullName","hasIdNested","includeCache","modified","listModifiedComponents","componentIds","map","ComponentID","newComponents","listNewComponents","getAllComponentIds","bitIds","getAllBitIds","getNewAndModifiedIds","listTagPendingComponents","newAndModified","getLogs","shortHash","startsFrom","getGraph","shouldThrowOnMissingDep","buildOneGraphForComponents","undefined","getGraphIds","graphIdsFromFsBuilder","GraphIdsFromFsBuilder","buildGraph","getUnavailableOnMainComponents","currentLaneId","getCurrentLaneId","isDefault","allIds","getAllBitIdsFromAllLanes","availableIds","unavailableIds","hasWithoutScopeAndVersion","removedIds","getRemoved","compsWithHead","Promise","all","has","modelComp","legacyScope","getModelComponentIfExist","head","push","getSavedGraphOfComponentIfExist","versionObj","getVersionInstance","err","flattenedEdges","flattenedDependencies","flattenedBitIdCompIdMap","toString","bitId","resolveComponentId","getCompIdByIdStr","idStr","compId","Error","nodes","Object","values","edges","edge","source","target","graph","Graph","forEach","node","setNode","Node","setEdge","Edge","type","getDependentsIds","workspaceGraph","DependencyGraph","buildGraphFromWorkspace","workspaceDependencyGraph","workspaceDependents","getDependentsInfo","dependentsLegacyIds","flat","_","dependentsLegacyNoDup","BitIds","uniqFromArray","dependentsIds","createAspectList","extensionDataList","entiresP","entry","extensionDataEntryToAspectEntry","entries","createAspectListFromEntries","dataEntry","AspectEntry","get","legacyComponent","useCache","storeInCache","debug","tryLoadAsAspect","isUsingEnvEnv","isCoreAspect","toStringWithoutVersion","isAspectLoaded","set","loadAspects","e","delete","getEnvSystemDescriptor","env","calculateEnv","__getDescriptor","systemDescriptor","services","isEnvRegistered","getServices","getDescriptor","description","toObject","clearCache","resetFailedLoadAspects","clearComponentCache","clearOneComponentCache","triggerOnComponentChange","files","initiator","write","onChangeEntries","toArray","results","mapSeries","extension","onChangeFunc","onChangeResult","extensionId","publish","componentChanged","triggerOnComponentAdd","onAddEntries","filesystem","file","onAddFunc","onAddResult","componentAdded","triggerOnComponentRemove","onRemoveEntries","onRemoveFunc","onRemoveResult","componentRemoved","getState","hash","getSnap","isOnMain","getCurrentRemoteLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","lanes","importLanes","ScopeNotFoundOrDenied","LaneNotFound","InvalidScopeNameFromRemote","bitMapLaneId","getExportedLaneId","loader","stop","warn","message","getDefaultExtensions","extensions","ExtensionDataList","fromConfigObject","ejectMultipleConfigs","options","ejectConfig","getExtensionsFromScopeAndSpecific","aspects","componentDir","ignoreVersion","componentConfigFile","ComponentConfigFile","propagate","override","removeEntireConfig","configPath","composePath","componentFromScope","componentExtensions","resolveScopeAspectListIds","aspectListFromScope","resolvedList","pmap","newId","newEntry","legacy","byPattern","pattern","finalPattern","targetIds","spec","isMatchNamespacePatternItem","match","components","idsByPattern","throwForNoMatch","includes","exists","MissingBitMapComponent","filterIdsFromPoolIdsByPattern","getComponentsByUserInput","includeDependents","newAndModifiedIds","comp","dependentsIdsFiltered","dependents","getComponentsUsingEnv","throwIfNotFound","allComps","allEnvs","createEnvironment","foundEnv","runtimeEnvs","runtimeEnv","envWithoutVersion","availableEnvs","getManyByLegacy","getIfExist","importAndGetMany","importCurrentLaneIfMissing","import","reFetchUnBuiltVersion","shouldReFetchUnBuiltVersion","laneId","laneObj","getCurrentLaneObject","lane","info","objects","writeObjectsToTheFS","scopeComponentsImporter","fromArray","toBitIds","hasScope","importManyDeltaWithoutDeps","fromHead","importMany","use","aspectIdStr","aspectId","aspectIdToAdd","loadedIds","workspaceConfig","setExtension","overrideExisting","rootPath","pathToWrite","relative","fs","outputFile","contents","bitMapOptions","componentDirFromLegacyId","componentPackageDir","packageName","componentPackageName","packageDir","toAbsolutePath","componentIdToPackageName","componentMap","getComponent","relativeComponentDir","getComponentDir","NoComponentDir","componentDirToAbsolute","componentDefaultScope","componentDefaultScopeFromComponentDirAndName","componentConfigFileFromComponentDirAndName","bitMapId","getExistingBitId","bitMapEntry","variantConfig","byRootDirAndName","isVendor","isVendorComponentByComponentDir","excludeOrigins","merge","getConfigMergeFilePath","MergeConfigFilename","getConflictMergeFile","mergeConflictFile","getDepsDataOfMergeConfig","listComponentsDuringMerge","unmergedComps","unmergedComponents","getComponents","u","BitId","getUnmergedComponent","unmerged","getEntry","changeVersion","isModified","consumerComp","_isModified","componentStatus","setDefaultScopeToComponents","scopeName","newComponentIds","hasVersion","compIdsStr","setDefaultScope","WorkspaceAspect","mergeIntoExisting","dir","dirname","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","addAspect","obj","toConfigObject","addComponentConfig","removeSpecificComponentConfig","markWithMinusIfNotExist","removeAspect","removeComponentConfig","getAspectIdFromConfig","ignoreAspectVersion","aspectEntry","findExtension","getSpecificComponentConfig","getBitmapEntry","vendorDir","vendor","directory","pathIsInside","getComponentIdByPath","componentPath","relativePath","isAbsolute","linuxPath","pathNormalizeToLinux","absComponentDir","defaultScopeFromVariantsOrWs","load","getAspectsGraphWithoutCore","isAspect","coreAspectsStringIds","getCoreAspectIds","throwOnError","neededFor","callId","Math","floor","random","loggerPrefix","notLoadedIds","idsWithoutCore","difference","importAndGetAspects","isUsingAspectEnv","isValidAspect","attr","workspaceComps","scopeComps","groupComponentsByWorkspaceAndScope","c","scopeIds","aspect","workspaceAspects","requireComponents","workspaceManifests","getManifestsFromRequireableExtensions","potentialPluginsIndexes","compact","manifest","index","workspaceManifestsIds","m","scopeIdsGrouped","groupAspectIdsByEnvOfTheList","scopeEnvsManifestsIds","currentLane","manifests","scopeOtherManifests","other","getManifestsGraphRecursively","packageManagerConfigRootDir","scopeOtherManifestsIds","loadExtensionsByManifests","pluginsWorkspaceComps","pluginsWorkspaceAspects","pluginsWorkspaceManifests","concat","ignoreIds","shouldLoadFunc","graphFromFsBuilder","GraphFromFsBuilder","resolveAspects","runtimeName","opts","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","missingPaths","idsToResolve","extensionsIds","coreAspectsIds","userAspectsIds","componentIdsToResolve","workspaceIds","groupIdsByWorkspaceAndScope","wsComponents","aspectDefs","compStringId","localPath","getComponentPackagePath","isExist","pathExists","runtimePath","getRuntimePath","aspectFilePath","getAspectFilePath","aspectPath","scopeAspectDefs","coreAspectDefs","coreId","rawDef","getAspectDef","loadDefinition","coreAspect","linkToNodeModulesByIds","allDefs","fromString","afterExclusion","def","isCore","getId","isTarget","uniqDefs","uniqBy","defs","componentIdsString","existOnWorkspace","getTempDir","PREFIX","cacheDir","existsSync","mkdirSync","recursive","resolveP","requireFunc","plugins","getPlugins","MainRuntime","require","RequireableComponent","resolved","ComponentNotFound","configStr","JSON","stringify","raw","_reloadConsumer","loadConsumer","getRuntimeModulePath","defaultDirectory","legacyDefaultDirectory","getDefaultScope","toStringWithoutScopeAndVersion","legacyId","getParsedIdIfExist","shouldSearchWithoutScopeInProvidedId","startsWith","idWithVersion","idWithoutVersion","version","_bitMapId","_bitMapIdWithoutVersion","_bitMapIdWithVersion","endsWith","defaultScopeForBitmapId","getFromBitmapAddDefaultScope","_bitmapIdWithVersionForSource","fromScope","error","parse","resolveExtensionsList","resolveMergedExtensionsP","extensionEntry","resolvedId","addDefaultScopeToExtensionsList","changeScope","setEnvToComponents","envId","envStrWithPossiblyVersion","resolveEnvIdWithPotentialVersionForConfig","envIdStrNoVersion","unsetEnvFromComponents","EnvsAspect","existsOnWorkspace","comps","changed","unchanged","envsAspect","findCoreExtension","rawConfig","currentEnv","REMOVE_EXTENSION_SPECIAL_SIGN","currentEnvWithPotentialVersion","updateEnvForComponents","envIdStr","allWsComps","allWsIds","isInWs","getEnvWithVersion","fromRemote","getRemoteComponent","getEnvs","envCompId","envWithVer","allEnvsIds","allEnvsCompIds","nonLocalEnvs","envsWithVersions","envsWithVerToUpdate","compIdsToUpdate","compsToUpdate","alreadyUpToDate","updated","compEnvs","compEnv","envToUpdate","commandsToReFetch","process","argv"],"sources":["workspace.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport memoize from 'memoizee';\nimport mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { IssuesList } from '@teambit/component-issues';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { getAspectDef } from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport DependencyGraph from '@teambit/legacy/dist/scope/graph/scope-graph';\nimport {\n AspectEntry,\n ComponentMain,\n Component,\n ComponentFactory,\n ComponentID,\n AspectList,\n AspectData,\n InvalidComponent,\n ResolveAspectsOptions,\n} from '@teambit/component';\nimport { BitError } from '@teambit/bit-error';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentScopeDirMap, ConfigMain } from '@teambit/config';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { EnvsMain, EnvsAspect, EnvServiceList } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony } from '@teambit/harmony';\nimport { Logger } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { VariantsMain } from '@teambit/variants';\n// import { link } from '@teambit/legacy/dist/api/consumer';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { BitId, InvalidScopeName, InvalidScopeNameFromRemote, isValidScopeName } from '@teambit/legacy-bit-id';\nimport { LaneId } from '@teambit/lane-id';\nimport { Consumer, loadConsumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport { NoComponentDir } from '@teambit/legacy/dist/consumer/component/exceptions/no-component-dir';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { pathIsInside } from '@teambit/legacy/dist/utils';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport {\n PathOsBased,\n PathOsBasedRelative,\n PathOsBasedAbsolute,\n pathNormalizeToLinux,\n} from '@teambit/legacy/dist/utils/path';\nimport fs from 'fs-extra';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport { slice, uniqBy, difference, compact, isEmpty, merge } from 'lodash';\nimport { MergeConfigFilename } from '@teambit/legacy/dist/constants';\nimport path from 'path';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { Lane, Version } from '@teambit/legacy/dist/scope/models';\nimport { LaneNotFound } from '@teambit/legacy/dist/api/scope/lib/exceptions/lane-not-found';\nimport { ScopeNotFoundOrDenied } from '@teambit/legacy/dist/remotes/exceptions/scope-not-found-or-denied';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentConfigFile } from './component-config-file';\nimport {\n OnComponentAdd,\n OnComponentChange,\n OnComponentEventResult,\n OnComponentLoad,\n OnComponentRemove,\n SerializableResults,\n} from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { ComponentStatus } from './workspace-component/component-status';\nimport {\n OnComponentAddSlot,\n OnComponentChangeSlot,\n OnComponentLoadSlot,\n OnComponentRemoveSlot,\n} from './workspace.provider';\nimport { WorkspaceComponentLoader } from './workspace-component/workspace-component-loader';\nimport { GraphFromFsBuilder, ShouldLoadFunc } from './build-graph-from-fs';\nimport { BitMap } from './bit-map';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { GraphIdsFromFsBuilder } from './build-graph-ids-from-fs';\nimport { AspectsMerger } from './aspects-merger';\nimport { MergeConflictFile } from './merge-conflict-file';\n\nexport type EjectConfResult = {\n configPath: string;\n};\n\nexport const AspectSpecificField = '__specific';\nexport const ComponentAdded = 'componentAdded';\nexport const ComponentChanged = 'componentChanged';\nexport const ComponentRemoved = 'componentRemoved';\n\nexport interface EjectConfOptions {\n propagate?: boolean;\n override?: boolean;\n}\n\nexport type ExtensionsOrigin =\n | 'BitmapFile'\n | 'ModelSpecific'\n | 'ModelNonSpecific'\n | 'ConfigMerge'\n | 'WorkspaceVariants'\n | 'ComponentJsonFile'\n | 'WorkspaceDefault'\n | 'FinalAfterMerge';\n\nconst DEFAULT_VENDOR_DIR = 'vendor';\n\n/**\n * API of the Bit Workspace\n */\nexport class Workspace implements ComponentFactory {\n priority = true;\n owner?: string;\n componentsScopeDirsMap: ComponentScopeDirMap;\n componentLoader: WorkspaceComponentLoader;\n bitMap: BitMap;\n private _cachedListIds?: ComponentID[];\n private componentLoadedSelfAsAspects: InMemoryCache<boolean>; // cache loaded components\n private aspectsMerger: AspectsMerger;\n constructor(\n /**\n * private pubsub.\n */\n private pubsub: PubsubMain,\n\n private config: WorkspaceExtConfig,\n /**\n * private access to the legacy consumer instance.\n */\n public consumer: Consumer,\n\n /**\n * access to the workspace `Scope` instance\n */\n readonly scope: ScopeMain,\n\n /**\n * access to the `ComponentProvider` instance\n */\n private componentAspect: ComponentMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n readonly variants: VariantsMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly logger: Logger,\n\n private componentList: ComponentsList = new ComponentsList(consumer),\n\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n\n /**\n * on component load slot.\n */\n public onComponentLoadSlot: OnComponentLoadSlot,\n\n /**\n * on component change slot.\n */\n private onComponentChangeSlot: OnComponentChangeSlot,\n\n readonly envs: EnvsMain,\n\n /**\n * on component add slot.\n */\n private onComponentAddSlot: OnComponentAddSlot,\n\n private onComponentRemoveSlot: OnComponentRemoveSlot,\n\n private graphql: GraphqlMain\n ) {\n this.componentLoadedSelfAsAspects = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n\n // TODO: refactor - prefer to avoid code inside the constructor.\n this.owner = this.config?.defaultOwner;\n this.componentLoader = new WorkspaceComponentLoader(this, logger, dependencyResolver, envs);\n this.validateConfig();\n this.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n // memoize this method to improve performance.\n this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile = memoize(\n this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile.bind(this),\n {\n primitive: true,\n promise: true,\n maxAge: 60 * 1000, // 1 min\n }\n );\n this.aspectsMerger = new AspectsMerger(this, this.harmony);\n }\n\n private validateConfig() {\n if (this.consumer.isLegacy) return;\n if (isEmpty(this.config))\n throw new BitError(\n `fatal: workspace config is empty. probably one of bit files is missing. consider running \"bit init\"`\n );\n const defaultScope = this.config.defaultScope;\n if (!defaultScope) throw new BitError('defaultScope is missing');\n if (!isValidScopeName(defaultScope)) throw new InvalidScopeName(defaultScope);\n }\n\n /**\n * root path of the Workspace.\n */\n get path() {\n return this.consumer.getPath();\n }\n\n /** get the `node_modules` folder of this workspace */\n private get modulesPath() {\n return path.join(this.path, 'node_modules');\n }\n\n get isLegacy(): boolean {\n return this.consumer.isLegacy;\n }\n\n onComponentLoad(loadFn: OnComponentLoad) {\n this.onComponentLoadSlot.register(loadFn);\n return this;\n }\n\n registerOnComponentChange(onComponentChangeFunc: OnComponentChange) {\n this.onComponentChangeSlot.register(onComponentChangeFunc);\n return this;\n }\n\n registerOnComponentAdd(onComponentAddFunc: OnComponentAdd) {\n this.onComponentAddSlot.register(onComponentAddFunc);\n return this;\n }\n\n registerOnComponentRemove(onComponentRemoveFunc: OnComponentRemove) {\n this.onComponentRemoveSlot.register(onComponentRemoveFunc);\n return this;\n }\n\n /**\n * name of the workspace as configured in either `workspace.json`.\n * defaults to workspace root directory name.\n */\n get name() {\n if (this.config.name) return this.config.name;\n const tokenizedPath = this.path.split('/');\n return tokenizedPath[tokenizedPath.length - 1];\n }\n\n get icon() {\n return this.config.icon;\n }\n\n async hasModifiedDependencies(component: Component) {\n const componentsList = new ComponentsList(this.consumer);\n const listAutoTagPendingComponents = await componentsList.listAutoTagPendingComponents();\n const isAutoTag = listAutoTagPendingComponents.find((consumerComponent) =>\n consumerComponent.id.isEqualWithoutVersion(component.id._legacy)\n );\n if (isAutoTag) return true;\n return false;\n }\n\n /**\n * get Component issues\n */\n getComponentIssues(component: Component): IssuesList | null {\n return component.state._consumer.issues || null;\n }\n\n /**\n * provides status of all components in the workspace.\n */\n async getComponentStatus(component: Component): Promise<ComponentStatus> {\n const status = await this.consumer.getComponentStatusById(component.id._legacy);\n const hasModifiedDependencies = await this.hasModifiedDependencies(component);\n return ComponentStatus.fromLegacy(status, hasModifiedDependencies, component.isOutdated());\n }\n\n /**\n * list all workspace components.\n */\n async list(filter?: { offset: number; limit: number }, loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const ids = await this.resolveMultipleComponentIds(legacyIds);\n const idsToGet = filter && filter.limit ? slice(ids, filter.offset, filter.offset + filter.limit) : ids;\n return this.getMany(idsToGet, loadOpts);\n }\n\n /**\n * list all invalid components.\n * (see the invalid criteria in ConsumerComponent.isComponentInvalidByErrorType())\n */\n async listInvalid(): Promise<InvalidComponent[]> {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const ids = await this.resolveMultipleComponentIds(legacyIds);\n return this.componentLoader.getInvalid(ids);\n }\n\n /**\n * get ids of all workspace components.\n */\n async listIds(): Promise<ComponentID[]> {\n if (this._cachedListIds && this.bitMap.hasChanged()) {\n delete this._cachedListIds;\n }\n if (!this._cachedListIds) {\n this._cachedListIds = await this.resolveMultipleComponentIds(this.consumer.bitmapIdsFromCurrentLane);\n }\n return this._cachedListIds;\n }\n\n /**\n * Check if a specific id exist in the workspace\n * @param componentId\n */\n async hasId(componentId: ComponentID): Promise<boolean> {\n const ids = await this.listIds();\n const found = ids.find((id) => {\n return id.isEqual(componentId);\n });\n return !!found;\n }\n\n /**\n * whether or not a workspace has a component with the given name\n */\n async hasName(name: string): Promise<boolean> {\n const ids = await this.listIds();\n return Boolean(ids.find((id) => id.fullName === name));\n }\n\n /**\n * Check if a specific id exist in the workspace or in the scope\n * @param componentId\n */\n async hasIdNested(componentId: ComponentID, includeCache = true): Promise<boolean> {\n const found = await this.hasId(componentId);\n if (found) return found;\n return this.scope.hasIdNested(componentId, includeCache);\n }\n\n /**\n * list all modified components in the workspace.\n */\n async modified(): Promise<Component[]> {\n const ids: any = await this.componentList.listModifiedComponents(false);\n const componentIds = ids.map(ComponentID.fromLegacy);\n return this.getMany(componentIds);\n }\n\n /**\n * list all new components in the workspace.\n */\n async newComponents() {\n const ids: any = await this.componentList.listNewComponents(false);\n const componentIds = ids.map(ComponentID.fromLegacy);\n return this.getMany(componentIds);\n }\n\n /**\n * get all workspace component-ids, include vendor components.\n * (exclude nested dependencies in case dependencies are saved as components and not packages)\n */\n getAllComponentIds(): Promise<ComponentID[]> {\n const bitIds = this.consumer.bitMap.getAllBitIds();\n return this.resolveMultipleComponentIds(bitIds);\n }\n\n async getNewAndModifiedIds(): Promise<ComponentID[]> {\n const ids = await this.componentList.listTagPendingComponents();\n return this.resolveMultipleComponentIds(ids);\n }\n\n async newAndModified(): Promise<Component[]> {\n const ids = await this.getNewAndModifiedIds();\n return this.getMany(ids);\n }\n\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.scope.getLogs(id, shortHash, startsFrom);\n }\n\n async getGraph(ids?: ComponentID[], shouldThrowOnMissingDep = true): Promise<Graph<Component, string>> {\n if (!ids || ids.length < 1) ids = await this.listIds();\n\n return this.buildOneGraphForComponents(ids, undefined, undefined, shouldThrowOnMissingDep);\n }\n\n async getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep = true): Promise<CompIdGraph> {\n if (!ids || ids.length < 1) ids = await this.listIds();\n\n const graphIdsFromFsBuilder = new GraphIdsFromFsBuilder(\n this,\n this.logger,\n this.dependencyResolver,\n shouldThrowOnMissingDep\n );\n return graphIdsFromFsBuilder.buildGraph(ids);\n }\n\n async getUnavailableOnMainComponents(): Promise<ComponentID[]> {\n const currentLaneId = this.consumer.getCurrentLaneId();\n if (!currentLaneId.isDefault()) return [];\n const allIds = this.consumer.bitMap.getAllBitIdsFromAllLanes();\n const availableIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n if (allIds.length === availableIds.length) return [];\n const unavailableIds = allIds.filter((id) => !availableIds.hasWithoutScopeAndVersion(id));\n if (!unavailableIds.length) return [];\n const removedIds = this.consumer.bitMap.getRemoved();\n const compsWithHead: BitId[] = [];\n await Promise.all(\n unavailableIds.map(async (id) => {\n if (removedIds.has(id)) return; // we don't care about removed components\n const modelComp = await this.scope.legacyScope.getModelComponentIfExist(id);\n if (modelComp && modelComp.head) compsWithHead.push(id);\n })\n );\n return this.resolveMultipleComponentIds(compsWithHead);\n }\n\n async getSavedGraphOfComponentIfExist(component: Component) {\n let versionObj: Version;\n try {\n versionObj = await this.scope.legacyScope.getVersionInstance(component.id._legacy);\n } catch (err) {\n return null;\n }\n\n const flattenedEdges = versionObj.flattenedEdges;\n if (!flattenedEdges.length && versionObj.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const flattenedBitIdCompIdMap: { [bitIdStr: string]: ComponentID } = {};\n flattenedBitIdCompIdMap[component.id._legacy.toString()] = component.id;\n await Promise.all(\n versionObj.flattenedDependencies.map(async (bitId) => {\n flattenedBitIdCompIdMap[bitId.toString()] = await this.resolveComponentId(bitId);\n })\n );\n const getCompIdByIdStr = (idStr: string): ComponentID => {\n const compId = flattenedBitIdCompIdMap[idStr];\n if (!compId)\n throw new Error(`id ${idStr} exists in flattenedEdges but not in flattened of ${component.id.toString()}`);\n return compId;\n };\n const nodes = Object.values(flattenedBitIdCompIdMap);\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: getCompIdByIdStr(edge.source.toString()),\n target: getCompIdByIdStr(edge.target.toString()),\n }));\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * given component ids, find their dependents in the workspace\n */\n async getDependentsIds(ids: ComponentID[]): Promise<ComponentID[]> {\n const workspaceGraph = await DependencyGraph.buildGraphFromWorkspace(this.consumer, true);\n const workspaceDependencyGraph = new DependencyGraph(workspaceGraph);\n const workspaceDependents = ids.map((id) => workspaceDependencyGraph.getDependentsInfo(id._legacy));\n const dependentsLegacyIds = workspaceDependents.flat().map((_) => _.id);\n const dependentsLegacyNoDup = BitIds.uniqFromArray(dependentsLegacyIds);\n const dependentsIds = await this.resolveMultipleComponentIds(dependentsLegacyNoDup);\n return dependentsIds;\n }\n\n public async createAspectList(extensionDataList: ExtensionDataList) {\n const entiresP = extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry));\n const entries: AspectEntry[] = await Promise.all(entiresP);\n return this.componentAspect.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n /**\n * get a component from workspace\n * @param id component ID\n */\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n this.logger.debug(`get ${componentId.toString()}`);\n const component = await this.componentLoader.get(componentId, legacyComponent, useCache, storeInCache, loadOpts);\n // When loading a component if it's an env make sure to load it as aspect as well\n // We only want to try load it as aspect if it's the first time we load the component\n const tryLoadAsAspect = this.componentLoadedSelfAsAspects.get(component.id.toString()) === undefined;\n // const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n\n // We are loading the component as aspect if it's an env, in order to be able to run the env-preview-template task which run only on envs.\n // Without this loading we will have a problem in case the env is the only component in the workspace. in that case we will load it as component\n // then we don't run it's provider so it doesn't register to the env slot, so we don't know it's an env.\n if (\n tryLoadAsAspect &&\n this.envs.isUsingEnvEnv(component) &&\n !this.aspectLoader.isCoreAspect(component.id.toStringWithoutVersion()) &&\n !this.aspectLoader.isAspectLoaded(component.id.toString()) &&\n (await this.hasId(component.id))\n // !config.extension(component.id.toStringWithoutVersion(), true)\n ) {\n try {\n this.componentLoadedSelfAsAspects.set(component.id.toString(), true);\n this.logger.debug(`trying to load self as aspect with id ${component.id.toString()}`);\n await this.loadAspects([component.id.toString()], undefined, component.id.toString());\n // In most cases if the load self as aspect failed we don't care about it.\n // we only need it in specific cases to work, but this workspace.get runs on different\n // cases where it might fail (like when importing aspect, after the import objects\n // when we write the package.json we run the applyTransformers which get to pkg which call\n // host.get, but the component not written yet to the fs, so it fails.)\n } catch (e) {\n this.logger.debug(`fail to load self as aspect with id ${component.id.toString()}`);\n this.componentLoadedSelfAsAspects.delete(component.id.toString());\n return component;\n }\n }\n this.componentLoadedSelfAsAspects.set(component.id.toString(), false);\n\n return component;\n }\n\n // TODO: @gilad we should refactor this asap into to the envs aspect.\n async getEnvSystemDescriptor(component: Component): Promise<AspectData> {\n const env = this.envs.calculateEnv(component);\n if (env.env.__getDescriptor && typeof env.env.__getDescriptor === 'function') {\n const systemDescriptor = await env.env.__getDescriptor();\n // !important persist services only on the env itself.\n let services: undefined | EnvServiceList;\n if (this.envs.isEnvRegistered(component.id.toString())) services = this.envs.getServices(env);\n const icon = this.aspectLoader.getDescriptor(env.id)?.icon || env.env.icon;\n\n return {\n type: systemDescriptor.type,\n // Make sure to store the env id in the data without the version\n // The version should always come from the aspect id configured on the component\n id: env.id.split('@')[0],\n name: env.name,\n icon,\n description: env.description,\n services: services?.toObject(),\n };\n }\n\n return {};\n }\n\n clearCache() {\n this.aspectLoader.resetFailedLoadAspects();\n this.logger.debug('clearing the workspace and scope caches');\n delete this._cachedListIds;\n this.componentLoader.clearCache();\n this.scope.clearCache();\n this.componentList = new ComponentsList(this.consumer);\n }\n\n clearComponentCache(id: ComponentID) {\n this.componentLoader.clearComponentCache(id);\n this.consumer.componentLoader.clearOneComponentCache(id._legacy);\n this.componentList = new ComponentsList(this.consumer);\n }\n\n async triggerOnComponentChange(\n id: ComponentID,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\n // if a new file was added, upon component-load, its .bitmap entry is updated to include the\n // new file. write these changes to the .bitmap file so then other processes have access to\n // this new file. If the .bitmap wasn't change, it won't do anything.\n await this.bitMap.write();\n const onChangeEntries = this.onComponentChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n await mapSeries(onChangeEntries, async ([extension, onChangeFunc]) => {\n const onChangeResult = await onChangeFunc(component, files, initiator);\n results.push({ extensionId: extension, results: onChangeResult });\n });\n\n // TODO: find way to standardize event names.\n await this.graphql.pubsub.publish(ComponentChanged, { componentChanged: { component } });\n return results;\n }\n\n async triggerOnComponentAdd(id: ComponentID): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\n const onAddEntries = this.onComponentAddSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n const files = component.state.filesystem.files.map((file) => file.path);\n await mapSeries(onAddEntries, async ([extension, onAddFunc]) => {\n const onAddResult = await onAddFunc(component, files);\n results.push({ extensionId: extension, results: onAddResult });\n });\n\n await this.graphql.pubsub.publish(ComponentAdded, { componentAdded: { component } });\n return results;\n }\n\n async triggerOnComponentRemove(id: ComponentID): Promise<OnComponentEventResult[]> {\n const onRemoveEntries = this.onComponentRemoveSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n const results: Array<{ extensionId: string; results: SerializableResults }> = [];\n await mapSeries(onRemoveEntries, async ([extension, onRemoveFunc]) => {\n const onRemoveResult = await onRemoveFunc(id);\n results.push({ extensionId: extension, results: onRemoveResult });\n });\n\n await this.graphql.pubsub.publish(ComponentRemoved, { componentRemoved: { componentIds: [id.toObject()] } });\n return results;\n }\n\n getState(id: ComponentID, hash: string) {\n return this.scope.getState(id, hash);\n }\n\n getSnap(id: ComponentID, hash: string) {\n return this.scope.getSnap(id, hash);\n }\n\n getCurrentLaneId(): LaneId {\n return this.consumer.getCurrentLaneId();\n }\n\n isOnMain(): boolean {\n return this.consumer.isOnMain();\n }\n\n /**\n * if checked out to a lane and the lane exists in the remote,\n * return the remote lane id (name+scope). otherwise, return null.\n */\n async getCurrentRemoteLane(): Promise<Lane | null> {\n const currentLaneId = this.getCurrentLaneId();\n if (currentLaneId.isDefault()) {\n return null;\n }\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n try {\n const lanes = await scopeComponentImporter.importLanes([currentLaneId]);\n\n return lanes[0];\n } catch (err) {\n if (\n err instanceof InvalidScopeName ||\n err instanceof ScopeNotFoundOrDenied ||\n err instanceof LaneNotFound ||\n err instanceof InvalidScopeNameFromRemote\n ) {\n const bitMapLaneId = this.bitMap.getExportedLaneId();\n if (bitMapLaneId?.isEqual(currentLaneId)) {\n throw err; // we know the lane is not new, so the error is legit\n }\n // the lane could be a local lane so no need to throw an error in such case\n loader.stop();\n this.logger.warn(`unable to get lane's data from a remote due to an error:\\n${err.message}`);\n return null;\n }\n throw err;\n }\n }\n\n getDefaultExtensions(): ExtensionDataList {\n if (!this.config.extensions) {\n return new ExtensionDataList();\n }\n return ExtensionDataList.fromConfigObject(this.config.extensions);\n }\n\n async ejectMultipleConfigs(ids: ComponentID[], options: EjectConfOptions): Promise<EjectConfResult[]> {\n return Promise.all(ids.map((id) => this.ejectConfig(id, options)));\n }\n\n async ejectConfig(id: ComponentID, options: EjectConfOptions): Promise<EjectConfResult> {\n const componentId = await this.resolveComponentId(id);\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const aspects = await this.createAspectList(extensions);\n const componentDir = this.componentDir(id, { ignoreVersion: true });\n const componentConfigFile = new ComponentConfigFile(componentId, aspects, componentDir, options.propagate);\n await componentConfigFile.write({ override: options.override });\n // remove config from the .bitmap as it's not needed anymore. it is replaced by the component.json\n this.bitMap.removeEntireConfig(id);\n await this.bitMap.write();\n return {\n configPath: ComponentConfigFile.composePath(componentDir),\n };\n }\n\n async getExtensionsFromScopeAndSpecific(id: ComponentID): Promise<ExtensionDataList> {\n const componentFromScope = await this.scope.get(id);\n const { extensions } = await this.componentExtensions(id, componentFromScope, [\n 'WorkspaceDefault',\n 'WorkspaceVariants',\n ]);\n\n return extensions;\n }\n\n /**\n * see component-aspect, createAspectListFromLegacy() method for a context why this is needed.\n */\n private async resolveScopeAspectListIds(aspectListFromScope: AspectList): Promise<AspectList> {\n const resolvedList = await aspectListFromScope.pmap(async (entry) => {\n if (entry.id.scope !== this.scope.name) {\n return entry;\n }\n const newId = await this.resolveComponentId(entry.id.fullName);\n const newEntry = new AspectEntry(newId, entry.legacy);\n return newEntry;\n });\n return resolvedList;\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency. also, it supports negation and list of patterns.\n *\n * load components into the workspace through a variants pattern.\n * @param pattern variants.\n * @param scope scope name.\n */\n async byPattern(pattern: string, scope = '**'): Promise<Component[]> {\n const ids = await this.listIds();\n const finalPattern = `${scope}/${pattern || '**'}`;\n const targetIds = ids.filter((id) => {\n const spec = isMatchNamespacePatternItem(id.toStringWithoutVersion(), finalPattern);\n return spec.match;\n });\n\n const components = await this.getMany(targetIds);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it supports negate (!) character to exclude ids.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n if (this.exists(id)) return [id];\n if (throwForNoMatch) throw new MissingBitMapComponent(pattern);\n return [];\n }\n const ids = await this.listIds();\n return this.scope.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n /**\n * useful for workspace commands, such as `bit build`, `bit compile`.\n * by default, it should be running on new and modified components.\n * a user can specify `--all` to run on all components or specify a pattern to limit to specific components.\n * some commands such as build/test needs to run also on the dependents.\n */\n async getComponentsByUserInput(all?: boolean, pattern?: string, includeDependents = false): Promise<Component[]> {\n if (all) {\n return this.list();\n }\n if (pattern) {\n const ids = await this.idsByPattern(pattern);\n return this.getMany(ids);\n }\n const newAndModified = await this.newAndModified();\n if (includeDependents) {\n const newAndModifiedIds = newAndModified.map((comp) => comp.id);\n const dependentsIds = await this.getDependentsIds(newAndModifiedIds);\n const dependentsIdsFiltered = dependentsIds.filter((id) => !newAndModified.find((_) => _.id.isEqual(id)));\n const dependents = await this.getMany(dependentsIdsFiltered);\n newAndModified.push(...dependents);\n }\n return newAndModified;\n }\n\n async getComponentsUsingEnv(env: string, ignoreVersion = true, throwIfNotFound = false): Promise<Component[]> {\n const allComps = await this.list();\n const allEnvs = await this.envs.createEnvironment(allComps);\n const foundEnv = allEnvs.runtimeEnvs.find((runtimeEnv) => {\n if (runtimeEnv.id === env) return true;\n if (!ignoreVersion) return false;\n const envWithoutVersion = runtimeEnv.id.split('@')[0];\n return env === envWithoutVersion;\n });\n if (!foundEnv && throwIfNotFound) {\n const availableEnvs = allEnvs.runtimeEnvs.map((runtimeEnv) => runtimeEnv.id);\n throw new BitError(`unable to find components that using \"${env}\" env.\nthe following envs are used in this workspace: ${availableEnvs.join(', ')}`);\n }\n return foundEnv?.components || [];\n }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return this.componentLoader.getMany(ids, loadOpts);\n }\n\n getManyByLegacy(components: ConsumerComponent[], loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return mapSeries(components, async (component) => {\n const id = await this.resolveComponentId(component.id);\n return this.get(id, component, true, true, loadOpts);\n });\n }\n\n /**\n * don't throw an error if the component was not found, simply return undefined.\n */\n async getIfExist(componentId: ComponentID): Promise<Component | undefined> {\n return this.componentLoader.getIfExist(componentId);\n }\n\n /**\n * whether a component exists in the workspace\n */\n exists(componentId: ComponentID): boolean {\n return Boolean(this.consumer.bitmapIdsFromCurrentLane.find((_) => _.isEqualWithoutVersion(componentId._legacy)));\n }\n\n /**\n * This will make sure to fetch the objects prior to load them\n * do not use it if you are not sure you need it.\n * It will influence the performance\n * currently it used only for get many of aspects\n * @param ids\n */\n async importAndGetMany(ids: Array<ComponentID>): Promise<Component[]> {\n await this.importCurrentLaneIfMissing();\n await this.scope.import(ids, { reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion() });\n return this.componentLoader.getMany(ids);\n }\n\n async importCurrentLaneIfMissing() {\n const laneId = this.getCurrentLaneId();\n const laneObj = await this.scope.legacyScope.getCurrentLaneObject();\n if (laneId.isDefault() || laneObj) {\n return;\n }\n const lane = await this.getCurrentRemoteLane();\n if (!lane) {\n return;\n }\n this.logger.info(`current lane ${laneId.toString()} is missing, importing it`);\n await this.scope.legacyScope.objects.writeObjectsToTheFS([lane]);\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const ids = BitIds.fromArray(lane.toBitIds().filter((id) => id.hasScope()));\n await scopeComponentsImporter.importManyDeltaWithoutDeps({ ids, fromHead: true, lane });\n await scopeComponentsImporter.importMany({ ids, lanes: [lane] });\n }\n\n async use(aspectIdStr: string): Promise<string> {\n const aspectId = await this.resolveComponentId(aspectIdStr);\n let aspectIdToAdd = aspectId.toStringWithoutVersion();\n if (!(await this.hasId(aspectId))) {\n const loadedIds = await this.scope.loadAspects([aspectIdStr], true, 'bit use command');\n if (loadedIds[0]) aspectIdToAdd = loadedIds[0];\n }\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config').workspaceConfig;\n if (!config) {\n throw new Error(`use() unable to get the workspace config`);\n }\n config.setExtension(\n aspectIdToAdd,\n {},\n {\n overrideExisting: false,\n ignoreVersion: false,\n }\n );\n await config.write();\n return aspectIdToAdd;\n }\n\n async write(component: Component, rootPath?: string) {\n await Promise.all(\n component.filesystem.files.map(async (file) => {\n const pathToWrite = rootPath ? path.join(this.path, rootPath, file.relative) : file.path;\n await fs.outputFile(pathToWrite, file.contents);\n })\n );\n }\n\n /**\n * Get the component root dir in the file system (relative to workspace or full) in Linux format\n * @param componentId\n * @param relative return the path relative to the workspace or full path\n */\n componentDir(\n componentId: ComponentID,\n bitMapOptions?: GetBitMapComponentOptions,\n options = { relative: false }\n ): PathOsBased {\n return this.componentDirFromLegacyId(componentId._legacy, bitMapOptions, options);\n }\n\n /**\n * component's files in the workspace are symlinked to the node_modules, and a package.json file is generated on that\n * package directory to simulate a valid node package.\n * @returns the package directory inside the node_module.\n * by default the absolute path, unless `options.relative` was set\n */\n componentPackageDir(component: Component, options = { relative: false }): string {\n const packageName = this.componentPackageName(component);\n const packageDir = path.join('node_modules', packageName);\n return options.relative ? packageDir : this.consumer.toAbsolutePath(packageDir);\n }\n\n componentPackageName(component: Component): string {\n return componentIdToPackageName(component.state._consumer);\n }\n\n private componentDirFromLegacyId(\n bitId: BitId,\n bitMapOptions?: GetBitMapComponentOptions,\n options = { relative: false }\n ): PathOsBased {\n const componentMap = this.consumer.bitMap.getComponent(bitId, bitMapOptions);\n const relativeComponentDir = componentMap.getComponentDir();\n if (!relativeComponentDir) {\n throw new NoComponentDir(bitId.toString());\n }\n if (options.relative) {\n return relativeComponentDir;\n }\n\n return path.join(this.path, relativeComponentDir);\n }\n\n componentDirToAbsolute(relativeComponentDir: PathOsBasedRelative): PathOsBasedAbsolute {\n return path.join(this.path, relativeComponentDir);\n }\n\n async componentDefaultScope(componentId: ComponentID): Promise<string | undefined> {\n const relativeComponentDir = this.componentDir(componentId, { ignoreVersion: true }, { relative: true });\n return this.componentDefaultScopeFromComponentDirAndName(relativeComponentDir, componentId.fullName);\n }\n\n async componentDefaultScopeFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<string | undefined> {\n const componentConfigFile = await this.componentConfigFileFromComponentDirAndName(relativeComponentDir, name);\n if (componentConfigFile && componentConfigFile.defaultScope) {\n return componentConfigFile.defaultScope;\n }\n const bitMapId = this.consumer.bitMap.getExistingBitId(name);\n const bitMapEntry = bitMapId ? this.consumer.bitMap.getComponent(bitMapId) : undefined;\n if (bitMapEntry && bitMapEntry.defaultScope) {\n return bitMapEntry.defaultScope;\n }\n return this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(relativeComponentDir, name);\n }\n\n get defaultScope() {\n return this.config.defaultScope;\n }\n\n private async componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<string | undefined> {\n const variantConfig = this.variants.byRootDirAndName(relativeComponentDir, name);\n if (variantConfig && variantConfig.defaultScope) {\n return variantConfig.defaultScope;\n }\n const isVendor = this.isVendorComponentByComponentDir(relativeComponentDir);\n if (!isVendor) {\n return this.config.defaultScope;\n }\n return undefined;\n }\n\n /**\n * Calculate the component config based on:\n * the config property in the .bitmap file\n * the component.json file in the component folder\n * matching pattern in the variants config\n * defaults extensions from workspace config\n * extensions from the model.\n */\n async componentExtensions(\n componentId: ComponentID,\n componentFromScope?: Component,\n excludeOrigins: ExtensionsOrigin[] = []\n ): Promise<{\n extensions: ExtensionDataList;\n beforeMerge: Array<{ extensions: ExtensionDataList; origin: ExtensionsOrigin; extraData: any }>; // useful for debugging\n errors?: Error[];\n }> {\n return this.aspectsMerger.merge(componentId, componentFromScope, excludeOrigins);\n }\n\n getConfigMergeFilePath(): string {\n return path.join(this.path, MergeConfigFilename);\n }\n\n getConflictMergeFile(): MergeConflictFile {\n return this.aspectsMerger.mergeConflictFile;\n }\n\n getDepsDataOfMergeConfig(id: BitId): Record<string, any> | undefined {\n return this.aspectsMerger.getDepsDataOfMergeConfig(id);\n }\n\n async listComponentsDuringMerge(): Promise<ComponentID[]> {\n const unmergedComps = this.scope.legacyScope.objects.unmergedComponents.getComponents();\n const bitIds = unmergedComps.map((u) => new BitId(u.id));\n return this.resolveMultipleComponentIds(bitIds);\n }\n\n async getUnmergedComponent(componentId: ComponentID): Promise<Component | undefined> {\n const unmerged = this.scope.legacyScope.objects.unmergedComponents.getEntry(componentId._legacy.name);\n if (unmerged?.head) {\n return this.scope.get(componentId.changeVersion(unmerged?.head.toString()));\n }\n return undefined;\n }\n\n async isModified(component: Component): Promise<boolean> {\n const head = component.head;\n if (!head) {\n return true; // it's a new component\n }\n const consumerComp = component.state._consumer as ConsumerComponent;\n if (typeof consumerComp._isModified === 'boolean') return consumerComp._isModified;\n const componentStatus = await this.consumer.getComponentStatusById(component.id._legacy);\n return componentStatus.modified === true;\n }\n\n /**\n * filter the given component-ids and set default-scope only to the new ones.\n * returns the affected components.\n */\n async setDefaultScopeToComponents(componentIds: ComponentID[], scopeName: string): Promise<ComponentID[]> {\n if (!isValidScopeName(scopeName)) {\n throw new InvalidScopeName(scopeName);\n }\n const newComponentIds = componentIds.filter((id) => !id.hasVersion());\n if (!newComponentIds.length) {\n const compIdsStr = componentIds.map((compId) => compId.toString()).join(', ');\n throw new BitError(\n `unable to set default-scope for the following components, as they are not new:\\n${compIdsStr}`\n );\n }\n newComponentIds.map((comp) => this.bitMap.setDefaultScope(comp, scopeName));\n await this.bitMap.write();\n return newComponentIds;\n }\n\n async setDefaultScope(scopeName: string) {\n if (this.defaultScope === scopeName) {\n throw new Error(`the default-scope is already set as \"${scopeName}\", nothing to change`);\n }\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n config.workspaceConfig?.setExtension(\n WorkspaceAspect.id,\n { defaultScope: scopeName },\n { mergeIntoExisting: true, ignoreVersion: true }\n );\n await config.workspaceConfig?.write({ dir: path.dirname(config.workspaceConfig.path) });\n }\n\n async addSpecificComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeWithExisting = false,\n /**\n * relevant only when writing to .bitmap.\n * eject config of the given aspect-id, so then it won't override previous config. (see \"adding prod dep, tagging then adding devDep\" e2e-test)\n */\n shouldMergeWithPrevious = false\n ) {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n await componentConfigFile.addAspect(\n aspectId,\n config,\n this.resolveComponentId.bind(this),\n shouldMergeWithExisting\n );\n await componentConfigFile.write({ override: true });\n } else {\n if (shouldMergeWithPrevious) {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const obj = extensions.toConfigObject();\n config = obj[aspectId] ? merge(obj[aspectId], config) : config;\n }\n this.bitMap.addComponentConfig(id, aspectId, config, shouldMergeWithExisting);\n }\n }\n\n async removeSpecificComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist = false) {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n await componentConfigFile.removeAspect(aspectId, markWithMinusIfNotExist, this.resolveComponentId.bind(this));\n await componentConfigFile.write({ override: true });\n } else {\n this.bitMap.removeComponentConfig(id, aspectId, markWithMinusIfNotExist);\n }\n }\n\n async getAspectIdFromConfig(\n componentId: ComponentID,\n aspectIdStr: string,\n ignoreAspectVersion = false\n ): Promise<string | undefined> {\n const config = await this.getExtensionsFromScopeAndSpecific(componentId);\n const aspectEntry = config.findExtension(aspectIdStr, ignoreAspectVersion);\n return aspectEntry?.id.toString();\n }\n\n async getSpecificComponentConfig(id: ComponentID, aspectId: string): Promise<any> {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n return componentConfigFile.aspects.get(aspectId)?.config;\n }\n return this.bitMap.getBitmapEntry(id, { ignoreVersion: true }).config?.[aspectId];\n }\n\n private isVendorComponentByComponentDir(relativeComponentDir: PathOsBasedRelative): boolean {\n const vendorDir = this.config.vendor?.directory || DEFAULT_VENDOR_DIR;\n if (pathIsInside(relativeComponentDir, vendorDir)) {\n return true;\n }\n // TODO: implement\n return false;\n }\n\n /**\n * return the component config from its folder (component.json)\n * @param componentId\n */\n public async componentConfigFile(id: ComponentID): Promise<ComponentConfigFile | undefined> {\n const relativeComponentDir = this.componentDir(id, { ignoreVersion: true }, { relative: true });\n return this.componentConfigFileFromComponentDirAndName(relativeComponentDir, id.fullName);\n }\n\n /**\n * @param componentPath can be relative or absolute. supports Linux and Windows\n */\n async getComponentIdByPath(componentPath: PathOsBased): Promise<ComponentID | undefined> {\n const relativePath = path.isAbsolute(componentPath) ? path.relative(this.path, componentPath) : componentPath;\n const linuxPath = pathNormalizeToLinux(relativePath);\n const bitId = this.consumer.bitMap.getComponentIdByPath(linuxPath);\n if (bitId) {\n return this.resolveComponentId(bitId);\n }\n return undefined;\n }\n\n private async componentConfigFileFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative,\n name: string\n ): Promise<ComponentConfigFile | undefined> {\n let componentConfigFile;\n if (relativeComponentDir) {\n const absComponentDir = this.componentDirToAbsolute(relativeComponentDir);\n const defaultScopeFromVariantsOrWs = await this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFile(\n relativeComponentDir,\n name\n );\n componentConfigFile = await ComponentConfigFile.load(\n absComponentDir,\n this.createAspectList.bind(this),\n defaultScopeFromVariantsOrWs\n );\n }\n\n return componentConfigFile;\n }\n\n async getAspectsGraphWithoutCore(components: Component[], isAspect?: ShouldLoadFunc) {\n const ids = components.map((component) => component.id);\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n // const coreAspectsComponentIds = coreAspectsStringIds.map((id) => BitId.parse(id, true));\n // const aspectsIds = components.reduce((acc, curr) => {\n // const currIds = curr.state.aspects.ids;\n // acc = acc.concat(currIds);\n // return acc;\n // }, [] as any);\n // const otherDependenciesMap = components.reduce((acc, curr) => {\n // // const currIds = curr.state.dependencies.dependencies.map(dep => dep.id.toString());\n // const currMap = curr.state.dependencies.getIdsMap();\n // Object.assign(acc, currMap);\n // return acc;\n // }, {});\n\n // const depsWhichAreNotAspects = difference(Object.keys(otherDependenciesMap), aspectsIds);\n // const depsWhichAreNotAspectsBitIds = depsWhichAreNotAspects.map((strId) => otherDependenciesMap[strId]);\n // We only want to load into the graph components which are aspects and not regular dependencies\n // This come to solve a circular loop when an env aspect use an aspect (as regular dep) and the aspect use the env aspect as its env\n // TODO: @gilad it causes many issues we need to find a better solution. removed for now.\n return this.buildOneGraphForComponents(ids, coreAspectsStringIds, isAspect);\n }\n\n /**\n * load aspects from the workspace and if not exists in the workspace, load from the scope.\n * keep in mind that the graph may have circles.\n */\n async loadAspects(ids: string[] = [], throwOnError = false, neededFor?: string): Promise<string[]> {\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(notLoadedIds, coreAspectsStringIds);\n const componentIds = await this.resolveMultipleComponentIds(idsWithoutCore);\n const components = await this.importAndGetAspects(componentIds);\n\n const isAspect = async (id: ComponentID) => {\n const component = await this.get(id);\n const isUsingAspectEnv = this.envs.isUsingAspectEnv(component);\n const isUsingEnvEnv = this.envs.isUsingEnvEnv(component);\n const isValidAspect = isUsingAspectEnv || isUsingEnvEnv;\n // if (!isValidAspect && idsWithoutCore.includes(component.id.toString())) {\n // const data = this.envs.getEnvData(component);\n // const err = new IncorrectEnvAspect(component.id.toString(), data.type, data.id);\n // if (data.id === DEFAULT_ENV) {\n // // when cloning a project, or when the node-modules dir is deleted, nothing works and all\n // // components are default to the DEFAULT_ENV, which is node-env. we must allow \"bit\n // // install\" to prepare the workspace and let the proper the envs to be loaded\n // this.logger.error(err.message);\n // } else {\n // throw err;\n // }\n // }\n return isValidAspect;\n };\n\n const graph = await this.getAspectsGraphWithoutCore(components, isAspect);\n const aspects = graph.nodes.map((node) => node.attr);\n this.logger.debug(`${loggerPrefix} found ${aspects.length} aspects in the aspects-graph`);\n const { workspaceComps, scopeComps } = await this.groupComponentsByWorkspaceAndScope(aspects);\n this.logger.debug(\n `${loggerPrefix} found ${workspaceComps.length} components in the workspace:\\n${workspaceComps\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n this.logger.debug(\n `${loggerPrefix} ${\n scopeComps.length\n } components are not in the workspace and are loaded from the scope:\\n${scopeComps\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n const scopeIds = scopeComps.map((aspect) => aspect.id.toString());\n const workspaceAspects = await this.requireComponents(workspaceComps);\n const workspaceManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n workspaceAspects,\n throwOnError\n );\n const potentialPluginsIndexes = compact(\n workspaceManifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n return index;\n })\n );\n const workspaceManifestsIds = compact(workspaceManifests.map((m) => m.id));\n // We are grouping the scope aspects by whether they are envs of something of the list or not\n // if yes, we want to load them first\n // the rest we will load together with the workspace aspects\n const scopeIdsGrouped = await this.scope.groupAspectIdsByEnvOfTheList(scopeIds);\n const scopeEnvsManifestsIds =\n scopeIdsGrouped.envs && scopeIdsGrouped.envs.length\n ? await this.scope.loadAspects(\n scopeIdsGrouped.envs,\n throwOnError,\n 'workspace.loadAspects loading scope aspects'\n )\n : [];\n const currentLane = await this.consumer.getCurrentLaneObject();\n const { manifests: scopeOtherManifests } =\n scopeIdsGrouped.other && scopeIdsGrouped.other.length\n ? await this.scope.getManifestsGraphRecursively(\n scopeIdsGrouped.other,\n compact(workspaceManifestsIds),\n throwOnError,\n currentLane || undefined,\n {\n packageManagerConfigRootDir: this.path,\n }\n )\n : { manifests: [] };\n const scopeOtherManifestsIds = compact(scopeOtherManifests.map((m) => m.id));\n\n await this.aspectLoader.loadExtensionsByManifests(\n [...scopeOtherManifests, ...workspaceManifests],\n throwOnError,\n idsWithoutCore\n );\n // Try require components for potential plugins\n const pluginsWorkspaceComps = potentialPluginsIndexes.map((index) => {\n return workspaceComps[index];\n });\n // Do the require again now that the plugins defs already registered\n const pluginsWorkspaceAspects = await this.requireComponents(pluginsWorkspaceComps);\n const pluginsWorkspaceManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n pluginsWorkspaceAspects,\n throwOnError\n );\n await this.aspectLoader.loadExtensionsByManifests(pluginsWorkspaceManifests, throwOnError);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return compact(scopeEnvsManifestsIds.concat(scopeOtherManifestsIds).concat(workspaceManifestsIds));\n }\n\n /**\n * returns one graph that includes all dependencies types. each edge has a label of the dependency\n * type. the nodes content is the Component object.\n */\n async buildOneGraphForComponents(\n ids: ComponentID[],\n ignoreIds?: string[],\n shouldLoadFunc?: ShouldLoadFunc,\n shouldThrowOnMissingDep = true\n ): Promise<Graph<Component, string>> {\n const graphFromFsBuilder = new GraphFromFsBuilder(\n this,\n this.logger,\n this.dependencyResolver,\n ignoreIds,\n shouldLoadFunc,\n shouldThrowOnMissingDep\n );\n return graphFromFsBuilder.buildGraph(ids);\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n this.logger.debug(`workspace resolveAspects, runtimeName: ${runtimeName}, componentIds: ${componentIds}`);\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n let missingPaths = false;\n const bitIds: BitId[] = [];\n const idsToResolve = componentIds ? componentIds.map((id) => id.toString()) : this.harmony.extensionsIds;\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const userAspectsIds: string[] = difference(idsToResolve, coreAspectsIds);\n const componentIdsToResolve = await this.resolveMultipleComponentIds(userAspectsIds);\n const { workspaceIds, scopeIds } = await this.groupIdsByWorkspaceAndScope(componentIdsToResolve);\n const wsComponents = await this.getMany(workspaceIds);\n const aspectDefs = await this.aspectLoader.resolveAspects(wsComponents, async (component) => {\n const compStringId = component.id._legacy.toString();\n bitIds.push(component.id._legacy);\n const localPath = this.getComponentPackagePath(component);\n const isExist = await fs.pathExists(localPath);\n if (!isExist) {\n missingPaths = true;\n }\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n\n let scopeAspectDefs: AspectDefinition[] = [];\n if (scopeIds.length) {\n scopeAspectDefs = await this.scope.resolveAspects(runtimeName, scopeIds, mergedOpts);\n }\n\n let coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n // due to lack of workspace and scope runtimes. TODO: fix after adding them.\n if (runtimeName && mergedOpts.filterByRuntime) {\n coreAspectDefs = coreAspectDefs.filter((coreAspect) => {\n return coreAspect.runtimePath;\n });\n }\n\n if (missingPaths) {\n await linkToNodeModulesByIds(this, bitIds);\n }\n\n const allDefs = aspectDefs.concat(coreAspectDefs).concat(scopeAspectDefs);\n const ids = idsToResolve.map((idStr) => ComponentID.fromString(idStr).toStringWithoutVersion());\n const afterExclusion = mergedOpts.excludeCore\n ? allDefs.filter((def) => {\n const isCore = coreAspectDefs.find((coreId) => def.getId === coreId.getId);\n const id = ComponentID.fromString(def.getId || '');\n const isTarget = ids.includes(id.toStringWithoutVersion());\n if (isTarget) return true;\n return !isCore;\n })\n : allDefs;\n\n const uniqDefs = uniqBy(afterExclusion, (def) => `${def.aspectPath}-${def.runtimePath}`);\n let defs = uniqDefs;\n if (runtimeName && mergedOpts.filterByRuntime) {\n defs = defs.filter((def) => def.runtimePath);\n }\n\n if (componentIds && componentIds.length && mergedOpts.requestedOnly) {\n const componentIdsString = componentIds.map((id) => id.toString());\n defs = defs.filter((def) => {\n return (\n (def.id && componentIdsString.includes(def.id)) ||\n (def.component && componentIdsString.includes(def.component?.id.toString()))\n );\n });\n }\n\n return defs;\n }\n\n private async groupIdsByWorkspaceAndScope(\n ids: ComponentID[]\n ): Promise<{ workspaceIds: ComponentID[]; scopeIds: ComponentID[] }> {\n const workspaceIds: ComponentID[] = [];\n const scopeIds: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const existOnWorkspace = await this.hasId(id);\n existOnWorkspace ? workspaceIds.push(id) : scopeIds.push(id);\n })\n );\n return { workspaceIds, scopeIds };\n }\n\n private async groupComponentsByWorkspaceAndScope(\n components: Component[]\n ): Promise<{ workspaceComps: Component[]; scopeComps: Component[] }> {\n const workspaceComps: Component[] = [];\n const scopeComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const existOnWorkspace = await this.hasId(component.id);\n existOnWorkspace ? workspaceComps.push(component) : scopeComps.push(component);\n })\n );\n return { workspaceComps, scopeComps };\n }\n\n /**\n * Provides a cache folder, unique per key.\n * Return value may be undefined, if workspace folder is unconventional (bare-scope, no node_modules, etc)\n */\n getTempDir(\n /*\n * unique key, i.e. aspect or component id\n */\n id: string\n ) {\n const PREFIX = 'bit';\n const cacheDir = path.join(this.modulesPath, '.cache', PREFIX, id);\n\n // maybe should also check it's a folder and has write permissions\n if (!fs.existsSync(cacheDir)) {\n fs.mkdirSync(cacheDir, { recursive: true });\n }\n\n return cacheDir;\n }\n\n async requireComponents(components: Component[]): Promise<RequireableComponent[]> {\n let missingPaths = false;\n const bitIds: BitId[] = [];\n const resolveP = components.map(async (component) => {\n bitIds.push(component.id._legacy);\n const localPath = this.getComponentPackagePath(component);\n const isExist = await fs.pathExists(localPath);\n if (!isExist) {\n missingPaths = true;\n }\n\n const requireFunc = async () => {\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(localPath);\n // require aspect runtimes\n const runtimePath = await this.aspectLoader.getRuntimePath(component, localPath, MainRuntime.name);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n return aspect;\n };\n return new RequireableComponent(component, requireFunc);\n });\n const resolved = await Promise.all(resolveP);\n // Make sure to link missing components\n if (missingPaths) {\n await linkToNodeModulesByIds(this, bitIds);\n }\n return resolved;\n }\n\n /**\n * same as `this.importAndGetMany()` with a specific error handling of ComponentNotFound\n */\n private async importAndGetAspects(componentIds: ComponentID[]): Promise<Component[]> {\n try {\n return await this.importAndGetMany(componentIds);\n } catch (err: any) {\n if (err instanceof ComponentNotFound) {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const configStr = JSON.stringify(config.workspaceConfig?.raw || {});\n if (configStr.includes(err.id)) {\n throw new BitError(`error: a component \"${err.id}\" was not found\nyour workspace.jsonc has this component-id set. you might want to remove/change it.`);\n }\n }\n\n throw err;\n }\n }\n\n /**\n * this should be rarely in-use.\n * it's currently used by watch extension as a quick workaround to load .bitmap and the components\n */\n async _reloadConsumer() {\n this.consumer = await loadConsumer(this.path, true);\n this.clearCache();\n }\n\n getComponentPackagePath(component: Component) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component);\n return path.join(this.path, relativePath);\n }\n\n // TODO: should we return here the dir as it defined (aka components) or with /{name} prefix (as it used in legacy)\n get defaultDirectory(): string {\n return this.config.defaultDirectory;\n }\n\n get legacyDefaultDirectory(): string {\n if (this.defaultDirectory && !this.defaultDirectory.includes('{name}')) {\n return `${this.defaultDirectory}/{name}`;\n }\n return this.defaultDirectory;\n }\n\n /**\n * Transform the id to ComponentId and get the exact id as appear in bitmap\n *\n * @param {(string | ComponentID | BitId)} id\n * @returns {Promise<ComponentID>}\n * @memberof Workspace\n */\n async resolveComponentId(id: string | ComponentID | BitId): Promise<ComponentID> {\n const getDefaultScope = async (bitId: BitId, bitMapOptions?: GetBitMapComponentOptions) => {\n if (bitId.scope) {\n return bitId.scope;\n }\n const relativeComponentDir = this.componentDirFromLegacyId(bitId, bitMapOptions, { relative: true });\n const defaultScope = await this.componentDefaultScopeFromComponentDirAndName(\n relativeComponentDir,\n bitId.toStringWithoutScopeAndVersion()\n );\n return defaultScope;\n };\n\n // This is required in case where you have in your workspace a component with the same name as a core aspect\n // let's say you have component called react-native (which is eventually my-org.my-scope/react-native)\n // and you set teambit.react/react-native as your env\n // bit will get here with the string teambit.react/react-native and will try to resolve it from the workspace\n // during this it will find the my-org.my-scope/react-native which is incorrect as the core one doesn't exist in the\n // workspace\n if (this.aspectLoader.isCoreAspect(id.toString())) {\n return ComponentID.fromString(id.toString());\n }\n let legacyId = this.consumer.getParsedIdIfExist(id.toString(), true, true);\n if (legacyId) {\n const defaultScope = await getDefaultScope(legacyId);\n // only reason to strip the scopeName from the given id is when this id has the defaultScope, because .bitmap\n // doesn't have the defaultScope. if the given id doesn't have scope or has scope different than the default,\n // then don't ignore it. search with the scope-name.\n const shouldSearchWithoutScopeInProvidedId = id.toString().startsWith(`${defaultScope}/`);\n legacyId = this.consumer.getParsedIdIfExist(id.toString(), true, shouldSearchWithoutScopeInProvidedId);\n if (legacyId) {\n return ComponentID.fromLegacy(legacyId, defaultScope);\n }\n }\n try {\n const idWithVersion = id.toString();\n const [idWithoutVersion, version] = id.toString().split('@');\n const _bitMapId = this.consumer.getParsedIdIfExist(idWithoutVersion, false, true);\n // This logic is very specific, and very sensitive for changes please do not touch this without consulting with @ran or @gilad\n // example (partial list) cases which should be handled are:\n // use case 1 - ws component provided with the local scope name:\n // source id : my-scope1/my-name1\n // bitmap res (_id) : my-name1 (comp is tagged but not exported)\n // local scope name : my-scope1\n // scope content : my-name1\n // expected result : my-name1\n // use case 2 - component with same name exist in ws and scope (but with different scope name)\n // source id : my-scope2/my-name1\n // bitmap res (_id) : my-name1 (comp exist in ws but it's actually different component)\n // local scope name : my-scope1\n // scope content : my-scope2/my-name1\n // expected result : my-scope2/my-name1\n // use case 3 - component with same name exist in ws and scope (but with different scope name) - source provided without scope name\n // source id : my-name1\n // bitmap res (_id) : my-name1 (comp exist in ws but it's actually different component)\n // local scope name : my-scope1\n // scope content : my-scope1/my-name1 and my-scope2/my-name1\n // expected result : my-name1 (get the name from the bitmap)\n // use case 4 - component with the same name and different scope are imported into the ws\n // source id : my-name1\n // bitmap res (_id) : my-scope2/my-name1 (comp exist in ws from different scope (imported))\n // local scope name : my-scope1\n // scope content : my-scope2/my-name1\n // expected result : my-scope2/my-name1 (get the name from the bitmap)\n\n // No entry in bitmap at all, search for the original input id\n if (!_bitMapId) {\n return await this.scope.resolveComponentId(id.toString());\n }\n const _bitMapIdWithoutVersion = _bitMapId.toStringWithoutVersion();\n const _bitMapIdWithVersion = _bitMapId.changeVersion(version).toString();\n // The id in the bitmap has prefix which is not in the source id - the bitmap entry has scope name\n // Handle use case 4\n if (_bitMapIdWithoutVersion.endsWith(idWithoutVersion) && _bitMapIdWithoutVersion !== idWithoutVersion) {\n return await this.scope.resolveComponentId(_bitMapIdWithVersion);\n }\n // Handle case when I tagged the component locally with a default scope which is not the local scope\n // but not exported it yet\n // now i'm trying to load it with source id contain the default scope prefix\n // we want to get it from the local first before assuming it's something coming from outside\n if (!_bitMapId.scope) {\n const defaultScopeForBitmapId = await getDefaultScope(_bitMapId, { ignoreVersion: true });\n const getFromBitmapAddDefaultScope = () => {\n let _bitmapIdWithVersionForSource = _bitMapId;\n if (version) {\n _bitmapIdWithVersionForSource = _bitMapId.changeVersion(version);\n }\n return ComponentID.fromLegacy(_bitmapIdWithVersionForSource, defaultScopeForBitmapId);\n };\n // a case when the given id contains the default scope\n if (idWithVersion.startsWith(`${defaultScopeForBitmapId}/${_bitMapIdWithoutVersion}`)) {\n return getFromBitmapAddDefaultScope();\n }\n // a case when the given id does not contain the default scope\n const fromScope = await this.scope.resolveComponentId(idWithVersion);\n if (!fromScope._legacy.hasScope()) {\n return getFromBitmapAddDefaultScope();\n }\n }\n\n if (idWithoutVersion.endsWith(_bitMapIdWithoutVersion) && _bitMapIdWithoutVersion !== idWithoutVersion) {\n // The id in the bitmap doesn't have scope, the source id has scope\n // Handle use case 2 and use case 1\n if (id.toString().startsWith(this.scope.name)) {\n // Handle use case 1 - the provided id has scope name same as the local scope name\n // we want to send it as it appear in the bitmap\n return await this.scope.resolveComponentId(_bitMapIdWithVersion);\n }\n // Handle use case 2 - the provided id has scope which is not the local scope\n // we want to search by the source id\n return await this.scope.resolveComponentId(idWithVersion);\n }\n // Handle use case 3\n return await this.scope.resolveComponentId(idWithVersion);\n } catch (error: any) {\n legacyId = BitId.parse(id.toString(), true);\n return ComponentID.fromLegacy(legacyId);\n }\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | BitId>): Promise<ComponentID[]> {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * This will mutate the original extensions list and resolve it's ids\n *\n * @param {ExtensionDataList} extensions\n * @returns {Promise<void[]>}\n * @memberof Workspace\n */\n resolveExtensionsList(extensions: ExtensionDataList): Promise<void[]> {\n const resolveMergedExtensionsP = extensions.map(async (extensionEntry) => {\n if (extensionEntry.extensionId) {\n // const hasVersion = extensionEntry.extensionId.hasVersion();\n // const useBitmapVersion = !hasVersion;\n // const resolvedId = await this.resolveComponentId(extensionEntry.extensionId, true, useBitmapVersion);\n\n // Assuming extensionId always has scope - do not allow extension id without scope\n const resolvedId = await this.resolveComponentId(extensionEntry.extensionId);\n extensionEntry.extensionId = resolvedId._legacy;\n }\n });\n return Promise.all(resolveMergedExtensionsP);\n }\n\n /**\n * This will mutate the original extensions list and make sure all extensions has the ids with the scope / default scope\n *\n * @param {ExtensionDataList} extensions\n * @returns {Promise<void[]>}\n * @memberof Workspace\n */\n addDefaultScopeToExtensionsList(extensions: ExtensionDataList): Promise<void[]> {\n const resolveMergedExtensionsP = extensions.map(async (extensionEntry) => {\n if (extensionEntry.extensionId && !extensionEntry.extensionId.hasScope()) {\n const componentId = ComponentID.fromLegacy(extensionEntry.extensionId);\n const defaultScope = await this.componentDefaultScope(componentId);\n extensionEntry.extensionId = extensionEntry.extensionId.changeScope(defaultScope);\n }\n });\n return Promise.all(resolveMergedExtensionsP);\n }\n\n /**\n * configure an environment to the given components in the .bitmap file, this configuration overrides other, such as\n * overrides in workspace.jsonc.\n */\n async setEnvToComponents(envId: ComponentID, componentIds: ComponentID[]) {\n const envStrWithPossiblyVersion = await this.resolveEnvIdWithPotentialVersionForConfig(envId);\n const envIdStrNoVersion = envId.toStringWithoutVersion();\n await this.unsetEnvFromComponents(componentIds);\n await Promise.all(\n componentIds.map(async (componentId) => {\n await this.addSpecificComponentConfig(componentId, envStrWithPossiblyVersion);\n await this.addSpecificComponentConfig(componentId, EnvsAspect.id, { env: envIdStrNoVersion });\n })\n );\n await this.bitMap.write();\n }\n\n /**\n * helpful when a user provides an env-string to be set and this env has no version.\n * in the workspace config, a custom-env needs to be set with a version unless it's part of the workspace.\n * (inside envs/envs it's set without a version).\n */\n async resolveEnvIdWithPotentialVersionForConfig(envId: ComponentID): Promise<string> {\n const isCore = this.aspectLoader.isCoreAspect(envId.toStringWithoutVersion());\n const existsOnWorkspace = await this.hasId(envId);\n if (isCore || existsOnWorkspace) {\n // the env needs to be without version\n return envId.toStringWithoutVersion();\n }\n // the env must include a version\n if (envId.hasVersion()) {\n return envId.toString();\n }\n const extensions = this.harmony.get<ConfigMain>('teambit.harmony/config').extensions;\n const found = extensions?.findExtension(envId.toString(), true);\n if (found && found.extensionId?.version) {\n return found.extensionId.toString();\n }\n const comps = await this.importAndGetMany([envId]);\n return comps[0].id.toString();\n }\n\n /**\n * remove env configuration from the .bitmap file, so then other configuration, such as \"variants\" will take place\n */\n async unsetEnvFromComponents(ids: ComponentID[]): Promise<{ changed: ComponentID[]; unchanged: ComponentID[] }> {\n const changed: ComponentID[] = [];\n const unchanged: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id)?.rawConfig;\n const currentEnv = envsAspect && envsAspect !== REMOVE_EXTENSION_SPECIAL_SIGN ? envsAspect.env : null;\n if (!currentEnv) {\n unchanged.push(id);\n return;\n }\n const currentEnvWithPotentialVersion = await this.getAspectIdFromConfig(id, currentEnv, true);\n await this.removeSpecificComponentConfig(id, currentEnvWithPotentialVersion || currentEnv);\n await this.removeSpecificComponentConfig(id, EnvsAspect.id);\n changed.push(id);\n })\n );\n await this.bitMap.write();\n return { changed, unchanged };\n }\n\n async updateEnvForComponents(envIdStr?: string, pattern?: string) {\n const allWsComps = await this.list();\n const allWsIds = await this.listIds();\n const isInWs = (envId: ComponentID) => allWsIds.find((id) => id.isEqual(envId, { ignoreVersion: true }));\n const allEnvs = await this.envs.createEnvironment(allWsComps);\n const getEnvWithVersion = async (envId: ComponentID) => {\n if (envId.hasVersion()) return envId;\n try {\n const fromRemote = await this.scope.getRemoteComponent(envId);\n return envId.changeVersion(fromRemote.id.version);\n } catch (err) {\n throw new BitError(`unable to find ${envIdStr} in the remote`);\n }\n };\n const getEnvs = async (): Promise<ComponentID[]> => {\n if (envIdStr) {\n const envCompId = await this.resolveComponentId(envIdStr);\n if (isInWs(envCompId)) {\n throw new BitError(\n `error: unable to update the env ${envCompId.toString()}, it's already part of the workspace, as such, it's always using the workspace version`\n );\n }\n const envWithVer = await getEnvWithVersion(envCompId);\n return [envWithVer];\n }\n // get all non-local envs.\n const allEnvsIds = allEnvs.runtimeEnvs.map((env) => env.id);\n const allEnvsCompIds = await this.resolveMultipleComponentIds(allEnvsIds);\n // also check the envId has version, otherwise, it's a core env.\n const nonLocalEnvs = allEnvsCompIds.filter((envId) => !isInWs(envId) && envId.hasVersion());\n if (!nonLocalEnvs.length) {\n throw new BitError(\n `error: unable to update envs ${allEnvsIds\n .map((e) => e.toString())\n .join(', ')}, they're already part of the workspace`\n );\n }\n const envsWithVersions = await mapSeries(nonLocalEnvs, (envId) =>\n getEnvWithVersion(envId.changeVersion(undefined))\n );\n return envsWithVersions;\n };\n const envsWithVerToUpdate = await getEnvs();\n\n const compIdsToUpdate = pattern ? await this.idsByPattern(pattern) : allWsIds;\n const compsToUpdate = await this.getMany(compIdsToUpdate);\n const alreadyUpToDate: ComponentID[] = [];\n const updated: { [envId: string]: ComponentID[] } = {};\n await Promise.all(\n compsToUpdate.map(async (comp) => {\n const compEnvs = compact(\n envsWithVerToUpdate.map((envId) => comp.state.aspects.get(envId.toStringWithoutVersion()))\n );\n if (!compEnvs.length) return;\n const compEnv = compEnvs[0]; // should not be more than one\n const envToUpdate = envsWithVerToUpdate.find((e) => e.isEqual(compEnv.id, { ignoreVersion: true }));\n if (!envToUpdate) throw new Error(`unable to find ${compEnv.id.toString()} in the envs to update`);\n if (compEnv.id.version === envToUpdate.version) {\n // nothing to update\n alreadyUpToDate.push(comp.id);\n return;\n }\n // don't mark with minus if not exist in .bitmap. it's not needed. when the component is loaded, the\n // merge-operation of the aspects removes duplicate aspect-id with different versions.\n await this.removeSpecificComponentConfig(comp.id, compEnv.id.toString(), false);\n await this.addSpecificComponentConfig(comp.id, envToUpdate.toString(), compEnv.config);\n (updated[envToUpdate.toString()] ||= []).push(comp.id);\n })\n );\n await this.bitMap.write();\n return { updated, alreadyUpToDate };\n }\n}\n\n/**\n * this is a super hacky way to do it. problem is that loadAspect is running as onStart hook, where we don't\n * have the CLI fully loaded yet, so we can't get the command from the CLI aspect, we have to retrieve it from\n * process.argv.\n * in general, we don't want every command to try again and again fetching un-built versions. otherwise, every time\n * Bit loads (even bit --help), it'll fetch them and slow down everything.\n * instead, long-running commands and those that need the artifacts from the Version objects, should try to re-fetch.\n */\nfunction shouldReFetchUnBuiltVersion() {\n const commandsToReFetch = ['import'];\n return commandsToReFetch.includes(process.argv[2]);\n}\n\nexport default Workspace;\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { OnComponentChange, OnComponentRemove, OnComponentLoad, OnMultipleComponentsAdd } from './on-component-events';
1
+ import { OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';
2
2
  import workspaceProvider from './workspace.provider';
3
3
  export declare const WorkspaceMain: {
4
4
  name: string;
5
5
  runtime: import("@teambit/harmony").RuntimeDefinition;
6
6
  dependencies: import("@teambit/harmony").Aspect[];
7
- slots: (((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentLoad>) | ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentChange>) | ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentRemove>) | ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnMultipleComponentsAdd>))[];
7
+ slots: (((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentLoad>) | ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentChange>) | ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<OnComponentRemove>))[];
8
8
  provider: typeof workspaceProvider;
9
9
  defineRuntime: string;
10
10
  };
@@ -128,7 +128,7 @@ const WorkspaceMain = {
128
128
  name: _constants().EXT_NAME,
129
129
  runtime: _cli().MainRuntime,
130
130
  dependencies: [_pubsub().PubsubAspect, _cli().CLIAspect, _scope().ScopeAspect, _component().ComponentAspect, _isolator().IsolatorAspect, _dependencyResolver().DependencyResolverAspect, _variants().VariantsAspect, _logger().LoggerAspect, _graphql().GraphqlAspect, _ui().UIAspect, _bundler().BundlerAspect, _aspectLoader().AspectLoaderAspect, _envs().EnvsAspect],
131
- slots: [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()],
131
+ slots: [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()],
132
132
  provider: _workspace2().default,
133
133
  defineRuntime: 'browser'
134
134
  };
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceMain","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\n\nimport { EXT_NAME } from './constants';\nimport {\n OnComponentAdd,\n OnComponentChange,\n OnComponentRemove,\n OnComponentLoad,\n OnMultipleComponentsAdd,\n} from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnMultipleComponentsAdd>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,aAAa,GAAG;EAC3BC,IAAI,EAAEC,qBAAQ;EACdC,OAAO,EAAEC,kBAAW;EACpBC,YAAY,EAAE,CACZC,sBAAY,EACZC,gBAAS,EACTC,oBAAW,EACXC,4BAAe,EACfC,0BAAc,EACdC,8CAAwB,EACxBC,0BAAc,EACdC,sBAAY,EACZC,wBAAa,EACbC,cAAQ,EACRC,wBAAa,EACbC,kCAAkB,EAClBC,kBAAU,CACX;EACDC,KAAK,EAAE,CACLC,eAAI,CAACC,QAAQ,EAAmB,EAChCD,eAAI,CAACC,QAAQ,EAAqB,EAClCD,eAAI,CAACC,QAAQ,EAAkB,EAC/BD,eAAI,CAACC,QAAQ,EAAqB,EAClCD,eAAI,CAACC,QAAQ,EAA2B,CACzC;EACDC,QAAQ,EAAEC,qBAAiB;EAC3BC,aAAa,EAAE;AACjB,CAAC;AAAC;AAEFC,4BAAe,CAACC,UAAU,CAAC1B,aAAa,CAAC;AAAC,eAE3BA,aAAa;AAAA"}
1
+ {"version":3,"names":["WorkspaceMain","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\n\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,aAAa,GAAG;EAC3BC,IAAI,EAAEC,qBAAQ;EACdC,OAAO,EAAEC,kBAAW;EACpBC,YAAY,EAAE,CACZC,sBAAY,EACZC,gBAAS,EACTC,oBAAW,EACXC,4BAAe,EACfC,0BAAc,EACdC,8CAAwB,EACxBC,0BAAc,EACdC,sBAAY,EACZC,wBAAa,EACbC,cAAQ,EACRC,wBAAa,EACbC,kCAAkB,EAClBC,kBAAU,CACX;EACDC,KAAK,EAAE,CACLC,eAAI,CAACC,QAAQ,EAAmB,EAChCD,eAAI,CAACC,QAAQ,EAAqB,EAClCD,eAAI,CAACC,QAAQ,EAAkB,EAC/BD,eAAI,CAACC,QAAQ,EAAqB,CACnC;EACDC,QAAQ,EAAEC,qBAAiB;EAC3BC,aAAa,EAAE;AACjB,CAAC;AAAC;AAEFC,4BAAe,CAACC,UAAU,CAAC1B,aAAa,CAAC;AAAC,eAE3BA,aAAa;AAAA"}
@@ -12,7 +12,7 @@ import { LoggerMain } from '@teambit/logger';
12
12
  import type { ScopeMain } from '@teambit/scope';
13
13
  import { UiMain } from '@teambit/ui';
14
14
  import type { VariantsMain } from '@teambit/variants';
15
- import { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove, OnMultipleComponentsAdd } from './on-component-events';
15
+ import { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';
16
16
  import { WorkspaceExtConfig } from './types';
17
17
  import { Workspace } from './workspace';
18
18
  export declare type WorkspaceDeps = [
@@ -34,11 +34,9 @@ export declare type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;
34
34
  export declare type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;
35
35
  export declare type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;
36
36
  export declare type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;
37
- export declare type OnMultipleComponentsAddSlot = SlotRegistry<OnMultipleComponentsAdd>;
38
- export default function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs,]: WorkspaceDeps, config: WorkspaceExtConfig, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onMultipleComponentsAddSlot,]: [
37
+ export default function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs,]: WorkspaceDeps, config: WorkspaceExtConfig, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot]: [
39
38
  OnComponentLoadSlot,
40
39
  OnComponentChangeSlot,
41
40
  OnComponentAddSlot,
42
- OnComponentRemoveSlot,
43
- OnMultipleComponentsAddSlot
41
+ OnComponentRemoveSlot
44
42
  ], harmony: Harmony): Promise<Workspace | undefined>;
@@ -140,14 +140,14 @@ function _envsUpdate() {
140
140
  };
141
141
  return data;
142
142
  }
143
- async function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs], config, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onMultipleComponentsAddSlot], harmony) {
143
+ async function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs], config, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot], harmony) {
144
144
  var _envsCommand$commands, _envsCommand$commands2, _envsCommand$commands3, _envsCommand$commands4, _scopeCommand$command;
145
145
  const bitConfig = harmony.config.get('teambit.harmony/bit');
146
146
  const consumer = await getConsumer(bitConfig.cwd);
147
147
  if (!consumer) return undefined;
148
148
  // TODO: get the 'workspace' name in a better way
149
149
  const logger = loggerExt.createLogger(_constants().EXT_NAME);
150
- const workspace = new (_workspace().Workspace)(pubsub, config, consumer, scope, component, dependencyResolver, variants, aspectLoader, logger, undefined, harmony, onComponentLoadSlot, onComponentChangeSlot, envs, onComponentAddSlot, onComponentRemoveSlot, onMultipleComponentsAddSlot, graphql);
150
+ const workspace = new (_workspace().Workspace)(pubsub, config, consumer, scope, component, dependencyResolver, variants, aspectLoader, logger, undefined, harmony, onComponentLoadSlot, onComponentChangeSlot, envs, onComponentAddSlot, onComponentRemoveSlot, graphql);
151
151
  const getWorkspacePolicyFromPackageJson = () => {
152
152
  var _workspace$consumer$p;
153
153
  const packageJson = ((_workspace$consumer$p = workspace.consumer.packageJson) === null || _workspace$consumer$p === void 0 ? void 0 : _workspace$consumer$p.packageJsonObject) || {};
@@ -1 +1 @@
1
- {"version":3,"names":["provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onMultipleComponentsAddSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","undefined","logger","createLogger","EXT_NAME","workspace","Workspace","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","id","resolveComponentId","newComponent","state","_consumer","LegacyDependencyResolver","registerOnComponentAutoDetectOverridesGetter","configuredExtensions","legacyFiles","policy","mergeVariantPolicies","depsDataOfMergeConfig","getDepsDataOfMergeConfig","policiesFromMergeConfig","VariantPolicy","fromConfigObject","mergePolices","toLegacyAutoDetectOverrides","ConsumerComponent","registerOnComponentConfigLoading","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","compId","_legacy","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","register","capsuleCmd","CapsuleCmd","commands","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","importCurrentLaneIfMissing","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","forEach","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport type { ComponentMain } from '@teambit/component';\nimport { DependencyResolverMain, VariantPolicy } from '@teambit/dependency-resolver';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport LegacyComponentLoader from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { DependencyResolver as LegacyDependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport {\n OnComponentLoad,\n OnComponentAdd,\n OnComponentChange,\n OnComponentRemove,\n OnMultipleComponentsAdd,\n} from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnMultipleComponentsAddSlot = SlotRegistry<OnMultipleComponentsAdd>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onMultipleComponentsAddSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnMultipleComponentsAddSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) return undefined;\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onMultipleComponentsAddSlot,\n graphql\n );\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n dependencyResolver.registerRootPolicy(getWorkspacePolicyFromPackageJson());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: { loadDocs?: boolean }) => {\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n LegacyDependencyResolver.registerOnComponentAutoDetectOverridesGetter(\n async (configuredExtensions: ExtensionDataList, id: BitId, legacyFiles: SourceFile[]) => {\n let policy = await dependencyResolver.mergeVariantPolicies(configuredExtensions, id, legacyFiles);\n const depsDataOfMergeConfig = workspace.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policiesFromMergeConfig = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, 'auto');\n policy = VariantPolicy.mergePolices([policy, policiesFromMergeConfig]);\n }\n return policy.toLegacyAutoDetectOverrides();\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n const compId = await workspace.resolveComponentId(legacyEntry.extensionId);\n legacyEntry.extensionId = compId._legacy;\n legacyEntry.newExtensionId = compId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n graphql.register(workspaceSchema);\n const capsuleCmd = new CapsuleCmd();\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace),\n new CapsuleCreateCmd(workspace, isolator),\n new CapsuleDeleteCmd(isolator, workspace),\n ];\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async () => {\n await workspace.importCurrentLaneIfMissing();\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'workspace.cli.registerOnStart'\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":";;;;;;;;;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AASA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AASA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AA4Be,eAAeA,gBAAgB,CAC5C,CACEC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,kBAAkB,EAClBC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,EAAE,EACFC,OAAO,EACPC,YAAY,EACZC,IAAI,CACU,EAChBC,MAA0B,EAC1B,CACEC,mBAAmB,EACnBC,qBAAqB,EACrBC,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,CAO5B,EACDC,OAAgB,EAChB;EAAA;EACA,MAAMC,SAAc,GAAGD,OAAO,CAACN,MAAM,CAACQ,GAAG,CAAC,qBAAqB,CAAC;EAChE,MAAMC,QAAQ,GAAG,MAAMC,WAAW,CAACH,SAAS,CAACI,GAAG,CAAC;EACjD,IAAI,CAACF,QAAQ,EAAE,OAAOG,SAAS;EAC/B;EACA,MAAMC,MAAM,GAAGnB,SAAS,CAACoB,YAAY,CAACC,qBAAQ,CAAC;EAC/C,MAAMC,SAAS,GAAG,KAAIC,sBAAS,EAC7B9B,MAAM,EACNa,MAAM,EACNS,QAAQ,EACRpB,KAAK,EACLC,SAAS,EACTE,kBAAkB,EAClBC,QAAQ,EACRK,YAAY,EACZe,MAAM,EACND,SAAS,EACTN,OAAO,EACPL,mBAAmB,EACnBC,qBAAqB,EACrBH,IAAI,EACJI,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BV,OAAO,CACR;EAED,MAAMuB,iCAAiC,GAAG,MAAM;IAAA;IAC9C,MAAMC,WAAW,GAAG,0BAAAH,SAAS,CAACP,QAAQ,CAACU,WAAW,0DAA9B,sBAAgCC,iBAAiB,KAAI,CAAC,CAAC;IAC3E,MAAMC,qBAAqB,GAAG7B,kBAAkB,CAAC0B,iCAAiC,CAACC,WAAW,CAAC;IAC/F,OAAOE,qBAAqB;EAC9B,CAAC;EAED7B,kBAAkB,CAAC8B,kBAAkB,CAACJ,iCAAiC,EAAE,CAAC;EAE1ET,QAAQ,CAACc,YAAY,CAACC,IAAI,CAAC,MAAMR,SAAS,CAACS,UAAU,EAAE,CAAC;EAExDC,0BAAqB,CAACC,iCAAiC,CACrD,OAAOC,eAAkC,EAAEC,IAA6B,KAAK;IAC3E,MAAMC,EAAE,GAAG,MAAMd,SAAS,CAACe,kBAAkB,CAACH,eAAe,CAACE,EAAE,CAAC;IACjE,MAAME,YAAY,GAAG,MAAMhB,SAAS,CAACR,GAAG,CAACsB,EAAE,EAAEF,eAAe,EAAE,IAAI,EAAE,IAAI,EAAEC,IAAI,CAAC;IAC/E,OAAOG,YAAY,CAACC,KAAK,CAACC,SAAS;EACrC,CAAC,CACF;EAEDC,yCAAwB,CAACC,4CAA4C,CACnE,OAAOC,oBAAuC,EAAEP,EAAS,EAAEQ,WAAyB,KAAK;IACvF,IAAIC,MAAM,GAAG,MAAM/C,kBAAkB,CAACgD,oBAAoB,CAACH,oBAAoB,EAAEP,EAAE,EAAEQ,WAAW,CAAC;IACjG,MAAMG,qBAAqB,GAAGzB,SAAS,CAAC0B,wBAAwB,CAACZ,EAAE,CAAC;IACpE,IAAIW,qBAAqB,EAAE;MACzB,MAAME,uBAAuB,GAAGC,mCAAa,CAACC,gBAAgB,CAACJ,qBAAqB,EAAE,MAAM,CAAC;MAC7FF,MAAM,GAAGK,mCAAa,CAACE,YAAY,CAAC,CAACP,MAAM,EAAEI,uBAAuB,CAAC,CAAC;IACxE;IACA,OAAOJ,MAAM,CAACQ,2BAA2B,EAAE;EAC7C,CAAC,CACF;EAEDC,oBAAiB,CAACC,gCAAgC,CAAClC,qBAAQ,EAAE,MAAOe,EAAE,IAAK;IACzE,MAAMoB,WAAW,GAAG,MAAMlC,SAAS,CAACe,kBAAkB,CAACD,EAAE,CAAC;IAC1D;IACA;IACA;IACA,MAAMqB,kBAAkB,GAAG,MAAMnC,SAAS,CAAC3B,KAAK,CAACmB,GAAG,CAAC0C,WAAW,CAAC;IACjE,MAAM;MAAEE;IAAW,CAAC,GAAG,MAAMpC,SAAS,CAACqC,mBAAmB,CAACH,WAAW,EAAEC,kBAAkB,CAAC;IAC3F,MAAMG,YAAY,GAAG,MAAMtC,SAAS,CAACuC,qBAAqB,CAACL,WAAW,CAAC;IAEvE,MAAMM,wBAAwB,GAAGJ,UAAU,CAACK,GAAG,CAAC,MAAOC,SAAS,IAAK;MACnE,MAAMC,WAAW,GAAGD,SAAS,CAACE,KAAK,EAAE;MACrC,IAAID,WAAW,CAACE,WAAW,EAAE;QAC3B,MAAMC,MAAM,GAAG,MAAM9C,SAAS,CAACe,kBAAkB,CAAC4B,WAAW,CAACE,WAAW,CAAC;QAC1EF,WAAW,CAACE,WAAW,GAAGC,MAAM,CAACC,OAAO;QACxCJ,WAAW,CAACK,cAAc,GAAGF,MAAM;MACrC;MAEA,OAAOH,WAAW;IACpB,CAAC,CAAC;IACF,MAAMM,uBAAuB,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACX,wBAAwB,CAAC;IAE3E,OAAO;MACLF,YAAY;MACZF,UAAU,EAAEgB,kCAAiB,CAACC,SAAS,CAACJ,uBAAuB;IACjE,CAAC;EACH,CAAC,CAAC;EAEF,MAAMK,eAAe,GAAG,IAAAC,qBAAkB,EAACvD,SAAS,EAAErB,OAAO,CAAC;EAC9DC,EAAE,CAAC4E,cAAc,CAAC,KAAIC,6BAAe,EAACzD,SAAS,EAAEnB,OAAO,CAAC,CAAC;EAC1DF,OAAO,CAAC+E,QAAQ,CAACJ,eAAe,CAAC;EACjC,MAAMK,UAAU,GAAG,KAAIC,qBAAU,GAAE;EACnCD,UAAU,CAACE,QAAQ,GAAG,CACpB,KAAIC,yBAAc,EAACvF,QAAQ,EAAEyB,SAAS,CAAC,EACvC,KAAI+D,2BAAgB,EAAC/D,SAAS,EAAEzB,QAAQ,CAAC,EACzC,KAAIyF,2BAAgB,EAACzF,QAAQ,EAAEyB,SAAS,CAAC,CAC1C;EACD,MAAM6D,QAAqB,GAAG,CAAC,KAAII,oBAAY,EAACjE,SAAS,CAAC,EAAE2D,UAAU,EAAE,KAAIO,aAAM,EAAClE,SAAS,CAAC,CAAC;EAE9F6D,QAAQ,CAACrD,IAAI,CAAC,KAAI2D,yBAAc,EAACnE,SAAS,CAAC,CAAC;EAC5C5B,GAAG,CAACsF,QAAQ,CAAC,GAAGG,QAAQ,CAAC;EACzBvF,SAAS,CAAC8F,YAAY,CAACpE,SAAS,CAAC;EAEjC5B,GAAG,CAACiG,eAAe,CAAC,YAAY;IAC9B,MAAMrE,SAAS,CAACsE,0BAA0B,EAAE;IAC5C,MAAMC,OAAO,GAAG,MAAMvE,SAAS,CAACwE,WAAW,CACzC1F,YAAY,CAAC2F,gCAAgC,EAAE,EAC/C7E,SAAS,EACT,+BAA+B,CAChC;IACD;IACA,MAAM8E,YAAY,GAAG,MAAM1E,SAAS,CAAC2E,2BAA2B,CAACJ,OAAO,CAAC;IACzEG,YAAY,CAACE,OAAO,CAAE9D,EAAE,IAAK;MAC3Bd,SAAS,CAAC6E,mBAAmB,CAAC/D,EAAE,CAAC;IACnC,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;EACA,MAAMgE,WAAW,GAAG1G,GAAG,CAAC2G,UAAU,CAAC,MAAM,CAAC;EAC1CD,WAAW,aAAXA,WAAW,gDAAXA,WAAW,CAAEjB,QAAQ,0DAArB,sBAAuBrD,IAAI,CAAC,KAAIwE,qBAAU,EAAChF,SAAS,CAAC,CAAC,CAAC,CAAC;EACxD8E,WAAW,aAAXA,WAAW,iDAAXA,WAAW,CAAEjB,QAAQ,2DAArB,uBAAuBrD,IAAI,CAAC,KAAIyE,yBAAY,EAACjF,SAAS,CAAC,CAAC,CAAC,CAAC;EAC1D8E,WAAW,aAAXA,WAAW,iDAAXA,WAAW,CAAEjB,QAAQ,2DAArB,uBAAuBrD,IAAI,CAAC,KAAI0E,6BAAc,EAAClF,SAAS,CAAC,CAAC,CAAC,CAAC;EAC5D8E,WAAW,aAAXA,WAAW,iDAAXA,WAAW,CAAEjB,QAAQ,2DAArB,uBAAuBrD,IAAI,CAAC,KAAI2E,2BAAa,EAACnF,SAAS,CAAC,CAAC,CAAC,CAAC;;EAE3D;EACA,MAAMoF,YAAY,GAAGhH,GAAG,CAAC2G,UAAU,CAAC,OAAO,CAAC;EAC5CK,YAAY,aAAZA,YAAY,gDAAZA,YAAY,CAAEvB,QAAQ,0DAAtB,sBAAwBrD,IAAI,CAAC,KAAI6E,uBAAW,EAACrF,SAAS,CAAC,CAAC;EAExD,OAAOA,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeN,WAAW,CAAC4F,IAAa,EAAiC;EACvE,OAAO,IAAAC,+BAAmB,EAACD,IAAI,CAAC;AAClC"}
1
+ {"version":3,"names":["provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","undefined","logger","createLogger","EXT_NAME","workspace","Workspace","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","id","resolveComponentId","newComponent","state","_consumer","LegacyDependencyResolver","registerOnComponentAutoDetectOverridesGetter","configuredExtensions","legacyFiles","policy","mergeVariantPolicies","depsDataOfMergeConfig","getDepsDataOfMergeConfig","policiesFromMergeConfig","VariantPolicy","fromConfigObject","mergePolices","toLegacyAutoDetectOverrides","ConsumerComponent","registerOnComponentConfigLoading","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","compId","_legacy","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","register","capsuleCmd","CapsuleCmd","commands","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","importCurrentLaneIfMissing","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","forEach","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport type { ComponentMain } from '@teambit/component';\nimport { DependencyResolverMain, VariantPolicy } from '@teambit/dependency-resolver';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport LegacyComponentLoader from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { DependencyResolver as LegacyDependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) return undefined;\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n onComponentAddSlot,\n onComponentRemoveSlot,\n graphql\n );\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n dependencyResolver.registerRootPolicy(getWorkspacePolicyFromPackageJson());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: { loadDocs?: boolean }) => {\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n LegacyDependencyResolver.registerOnComponentAutoDetectOverridesGetter(\n async (configuredExtensions: ExtensionDataList, id: BitId, legacyFiles: SourceFile[]) => {\n let policy = await dependencyResolver.mergeVariantPolicies(configuredExtensions, id, legacyFiles);\n const depsDataOfMergeConfig = workspace.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policiesFromMergeConfig = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, 'auto');\n policy = VariantPolicy.mergePolices([policy, policiesFromMergeConfig]);\n }\n return policy.toLegacyAutoDetectOverrides();\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n const compId = await workspace.resolveComponentId(legacyEntry.extensionId);\n legacyEntry.extensionId = compId._legacy;\n legacyEntry.newExtensionId = compId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n graphql.register(workspaceSchema);\n const capsuleCmd = new CapsuleCmd();\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace),\n new CapsuleCreateCmd(workspace, isolator),\n new CapsuleDeleteCmd(isolator, workspace),\n ];\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async () => {\n await workspace.importCurrentLaneIfMissing();\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'workspace.cli.registerOnStart'\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "0.0.989",
3
+ "version": "0.0.991",
4
4
  "homepage": "https://bit.dev/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "0.0.989"
9
+ "version": "0.0.991"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -30,52 +30,52 @@
30
30
  "@teambit/design.ui.surfaces.menu.link-item": "1.0.0",
31
31
  "@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
32
32
  "@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
33
- "@teambit/component": "0.0.989",
34
- "@teambit/dependency-resolver": "0.0.989",
35
- "@teambit/envs": "0.0.989",
33
+ "@teambit/component": "0.0.991",
34
+ "@teambit/dependency-resolver": "0.0.991",
35
+ "@teambit/envs": "0.0.991",
36
36
  "@teambit/legacy-bit-id": "0.0.423",
37
37
  "@teambit/bit-error": "0.0.402",
38
38
  "@teambit/component-id": "0.0.427",
39
- "@teambit/lane-id": "0.0.181",
40
- "@teambit/logger": "0.0.757",
41
- "@teambit/scope": "0.0.989",
42
- "@teambit/graph": "0.0.989",
43
- "@teambit/cli": "0.0.664",
44
- "@teambit/isolator": "0.0.989",
45
- "@teambit/component-tree": "0.0.777",
39
+ "@teambit/lane-id": "0.0.182",
40
+ "@teambit/logger": "0.0.758",
41
+ "@teambit/scope": "0.0.991",
42
+ "@teambit/graph": "0.0.991",
43
+ "@teambit/cli": "0.0.665",
44
+ "@teambit/isolator": "0.0.991",
45
+ "@teambit/component-tree": "0.0.779",
46
46
  "@teambit/component.ui.component-status-resolver": "0.0.504",
47
- "@teambit/lanes.hooks.use-lanes": "0.0.127",
47
+ "@teambit/lanes.hooks.use-lanes": "0.0.128",
48
48
  "@teambit/harmony.modules.resolved-component": "0.0.491",
49
- "@teambit/compiler": "0.0.989",
50
- "@teambit/graphql": "0.0.989",
51
- "@teambit/aspect-loader": "0.0.989",
52
- "@teambit/bundler": "0.0.989",
53
- "@teambit/pubsub": "0.0.989",
54
- "@teambit/ui": "0.0.989",
55
- "@teambit/variants": "0.0.769",
49
+ "@teambit/compiler": "0.0.991",
50
+ "@teambit/graphql": "0.0.991",
51
+ "@teambit/aspect-loader": "0.0.991",
52
+ "@teambit/bundler": "0.0.991",
53
+ "@teambit/pubsub": "0.0.991",
54
+ "@teambit/ui": "0.0.991",
55
+ "@teambit/variants": "0.0.770",
56
56
  "@teambit/component-issues": "0.0.88",
57
- "@teambit/config": "0.0.677",
57
+ "@teambit/config": "0.0.678",
58
58
  "@teambit/harmony.modules.requireable-component": "0.0.491",
59
59
  "@teambit/workspace.modules.match-pattern": "0.0.498",
60
- "@teambit/workspace.modules.node-modules-linker": "0.0.7",
61
- "@teambit/component.ui.component-drawer": "0.0.222",
60
+ "@teambit/workspace.modules.node-modules-linker": "0.0.9",
61
+ "@teambit/component.ui.component-drawer": "0.0.223",
62
62
  "@teambit/design.ui.tree": "0.0.16",
63
- "@teambit/lanes.hooks.use-lane-components": "0.0.126",
64
- "@teambit/lanes.ui.models.lanes-model": "0.0.89",
65
- "@teambit/ui-foundation.ui.side-bar": "0.0.739",
66
- "@teambit/command-bar": "0.0.989",
67
- "@teambit/component.ui.component-filters.component-filter-context": "0.0.96",
68
- "@teambit/component.ui.component-filters.deprecate-filter": "0.0.96",
69
- "@teambit/component.ui.component-filters.env-filter": "0.0.102",
70
- "@teambit/component.ui.component-filters.show-main-filter": "0.0.89",
71
- "@teambit/sidebar": "0.0.989",
63
+ "@teambit/lanes.hooks.use-lane-components": "0.0.127",
64
+ "@teambit/lanes.ui.models.lanes-model": "0.0.90",
65
+ "@teambit/ui-foundation.ui.side-bar": "0.0.740",
66
+ "@teambit/command-bar": "0.0.991",
67
+ "@teambit/component.ui.component-filters.component-filter-context": "0.0.97",
68
+ "@teambit/component.ui.component-filters.deprecate-filter": "0.0.97",
69
+ "@teambit/component.ui.component-filters.env-filter": "0.0.103",
70
+ "@teambit/component.ui.component-filters.show-main-filter": "0.0.90",
71
+ "@teambit/sidebar": "0.0.991",
72
72
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.497",
73
73
  "@teambit/ui-foundation.ui.menu": "0.0.497",
74
74
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501",
75
75
  "@teambit/ui-foundation.ui.tree.drawer": "0.0.511",
76
76
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.500",
77
- "@teambit/component-descriptor": "0.0.233",
78
- "@teambit/deprecation": "0.0.989",
77
+ "@teambit/component-descriptor": "0.0.234",
78
+ "@teambit/deprecation": "0.0.991",
79
79
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.498",
80
80
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.206",
81
81
  "@teambit/ui-foundation.ui.corner": "0.0.508",
@@ -102,7 +102,7 @@
102
102
  "peerDependencies": {
103
103
  "react-router-dom": "^6.0.0",
104
104
  "@apollo/client": "^3.6.0",
105
- "@teambit/legacy": "1.0.445",
105
+ "@teambit/legacy": "1.0.446",
106
106
  "react": "^16.8.0 || ^17.0.0",
107
107
  "react-dom": "^16.8.0 || ^17.0.0"
108
108
  },