@teambit/workspace 1.0.838 → 1.0.840

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["_commentJson","data","require","_pMapSeries","_interopRequireDefault","_pMap","_graph","_dependenciesModules","_component","_bitError","_dependencyResolver","_envs","_workspaceModules","_componentId","_legacyBitId","_legacy","_legacy2","_harmonyModules","_legacy3","_legacy4","_toolboxPath","_toolboxPath2","_fsExtra","_lodash","_legacy5","_path","_legacy6","_component2","_legacy7","_legacy8","_scope","_componentVersion","_componentConfigFile","_componentStatus","_workspaceComponentLoader","_buildGraphFromFs","_bitMap","_workspace","_buildGraphIdsFromFs","_aspectsMerger","_workspaceAspectsLoader","_mergeConfigConflict","_compFiles","_filter","_componentStatusLoader","_autoTag","_configStore","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectSpecificField","exports","ComponentAdded","ComponentChanged","ComponentRemoved","DEFAULT_VENDOR_DIR","Workspace","constructor","config","consumer","scope","componentAspect","dependencyResolver","variants","aspectLoader","logger","harmony","onComponentLoadSlot","onComponentChangeSlot","envs","globalConfig","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","graphql","onBitmapChangeSlot","onWorkspaceConfigChangeSlot","configStore","componentLoadedSelfAsAspects","createInMemoryCache","maxSize","getMaxSizeForComponents","componentLoader","WorkspaceComponentLoader","validateConfig","bitMap","BitMap","aspectsMerger","AspectsMerger","Filter","componentStatusLoader","ComponentStatusLoader","isLegacy","isEmpty","BitError","defaultScope","isValidScopeName","InvalidScopeName","componentList","_componentList","ComponentsList","path","getPath","rootComponentsPath","baseDir","rootComponentsDirectory","join","modulesPath","BIT_ROOTS_DIR","registerOnComponentLoad","loadFn","register","registerOnComponentChange","onComponentChangeFunc","registerOnComponentAdd","onComponentAddFunc","registerOnComponentRemove","onComponentRemoveFunc","registerOnBitmapChange","OnBitmapChangeFunc","registerOnWorkspaceConfigChange","onWorkspaceConfigChangeFunc","registerOnAspectsResolve","onAspectsResolveFunc","registerOnRootAspectAdded","onRootAspectAddedFunc","name","tokenizedPath","split","icon","getConfigStore","list","getWorkspaceConfig","extension","ConfigStoreAspect","id","set","key","setExtension","ignoreVersion","mergeIntoExisting","del","current","overrideExisting","write","reasonForChange","invalidateCache","getAutoTagInfo","changedComponents","listAutoTagPendingComponentIds","componentsList","modifiedComponents","modified","map","c","newComponents","listNewComponents","autoTagPending","getAutoTagPending","ComponentIdList","fromArray","localOnly","listLocalOnly","comps","autoTagComp","has","componentId","hasModifiedDependencies","component","listAutoTagPendingComponents","isAutoTag","find","isEqualWithoutVersion","getComponentIssues","state","_consumer","issues","getComponentStatus","status","getComponentStatusById","ComponentStatus","fromLegacy","isOutdated","loadOpts","loadOptsWithDefaults","assign","ids","getAllIdsAvailableOnLane","idsToGet","limit","slice","offset","getMany","listWithInvalid","legacyIds","listInvalid","getInvalid","listIds","bitmapIdsFromCurrentLane","listIdsIncludeRemoved","bitmapIdsFromCurrentLaneIncludeRemoved","hasId","opts","includeDeleted","hasWithoutVersion","filterIds","workspaceIds","wsId","isEqual","hasVersion","hasName","Boolean","fullName","hasIdNested","includeCache","found","components","modifiedIncludeNulls","mapSeries","isModified","compact","componentIds","newComponentIds","allIds","locallyDeletedIds","listLocallySoftRemoved","duringMergeIds","duringMerge","listDuringMergeStateComponents","resolveMultipleComponentIds","getAllComponentIds","listTagPendingIds","removedComponents","allIdsUniq","uniqBy","toString","listPotentialTagIds","deletedIds","allIdsWithoutDeleted","getNewAndModifiedIds","newAndModified","getLogs","shortHash","startsFrom","getGraph","shouldThrowOnMissingDep","buildOneGraphForComponents","undefined","getGraphIds","graphIdsFromFsBuilder","GraphIdsFromFsBuilder","buildGraph","getUnavailableOnMainComponents","currentLaneId","getCurrentLaneId","isDefault","getAllBitIdsFromAllLanes","availableIds","unavailableIds","removedIds","getRemoved","compsWithHead","Promise","all","modelComp","legacyScope","getModelComponentIfExist","head","getDependencies","getSavedGraphOfComponentIfExist","flattenedEdges","getFlattenedEdges","versionObj","getBitObjectVersionById","flattenedDependencies","flattenedBitIdCompIdMap","getCurrentVersionAsTagIfPossible","currentVer","version","isCurrentVerAHash","isHash","tag","tags","byHash","raw","currentVersion","changeVersion","bitId","getCompIdByIdStr","idStr","compId","suggestWrongSnap","toStringWithoutVersion","Error","nodes","values","edges","edge","source","target","graph","Graph","node","setNode","Node","setEdge","Edge","type","getDependentsIds","filterOutNowWorkspaceIds","dependents","predecessors","nodeFilter","attr","flat","uniqFromArray","createAspectList","extensionDataList","entiresP","entry","extensionDataEntryToAspectEntry","entries","createAspectListFromEntries","dataEntry","AspectEntry","resolveComponentId","getLegacyMinimal","componentMap","getComponent","ConsumerComponent","loadFromFileSystem","getFilesModification","bitMapEntry","getBitmapEntry","compDir","getComponentDir","compDirAbs","sourceFilesVinyls","files","file","filePath","relativePath","SourceFile","load","repo","objects","getModelFiles","verObj","loadVersion","CompFiles","get","legacyComponent","useCache","storeInCache","trace","tryLoadAsAspect","isUsingEnvEnv","isCoreAspect","isAspectLoaded","debug","loadAspects","hideMissingModuleError","delete","getConfiguredUserAspectsPackages","options","workspaceAspectsLoader","getWorkspaceAspectsLoader","clearCache","resetFailedLoadAspects","skipClearFailedToLoadEnvs","resetFailedToLoadEnvs","clearAllComponentsCache","clearComponentsCache","clearComponentCache","clearOneComponentCache","warmCache","workspaceConfig","cleanFromConfig","wereIdsRemoved","removeExtension","hasChanged","some","isRemoved","removeFromStagedConfig","stagedConfig","getStagedConfig","removeComponentConfig","triggerOnComponentChange","removedFiles","watchOpts","onChangeEntries","toArray","results","onChangeFunc","onChangeResult","extensionId","pubsub","publish","componentChanged","triggerOnComponentAdd","loadOptions","onAddEntries","filesystem","onAddFunc","onAddResult","componentAdded","triggerOnComponentRemove","onRemoveEntries","onRemoveFunc","onRemoveResult","componentRemoved","toObject","triggerOnBitmapChange","onBitmapChangeEntries","onBitmapChangeFunc","triggerOnWorkspaceConfigChange","reloadWorkspaceConfig","configOfWorkspaceAspect","extensions","findExtension","WorkspaceAspect","configOfDepResolverAspect","DependencyResolverAspect","setConfig","onWorkspaceConfigChangeEntries","onWorkspaceConfigFunc","getState","hash","getSnap","getCurrentLaneObject","isOnMain","isOnLane","getCurrentRemoteLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","lanes","importLanes","err","ScopeNotFoundOrDenied","LaneNotFound","InvalidScopeNameFromRemote","bitMapLaneId","getExportedLaneId","clearStatusLine","warn","message","getDefaultExtensions","ExtensionDataList","fromConfigObject","getComponentConfigVinylFile","excludeLocalChanges","getExtensionsFromScopeAndSpecific","aspects","removeEnvVersionIfExistsLocally","componentDir","relative","configFile","ComponentConfigFile","propagate","toVinylFile","env","EnvsAspect","envAspect","envExtId","ejectMultipleConfigs","vinylFiles","EjectConfResult","configPath","dataToPersist","DataToPersist","addManyFiles","addBasePath","persistAllToFS","removeEntireConfig","getAspectConfigForComponent","aspectId","obj","toConfigObject","excludeComponentJson","componentFromScope","exclude","componentExtensions","byPattern","pattern","finalPattern","targetIds","spec","isMatchNamespacePatternItem","match","hasPattern","strArr","str","isPattern","specialSyntax","char","includes","idsByPattern","throwForNoMatch","isId","MissingBitMapComponent","filterIdsFromPoolIdsByPattern","by","bind","getComponentsByUserInput","includeDependents","loadExtensions","loadSeedersAsAspects","executeLoadSlot","newAndModifiedIds","comp","dependentsIds","dependentsIdsFiltered","_","getComponentsUsingEnv","throwIfNotFound","allComps","availableEnvs","foundComps","envId","getEnvId","envWithoutVersion","envIdFromConfig","getEnvIdFromEnvsConfig","uniq","throwOnFailure","getManyByLegacy","getIfExist","exists","getIdIfExist","mergeBitmaps","bitmapContent","otherBitmapContent","importAndGetMany","reason","throwOnError","lane","importCurrentLaneIfMissing","import","reFetchUnBuiltVersion","shouldReFetchUnBuiltVersion","preferDependencyGraph","getOutdatedIdsAgainstGit","fs","pathExists","bitmapIds","outdatedIds","pMap","bitmapId","modelComponent","hasTag","concurrency","importObjectsIfOutdatedAgainstBitmap","importCurrentObjects","setStatusLine","compIds","scopeComponentsImporter","hasScope","importWithoutDeps","toVersionLatest","cache","includeVersionHistory","fetchHeadIfLocalIsBehind","ignoreMissingHead","importMany","throwForSeederNotFound","laneId","laneObj","info","writeObjectsToTheFS","getExportedFrom","toBitIds","use","aspectIdStr","unuse","rootPath","pathToWrite","outputFile","contents","bitMapOptions","componentDirFromLegacyId","componentPackageDir","packageName","componentPackageName","packageDir","toAbsolutePath","getPackageName","relativeComponentDir","componentDirToAbsolute","componentDefaultScope","componentDefaultScopeFromComponentDirAndName","bitMapId","getExistingBitId","componentDefaultScopeFromComponentDirAndNameWithoutConfigFile","variantConfig","byRootDirAndName","isVendor","isVendorComponentByComponentDir","excludeOrigins","optsWithDefaults","mergeRes","merge","getEnvIdFromEnvsLegacyExtensions","loadComponentsExtensions","warnAboutMisconfiguredEnv","getCoreEnvsIds","warnedAboutMisconfiguredEnvs","parsedEnvId","consoleWarning","getConfigMergeFilePath","MergeConfigFilename","getConflictMergeFile","mergeConflictFile","getDepsDataOfMergeConfig","getWorkspaceJsonConflictFromMergeConfig","configMergeFile","conflict","getConflictParsed","MergeConfigConflict","error","getWorkspaceIssues","errors","listComponentsDuringMerge","unmergedComps","unmergedComponents","getComponents","bitIds","u","ComponentID","fromObject","getUnmergedComponent","unmerged","getEntry","consumerComp","_isModified","componentStatus","isModifiedOrNew","isExported","notExported","getNotExportedIds","setDefaultScopeToComponents","scopeName","compIdsStr","setDefaultScope","includeComponents","updateDefaultScope","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","componentConfigFile","addAspect","override","existingConfig","addComponentConfig","removeSpecificComponentConfig","markWithMinusIfNotExist","removeAspect","getAspectIdFromConfig","ignoreAspectVersion","aspectEntry","getSpecificComponentConfig","vendorDir","vendor","directory","isPathInside","componentConfigFileFromComponentDirAndName","getComponentIdByPath","componentPath","isAbsolute","linuxPath","pathNormalizeToLinux","absComponentDir","neededFor","originatedFrom","ignoreIds","shouldLoadFunc","graphFromFsBuilder","GraphFromFsBuilder","resolveAspects","runtimeName","getTempDir","PREFIX","cacheDir","existsSync","mkdirSync","recursive","resolveEnvsFromRoots","resolveEnvsFromRootsConfig","getConfig","CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS","defaultResolveEnvsFromRoots","WorkspaceAspectsLoader","resolveAspectsFromNodeModules","getCapsulePath","shouldUseHashForCapsules","_reloadConsumer","loadConsumer","getComponentPackagePath","getRuntimeModulePath","workspacePath","isInWorkspace","defaultDirectory","legacyDefaultDirectory","resolveComponentIdFromPackageName","keepOriginalVersion","startsWith","errMsgPrefix","fromPackageJson","resolveComponentIdFromPackageJsonInNM","fromRegistryManifest","resolveComponentIdFromRegistryManifest","fromWsComponents","resolveComponentIdFromWsComponents","foundByName","idsToSearch","currPackageName","manifest","fetchFullPackageManifest","pkgJsonPath","pkgJson","readJson","BitId","getDefaultScope","fromString","legacyId","getParsedIdIfExist","shouldSearchWithoutScopeInProvidedId","idWithVersion","idWithoutVersion","_bitMapId","_bitMapIdWithoutVersion","_bitMapIdWithVersion","endsWith","defaultScopeForBitmapId","getFromBitmapAddDefaultScope","_bitmapIdWithVersionForSource","fromScope","resolveIdWithDefaultScope","searchWithoutVersion","changeScope","resolveExtensionsList","resolveMergedExtensionsP","extensionEntry","resolvedId","setEnvToComponents","verifyEnv","envStrWithPossiblyVersion","resolveEnvIdWithPotentialVersionForConfig","envComp","isEnv","envIdStrNoVersion","unsetEnvFromComponents","isCore","existsOnWorkspace","resolveEnvManifest","envExtendsDeps","isCoreEnv","splitted","envIdWithVersion","foundEnv","dep","resolvedEnvComponentId","envComponent","VersionNotFoundOnFS","getRemoteComponent","alreadyResolved","getEnvManifest","envJson","envManifest","parse","changed","unchanged","envsAspect","findCoreExtension","rawConfig","currentEnv","REMOVE_EXTENSION_SPECIAL_SIGN","currentEnvWithPotentialVersion","updateEnvForComponents","envIdStr","allWsComps","allWsIds","isInWs","allEnvs","createEnvironment","getEnvWithVersion","currentLane","isDeletedOnLane","isDeleted","fromRemote","getEnvs","envCompId","envWithVer","allEnvsIds","runtimeEnvs","allEnvsCompIds","nonCoreEnvs","envsWithVersions","envsWithVerToUpdate","compIdsToUpdate","compsToUpdate","alreadyUpToDate","updated","compEnvs","compEnv","envToUpdate","envIsInWs","getComponentPathsRegExps","componentPathsRegExps","setComponentPathsRegExps","workspaceComponents","workspacePackageNames","packageManager","packageManagerName","isPnpmEnabled","pathsExcluding","generateNodeModulesPattern","packages","PatternTarget","WEBPACK","stringPattern","RegExp","getInjectedDirs","relativeCompDir","getAutoDetectOverrides","configuredExtensions","legacyFiles","envExtendedDeps","policy","mergeVariantPolicies","depsDataOfMergeConfig","policiesFromMergeConfig","VariantPolicy","mergePolices","toLegacyAutoDetectOverrides","getAutoDetectConfigMerge","getManyComponentsStatuses","setLocalOnly","staged","unsetLocalOnly","successfullyUnset","writeDependencies","writeDependenciesToPackageJson","writeDependenciesToWorkspaceJsonc","allDeps","getAllDedupedDirectDependencies","updatedWorkspacePolicyEntries","dependencyId","currentRange","lifecycleType","addToRootPolicy","updateExisting","persistConfig","externalPackageManagerIsUsed","externalPackageManager","dependencies","PackageJsonFile","packageJsonObject","componentPolicies","getComponentsWithDependencyPolicies","variantPoliciesByPatterns","variantPatternsToDepPolicesDict","variantPatterns","variantPattern","allComponentIds","index","depResolverConfig","commandsToReFetch","process","argv","_default"],"sources":["workspace.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { parse } from 'comment-json';\nimport mapSeries from 'p-map-series';\nimport pMap from 'p-map';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport type { IssuesList } from '@teambit/component-issues';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { generateNodeModulesPattern, PatternTarget } from '@teambit/dependencies.modules.packages-excluder';\nimport type {\n ComponentMain,\n Component,\n ComponentFactory,\n InvalidComponent,\n ResolveAspectsOptions,\n AspectList,\n} from '@teambit/component';\nimport { AspectEntry } from '@teambit/component';\nimport { BitError } from '@teambit/bit-error';\nimport type { ComponentScopeDirMap, ConfigMain, WorkspaceConfig } from '@teambit/config';\nimport type {\n CurrentPkg,\n DependencyResolverMain,\n DependencyList,\n VariantPolicyConfigObject,\n VariantPolicyConfigArr,\n WorkspacePolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, VariantPolicy } from '@teambit/dependency-resolver';\nimport type { EnvsMain, EnvJsonc } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport type { Harmony } from '@teambit/harmony';\nimport type { Logger } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport type { VariantsMain } from '@teambit/variants';\nimport type { ComponentIdObj } from '@teambit/component-id';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { InvalidScopeName, InvalidScopeNameFromRemote, isValidScopeName, BitId } from '@teambit/legacy-bit-id';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { loadConsumer } from '@teambit/legacy.consumer';\nimport type { GetBitMapComponentOptions } from '@teambit/legacy.bit-map';\nimport { MissingBitMapComponent } from '@teambit/legacy.bit-map';\nimport type { InMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\nimport { getMaxSizeForComponents, createInMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport type { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport { ExtensionDataList, REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy.extension-data';\nimport type { PathOsBased, PathOsBasedRelative, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport { isPathInside } from '@teambit/toolbox.path.is-path-inside';\nimport fs from 'fs-extra';\nimport type { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport { slice, isEmpty, merge, compact, uniqBy, uniq } from 'lodash';\nimport { MergeConfigFilename, BIT_ROOTS_DIR, CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS } from '@teambit/legacy.constants';\nimport path from 'path';\nimport type { Dependency as LegacyDependency } from '@teambit/legacy.consumer-component';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { WatchOptions } from '@teambit/watcher';\nimport type { ComponentLog, Lane } from '@teambit/objects';\nimport type { JsonVinyl } from '@teambit/component.sources';\nimport { SourceFile, DataToPersist, PackageJsonFile } from '@teambit/component.sources';\nimport { ScopeComponentsImporter, VersionNotFoundOnFS } from '@teambit/legacy.scope';\nimport { LaneNotFound } from '@teambit/legacy.scope-api';\nimport { ScopeNotFoundOrDenied } from '@teambit/scope.remotes';\nimport { isHash } from '@teambit/component-version';\nimport type { GlobalConfigMain } from '@teambit/global-config';\nimport { ComponentConfigFile } from './component-config-file';\nimport type {\n OnComponentAdd,\n OnComponentChange,\n OnComponentEventResult,\n OnComponentLoad,\n OnComponentRemove,\n SerializableResults,\n} from './on-component-events';\nimport type { WorkspaceExtConfig } from './types';\nimport { ComponentStatus } from './workspace-component/component-status';\nimport type {\n OnAspectsResolve,\n OnAspectsResolveSlot,\n OnBitmapChange,\n OnBitmapChangeSlot,\n OnWorkspaceConfigChange,\n OnWorkspaceConfigChangeSlot,\n OnComponentAddSlot,\n OnComponentChangeSlot,\n OnComponentLoadSlot,\n OnComponentRemoveSlot,\n OnRootAspectAdded,\n OnRootAspectAddedSlot,\n} from './workspace.main.runtime';\nimport type { ComponentLoadOptions } from './workspace-component/workspace-component-loader';\nimport { WorkspaceComponentLoader } from './workspace-component/workspace-component-loader';\nimport type { ShouldLoadFunc } from './build-graph-from-fs';\nimport { GraphFromFsBuilder } from './build-graph-from-fs';\nimport { BitMap } from './bit-map';\nimport type { MergeOptions as BitmapMergeOptions } from './bit-map';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { GraphIdsFromFsBuilder } from './build-graph-ids-from-fs';\nimport { AspectsMerger } from './aspects-merger';\nimport type {\n AspectPackage,\n GetConfiguredUserAspectsPackagesOptions,\n WorkspaceLoadAspectsOptions,\n} from './workspace-aspects-loader';\nimport { WorkspaceAspectsLoader } from './workspace-aspects-loader';\nimport type { MergeConflictFile } from './merge-conflict-file';\nimport { MergeConfigConflict } from './exceptions/merge-config-conflict';\nimport { CompFiles } from './workspace-component/comp-files';\nimport { Filter } from './filter';\nimport type { ComponentStatusLegacy, ComponentStatusResult } from './workspace-component/component-status-loader';\nimport { ComponentStatusLoader } from './workspace-component/component-status-loader';\nimport { getAutoTagInfo, getAutoTagPending } from './auto-tag';\nimport type { ConfigStoreMain, Store } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\nimport type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\n\nexport type EjectConfResult = {\n configPath: string;\n};\n\nexport type ClearCacheOptions = {\n skipClearFailedToLoadEnvs?: boolean;\n};\n\n/**\n * Field used to mark aspect config as \"specific\" (set via .bitmap or component.json).\n * When __specific is true, this config takes precedence over workspace variants during merging.\n * See https://github.com/teambit/bit/pull/5342 for original implementation.\n *\n * Important behavior for dependency-resolver aspect:\n * - Dependencies set via workspace variants are saved WITHOUT __specific (until first `bit deps set`)\n * - Once `bit deps set` is called, the entire dependency-resolver config gets __specific: true\n * - From that point forward, ALL deps in that aspect are considered \"specific\"\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 ComponentExtensionsOpts = {\n loadExtensions?: boolean;\n};\n\ntype ComponentExtensionsResponse = {\n extensions: ExtensionDataList;\n beforeMerge: Array<{ extensions: ExtensionDataList; origin: ExtensionsOrigin; extraData: any }>; // useful for debugging\n errors?: Error[];\n envId?: string;\n};\n\nexport type ExtensionsOrigin =\n | 'BitmapFile'\n | 'ModelSpecific'\n | 'ModelNonSpecific'\n | 'ConfigMerge'\n | 'WorkspaceVariants'\n | 'ComponentJsonFile'\n | 'FinalAfterMerge';\n\nconst DEFAULT_VENDOR_DIR = 'vendor';\n\n/**\n * API of the Bit Workspace\n */\nexport class Workspace implements ComponentFactory {\n private warnedAboutMisconfiguredEnvs: string[] = []; // cache env-ids that have been errored about not having \"env\" type\n priority = true;\n owner?: string;\n componentsScopeDirsMap: ComponentScopeDirMap;\n componentLoader: WorkspaceComponentLoader;\n private componentStatusLoader: ComponentStatusLoader;\n bitMap: BitMap;\n /**\n * Indicate that we are now running installation process\n * This is important to know to ignore missing modules across different places\n */\n inInstallContext = false;\n /**\n * Indicate that we done with the package manager installation process\n * This is important to skip stuff when package manager install is not done yet\n */\n inInstallAfterPmContext = false;\n private componentLoadedSelfAsAspects: InMemoryCache<boolean>; // cache loaded components\n private aspectsMerger: AspectsMerger;\n /**\n * Components paths are calculated from the component package names of the workspace\n * They are used in webpack configuration to only track changes from these paths inside `node_modules`\n */\n private componentPathsRegExps: RegExp[] = [];\n private _componentList: ComponentsList;\n localAspects: Record<string, string> = {};\n filter: Filter;\n constructor(\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 /**\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 readonly globalConfig: GlobalConfigMain,\n\n /**\n * on component add slot.\n */\n private onComponentAddSlot: OnComponentAddSlot,\n\n private onComponentRemoveSlot: OnComponentRemoveSlot,\n\n private onAspectsResolveSlot: OnAspectsResolveSlot,\n\n private onRootAspectAddedSlot: OnRootAspectAddedSlot,\n\n private graphql: GraphqlMain,\n\n private onBitmapChangeSlot: OnBitmapChangeSlot,\n\n private onWorkspaceConfigChangeSlot: OnWorkspaceConfigChangeSlot,\n\n private configStore: ConfigStoreMain\n ) {\n this.componentLoadedSelfAsAspects = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.componentLoader = new WorkspaceComponentLoader(this, logger, dependencyResolver, envs, aspectLoader);\n this.validateConfig();\n this.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n this.aspectsMerger = new AspectsMerger(this, this.harmony);\n this.filter = new Filter(this);\n this.componentStatusLoader = new ComponentStatusLoader(this);\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. please run \"bit init\" to rewrite them`\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 get componentList(): ComponentsList {\n if (!this._componentList) {\n this._componentList = new ComponentsList(this);\n }\n return this._componentList;\n }\n\n /**\n * root path of the Workspace.\n */\n get path() {\n return this.consumer.getPath();\n }\n\n /**\n * Get the location of the bit roots folder\n */\n get rootComponentsPath() {\n const baseDir =\n this.config.rootComponentsDirectory != null\n ? path.join(this.path, this.config.rootComponentsDirectory)\n : this.modulesPath;\n return path.join(baseDir, BIT_ROOTS_DIR);\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 registerOnComponentLoad(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 registerOnBitmapChange(OnBitmapChangeFunc: OnBitmapChange) {\n this.onBitmapChangeSlot.register(OnBitmapChangeFunc);\n return this;\n }\n\n registerOnWorkspaceConfigChange(onWorkspaceConfigChangeFunc: OnWorkspaceConfigChange) {\n this.onWorkspaceConfigChangeSlot.register(onWorkspaceConfigChangeFunc);\n }\n\n registerOnAspectsResolve(onAspectsResolveFunc: OnAspectsResolve) {\n this.onAspectsResolveSlot.register(onAspectsResolveFunc);\n return this;\n }\n\n registerOnRootAspectAdded(onRootAspectAddedFunc: OnRootAspectAdded) {\n this.onRootAspectAddedSlot.register(onRootAspectAddedFunc);\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 getConfigStore(): Store {\n return {\n list: () => this.getWorkspaceConfig().extension(ConfigStoreAspect.id, true) || {},\n set: (key: string, value: string) => {\n this.getWorkspaceConfig().setExtension(\n ConfigStoreAspect.id,\n { [key]: value },\n { ignoreVersion: true, mergeIntoExisting: true }\n );\n },\n del: (key: string) => {\n const current = this.getWorkspaceConfig().extension(ConfigStoreAspect.id, true) || {};\n delete current[key];\n this.getWorkspaceConfig().setExtension(ConfigStoreAspect.id, current, {\n ignoreVersion: true,\n overrideExisting: true,\n });\n },\n write: async () => {\n await this.getWorkspaceConfig().write({ reasonForChange: 'store-config changes' });\n },\n invalidateCache: async () => {\n // no need to invalidate anything.\n // if this is the same process, it'll get the updated one already.\n // if this is another process, it'll react to \"this.triggerOnWorkspaceConfigChange()\" anyway.\n },\n getPath: () => this.getWorkspaceConfig().path,\n };\n }\n\n async getAutoTagInfo(changedComponents: ComponentIdList) {\n return getAutoTagInfo(this.consumer, changedComponents);\n }\n\n async listAutoTagPendingComponentIds(): Promise<ComponentID[]> {\n const componentsList = new ComponentsList(this);\n const modifiedComponents = (await this.modified()).map((c) => c.id);\n const newComponents = (await componentsList.listNewComponents()) as ComponentIdList;\n if (!modifiedComponents || !modifiedComponents.length) return [];\n const autoTagPending = await getAutoTagPending(this.consumer, ComponentIdList.fromArray(modifiedComponents));\n const localOnly = this.listLocalOnly();\n const comps = autoTagPending\n .filter((autoTagComp) => !newComponents.has(autoTagComp.componentId))\n .filter((autoTagComp) => !localOnly.has(autoTagComp.componentId));\n return comps.map((c) => c.id);\n }\n\n async hasModifiedDependencies(component: Component) {\n const listAutoTagPendingComponents = await this.listAutoTagPendingComponentIds();\n const isAutoTag = listAutoTagPendingComponents.find((id) => id.isEqualWithoutVersion(component.id));\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.getComponentStatusById(component.id);\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 loadOptsWithDefaults: ComponentLoadOptions = Object.assign(loadOpts || {});\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const idsToGet = filter && filter.limit ? slice(ids, filter.offset, filter.offset + filter.limit) : ids;\n return this.getMany(idsToGet, loadOptsWithDefaults);\n }\n\n async listWithInvalid(loadOpts?: ComponentLoadOptions) {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n return this.componentLoader.getMany(legacyIds, loadOpts, false);\n }\n\n /**\n * list all invalid components.\n * (see the invalid criteria in ConsumerComponent.isComponentInvalidByErrorType())\n */\n async listInvalid(): Promise<InvalidComponent[]> {\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n return this.componentLoader.getInvalid(ids);\n }\n\n /**\n * get ids of all workspace components.\n * deleted components are filtered out. (use this.listIdsIncludeRemoved() if you need them)\n */\n listIds(): ComponentIdList {\n return this.consumer.bitmapIdsFromCurrentLane;\n }\n\n listIdsIncludeRemoved(): ComponentIdList {\n return this.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n }\n\n /**\n * whether the given component-id is part of the workspace. default to check for the exact version\n */\n hasId(componentId: ComponentID, opts?: { includeDeleted?: boolean; ignoreVersion?: boolean }): boolean {\n const ids = opts?.includeDeleted ? this.listIdsIncludeRemoved() : this.listIds();\n return opts?.ignoreVersion ? ids.hasWithoutVersion(componentId) : ids.has(componentId);\n }\n\n /**\n * given component-ids, return the ones that are part of the workspace\n */\n async filterIds(ids: ComponentID[]): Promise<ComponentID[]> {\n const workspaceIds = this.listIds();\n return ids.filter((id) => workspaceIds.find((wsId) => wsId.isEqual(id, { ignoreVersion: !id.hasVersion() })));\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(loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n const { components } = await this.listWithInvalid(loadOpts);\n const modifiedIncludeNulls = await mapSeries(components, async (component) => {\n const modified = await this.isModified(component);\n return modified ? component : null;\n });\n return compact(modifiedIncludeNulls);\n }\n\n /**\n * list all new components in the workspace.\n */\n async newComponents() {\n const componentIds = await this.newComponentIds();\n return this.getMany(componentIds);\n }\n\n async newComponentIds(): Promise<ComponentID[]> {\n const allIds = this.listIds();\n return allIds.filter((id) => !id.hasVersion());\n }\n\n async locallyDeletedIds(): Promise<ComponentID[]> {\n return this.componentList.listLocallySoftRemoved();\n }\n\n async duringMergeIds(): Promise<ComponentID[]> {\n const duringMerge = this.componentList.listDuringMergeStateComponents();\n return this.resolveMultipleComponentIds(duringMerge);\n }\n\n /**\n * @deprecated use `listIds()` instead.\n * get all workspace component-ids\n */\n getAllComponentIds(): ComponentID[] {\n return this.listIds();\n }\n\n async listTagPendingIds(): Promise<ComponentID[]> {\n const newComponents = await this.newComponentIds();\n const modifiedComponents = (await this.modified()).map((c) => c.id);\n const removedComponents = await this.locallyDeletedIds();\n const duringMergeIds = await this.duringMergeIds();\n const allIds = [...newComponents, ...modifiedComponents, ...removedComponents, ...duringMergeIds];\n const allIdsUniq = uniqBy(allIds, (id) => id.toString());\n return allIdsUniq;\n }\n\n /**\n * list all components that can be tagged. (e.g. when tagging/snapping with --unmodified).\n * which are all components in the workspace, include locally deleted components.\n */\n async listPotentialTagIds(): Promise<ComponentID[]> {\n const deletedIds = await this.locallyDeletedIds();\n const allIdsWithoutDeleted = this.listIds();\n return [...deletedIds, ...allIdsWithoutDeleted];\n }\n\n async getNewAndModifiedIds(): Promise<ComponentID[]> {\n const ids = await this.listTagPendingIds();\n return 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 = 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 = 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.hasWithoutVersion(id));\n if (!unavailableIds.length) return [];\n const removedIds = this.consumer.bitMap.getRemoved();\n const compsWithHead: ComponentID[] = [];\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 compsWithHead;\n }\n\n getDependencies(component: Component): DependencyList {\n return this.dependencyResolver.getDependencies(component);\n }\n\n async getSavedGraphOfComponentIfExist(component: Component) {\n if (!component.id.hasVersion()) return null;\n const flattenedEdges = await this.scope.getFlattenedEdges(component.id);\n const versionObj = await this.scope.getBitObjectVersionById(component.id);\n if (!flattenedEdges || !versionObj) return null;\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 const getCurrentVersionAsTagIfPossible = (): string | undefined => {\n const currentVer = component.id.version;\n if (!currentVer) return undefined;\n const isCurrentVerAHash = isHash(currentVer);\n if (!isCurrentVerAHash) return currentVer;\n const tag = component.tags.byHash(currentVer)?.version.raw;\n return tag || currentVer;\n };\n const currentVersion = getCurrentVersionAsTagIfPossible();\n\n flattenedBitIdCompIdMap[component.id.changeVersion(currentVersion).toString()] = component.id;\n versionObj.flattenedDependencies.forEach((bitId) => {\n flattenedBitIdCompIdMap[bitId.toString()] = bitId;\n });\n const getCompIdByIdStr = (idStr: string): ComponentID => {\n const compId = flattenedBitIdCompIdMap[idStr];\n if (!compId) {\n const suggestWrongSnap = isHash(component.id.version)\n ? `\\nplease check that .bitmap has the correct versions of ${component.id.toStringWithoutVersion()}.\nit's possible that the version ${component.id.version} belong to ${idStr.split('@')[0]}`\n : '';\n throw new Error(\n `id ${idStr} exists in flattenedEdges but not in flattened of ${component.id.toString()}.${suggestWrongSnap}`\n );\n }\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[], filterOutNowWorkspaceIds = true): Promise<ComponentID[]> {\n const graph = await this.getGraphIds();\n const dependents = ids\n .map((id) =>\n graph.predecessors(id.toString(), {\n nodeFilter: (node) => (filterOutNowWorkspaceIds ? this.hasId(node.attr) : true),\n })\n )\n .flat()\n .map((node) => node.attr);\n return ComponentIdList.uniqFromArray(dependents);\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 * this is not the complete legacy component (ConsumerComponent), it's missing dependencies and hooks from Harmony\n * are skipped. do not trust the data you get from this method unless you know what you're doing.\n */\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n const componentMap = this.consumer.bitMap.getComponent(id);\n return await ConsumerComponent.loadFromFileSystem({\n componentMap,\n id,\n consumer: this.consumer,\n });\n } catch {\n return undefined;\n }\n }\n\n async getFilesModification(id: ComponentID): Promise<CompFiles> {\n const bitMapEntry = this.bitMap.getBitmapEntry(id, { ignoreVersion: true });\n const compDir = bitMapEntry.getComponentDir();\n const compDirAbs = path.join(this.path, compDir);\n const sourceFilesVinyls = bitMapEntry.files.map((file) => {\n const filePath = path.join(compDirAbs, file.relativePath);\n return SourceFile.load(filePath, compDirAbs, this.path, {});\n });\n const repo = this.scope.legacyScope.objects;\n const getModelFiles = async () => {\n const modelComp = await this.scope.legacyScope.getModelComponentIfExist(id);\n if (!modelComp) return [];\n if (!bitMapEntry.id.hasVersion()) return [];\n\n const verObj = await modelComp.loadVersion(bitMapEntry.id.version, repo);\n return verObj.files;\n };\n\n return new CompFiles(id, repo, sourceFilesVinyls, compDir, await getModelFiles());\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.trace(`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 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 // ignore missing modules when loading self\n await this.loadAspects([component.id.toString()], undefined, component.id.toString(), {\n hideMissingModuleError: true,\n });\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 {\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 async getConfiguredUserAspectsPackages(options: GetConfiguredUserAspectsPackagesOptions): Promise<AspectPackage[]> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.getConfiguredUserAspectsPackages(options);\n }\n\n /**\n * clears workspace, scope and all components caches.\n * doesn't clear the dependencies-data from the filesystem-cache.\n */\n async clearCache(options: ClearCacheOptions = {}) {\n this.logger.debug('clearing the workspace and scope caches');\n this.aspectLoader.resetFailedLoadAspects();\n if (!options.skipClearFailedToLoadEnvs) this.envs.resetFailedToLoadEnvs();\n await this.scope.clearCache();\n this.clearAllComponentsCache();\n }\n\n /**\n * clear the cache of all components in the workspace.\n * doesn't clear the dependencies-data from the filesystem-cache.\n */\n clearAllComponentsCache() {\n this.logger.debug('clearing all components caches');\n this.componentLoader.clearCache();\n this.consumer.componentLoader.clearComponentsCache();\n this.componentStatusLoader.clearCache();\n this._componentList = new ComponentsList(this);\n }\n\n clearComponentCache(id: ComponentID) {\n this.componentLoader.clearComponentCache(id);\n this.componentStatusLoader.clearOneComponentCache(id);\n this.consumer.clearOneComponentCache(id);\n this._componentList = new ComponentsList(this);\n }\n\n clearComponentsCache(ids: ComponentID[]) {\n ids.forEach((id) => this.clearComponentCache(id));\n }\n\n async warmCache() {\n await this.list();\n }\n\n getWorkspaceConfig(): WorkspaceConfig {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const workspaceConfig = config.workspaceConfig;\n if (!workspaceConfig) throw new Error('workspace config is missing from Config aspect');\n return workspaceConfig;\n }\n\n async cleanFromConfig(ids: ComponentID[]) {\n const workspaceConfig = this.getWorkspaceConfig();\n const wereIdsRemoved = ids.map((id) => workspaceConfig.removeExtension(id));\n const hasChanged = wereIdsRemoved.some((isRemoved) => isRemoved);\n if (hasChanged) await workspaceConfig.write({ reasonForChange: 'remove components' });\n return hasChanged;\n }\n\n /**\n * when tagging/snapping a component, its config data is written to the staged config. it helps for \"bit reset\" to\n * revert it back.\n * this method removes entries from that files. used by \"bit export\" and \"bit remove\".\n * in case the component is not found in the staged config, it doesn't throw an error. it simply ignores it.\n */\n async removeFromStagedConfig(ids: ComponentID[]) {\n this.logger.debug(`removeFromStagedConfig, ${ids.length} ids`);\n const stagedConfig = await this.scope.getStagedConfig();\n ids.map((compId) => stagedConfig.removeComponentConfig(compId));\n await stagedConfig.write();\n }\n\n async triggerOnComponentChange(\n id: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[],\n watchOpts: WatchOptions\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\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, removedFiles, watchOpts);\n if (onChangeResult) 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(\n id: ComponentID,\n watchOpts: WatchOptions,\n loadOptions?: ComponentLoadOptions\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id, undefined, undefined, undefined, loadOptions);\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, watchOpts);\n if (onAddResult) 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 triggerOnBitmapChange(): Promise<void> {\n const onBitmapChangeEntries = this.onBitmapChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n await mapSeries(onBitmapChangeEntries, async ([, onBitmapChangeFunc]) => {\n await onBitmapChangeFunc();\n });\n }\n\n /**\n * the purpose is mostly to reload the workspace config when it changes, so entries like \"defaultScope\" are updated.\n * it also updates the DependencyResolver config. I couldn't find a good way to update all aspects in workspace.jsonc.\n */\n async triggerOnWorkspaceConfigChange(): Promise<void> {\n this.logger.debug('triggerOnWorkspaceConfigChange, reloading workspace config');\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n await config.reloadWorkspaceConfig(this.path);\n const workspaceConfig = config.workspaceConfig;\n if (!workspaceConfig) throw new Error('workspace config is missing from Config aspect');\n const configOfWorkspaceAspect = workspaceConfig.extensions.findExtension(WorkspaceAspect.id);\n if (!configOfWorkspaceAspect) throw new Error('workspace extension is missing from workspace config');\n this.config = configOfWorkspaceAspect.config as WorkspaceExtConfig;\n const configOfDepResolverAspect = workspaceConfig.extensions.findExtension(DependencyResolverAspect.id);\n if (configOfDepResolverAspect) this.dependencyResolver.setConfig(configOfDepResolverAspect.config as any);\n this.dependencyResolver.clearCache();\n this.configStore.invalidateCache();\n\n const onWorkspaceConfigChangeEntries = this.onWorkspaceConfigChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n await mapSeries(onWorkspaceConfigChangeEntries, async ([, onWorkspaceConfigFunc]) => {\n await onWorkspaceConfigFunc();\n });\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 async getCurrentLaneObject(): Promise<Lane | undefined> {\n return this.consumer.getCurrentLaneObject();\n }\n\n isOnMain(): boolean {\n return this.consumer.isOnMain();\n }\n\n isOnLane(): boolean {\n return this.consumer.isOnLane();\n }\n\n /**\n * if checked out to a lane and the lane exists in the remote,\n * return the remote lane. 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: any) {\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 this.logger.clearStatusLine();\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 getComponentConfigVinylFile(\n id: ComponentID,\n options: EjectConfOptions,\n excludeLocalChanges = false\n ): Promise<JsonVinyl> {\n const componentId = await this.resolveComponentId(id);\n const extensions = await this.getExtensionsFromScopeAndSpecific(id, excludeLocalChanges);\n const aspects = await this.createAspectList(extensions);\n this.removeEnvVersionIfExistsLocally(aspects);\n const componentDir = this.componentDir(id, { ignoreVersion: true }, { relative: true });\n const configFile = new ComponentConfigFile(componentId, aspects, componentDir, options.propagate);\n return configFile.toVinylFile(options);\n }\n\n private removeEnvVersionIfExistsLocally(aspects: AspectList) {\n const env = aspects.get(EnvsAspect.id)?.config?.env;\n if (!env) return;\n const envAspect = aspects.get(env);\n if (!envAspect) return;\n const envExtId = envAspect.id;\n if (!envExtId?.hasVersion()) return;\n if (!this.hasId(envExtId, { ignoreVersion: true })) return;\n envAspect.id = envExtId.changeVersion(undefined);\n }\n\n async ejectMultipleConfigs(ids: ComponentID[], options: EjectConfOptions): Promise<EjectConfResult[]> {\n const vinylFiles = await Promise.all(ids.map((id) => this.getComponentConfigVinylFile(id, options)));\n const EjectConfResult = vinylFiles.map((file) => ({ configPath: file.path }));\n const dataToPersist = new DataToPersist();\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.path);\n await dataToPersist.persistAllToFS();\n\n ids.map((id) => this.bitMap.removeEntireConfig(id));\n await this.bitMap.write(`eject-conf (${ids.length} component(s))`);\n\n return EjectConfResult;\n }\n\n async getAspectConfigForComponent(id: ComponentID, aspectId: string): Promise<object | undefined> {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const obj = extensions.toConfigObject();\n return obj[aspectId];\n }\n\n async getExtensionsFromScopeAndSpecific(id: ComponentID, excludeComponentJson = false): Promise<ExtensionDataList> {\n const componentFromScope = await this.scope.get(id);\n const exclude: ExtensionsOrigin[] = ['WorkspaceVariants'];\n if (excludeComponentJson) exclude.push('ComponentJsonFile');\n const { extensions } = await this.componentExtensions(id, componentFromScope, exclude);\n\n return extensions;\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 hasPattern(strArr: string[]) {\n return strArr.some((str) => this.isPattern(str));\n }\n\n isPattern(str: string) {\n const specialSyntax = ['*', ',', '!', '$', ':'];\n return specialSyntax.some((char) => str.includes(char));\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(\n pattern: string,\n throwForNoMatch = true,\n opts: { includeDeleted?: boolean } = {}\n ): Promise<ComponentID[]> {\n const isId = !this.isPattern(pattern);\n if (isId) {\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.hasId(id, { ignoreVersion: true, includeDeleted: opts.includeDeleted })) return [id];\n if (throwForNoMatch) throw new MissingBitMapComponent(pattern);\n return [];\n }\n const ids = opts.includeDeleted ? this.listIdsIncludeRemoved() : await this.listIds();\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n async filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n return this.scope.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch, this.filter.by.bind(this.filter));\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 && pattern) {\n throw new BitError(\n 'Cannot use both \"all\" flag and component pattern simultaneously. Use either --all/--unmodified for all components, or specify component pattern.'\n );\n }\n if (all) {\n return this.list();\n }\n if (pattern) {\n const ids = await this.idsByPattern(pattern);\n return this.getMany(ids, { loadExtensions: true, loadSeedersAsAspects: true, executeLoadSlot: true });\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 availableEnvs: string[] = [];\n const foundComps = allComps.filter((comp) => {\n const envId = this.envs.getEnvId(comp);\n if (env === envId) return true;\n availableEnvs.push(envId);\n if (!ignoreVersion) return false;\n const envWithoutVersion = envId.split('@')[0];\n if (env === envWithoutVersion) return true;\n // envIdFromConfig never has a version. so in case ignoreVersion is true, it's safe to compare without the version.\n // also, in case the env failed to load, the envId above will be the default teambit.harmony/node env, which\n // won't help. this one is the one configured on this component.\n const envIdFromConfig = this.envs.getEnvIdFromEnvsConfig(comp);\n return envIdFromConfig === env;\n });\n if (!foundComps.length && throwIfNotFound) {\n throw new BitError(`unable to find components that using \"${env}\" env.\nthe following envs are used in this workspace: ${uniq(availableEnvs).join(', ')}`);\n }\n return foundComps;\n }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions, throwOnFailure = true): Promise<Component[]> {\n this.logger.debug(`getMany, started. ${ids.length} components`);\n const { components } = await this.componentLoader.getMany(ids, loadOpts, throwOnFailure);\n this.logger.debug(`getMany, completed. ${components.length} components`);\n return components;\n }\n\n getManyByLegacy(components: ConsumerComponent[], loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return mapSeries(components, async (component) => {\n const id = 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 * @deprecated use `hasId` with \"ignoreVersion: true\" instead.\n */\n exists(componentId: ComponentID, opts: { includeDeleted?: boolean } = {}): boolean {\n const allIds = opts.includeDeleted ? this.listIdsIncludeRemoved() : this.consumer.bitmapIdsFromCurrentLane;\n return allIds.hasWithoutVersion(componentId);\n }\n\n getIdIfExist(componentId: ComponentID): ComponentID | undefined {\n return this.consumer.bitmapIdsFromCurrentLane.find((_) => _.isEqualWithoutVersion(componentId));\n }\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: BitmapMergeOptions = {}): string {\n return this.bitMap.mergeBitmaps(bitmapContent, otherBitmapContent, opts);\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(\n ids: Array<ComponentID>,\n reason?: string,\n loadOpts?: ComponentLoadOptions,\n throwOnError = true\n ): Promise<Component[]> {\n if (!ids.length) return [];\n const lane = await this.importCurrentLaneIfMissing();\n await this.scope.import(ids, {\n reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion(),\n preferDependencyGraph: true,\n // add the lane object although it was imported with all its ids previously.\n // in some cases, this import re-fetch existing ids whose their VersionHistory is incomplete, so it needs the Lane context.\n lane,\n reason,\n });\n return this.getMany(ids, loadOpts, throwOnError);\n }\n\n /**\n * This is happening when the user is running \"git pull\", which updates \".bitmap\" file, but the local scope objects\n * are not updated yet (\"bit import\" is not run yet).\n * Although it might happen on a lane. This is rare. Because using git with bit normally means that locally you don't have\n * any lane. The CI is the one that creates the lanes.\n * The following conditions are checked:\n * 1. we're on main.\n * 2. git is enabled.\n * 3. components on .bitmap has tags that are not in the local scope.\n *\n * It is designed to be performant. On mac M1 with 337 components, it takes around 100ms.\n *\n * @returns array of component IDs that have tags in .bitmap but not in local scope, or empty array if not outdated\n */\n private async getOutdatedIdsAgainstGit(): Promise<ComponentID[]> {\n if (!this.consumer.isOnMain()) {\n return [];\n }\n if (!(await fs.pathExists(path.join(this.path, '.git')))) {\n return [];\n }\n\n // Collect bitmap components that have tags not in local scope\n const bitmapIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const outdatedIds = await pMap(\n bitmapIds,\n async (bitmapId) => {\n if (!bitmapId.version) return;\n const modelComponent = await this.scope.legacyScope.getModelComponentIfExist(bitmapId.changeVersion(undefined));\n if (!modelComponent || !modelComponent.hasTag(bitmapId.version)) {\n // Component doesn't exist in scope or exists but this tag version is missing\n return bitmapId;\n }\n\n return null;\n },\n { concurrency: 30 }\n );\n\n return compact(outdatedIds);\n }\n\n /**\n * This is relevant when the user is running \"git pull\", which updates \".bitmap\" file, but the local scope objects\n * are not updated yet (\"bit import\" is not run yet). In case it found outdated components, it imports them.\n *\n * Important: this is only for main (not lanes) and only when using git and only for tags, not snaps.\n * see `getOutdatedIdsAgainstGit` for more info.\n */\n async importObjectsIfOutdatedAgainstBitmap(): Promise<void> {\n const outdatedIds = await this.getOutdatedIdsAgainstGit();\n if (outdatedIds.length) {\n await this.importCurrentObjects(outdatedIds);\n this.logger.setStatusLine(`imported ${outdatedIds.length} components that were outdated against bitmap`);\n }\n }\n\n /**\n * This is pretty much the same as `importer.importCurrentObjects`.\n * The reason for the duplication is that many aspects can't depend on the `importer` aspect, due to circular dependencies.\n * The importer aspect is reacher in a way that it shows the results of what was imported by comparing the before and after.\n */\n async importCurrentObjects(compIds?: ComponentID[]) {\n const lane = await this.importCurrentLaneIfMissing();\n if (lane) {\n return; // it was all imported in the function above.\n }\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const allIds = compIds || this.consumer.bitMap.getAllBitIdsFromAllLanes();\n const ids = ComponentIdList.fromArray(allIds.filter((id) => id.hasScope()));\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n includeVersionHistory: true,\n fetchHeadIfLocalIsBehind: true,\n ignoreMissingHead: true,\n reason: `of their latest on main`,\n });\n\n this.logger.setStatusLine(`import ${ids.length} components with their dependencies (if missing)`);\n await scopeComponentsImporter.importMany({\n ids,\n ignoreMissingHead: true,\n preferDependencyGraph: true,\n reFetchUnBuiltVersion: true,\n throwForSeederNotFound: false,\n reason: 'for getting all dependencies',\n });\n }\n\n async importCurrentLaneIfMissing(): Promise<Lane | undefined> {\n const laneId = this.getCurrentLaneId();\n const laneObj = await this.scope.legacyScope.getCurrentLaneObject();\n if (laneId.isDefault() || laneObj) {\n return laneObj;\n }\n const lane = await this.getCurrentRemoteLane();\n if (!lane) {\n return undefined;\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 = ComponentIdList.fromArray(this.getExportedFrom(lane.toBitIds()));\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n lane,\n includeVersionHistory: true,\n reason: 'latest of the current lane',\n });\n\n await scopeComponentsImporter.importMany({ ids, lane, reason: 'for making sure the current lane has all ' });\n return lane;\n }\n\n async use(aspectIdStr: string): Promise<string> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.use(aspectIdStr);\n }\n async unuse(aspectIdStr: string): Promise<boolean> {\n const compId = await this.resolveComponentId(aspectIdStr);\n return this.cleanFromConfig([compId]);\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 * @todo: the return path here is Linux when asking for relative and os-based when asking for absolute. fix this to be consistent.\n *\n * Get the component root dir in the file system (relative to workspace or full)\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, 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 this.dependencyResolver.getPackageName(component);\n }\n\n private componentDirFromLegacyId(\n bitId: ComponentID,\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 (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 /**\n * @deprecated long long ago we added it to the componentId object. use `componentId.scope` instead.\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 bitMapId = this.consumer.bitMap.getExistingBitId(name, false);\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 opts: ComponentExtensionsOpts = {}\n ): Promise<ComponentExtensionsResponse> {\n const optsWithDefaults: ComponentExtensionsOpts = Object.assign({ loadExtensions: true }, opts);\n const mergeRes: ComponentExtensionsResponse = await this.aspectsMerger.merge(\n componentId,\n componentFromScope,\n excludeOrigins\n );\n const envId = await this.envs.getEnvIdFromEnvsLegacyExtensions(mergeRes.extensions);\n if (optsWithDefaults.loadExtensions) {\n await this.loadComponentsExtensions(mergeRes.extensions, componentId);\n if (envId) {\n await this.warnAboutMisconfiguredEnv(envId);\n }\n }\n mergeRes.envId = envId;\n return mergeRes;\n }\n\n async warnAboutMisconfiguredEnv(envId: string) {\n if (!envId) return;\n if (this.envs.getCoreEnvsIds().includes(envId)) return;\n if (this.warnedAboutMisconfiguredEnvs.includes(envId)) return;\n let env: Component;\n try {\n const parsedEnvId = await this.resolveComponentId(envId);\n env = await this.get(parsedEnvId);\n } catch {\n return; // unable to get the component for some reason. don't sweat it. forget about the warning\n }\n if (!this.envs.isUsingEnvEnv(env)) {\n this.warnedAboutMisconfiguredEnvs.push(envId);\n this.logger.consoleWarning(\n `env \"${envId}\" is not of type env. (correct the env's type, or component config with \"bit env set ${envId} teambit.envs/env\")`\n );\n }\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: ComponentID): VariantPolicyConfigArr {\n return this.aspectsMerger.getDepsDataOfMergeConfig(id);\n }\n\n /**\n * @deprecated\n * the workspace.jsonc conflicts are not written to the config-merge file anymore.\n * see https://github.com/teambit/bit/pull/8393 for more details.\n */\n getWorkspaceJsonConflictFromMergeConfig(): { data?: Record<string, any>; conflict: boolean } {\n const configMergeFile = this.getConflictMergeFile();\n let data: Record<string, any> | undefined;\n let conflict = false;\n try {\n data = configMergeFile.getConflictParsed('WORKSPACE');\n } catch (err) {\n if (!(err instanceof MergeConfigConflict)) {\n throw err;\n }\n conflict = true;\n this.logger.error(`unable to parse the config file for the workspace due to conflicts`);\n }\n return { data, conflict };\n }\n\n getWorkspaceIssues(): Error[] {\n const errors: Error[] = [];\n\n // since PR #8393, the workspace.jsonc conflicts are not written to the config-merge file anymore.\n // @todo remove this in the future. (maybe Q2 of 2024).\n const configMergeFile = this.getConflictMergeFile();\n try {\n configMergeFile.getConflictParsed('WORKSPACE');\n } catch (err) {\n if (err instanceof MergeConfigConflict) {\n errors.push(err);\n }\n }\n return errors;\n }\n\n async listComponentsDuringMerge(): Promise<ComponentID[]> {\n const unmergedComps = this.scope.legacyScope.objects.unmergedComponents.getComponents();\n const bitIds = unmergedComps.map((u) => ComponentID.fromObject(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);\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 false; // 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.getComponentStatusById(component.id);\n return componentStatus.modified === true;\n }\n\n async isModifiedOrNew(component: Component): Promise<boolean> {\n const head = component.head;\n if (!head) {\n return true; // it's a new component\n }\n return this.isModified(component);\n }\n\n isExported(id: ComponentID): boolean {\n return this.consumer.isExported(id);\n }\n getExportedFrom(ids: ComponentID[]): ComponentID[] {\n const notExported = this.consumer.getNotExportedIds();\n return ids.filter((id) => !notExported.hasWithoutVersion(id));\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('scope-set');\n return newComponentIds;\n }\n\n /**\n * @param scopeName\n * @param includeComponents whether to update new components in the workspace to use the new default-scope\n * this is relevant only for new components that were using the previous default-scope\n */\n async setDefaultScope(scopeName: string, includeComponents = true) {\n if (this.defaultScope === scopeName) {\n throw new Error(`the default-scope is already set as \"${scopeName}\", nothing to change`);\n }\n if (!isValidScopeName(scopeName)) {\n throw new InvalidScopeName(scopeName);\n }\n const workspaceConfig = this.getWorkspaceConfig();\n workspaceConfig.setExtension(\n WorkspaceAspect.id,\n { defaultScope: scopeName },\n { mergeIntoExisting: true, ignoreVersion: true }\n );\n if (includeComponents) {\n // fix also comps using the old default-scope\n this.bitMap.updateDefaultScope(this.config.defaultScope, scopeName);\n }\n\n this.config.defaultScope = scopeName;\n await workspaceConfig.write({ reasonForChange: `default-scope (${scopeName})` });\n await this.bitMap.write('scope-set');\n }\n\n async addSpecificComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n {\n shouldMergeWithExisting,\n shouldMergeWithPrevious,\n }: {\n shouldMergeWithExisting?: boolean;\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?: boolean;\n } = { shouldMergeWithExisting: false, 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 existingConfig = await this.getAspectConfigForComponent(id, aspectId);\n config = existingConfig ? merge(existingConfig, 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 (isPathInside(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);\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 bitId;\n }\n return undefined;\n }\n\n private async componentConfigFileFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative\n ): Promise<ComponentConfigFile | undefined> {\n let componentConfigFile;\n if (relativeComponentDir) {\n const absComponentDir = this.componentDirToAbsolute(relativeComponentDir);\n componentConfigFile = await ComponentConfigFile.load(absComponentDir, this.createAspectList.bind(this));\n }\n\n return componentConfigFile;\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(\n ids: string[] = [],\n throwOnError = false,\n neededFor?: string,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<string[]> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.loadAspects(ids, throwOnError, neededFor, opts);\n }\n\n async loadComponentsExtensions(\n extensions: ExtensionDataList,\n originatedFrom?: ComponentID,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<void> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.loadComponentsExtensions(extensions, originatedFrom, opts);\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 const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\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 getWorkspaceAspectsLoader(): WorkspaceAspectsLoader {\n let resolveEnvsFromRoots = this.config.resolveEnvsFromRoots;\n if (resolveEnvsFromRoots === undefined) {\n const resolveEnvsFromRootsConfig = this.configStore.getConfig(CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS);\n const defaultResolveEnvsFromRoots: boolean =\n // @ts-ignore\n resolveEnvsFromRootsConfig === 'true' || resolveEnvsFromRootsConfig === true;\n resolveEnvsFromRoots = defaultResolveEnvsFromRoots;\n }\n\n const workspaceAspectsLoader = new WorkspaceAspectsLoader(\n this,\n this.scope,\n this.aspectLoader,\n this.envs,\n this.dependencyResolver,\n this.logger,\n this.configStore,\n this.harmony,\n this.onAspectsResolveSlot,\n this.onRootAspectAddedSlot,\n this.config.resolveAspectsFromNodeModules,\n resolveEnvsFromRoots\n );\n return workspaceAspectsLoader;\n }\n\n getCapsulePath() {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.getCapsulePath();\n }\n\n shouldUseHashForCapsules() {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.shouldUseHashForCapsules();\n }\n\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.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n await this.clearCache();\n }\n\n getComponentPackagePath(component: Component) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component, {\n workspacePath: this.path,\n rootComponentsPath: this.rootComponentsPath,\n isInWorkspace: this.hasId(component.id),\n });\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 async resolveComponentIdFromPackageName(packageName: string, keepOriginalVersion = false): Promise<ComponentID> {\n if (!packageName.startsWith('@')) {\n throw new Error(`findComponentIdFromPackageName supports only packages that start with @, got ${packageName}`);\n }\n const errMsgPrefix = `unable to resolve a component-id from the package-name ${packageName}, `;\n\n const fromPackageJson = await this.resolveComponentIdFromPackageJsonInNM(packageName, errMsgPrefix);\n if (fromPackageJson) return fromPackageJson;\n const fromRegistryManifest = await this.resolveComponentIdFromRegistryManifest(\n packageName,\n errMsgPrefix,\n keepOriginalVersion\n );\n if (fromRegistryManifest) return fromRegistryManifest;\n const fromWsComponents = await this.resolveComponentIdFromWsComponents(packageName);\n if (fromWsComponents) return fromWsComponents;\n throw new BitError(errMsgPrefix);\n }\n\n private async resolveComponentIdFromWsComponents(packageName: string): Promise<ComponentID | undefined> {\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const [, name] = packageName.split('/');\n const foundByName = ids.filter((id) => id.fullName.includes(name));\n const idsToSearch = foundByName;\n if (!idsToSearch.length) {\n return undefined;\n }\n // if (!foundByName.length) {\n // const foundByScope = ids.filter(id => id.toString().includes(scope.replace('@', '')));\n // idsToSearch = foundByScope;\n // }\n const comps = await this.getMany(idsToSearch, {\n loadExtensions: false,\n storeInCache: false,\n loadSeedersAsAspects: false,\n });\n const found = comps.find((comp) => {\n const currPackageName = this.dependencyResolver.getPackageName(comp);\n return currPackageName === packageName;\n });\n if (found) {\n return found.id;\n }\n }\n\n private async resolveComponentIdFromRegistryManifest(\n packageName: string,\n errMsgPrefix: string,\n keepOriginalVersion = false\n ): Promise<ComponentID | undefined> {\n const manifest = await this.dependencyResolver.fetchFullPackageManifest(packageName);\n if (!manifest) {\n return undefined;\n }\n if (!('componentId' in manifest)) {\n throw new BitError(\n `${errMsgPrefix}the package.json of version \"${manifest.version}\" has no componentId field, it's probably not a component`\n );\n }\n if (keepOriginalVersion) return ComponentID.fromObject(manifest.componentId as ComponentIdObj);\n return ComponentID.fromObject(manifest.componentId as ComponentIdObj).changeVersion(undefined);\n }\n\n private async resolveComponentIdFromPackageJsonInNM(\n packageName: string,\n errMsgPrefix: string\n ): Promise<ComponentID | undefined> {\n const pkgJsonPath = path.join(this.path, 'node_modules', packageName, 'package.json');\n let pkgJson: Record<string, any> | undefined;\n try {\n pkgJson = await fs.readJson(pkgJsonPath);\n if (!pkgJson) return undefined;\n const compId = pkgJson.componentId;\n if (!compId) {\n throw new BitError(\n `${errMsgPrefix}the package.json file has no componentId field, it's probably not a component`\n );\n }\n return ComponentID.fromObject(compId);\n } catch {\n // never mind the reason. probably it's not there.\n return undefined;\n }\n }\n\n /**\n * Transform the id to ComponentId and get the exact id as appear in bitmap\n */\n async resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID> {\n if (id instanceof BitId && id.hasScope() && id.hasVersion()) {\n // an optimization to make it faster when BitId is passed\n return ComponentID.fromLegacy(id);\n }\n if (id instanceof ComponentID && id.hasVersion()) {\n return id;\n }\n if (typeof id === 'string' && id.startsWith('@')) {\n return this.resolveComponentIdFromPackageName(id);\n }\n const getDefaultScope = async (bitId: ComponentID, 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.fullName\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._legacy, 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._legacy, 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 {\n return ComponentID.fromString(id.toString());\n }\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | ComponentID>): Promise<ComponentID[]> {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * component-id coming from Scope don't have the defaultScope, the legacyComponentId.scope is always populated.\n * in the .bitmap we need to distinguish between the two, so the componentId needs to be corrected with the defaultScope.\n */\n resolveIdWithDefaultScope(componentId: ComponentID): ComponentID {\n const isExported = !this.consumer.getNotExportedIds().searchWithoutVersion(componentId);\n const bitId = componentId._legacy.changeScope(isExported ? componentId.scope : undefined);\n return ComponentID.fromLegacy(bitId, componentId.scope);\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;\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[], verifyEnv = true) {\n const envStrWithPossiblyVersion = await this.resolveEnvIdWithPotentialVersionForConfig(envId);\n if (verifyEnv) {\n const envComp = await this.get(ComponentID.fromString(envStrWithPossiblyVersion));\n const isEnv = this.envs.isEnv(envComp);\n if (!isEnv) throw new BitError(`the component ${envComp.id.toString()} is not an env`);\n }\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(`env-set (${envId.toString()})`);\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], `to get the env ${envId.toString()}`);\n const comp = comps[0];\n if (!comp) throw new BitError(`unable to find ${envId.toString()} in the workspace or in the remote`);\n return comp.id.toString();\n }\n\n async resolveEnvManifest(envId: string, envExtendsDeps: LegacyDependency[] = []): Promise<EnvJsonc> {\n if (this.aspectLoader.isCoreEnv(envId)) return {};\n\n const splitted = envId.split('@');\n const envIdWithVersion = envId.startsWith('@') ? `@${splitted[1]}` : splitted[0];\n const foundEnv = envExtendsDeps.find(\n (dep) => dep.id.toStringWithoutVersion() === envIdWithVersion || dep.packageName === envIdWithVersion\n );\n let id = envId;\n if (foundEnv?.id) {\n if (foundEnv.id.version.includes('-new')) {\n id = foundEnv.id.toStringWithoutVersion();\n } else {\n id = foundEnv.id.toString();\n }\n }\n\n const resolvedEnvComponentId = await this.resolveComponentId(id);\n\n // We need to load the env component with the slot and extensions to get the env manifest of the parent\n // already resolved\n let envComponent: Component;\n try {\n envComponent = await this.get(resolvedEnvComponentId, undefined, true, true, {\n executeLoadSlot: true,\n loadExtensions: true,\n });\n } catch (error) {\n // If component not found in workspace (e.g. during bit new with extends), try remote\n if (error instanceof VersionNotFoundOnFS || (error as any).name === 'VersionNotFoundOnFS') {\n envComponent = await this.scope.getRemoteComponent(resolvedEnvComponentId);\n } else {\n throw error;\n }\n }\n\n // TODO: caching this\n const alreadyResolved = this.envs.getEnvManifest(envComponent);\n if (alreadyResolved) return alreadyResolved;\n\n // TODO: caching this\n const envJson = envComponent.filesystem.files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n if (!envJson) {\n throw new BitError(`unable to find env.jsonc file in ${envId}`);\n }\n const envManifest: EnvJsonc = parse(envJson.contents.toString('utf8'), undefined, true) as EnvJsonc;\n\n return envManifest;\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 // the env that gets saved in the .bitmap file config root can be with or without version.\n // e.g. when a custom env is in .bitmap, it's saved without version, but when asking the component for the\n // env by `this.getAspectIdFromConfig`, it returns the env with version.\n // to make sure we remove the env from the .bitmap, we need to remove both with and without version.\n const currentEnvWithPotentialVersion = await this.getAspectIdFromConfig(id, currentEnv, true);\n await this.removeSpecificComponentConfig(id, currentEnv);\n if (currentEnvWithPotentialVersion && currentEnvWithPotentialVersion.includes('@')) {\n await this.removeSpecificComponentConfig(id, currentEnvWithPotentialVersion);\n }\n await this.removeSpecificComponentConfig(id, EnvsAspect.id);\n changed.push(id);\n })\n );\n await this.bitMap.write(`env-unset`);\n return { changed, unchanged };\n }\n\n async updateEnvForComponents(envIdStr?: string, pattern?: string) {\n const allWsComps = await this.list();\n const allWsIds = 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 if (isInWs(envId)) return envId;\n const currentLane = await this.getCurrentLaneObject();\n const isDeletedOnLane = currentLane && currentLane.getComponent(envId)?.isDeleted;\n try {\n const fromRemote = await this.scope.getRemoteComponent(envId, isDeletedOnLane);\n return envId.changeVersion(fromRemote.id.version);\n } catch {\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 const envWithVer = await getEnvWithVersion(envCompId);\n return [envWithVer];\n }\n const allEnvsIds = allEnvs.runtimeEnvs.map((env) => env.id);\n const allEnvsCompIds = await this.resolveMultipleComponentIds(allEnvsIds);\n // check whether the envId has version, otherwise, it's a core env.\n const nonCoreEnvs = allEnvsCompIds.filter((envId) => envId.hasVersion());\n const envsWithVersions = await mapSeries(nonCoreEnvs, (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 const envIsInWs = isInWs(envToUpdate);\n\n if (!envIsInWs && compEnv.id.version === envToUpdate.version) {\n // nothing to update\n alreadyUpToDate.push(comp.id);\n return;\n }\n if (envIsInWs && !(await this.getSpecificComponentConfig(comp.id, compEnv.id.toString()))) {\n // compEnv has version. If this id with version doesn't exist in .bitmap, either, it's not saved in .bitmap\n // (probably it's in the model) or it's in .bitmap without version (as expected). either way, 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(\n comp.id,\n envIsInWs ? envToUpdate.toStringWithoutVersion() : envToUpdate.toString(),\n compEnv.config\n );\n (updated[envToUpdate.toString()] ||= []).push(comp.id);\n })\n );\n await this.bitMap.write('env-update');\n return { updated, alreadyUpToDate };\n }\n\n getComponentPathsRegExps() {\n return this.componentPathsRegExps;\n }\n\n async setComponentPathsRegExps() {\n const workspaceComponents = await this.list();\n if (!workspaceComponents.length) {\n this.componentPathsRegExps = [];\n return;\n }\n\n const workspacePackageNames = workspaceComponents.map((c) => this.componentPackageName(c));\n const packageManager = this.dependencyResolver.packageManagerName;\n const isPnpmEnabled = typeof packageManager === 'undefined' || packageManager.includes('pnpm');\n const pathsExcluding = [\n generateNodeModulesPattern({\n packages: workspacePackageNames,\n target: PatternTarget.WEBPACK,\n isPnpmEnabled,\n }),\n ];\n this.componentPathsRegExps = pathsExcluding.map((stringPattern) => new RegExp(stringPattern));\n }\n\n getInjectedDirs(component: Component): Promise<string[]> {\n const relativeCompDir = this.componentDir(component.id, undefined, {\n relative: true,\n });\n return this.dependencyResolver.getInjectedDirs(\n this.path,\n relativeCompDir,\n this.dependencyResolver.getPackageName(component)\n );\n }\n\n /**\n * the dependencies returned from this method will override the auto-detected dependencies. (done by \"applyAutoDetectOverridesOnComponent\")\n * to calculate this, we merge several sources: env, env-for-itself, config from variant, and the merge-config.\n * keep in mind that component-config (coming from .bitmap or component.json) is not included in this merge.\n */\n async getAutoDetectOverrides(\n configuredExtensions: ExtensionDataList,\n id: ComponentID,\n legacyFiles: SourceFile[],\n envExtendedDeps?: LegacyDependency[]\n ): Promise<DependenciesOverridesData> {\n let policy = await this.dependencyResolver.mergeVariantPolicies(\n configuredExtensions,\n id,\n legacyFiles,\n envExtendedDeps\n );\n // this is needed for \"bit install\" to install the dependencies from the merge config (see https://github.com/teambit/bit/pull/6849)\n const depsDataOfMergeConfig = this.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policiesFromMergeConfig = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, { source: 'auto' });\n policy = VariantPolicy.mergePolices([policy, policiesFromMergeConfig]);\n }\n return policy.toLegacyAutoDetectOverrides();\n }\n\n getAutoDetectConfigMerge(id: ComponentID) {\n const depsDataOfMergeConfig = this.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policy = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, { source: 'auto' });\n return policy.toLegacyAutoDetectOverrides();\n }\n return undefined;\n }\n\n async getManyComponentsStatuses(ids: ComponentID[]): Promise<ComponentStatusResult[]> {\n return this.componentStatusLoader.getManyComponentsStatuses(ids);\n }\n\n async getComponentStatusById(id: ComponentID): Promise<ComponentStatusLegacy> {\n return this.componentStatusLoader.getComponentStatusById(id);\n }\n\n async setLocalOnly(ids: ComponentID[]) {\n const staged = compact(\n await mapSeries(ids, async (id) => {\n const componentStatus = await this.getComponentStatusById(id);\n if (componentStatus.staged) return id;\n })\n );\n if (staged.length) {\n throw new BitError(\n `unable to set the following component(s) as local-only because they have local snaps/tags: ${staged.join(\n ', '\n )}`\n );\n }\n this.bitMap.setLocalOnly(ids);\n await this.bitMap.write('setLocalOnly');\n }\n async unsetLocalOnly(ids: ComponentID[]): Promise<ComponentID[]> {\n const successfullyUnset = this.bitMap.unsetLocalOnly(ids);\n await this.bitMap.write('unsetLocalOnly');\n return successfullyUnset;\n }\n listLocalOnly(): ComponentIdList {\n return ComponentIdList.fromArray(this.bitMap.listLocalOnly());\n }\n\n async writeDependencies(target?: 'workspace.jsonc' | 'package.json') {\n if (target === 'package.json') {\n await this.writeDependenciesToPackageJson();\n } else {\n await this.writeDependenciesToWorkspaceJsonc();\n }\n }\n\n async writeDependenciesToWorkspaceJsonc(): Promise<void> {\n const allDeps = await this.getAllDedupedDirectDependencies();\n const updatedWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n for (const dep of allDeps) {\n updatedWorkspacePolicyEntries.push({\n dependencyId: dep.name,\n value: {\n version: dep.currentRange,\n },\n lifecycleType: 'runtime',\n });\n }\n this.dependencyResolver.addToRootPolicy(updatedWorkspacePolicyEntries, {\n updateExisting: true,\n });\n await this.dependencyResolver.persistConfig('Write dependencies');\n }\n\n externalPackageManagerIsUsed(): boolean {\n return this.dependencyResolver.config.externalPackageManager === true;\n }\n\n async writeDependenciesToPackageJson(dependencies?: Record<string, string>): Promise<void> {\n const pkgJson = await PackageJsonFile.load(this.path);\n const allDeps = dependencies\n ? Object.entries(dependencies).map(([name, currentRange]) => ({ name, currentRange }))\n : await this.getAllDedupedDirectDependencies();\n pkgJson.packageJsonObject.dependencies ??= {};\n for (const dep of allDeps) {\n pkgJson.packageJsonObject.dependencies[dep.name] = dep.currentRange;\n }\n await pkgJson.write();\n }\n\n async getAllDedupedDirectDependencies(): Promise<CurrentPkg[]> {\n const componentPolicies = await this.getComponentsWithDependencyPolicies();\n const variantPoliciesByPatterns = this.variantPatternsToDepPolicesDict();\n const components = await this.list();\n return this.dependencyResolver.getAllDedupedDirectDependencies({\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n });\n }\n\n variantPatternsToDepPolicesDict(): Record<string, VariantPolicyConfigObject> {\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n async getComponentsWithDependencyPolicies(): Promise<Array<{ componentId: ComponentID; policy: any }>> {\n const allComponentIds = this.listIds();\n const componentPolicies = [] as Array<{ componentId: ComponentID; policy: any }>;\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index];\n componentPolicies.push({ componentId, policy: depResolverConfig.config.policy });\n });\n return componentPolicies;\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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","ignoreList":[]}
1
+ {"version":3,"names":["_commentJson","data","require","_pMapSeries","_interopRequireDefault","_pMap","_graph","_dependenciesModules","_component","_bitError","_dependencyResolver","_envs","_workspaceModules","_componentId","_legacyBitId","_legacy","_legacy2","_harmonyModules","_legacy3","_legacy4","_toolboxPath","_toolboxPath2","_fsExtra","_lodash","_legacy5","_path","_legacy6","_component2","_legacy7","_legacy8","_scope","_componentVersion","_componentConfigFile","_componentStatus","_workspaceComponentLoader","_buildGraphFromFs","_bitMap","_workspace","_buildGraphIdsFromFs","_aspectsMerger","_workspaceAspectsLoader","_mergeConfigConflict","_compFiles","_filter","_componentStatusLoader","_autoTag","_configStore","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectSpecificField","exports","ComponentAdded","ComponentChanged","ComponentRemoved","DEFAULT_VENDOR_DIR","Workspace","constructor","config","consumer","scope","componentAspect","dependencyResolver","variants","aspectLoader","logger","harmony","onComponentLoadSlot","onComponentChangeSlot","envs","globalConfig","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","graphql","onBitmapChangeSlot","onWorkspaceConfigChangeSlot","configStore","componentLoadedSelfAsAspects","createInMemoryCache","maxSize","getMaxSizeForComponents","componentLoader","WorkspaceComponentLoader","validateConfig","bitMap","BitMap","aspectsMerger","AspectsMerger","Filter","componentStatusLoader","ComponentStatusLoader","isLegacy","isEmpty","BitError","defaultScope","isValidScopeName","InvalidScopeName","componentList","_componentList","ComponentsList","path","getPath","rootComponentsPath","baseDir","rootComponentsDirectory","join","modulesPath","BIT_ROOTS_DIR","registerOnComponentLoad","loadFn","register","registerOnComponentChange","onComponentChangeFunc","registerOnComponentAdd","onComponentAddFunc","registerOnComponentRemove","onComponentRemoveFunc","registerOnBitmapChange","OnBitmapChangeFunc","registerOnWorkspaceConfigChange","onWorkspaceConfigChangeFunc","registerOnAspectsResolve","onAspectsResolveFunc","registerOnRootAspectAdded","onRootAspectAddedFunc","name","tokenizedPath","split","icon","getConfigStore","list","getWorkspaceConfig","extension","ConfigStoreAspect","id","set","key","setExtension","ignoreVersion","mergeIntoExisting","del","current","overrideExisting","write","reasonForChange","invalidateCache","getAutoTagInfo","changedComponents","listAutoTagPendingComponentIds","componentsList","modifiedComponents","modified","map","c","newComponents","listNewComponents","autoTagPending","getAutoTagPending","ComponentIdList","fromArray","localOnly","listLocalOnly","comps","autoTagComp","has","componentId","hasModifiedDependencies","component","listAutoTagPendingComponents","isAutoTag","find","isEqualWithoutVersion","getComponentIssues","state","_consumer","issues","getComponentStatus","status","getComponentStatusById","ComponentStatus","fromLegacy","isOutdated","loadOpts","loadOptsWithDefaults","assign","ids","getAllIdsAvailableOnLane","idsToGet","limit","slice","offset","getMany","listWithInvalid","legacyIds","listInvalid","getInvalid","listIds","bitmapIdsFromCurrentLane","listIdsIncludeRemoved","bitmapIdsFromCurrentLaneIncludeRemoved","hasId","opts","includeDeleted","hasWithoutVersion","filterIds","workspaceIds","wsId","isEqual","hasVersion","hasName","Boolean","fullName","hasIdNested","includeCache","found","components","modifiedIncludeNulls","mapSeries","isModified","compact","componentIds","newComponentIds","allIds","locallyDeletedIds","listLocallySoftRemoved","duringMergeIds","duringMerge","listDuringMergeStateComponents","resolveMultipleComponentIds","getAllComponentIds","listTagPendingIds","removedComponents","allIdsUniq","uniqBy","toString","listPotentialTagIds","deletedIds","allIdsWithoutDeleted","getNewAndModifiedIds","newAndModified","getLogs","shortHash","startsFrom","getGraph","shouldThrowOnMissingDep","buildOneGraphForComponents","undefined","getGraphIds","graphIdsFromFsBuilder","GraphIdsFromFsBuilder","buildGraph","getUnavailableOnMainComponents","currentLaneId","getCurrentLaneId","isDefault","getAllBitIdsFromAllLanes","availableIds","unavailableIds","removedIds","getRemoved","compsWithHead","Promise","all","modelComp","legacyScope","getModelComponentIfExist","head","getDependencies","getSavedGraphOfComponentIfExist","flattenedEdges","getFlattenedEdges","versionObj","getBitObjectVersionById","flattenedDependencies","flattenedBitIdCompIdMap","getCurrentVersionAsTagIfPossible","currentVer","version","isCurrentVerAHash","isHash","tag","tags","byHash","raw","currentVersion","changeVersion","bitId","getCompIdByIdStr","idStr","compId","suggestWrongSnap","toStringWithoutVersion","Error","nodes","values","edges","edge","source","target","graph","Graph","node","setNode","Node","setEdge","Edge","type","getDependentsIds","filterOutNowWorkspaceIds","dependents","predecessors","nodeFilter","attr","flat","uniqFromArray","createAspectList","extensionDataList","entiresP","entry","extensionDataEntryToAspectEntry","entries","createAspectListFromEntries","dataEntry","AspectEntry","resolveComponentId","getLegacyMinimal","componentMap","getComponent","ConsumerComponent","loadFromFileSystem","getFilesModification","bitMapEntry","getBitmapEntry","compDir","getComponentDir","compDirAbs","sourceFilesVinyls","files","file","filePath","relativePath","SourceFile","load","repo","objects","getModelFiles","verObj","loadVersion","CompFiles","get","legacyComponent","useCache","storeInCache","trace","tryLoadAsAspect","isUsingEnvEnv","isCoreAspect","isAspectLoaded","debug","loadAspects","hideMissingModuleError","delete","getConfiguredUserAspectsPackages","options","workspaceAspectsLoader","getWorkspaceAspectsLoader","clearCache","resetFailedLoadAspects","skipClearFailedToLoadEnvs","resetFailedToLoadEnvs","clearAllComponentsCache","clearComponentsCache","clearComponentCache","clearOneComponentCache","warmCache","workspaceConfig","cleanFromConfig","wereIdsRemoved","removeExtension","hasChanged","some","isRemoved","removeFromStagedConfig","stagedConfig","getStagedConfig","removeComponentConfig","triggerOnComponentChange","removedFiles","watchOpts","onChangeEntries","toArray","results","onChangeFunc","onChangeResult","extensionId","pubsub","publish","componentChanged","triggerOnComponentAdd","loadOptions","onAddEntries","filesystem","onAddFunc","onAddResult","componentAdded","triggerOnComponentRemove","onRemoveEntries","onRemoveFunc","onRemoveResult","componentRemoved","toObject","triggerOnBitmapChange","onBitmapChangeEntries","onBitmapChangeFunc","triggerOnWorkspaceConfigChange","reloadWorkspaceConfig","configOfWorkspaceAspect","extensions","findExtension","WorkspaceAspect","configOfDepResolverAspect","DependencyResolverAspect","setConfig","onWorkspaceConfigChangeEntries","onWorkspaceConfigFunc","getState","hash","getSnap","getCurrentLaneObject","isOnMain","isOnLane","getCurrentRemoteLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","lanes","importLanes","err","ScopeNotFoundOrDenied","LaneNotFound","InvalidScopeNameFromRemote","bitMapLaneId","getExportedLaneId","clearStatusLine","warn","message","getDefaultExtensions","ExtensionDataList","fromConfigObject","getComponentConfigVinylFile","excludeLocalChanges","getExtensionsFromScopeAndSpecific","aspects","removeEnvVersionIfExistsLocally","componentDir","relative","configFile","ComponentConfigFile","propagate","toVinylFile","env","EnvsAspect","envAspect","envExtId","ejectMultipleConfigs","vinylFiles","EjectConfResult","configPath","dataToPersist","DataToPersist","addManyFiles","addBasePath","persistAllToFS","removeEntireConfig","getAspectConfigForComponent","aspectId","obj","toConfigObject","excludeComponentJson","componentFromScope","exclude","componentExtensions","byPattern","pattern","finalPattern","targetIds","spec","isMatchNamespacePatternItem","match","hasPattern","strArr","str","isPattern","specialSyntax","char","includes","idsByPattern","throwForNoMatch","isId","MissingBitMapComponent","filterIdsFromPoolIdsByPattern","by","bind","getComponentsByUserInput","includeDependents","loadExtensions","loadSeedersAsAspects","executeLoadSlot","newAndModifiedIds","comp","dependentsIds","dependentsIdsFiltered","_","getComponentsUsingEnv","throwIfNotFound","allComps","availableEnvs","foundComps","envId","getEnvId","envWithoutVersion","envIdFromConfig","getEnvIdFromEnvsConfig","uniq","throwOnFailure","getManyByLegacy","getIfExist","exists","getIdIfExist","mergeBitmaps","bitmapContent","otherBitmapContent","importAndGetMany","reason","throwOnError","lane","importCurrentLaneIfMissing","import","reFetchUnBuiltVersion","shouldReFetchUnBuiltVersion","preferDependencyGraph","getOutdatedIdsAgainstGit","fs","pathExists","bitmapIds","outdatedIds","pMap","bitmapId","modelComponent","hasTag","concurrency","importObjectsIfOutdatedAgainstBitmap","importCurrentObjects","setStatusLine","compIds","scopeComponentsImporter","hasScope","importWithoutDeps","toVersionLatest","cache","includeVersionHistory","fetchHeadIfLocalIsBehind","ignoreMissingHead","importMany","throwForSeederNotFound","laneId","laneObj","info","writeObjectsToTheFS","getExportedFrom","toBitIds","use","aspectIdStr","unuse","rootPath","pathToWrite","outputFile","contents","bitMapOptions","componentDirFromLegacyId","componentPackageDir","packageName","componentPackageName","packageDir","toAbsolutePath","getPackageName","relativeComponentDir","componentDirToAbsolute","componentDefaultScope","componentDefaultScopeFromComponentDirAndName","bitMapId","getExistingBitId","componentDefaultScopeFromComponentDirAndNameWithoutConfigFile","variantConfig","byRootDirAndName","isVendor","isVendorComponentByComponentDir","excludeOrigins","optsWithDefaults","mergeRes","merge","getEnvIdFromEnvsLegacyExtensions","loadComponentsExtensions","warnAboutMisconfiguredEnv","getCoreEnvsIds","warnedAboutMisconfiguredEnvs","parsedEnvId","consoleWarning","getConfigMergeFilePath","MergeConfigFilename","getConflictMergeFile","mergeConflictFile","getDepsDataOfMergeConfig","getWorkspaceJsonConflictFromMergeConfig","configMergeFile","conflict","getConflictParsed","MergeConfigConflict","error","getWorkspaceIssues","errors","listComponentsDuringMerge","unmergedComps","unmergedComponents","getComponents","bitIds","u","ComponentID","fromObject","getUnmergedComponent","unmerged","getEntry","consumerComp","_isModified","componentStatus","isModifiedOrNew","isExported","notExported","getNotExportedIds","setDefaultScopeToComponents","scopeName","compIdsStr","setDefaultScope","includeComponents","updateDefaultScope","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","componentConfigFile","addAspect","override","existingConfig","addComponentConfig","removeSpecificComponentConfig","markWithMinusIfNotExist","removed","removeAspect","getAspectIdFromConfig","ignoreAspectVersion","aspectEntry","getSpecificComponentConfig","vendorDir","vendor","directory","isPathInside","componentConfigFileFromComponentDirAndName","getComponentIdByPath","componentPath","isAbsolute","linuxPath","pathNormalizeToLinux","absComponentDir","neededFor","originatedFrom","ignoreIds","shouldLoadFunc","graphFromFsBuilder","GraphFromFsBuilder","resolveAspects","runtimeName","getTempDir","PREFIX","cacheDir","existsSync","mkdirSync","recursive","resolveEnvsFromRoots","resolveEnvsFromRootsConfig","getConfig","CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS","defaultResolveEnvsFromRoots","WorkspaceAspectsLoader","resolveAspectsFromNodeModules","getCapsulePath","shouldUseHashForCapsules","_reloadConsumer","loadConsumer","getComponentPackagePath","getRuntimeModulePath","workspacePath","isInWorkspace","defaultDirectory","legacyDefaultDirectory","resolveComponentIdFromPackageName","keepOriginalVersion","startsWith","errMsgPrefix","fromPackageJson","resolveComponentIdFromPackageJsonInNM","fromRegistryManifest","resolveComponentIdFromRegistryManifest","fromWsComponents","resolveComponentIdFromWsComponents","foundByName","idsToSearch","currPackageName","manifest","fetchFullPackageManifest","pkgJsonPath","pkgJson","readJson","BitId","getDefaultScope","fromString","legacyId","getParsedIdIfExist","shouldSearchWithoutScopeInProvidedId","idWithVersion","idWithoutVersion","_bitMapId","_bitMapIdWithoutVersion","_bitMapIdWithVersion","endsWith","defaultScopeForBitmapId","getFromBitmapAddDefaultScope","_bitmapIdWithVersionForSource","fromScope","resolveIdWithDefaultScope","searchWithoutVersion","changeScope","resolveExtensionsList","resolveMergedExtensionsP","extensionEntry","resolvedId","setEnvToComponents","verifyEnv","envStrWithPossiblyVersion","resolveEnvIdWithPotentialVersionForConfig","envComp","isEnv","envIdStrNoVersion","unsetEnvFromComponents","isCore","existsOnWorkspace","resolveEnvManifest","envExtendsDeps","isCoreEnv","splitted","envIdWithVersion","foundEnv","dep","resolvedEnvComponentId","envComponent","VersionNotFoundOnFS","getRemoteComponent","alreadyResolved","getEnvManifest","envJson","envManifest","parse","changed","unchanged","envsAspect","findCoreExtension","rawConfig","currentEnv","REMOVE_EXTENSION_SPECIAL_SIGN","currentEnvWithPotentialVersion","anyRemoved","updateEnvForComponents","envIdStr","allWsComps","allWsIds","isInWs","allEnvs","createEnvironment","getEnvWithVersion","currentLane","isDeletedOnLane","isDeleted","fromRemote","getEnvs","envCompId","envWithVer","allEnvsIds","runtimeEnvs","allEnvsCompIds","nonCoreEnvs","envsWithVersions","envsWithVerToUpdate","compIdsToUpdate","compsToUpdate","alreadyUpToDate","updated","compEnvs","compEnv","envToUpdate","envIsInWs","getComponentPathsRegExps","componentPathsRegExps","setComponentPathsRegExps","workspaceComponents","workspacePackageNames","packageManager","packageManagerName","isPnpmEnabled","pathsExcluding","generateNodeModulesPattern","packages","PatternTarget","WEBPACK","stringPattern","RegExp","getInjectedDirs","relativeCompDir","getAutoDetectOverrides","configuredExtensions","legacyFiles","envExtendedDeps","policy","mergeVariantPolicies","depsDataOfMergeConfig","policiesFromMergeConfig","VariantPolicy","mergePolices","toLegacyAutoDetectOverrides","getAutoDetectConfigMerge","getManyComponentsStatuses","setLocalOnly","staged","unsetLocalOnly","successfullyUnset","writeDependencies","writeDependenciesToPackageJson","writeDependenciesToWorkspaceJsonc","allDeps","getAllDedupedDirectDependencies","updatedWorkspacePolicyEntries","dependencyId","currentRange","lifecycleType","addToRootPolicy","updateExisting","persistConfig","externalPackageManagerIsUsed","externalPackageManager","dependencies","PackageJsonFile","packageJsonObject","componentPolicies","getComponentsWithDependencyPolicies","variantPoliciesByPatterns","variantPatternsToDepPolicesDict","variantPatterns","variantPattern","allComponentIds","index","depResolverConfig","commandsToReFetch","process","argv","_default"],"sources":["workspace.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { parse } from 'comment-json';\nimport mapSeries from 'p-map-series';\nimport pMap from 'p-map';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport type { IssuesList } from '@teambit/component-issues';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { generateNodeModulesPattern, PatternTarget } from '@teambit/dependencies.modules.packages-excluder';\nimport type {\n ComponentMain,\n Component,\n ComponentFactory,\n InvalidComponent,\n ResolveAspectsOptions,\n AspectList,\n} from '@teambit/component';\nimport { AspectEntry } from '@teambit/component';\nimport { BitError } from '@teambit/bit-error';\nimport type { ComponentScopeDirMap, ConfigMain, WorkspaceConfig } from '@teambit/config';\nimport type {\n CurrentPkg,\n DependencyResolverMain,\n DependencyList,\n VariantPolicyConfigObject,\n VariantPolicyConfigArr,\n WorkspacePolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, VariantPolicy } from '@teambit/dependency-resolver';\nimport type { EnvsMain, EnvJsonc } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport type { Harmony } from '@teambit/harmony';\nimport type { Logger } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport type { VariantsMain } from '@teambit/variants';\nimport type { ComponentIdObj } from '@teambit/component-id';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { InvalidScopeName, InvalidScopeNameFromRemote, isValidScopeName, BitId } from '@teambit/legacy-bit-id';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { loadConsumer } from '@teambit/legacy.consumer';\nimport type { GetBitMapComponentOptions } from '@teambit/legacy.bit-map';\nimport { MissingBitMapComponent } from '@teambit/legacy.bit-map';\nimport type { InMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\nimport { getMaxSizeForComponents, createInMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport type { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport { ExtensionDataList, REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy.extension-data';\nimport type { PathOsBased, PathOsBasedRelative, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport { isPathInside } from '@teambit/toolbox.path.is-path-inside';\nimport fs from 'fs-extra';\nimport type { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport { slice, isEmpty, merge, compact, uniqBy, uniq } from 'lodash';\nimport { MergeConfigFilename, BIT_ROOTS_DIR, CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS } from '@teambit/legacy.constants';\nimport path from 'path';\nimport type { Dependency as LegacyDependency } from '@teambit/legacy.consumer-component';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { WatchOptions } from '@teambit/watcher';\nimport type { ComponentLog, Lane } from '@teambit/objects';\nimport type { JsonVinyl } from '@teambit/component.sources';\nimport { SourceFile, DataToPersist, PackageJsonFile } from '@teambit/component.sources';\nimport { ScopeComponentsImporter, VersionNotFoundOnFS } from '@teambit/legacy.scope';\nimport { LaneNotFound } from '@teambit/legacy.scope-api';\nimport { ScopeNotFoundOrDenied } from '@teambit/scope.remotes';\nimport { isHash } from '@teambit/component-version';\nimport type { GlobalConfigMain } from '@teambit/global-config';\nimport { ComponentConfigFile } from './component-config-file';\nimport type {\n OnComponentAdd,\n OnComponentChange,\n OnComponentEventResult,\n OnComponentLoad,\n OnComponentRemove,\n SerializableResults,\n} from './on-component-events';\nimport type { WorkspaceExtConfig } from './types';\nimport { ComponentStatus } from './workspace-component/component-status';\nimport type {\n OnAspectsResolve,\n OnAspectsResolveSlot,\n OnBitmapChange,\n OnBitmapChangeSlot,\n OnWorkspaceConfigChange,\n OnWorkspaceConfigChangeSlot,\n OnComponentAddSlot,\n OnComponentChangeSlot,\n OnComponentLoadSlot,\n OnComponentRemoveSlot,\n OnRootAspectAdded,\n OnRootAspectAddedSlot,\n} from './workspace.main.runtime';\nimport type { ComponentLoadOptions } from './workspace-component/workspace-component-loader';\nimport { WorkspaceComponentLoader } from './workspace-component/workspace-component-loader';\nimport type { ShouldLoadFunc } from './build-graph-from-fs';\nimport { GraphFromFsBuilder } from './build-graph-from-fs';\nimport { BitMap } from './bit-map';\nimport type { MergeOptions as BitmapMergeOptions } from './bit-map';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { GraphIdsFromFsBuilder } from './build-graph-ids-from-fs';\nimport { AspectsMerger } from './aspects-merger';\nimport type {\n AspectPackage,\n GetConfiguredUserAspectsPackagesOptions,\n WorkspaceLoadAspectsOptions,\n} from './workspace-aspects-loader';\nimport { WorkspaceAspectsLoader } from './workspace-aspects-loader';\nimport type { MergeConflictFile } from './merge-conflict-file';\nimport { MergeConfigConflict } from './exceptions/merge-config-conflict';\nimport { CompFiles } from './workspace-component/comp-files';\nimport { Filter } from './filter';\nimport type { ComponentStatusLegacy, ComponentStatusResult } from './workspace-component/component-status-loader';\nimport { ComponentStatusLoader } from './workspace-component/component-status-loader';\nimport { getAutoTagInfo, getAutoTagPending } from './auto-tag';\nimport type { ConfigStoreMain, Store } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\nimport type { DependenciesOverridesData } from '@teambit/legacy.consumer-config';\n\nexport type EjectConfResult = {\n configPath: string;\n};\n\nexport type ClearCacheOptions = {\n skipClearFailedToLoadEnvs?: boolean;\n};\n\n/**\n * Field used to mark aspect config as \"specific\" (set via .bitmap or component.json).\n * When __specific is true, this config takes precedence over workspace variants during merging.\n * See https://github.com/teambit/bit/pull/5342 for original implementation.\n *\n * Important behavior for dependency-resolver aspect:\n * - Dependencies set via workspace variants are saved WITHOUT __specific (until first `bit deps set`)\n * - Once `bit deps set` is called, the entire dependency-resolver config gets __specific: true\n * - From that point forward, ALL deps in that aspect are considered \"specific\"\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 ComponentExtensionsOpts = {\n loadExtensions?: boolean;\n};\n\ntype ComponentExtensionsResponse = {\n extensions: ExtensionDataList;\n beforeMerge: Array<{ extensions: ExtensionDataList; origin: ExtensionsOrigin; extraData: any }>; // useful for debugging\n errors?: Error[];\n envId?: string;\n};\n\nexport type ExtensionsOrigin =\n | 'BitmapFile'\n | 'ModelSpecific'\n | 'ModelNonSpecific'\n | 'ConfigMerge'\n | 'WorkspaceVariants'\n | 'ComponentJsonFile'\n | 'FinalAfterMerge';\n\nconst DEFAULT_VENDOR_DIR = 'vendor';\n\n/**\n * API of the Bit Workspace\n */\nexport class Workspace implements ComponentFactory {\n private warnedAboutMisconfiguredEnvs: string[] = []; // cache env-ids that have been errored about not having \"env\" type\n priority = true;\n owner?: string;\n componentsScopeDirsMap: ComponentScopeDirMap;\n componentLoader: WorkspaceComponentLoader;\n private componentStatusLoader: ComponentStatusLoader;\n bitMap: BitMap;\n /**\n * Indicate that we are now running installation process\n * This is important to know to ignore missing modules across different places\n */\n inInstallContext = false;\n /**\n * Indicate that we done with the package manager installation process\n * This is important to skip stuff when package manager install is not done yet\n */\n inInstallAfterPmContext = false;\n private componentLoadedSelfAsAspects: InMemoryCache<boolean>; // cache loaded components\n private aspectsMerger: AspectsMerger;\n /**\n * Components paths are calculated from the component package names of the workspace\n * They are used in webpack configuration to only track changes from these paths inside `node_modules`\n */\n private componentPathsRegExps: RegExp[] = [];\n private _componentList: ComponentsList;\n localAspects: Record<string, string> = {};\n filter: Filter;\n constructor(\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 /**\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 readonly globalConfig: GlobalConfigMain,\n\n /**\n * on component add slot.\n */\n private onComponentAddSlot: OnComponentAddSlot,\n\n private onComponentRemoveSlot: OnComponentRemoveSlot,\n\n private onAspectsResolveSlot: OnAspectsResolveSlot,\n\n private onRootAspectAddedSlot: OnRootAspectAddedSlot,\n\n private graphql: GraphqlMain,\n\n private onBitmapChangeSlot: OnBitmapChangeSlot,\n\n private onWorkspaceConfigChangeSlot: OnWorkspaceConfigChangeSlot,\n\n private configStore: ConfigStoreMain\n ) {\n this.componentLoadedSelfAsAspects = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.componentLoader = new WorkspaceComponentLoader(this, logger, dependencyResolver, envs, aspectLoader);\n this.validateConfig();\n this.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n this.aspectsMerger = new AspectsMerger(this, this.harmony);\n this.filter = new Filter(this);\n this.componentStatusLoader = new ComponentStatusLoader(this);\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. please run \"bit init\" to rewrite them`\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 get componentList(): ComponentsList {\n if (!this._componentList) {\n this._componentList = new ComponentsList(this);\n }\n return this._componentList;\n }\n\n /**\n * root path of the Workspace.\n */\n get path() {\n return this.consumer.getPath();\n }\n\n /**\n * Get the location of the bit roots folder\n */\n get rootComponentsPath() {\n const baseDir =\n this.config.rootComponentsDirectory != null\n ? path.join(this.path, this.config.rootComponentsDirectory)\n : this.modulesPath;\n return path.join(baseDir, BIT_ROOTS_DIR);\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 registerOnComponentLoad(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 registerOnBitmapChange(OnBitmapChangeFunc: OnBitmapChange) {\n this.onBitmapChangeSlot.register(OnBitmapChangeFunc);\n return this;\n }\n\n registerOnWorkspaceConfigChange(onWorkspaceConfigChangeFunc: OnWorkspaceConfigChange) {\n this.onWorkspaceConfigChangeSlot.register(onWorkspaceConfigChangeFunc);\n }\n\n registerOnAspectsResolve(onAspectsResolveFunc: OnAspectsResolve) {\n this.onAspectsResolveSlot.register(onAspectsResolveFunc);\n return this;\n }\n\n registerOnRootAspectAdded(onRootAspectAddedFunc: OnRootAspectAdded) {\n this.onRootAspectAddedSlot.register(onRootAspectAddedFunc);\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 getConfigStore(): Store {\n return {\n list: () => this.getWorkspaceConfig().extension(ConfigStoreAspect.id, true) || {},\n set: (key: string, value: string) => {\n this.getWorkspaceConfig().setExtension(\n ConfigStoreAspect.id,\n { [key]: value },\n { ignoreVersion: true, mergeIntoExisting: true }\n );\n },\n del: (key: string) => {\n const current = this.getWorkspaceConfig().extension(ConfigStoreAspect.id, true) || {};\n delete current[key];\n this.getWorkspaceConfig().setExtension(ConfigStoreAspect.id, current, {\n ignoreVersion: true,\n overrideExisting: true,\n });\n },\n write: async () => {\n await this.getWorkspaceConfig().write({ reasonForChange: 'store-config changes' });\n },\n invalidateCache: async () => {\n // no need to invalidate anything.\n // if this is the same process, it'll get the updated one already.\n // if this is another process, it'll react to \"this.triggerOnWorkspaceConfigChange()\" anyway.\n },\n getPath: () => this.getWorkspaceConfig().path,\n };\n }\n\n async getAutoTagInfo(changedComponents: ComponentIdList) {\n return getAutoTagInfo(this.consumer, changedComponents);\n }\n\n async listAutoTagPendingComponentIds(): Promise<ComponentID[]> {\n const componentsList = new ComponentsList(this);\n const modifiedComponents = (await this.modified()).map((c) => c.id);\n const newComponents = (await componentsList.listNewComponents()) as ComponentIdList;\n if (!modifiedComponents || !modifiedComponents.length) return [];\n const autoTagPending = await getAutoTagPending(this.consumer, ComponentIdList.fromArray(modifiedComponents));\n const localOnly = this.listLocalOnly();\n const comps = autoTagPending\n .filter((autoTagComp) => !newComponents.has(autoTagComp.componentId))\n .filter((autoTagComp) => !localOnly.has(autoTagComp.componentId));\n return comps.map((c) => c.id);\n }\n\n async hasModifiedDependencies(component: Component) {\n const listAutoTagPendingComponents = await this.listAutoTagPendingComponentIds();\n const isAutoTag = listAutoTagPendingComponents.find((id) => id.isEqualWithoutVersion(component.id));\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.getComponentStatusById(component.id);\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 loadOptsWithDefaults: ComponentLoadOptions = Object.assign(loadOpts || {});\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const idsToGet = filter && filter.limit ? slice(ids, filter.offset, filter.offset + filter.limit) : ids;\n return this.getMany(idsToGet, loadOptsWithDefaults);\n }\n\n async listWithInvalid(loadOpts?: ComponentLoadOptions) {\n const legacyIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n return this.componentLoader.getMany(legacyIds, loadOpts, false);\n }\n\n /**\n * list all invalid components.\n * (see the invalid criteria in ConsumerComponent.isComponentInvalidByErrorType())\n */\n async listInvalid(): Promise<InvalidComponent[]> {\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n return this.componentLoader.getInvalid(ids);\n }\n\n /**\n * get ids of all workspace components.\n * deleted components are filtered out. (use this.listIdsIncludeRemoved() if you need them)\n */\n listIds(): ComponentIdList {\n return this.consumer.bitmapIdsFromCurrentLane;\n }\n\n listIdsIncludeRemoved(): ComponentIdList {\n return this.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n }\n\n /**\n * whether the given component-id is part of the workspace. default to check for the exact version\n */\n hasId(componentId: ComponentID, opts?: { includeDeleted?: boolean; ignoreVersion?: boolean }): boolean {\n const ids = opts?.includeDeleted ? this.listIdsIncludeRemoved() : this.listIds();\n return opts?.ignoreVersion ? ids.hasWithoutVersion(componentId) : ids.has(componentId);\n }\n\n /**\n * given component-ids, return the ones that are part of the workspace\n */\n async filterIds(ids: ComponentID[]): Promise<ComponentID[]> {\n const workspaceIds = this.listIds();\n return ids.filter((id) => workspaceIds.find((wsId) => wsId.isEqual(id, { ignoreVersion: !id.hasVersion() })));\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(loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n const { components } = await this.listWithInvalid(loadOpts);\n const modifiedIncludeNulls = await mapSeries(components, async (component) => {\n const modified = await this.isModified(component);\n return modified ? component : null;\n });\n return compact(modifiedIncludeNulls);\n }\n\n /**\n * list all new components in the workspace.\n */\n async newComponents() {\n const componentIds = await this.newComponentIds();\n return this.getMany(componentIds);\n }\n\n async newComponentIds(): Promise<ComponentID[]> {\n const allIds = this.listIds();\n return allIds.filter((id) => !id.hasVersion());\n }\n\n async locallyDeletedIds(): Promise<ComponentID[]> {\n return this.componentList.listLocallySoftRemoved();\n }\n\n async duringMergeIds(): Promise<ComponentID[]> {\n const duringMerge = this.componentList.listDuringMergeStateComponents();\n return this.resolveMultipleComponentIds(duringMerge);\n }\n\n /**\n * @deprecated use `listIds()` instead.\n * get all workspace component-ids\n */\n getAllComponentIds(): ComponentID[] {\n return this.listIds();\n }\n\n async listTagPendingIds(): Promise<ComponentID[]> {\n const newComponents = await this.newComponentIds();\n const modifiedComponents = (await this.modified()).map((c) => c.id);\n const removedComponents = await this.locallyDeletedIds();\n const duringMergeIds = await this.duringMergeIds();\n const allIds = [...newComponents, ...modifiedComponents, ...removedComponents, ...duringMergeIds];\n const allIdsUniq = uniqBy(allIds, (id) => id.toString());\n return allIdsUniq;\n }\n\n /**\n * list all components that can be tagged. (e.g. when tagging/snapping with --unmodified).\n * which are all components in the workspace, include locally deleted components.\n */\n async listPotentialTagIds(): Promise<ComponentID[]> {\n const deletedIds = await this.locallyDeletedIds();\n const allIdsWithoutDeleted = this.listIds();\n return [...deletedIds, ...allIdsWithoutDeleted];\n }\n\n async getNewAndModifiedIds(): Promise<ComponentID[]> {\n const ids = await this.listTagPendingIds();\n return 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 = 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 = 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.hasWithoutVersion(id));\n if (!unavailableIds.length) return [];\n const removedIds = this.consumer.bitMap.getRemoved();\n const compsWithHead: ComponentID[] = [];\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 compsWithHead;\n }\n\n getDependencies(component: Component): DependencyList {\n return this.dependencyResolver.getDependencies(component);\n }\n\n async getSavedGraphOfComponentIfExist(component: Component) {\n if (!component.id.hasVersion()) return null;\n const flattenedEdges = await this.scope.getFlattenedEdges(component.id);\n const versionObj = await this.scope.getBitObjectVersionById(component.id);\n if (!flattenedEdges || !versionObj) return null;\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 const getCurrentVersionAsTagIfPossible = (): string | undefined => {\n const currentVer = component.id.version;\n if (!currentVer) return undefined;\n const isCurrentVerAHash = isHash(currentVer);\n if (!isCurrentVerAHash) return currentVer;\n const tag = component.tags.byHash(currentVer)?.version.raw;\n return tag || currentVer;\n };\n const currentVersion = getCurrentVersionAsTagIfPossible();\n\n flattenedBitIdCompIdMap[component.id.changeVersion(currentVersion).toString()] = component.id;\n versionObj.flattenedDependencies.forEach((bitId) => {\n flattenedBitIdCompIdMap[bitId.toString()] = bitId;\n });\n const getCompIdByIdStr = (idStr: string): ComponentID => {\n const compId = flattenedBitIdCompIdMap[idStr];\n if (!compId) {\n const suggestWrongSnap = isHash(component.id.version)\n ? `\\nplease check that .bitmap has the correct versions of ${component.id.toStringWithoutVersion()}.\nit's possible that the version ${component.id.version} belong to ${idStr.split('@')[0]}`\n : '';\n throw new Error(\n `id ${idStr} exists in flattenedEdges but not in flattened of ${component.id.toString()}.${suggestWrongSnap}`\n );\n }\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[], filterOutNowWorkspaceIds = true): Promise<ComponentID[]> {\n const graph = await this.getGraphIds();\n const dependents = ids\n .map((id) =>\n graph.predecessors(id.toString(), {\n nodeFilter: (node) => (filterOutNowWorkspaceIds ? this.hasId(node.attr) : true),\n })\n )\n .flat()\n .map((node) => node.attr);\n return ComponentIdList.uniqFromArray(dependents);\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 * this is not the complete legacy component (ConsumerComponent), it's missing dependencies and hooks from Harmony\n * are skipped. do not trust the data you get from this method unless you know what you're doing.\n */\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n const componentMap = this.consumer.bitMap.getComponent(id);\n return await ConsumerComponent.loadFromFileSystem({\n componentMap,\n id,\n consumer: this.consumer,\n });\n } catch {\n return undefined;\n }\n }\n\n async getFilesModification(id: ComponentID): Promise<CompFiles> {\n const bitMapEntry = this.bitMap.getBitmapEntry(id, { ignoreVersion: true });\n const compDir = bitMapEntry.getComponentDir();\n const compDirAbs = path.join(this.path, compDir);\n const sourceFilesVinyls = bitMapEntry.files.map((file) => {\n const filePath = path.join(compDirAbs, file.relativePath);\n return SourceFile.load(filePath, compDirAbs, this.path, {});\n });\n const repo = this.scope.legacyScope.objects;\n const getModelFiles = async () => {\n const modelComp = await this.scope.legacyScope.getModelComponentIfExist(id);\n if (!modelComp) return [];\n if (!bitMapEntry.id.hasVersion()) return [];\n\n const verObj = await modelComp.loadVersion(bitMapEntry.id.version, repo);\n return verObj.files;\n };\n\n return new CompFiles(id, repo, sourceFilesVinyls, compDir, await getModelFiles());\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.trace(`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 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 // ignore missing modules when loading self\n await this.loadAspects([component.id.toString()], undefined, component.id.toString(), {\n hideMissingModuleError: true,\n });\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 {\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 async getConfiguredUserAspectsPackages(options: GetConfiguredUserAspectsPackagesOptions): Promise<AspectPackage[]> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.getConfiguredUserAspectsPackages(options);\n }\n\n /**\n * clears workspace, scope and all components caches.\n * doesn't clear the dependencies-data from the filesystem-cache.\n */\n async clearCache(options: ClearCacheOptions = {}) {\n this.logger.debug('clearing the workspace and scope caches');\n this.aspectLoader.resetFailedLoadAspects();\n if (!options.skipClearFailedToLoadEnvs) this.envs.resetFailedToLoadEnvs();\n await this.scope.clearCache();\n this.clearAllComponentsCache();\n }\n\n /**\n * clear the cache of all components in the workspace.\n * doesn't clear the dependencies-data from the filesystem-cache.\n */\n clearAllComponentsCache() {\n this.logger.debug('clearing all components caches');\n this.componentLoader.clearCache();\n this.consumer.componentLoader.clearComponentsCache();\n this.componentStatusLoader.clearCache();\n this._componentList = new ComponentsList(this);\n }\n\n clearComponentCache(id: ComponentID) {\n this.componentLoader.clearComponentCache(id);\n this.componentStatusLoader.clearOneComponentCache(id);\n this.consumer.clearOneComponentCache(id);\n this._componentList = new ComponentsList(this);\n }\n\n clearComponentsCache(ids: ComponentID[]) {\n ids.forEach((id) => this.clearComponentCache(id));\n }\n\n async warmCache() {\n await this.list();\n }\n\n getWorkspaceConfig(): WorkspaceConfig {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const workspaceConfig = config.workspaceConfig;\n if (!workspaceConfig) throw new Error('workspace config is missing from Config aspect');\n return workspaceConfig;\n }\n\n async cleanFromConfig(ids: ComponentID[]) {\n const workspaceConfig = this.getWorkspaceConfig();\n const wereIdsRemoved = ids.map((id) => workspaceConfig.removeExtension(id));\n const hasChanged = wereIdsRemoved.some((isRemoved) => isRemoved);\n if (hasChanged) await workspaceConfig.write({ reasonForChange: 'remove components' });\n return hasChanged;\n }\n\n /**\n * when tagging/snapping a component, its config data is written to the staged config. it helps for \"bit reset\" to\n * revert it back.\n * this method removes entries from that files. used by \"bit export\" and \"bit remove\".\n * in case the component is not found in the staged config, it doesn't throw an error. it simply ignores it.\n */\n async removeFromStagedConfig(ids: ComponentID[]) {\n this.logger.debug(`removeFromStagedConfig, ${ids.length} ids`);\n const stagedConfig = await this.scope.getStagedConfig();\n ids.map((compId) => stagedConfig.removeComponentConfig(compId));\n await stagedConfig.write();\n }\n\n async triggerOnComponentChange(\n id: ComponentID,\n files: PathOsBasedAbsolute[],\n removedFiles: PathOsBasedAbsolute[],\n watchOpts: WatchOptions\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id);\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, removedFiles, watchOpts);\n if (onChangeResult) 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(\n id: ComponentID,\n watchOpts: WatchOptions,\n loadOptions?: ComponentLoadOptions\n ): Promise<OnComponentEventResult[]> {\n const component = await this.get(id, undefined, undefined, undefined, loadOptions);\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, watchOpts);\n if (onAddResult) 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 triggerOnBitmapChange(): Promise<void> {\n const onBitmapChangeEntries = this.onBitmapChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n await mapSeries(onBitmapChangeEntries, async ([, onBitmapChangeFunc]) => {\n await onBitmapChangeFunc();\n });\n }\n\n /**\n * the purpose is mostly to reload the workspace config when it changes, so entries like \"defaultScope\" are updated.\n * it also updates the DependencyResolver config. I couldn't find a good way to update all aspects in workspace.jsonc.\n */\n async triggerOnWorkspaceConfigChange(): Promise<void> {\n this.logger.debug('triggerOnWorkspaceConfigChange, reloading workspace config');\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n await config.reloadWorkspaceConfig(this.path);\n const workspaceConfig = config.workspaceConfig;\n if (!workspaceConfig) throw new Error('workspace config is missing from Config aspect');\n const configOfWorkspaceAspect = workspaceConfig.extensions.findExtension(WorkspaceAspect.id);\n if (!configOfWorkspaceAspect) throw new Error('workspace extension is missing from workspace config');\n this.config = configOfWorkspaceAspect.config as WorkspaceExtConfig;\n const configOfDepResolverAspect = workspaceConfig.extensions.findExtension(DependencyResolverAspect.id);\n if (configOfDepResolverAspect) this.dependencyResolver.setConfig(configOfDepResolverAspect.config as any);\n this.dependencyResolver.clearCache();\n this.configStore.invalidateCache();\n\n const onWorkspaceConfigChangeEntries = this.onWorkspaceConfigChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]\n await mapSeries(onWorkspaceConfigChangeEntries, async ([, onWorkspaceConfigFunc]) => {\n await onWorkspaceConfigFunc();\n });\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 async getCurrentLaneObject(): Promise<Lane | undefined> {\n return this.consumer.getCurrentLaneObject();\n }\n\n isOnMain(): boolean {\n return this.consumer.isOnMain();\n }\n\n isOnLane(): boolean {\n return this.consumer.isOnLane();\n }\n\n /**\n * if checked out to a lane and the lane exists in the remote,\n * return the remote lane. 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: any) {\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 this.logger.clearStatusLine();\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 getComponentConfigVinylFile(\n id: ComponentID,\n options: EjectConfOptions,\n excludeLocalChanges = false\n ): Promise<JsonVinyl> {\n const componentId = await this.resolveComponentId(id);\n const extensions = await this.getExtensionsFromScopeAndSpecific(id, excludeLocalChanges);\n const aspects = await this.createAspectList(extensions);\n this.removeEnvVersionIfExistsLocally(aspects);\n const componentDir = this.componentDir(id, { ignoreVersion: true }, { relative: true });\n const configFile = new ComponentConfigFile(componentId, aspects, componentDir, options.propagate);\n return configFile.toVinylFile(options);\n }\n\n private removeEnvVersionIfExistsLocally(aspects: AspectList) {\n const env = aspects.get(EnvsAspect.id)?.config?.env;\n if (!env) return;\n const envAspect = aspects.get(env);\n if (!envAspect) return;\n const envExtId = envAspect.id;\n if (!envExtId?.hasVersion()) return;\n if (!this.hasId(envExtId, { ignoreVersion: true })) return;\n envAspect.id = envExtId.changeVersion(undefined);\n }\n\n async ejectMultipleConfigs(ids: ComponentID[], options: EjectConfOptions): Promise<EjectConfResult[]> {\n const vinylFiles = await Promise.all(ids.map((id) => this.getComponentConfigVinylFile(id, options)));\n const EjectConfResult = vinylFiles.map((file) => ({ configPath: file.path }));\n const dataToPersist = new DataToPersist();\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.path);\n await dataToPersist.persistAllToFS();\n\n ids.map((id) => this.bitMap.removeEntireConfig(id));\n await this.bitMap.write(`eject-conf (${ids.length} component(s))`);\n\n return EjectConfResult;\n }\n\n async getAspectConfigForComponent(id: ComponentID, aspectId: string): Promise<object | undefined> {\n const extensions = await this.getExtensionsFromScopeAndSpecific(id);\n const obj = extensions.toConfigObject();\n return obj[aspectId];\n }\n\n async getExtensionsFromScopeAndSpecific(id: ComponentID, excludeComponentJson = false): Promise<ExtensionDataList> {\n const componentFromScope = await this.scope.get(id);\n const exclude: ExtensionsOrigin[] = ['WorkspaceVariants'];\n if (excludeComponentJson) exclude.push('ComponentJsonFile');\n const { extensions } = await this.componentExtensions(id, componentFromScope, exclude);\n\n return extensions;\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 hasPattern(strArr: string[]) {\n return strArr.some((str) => this.isPattern(str));\n }\n\n isPattern(str: string) {\n const specialSyntax = ['*', ',', '!', '$', ':'];\n return specialSyntax.some((char) => str.includes(char));\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(\n pattern: string,\n throwForNoMatch = true,\n opts: { includeDeleted?: boolean } = {}\n ): Promise<ComponentID[]> {\n const isId = !this.isPattern(pattern);\n if (isId) {\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.hasId(id, { ignoreVersion: true, includeDeleted: opts.includeDeleted })) return [id];\n if (throwForNoMatch) throw new MissingBitMapComponent(pattern);\n return [];\n }\n const ids = opts.includeDeleted ? this.listIdsIncludeRemoved() : await this.listIds();\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n async filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n return this.scope.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch, this.filter.by.bind(this.filter));\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 && pattern) {\n throw new BitError(\n 'Cannot use both \"all\" flag and component pattern simultaneously. Use either --all/--unmodified for all components, or specify component pattern.'\n );\n }\n if (all) {\n return this.list();\n }\n if (pattern) {\n const ids = await this.idsByPattern(pattern);\n return this.getMany(ids, { loadExtensions: true, loadSeedersAsAspects: true, executeLoadSlot: true });\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 availableEnvs: string[] = [];\n const foundComps = allComps.filter((comp) => {\n const envId = this.envs.getEnvId(comp);\n if (env === envId) return true;\n availableEnvs.push(envId);\n if (!ignoreVersion) return false;\n const envWithoutVersion = envId.split('@')[0];\n if (env === envWithoutVersion) return true;\n // envIdFromConfig never has a version. so in case ignoreVersion is true, it's safe to compare without the version.\n // also, in case the env failed to load, the envId above will be the default teambit.harmony/node env, which\n // won't help. this one is the one configured on this component.\n const envIdFromConfig = this.envs.getEnvIdFromEnvsConfig(comp);\n return envIdFromConfig === env;\n });\n if (!foundComps.length && throwIfNotFound) {\n throw new BitError(`unable to find components that using \"${env}\" env.\nthe following envs are used in this workspace: ${uniq(availableEnvs).join(', ')}`);\n }\n return foundComps;\n }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions, throwOnFailure = true): Promise<Component[]> {\n this.logger.debug(`getMany, started. ${ids.length} components`);\n const { components } = await this.componentLoader.getMany(ids, loadOpts, throwOnFailure);\n this.logger.debug(`getMany, completed. ${components.length} components`);\n return components;\n }\n\n getManyByLegacy(components: ConsumerComponent[], loadOpts?: ComponentLoadOptions): Promise<Component[]> {\n return mapSeries(components, async (component) => {\n const id = 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 * @deprecated use `hasId` with \"ignoreVersion: true\" instead.\n */\n exists(componentId: ComponentID, opts: { includeDeleted?: boolean } = {}): boolean {\n const allIds = opts.includeDeleted ? this.listIdsIncludeRemoved() : this.consumer.bitmapIdsFromCurrentLane;\n return allIds.hasWithoutVersion(componentId);\n }\n\n getIdIfExist(componentId: ComponentID): ComponentID | undefined {\n return this.consumer.bitmapIdsFromCurrentLane.find((_) => _.isEqualWithoutVersion(componentId));\n }\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: BitmapMergeOptions = {}): string {\n return this.bitMap.mergeBitmaps(bitmapContent, otherBitmapContent, opts);\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(\n ids: Array<ComponentID>,\n reason?: string,\n loadOpts?: ComponentLoadOptions,\n throwOnError = true\n ): Promise<Component[]> {\n if (!ids.length) return [];\n const lane = await this.importCurrentLaneIfMissing();\n await this.scope.import(ids, {\n reFetchUnBuiltVersion: shouldReFetchUnBuiltVersion(),\n preferDependencyGraph: true,\n // add the lane object although it was imported with all its ids previously.\n // in some cases, this import re-fetch existing ids whose their VersionHistory is incomplete, so it needs the Lane context.\n lane,\n reason,\n });\n return this.getMany(ids, loadOpts, throwOnError);\n }\n\n /**\n * This is happening when the user is running \"git pull\", which updates \".bitmap\" file, but the local scope objects\n * are not updated yet (\"bit import\" is not run yet).\n * Although it might happen on a lane. This is rare. Because using git with bit normally means that locally you don't have\n * any lane. The CI is the one that creates the lanes.\n * The following conditions are checked:\n * 1. we're on main.\n * 2. git is enabled.\n * 3. components on .bitmap has tags that are not in the local scope.\n *\n * It is designed to be performant. On mac M1 with 337 components, it takes around 100ms.\n *\n * @returns array of component IDs that have tags in .bitmap but not in local scope, or empty array if not outdated\n */\n private async getOutdatedIdsAgainstGit(): Promise<ComponentID[]> {\n if (!this.consumer.isOnMain()) {\n return [];\n }\n if (!(await fs.pathExists(path.join(this.path, '.git')))) {\n return [];\n }\n\n // Collect bitmap components that have tags not in local scope\n const bitmapIds = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const outdatedIds = await pMap(\n bitmapIds,\n async (bitmapId) => {\n if (!bitmapId.version) return;\n const modelComponent = await this.scope.legacyScope.getModelComponentIfExist(bitmapId.changeVersion(undefined));\n if (!modelComponent || !modelComponent.hasTag(bitmapId.version)) {\n // Component doesn't exist in scope or exists but this tag version is missing\n return bitmapId;\n }\n\n return null;\n },\n { concurrency: 30 }\n );\n\n return compact(outdatedIds);\n }\n\n /**\n * This is relevant when the user is running \"git pull\", which updates \".bitmap\" file, but the local scope objects\n * are not updated yet (\"bit import\" is not run yet). In case it found outdated components, it imports them.\n *\n * Important: this is only for main (not lanes) and only when using git and only for tags, not snaps.\n * see `getOutdatedIdsAgainstGit` for more info.\n */\n async importObjectsIfOutdatedAgainstBitmap(): Promise<void> {\n const outdatedIds = await this.getOutdatedIdsAgainstGit();\n if (outdatedIds.length) {\n await this.importCurrentObjects(outdatedIds);\n this.logger.setStatusLine(`imported ${outdatedIds.length} components that were outdated against bitmap`);\n }\n }\n\n /**\n * This is pretty much the same as `importer.importCurrentObjects`.\n * The reason for the duplication is that many aspects can't depend on the `importer` aspect, due to circular dependencies.\n * The importer aspect is reacher in a way that it shows the results of what was imported by comparing the before and after.\n */\n async importCurrentObjects(compIds?: ComponentID[]) {\n const lane = await this.importCurrentLaneIfMissing();\n if (lane) {\n return; // it was all imported in the function above.\n }\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const allIds = compIds || this.consumer.bitMap.getAllBitIdsFromAllLanes();\n const ids = ComponentIdList.fromArray(allIds.filter((id) => id.hasScope()));\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n includeVersionHistory: true,\n fetchHeadIfLocalIsBehind: true,\n ignoreMissingHead: true,\n reason: `of their latest on main`,\n });\n\n this.logger.setStatusLine(`import ${ids.length} components with their dependencies (if missing)`);\n await scopeComponentsImporter.importMany({\n ids,\n ignoreMissingHead: true,\n preferDependencyGraph: true,\n reFetchUnBuiltVersion: true,\n throwForSeederNotFound: false,\n reason: 'for getting all dependencies',\n });\n }\n\n async importCurrentLaneIfMissing(): Promise<Lane | undefined> {\n const laneId = this.getCurrentLaneId();\n const laneObj = await this.scope.legacyScope.getCurrentLaneObject();\n if (laneId.isDefault() || laneObj) {\n return laneObj;\n }\n const lane = await this.getCurrentRemoteLane();\n if (!lane) {\n return undefined;\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 = ComponentIdList.fromArray(this.getExportedFrom(lane.toBitIds()));\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n lane,\n includeVersionHistory: true,\n reason: 'latest of the current lane',\n });\n\n await scopeComponentsImporter.importMany({ ids, lane, reason: 'for making sure the current lane has all ' });\n return lane;\n }\n\n async use(aspectIdStr: string): Promise<string> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.use(aspectIdStr);\n }\n async unuse(aspectIdStr: string): Promise<boolean> {\n const compId = await this.resolveComponentId(aspectIdStr);\n return this.cleanFromConfig([compId]);\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 * @todo: the return path here is Linux when asking for relative and os-based when asking for absolute. fix this to be consistent.\n *\n * Get the component root dir in the file system (relative to workspace or full)\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, 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 this.dependencyResolver.getPackageName(component);\n }\n\n private componentDirFromLegacyId(\n bitId: ComponentID,\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 (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 /**\n * @deprecated long long ago we added it to the componentId object. use `componentId.scope` instead.\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 bitMapId = this.consumer.bitMap.getExistingBitId(name, false);\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 opts: ComponentExtensionsOpts = {}\n ): Promise<ComponentExtensionsResponse> {\n const optsWithDefaults: ComponentExtensionsOpts = Object.assign({ loadExtensions: true }, opts);\n const mergeRes: ComponentExtensionsResponse = await this.aspectsMerger.merge(\n componentId,\n componentFromScope,\n excludeOrigins\n );\n const envId = await this.envs.getEnvIdFromEnvsLegacyExtensions(mergeRes.extensions);\n if (optsWithDefaults.loadExtensions) {\n await this.loadComponentsExtensions(mergeRes.extensions, componentId);\n if (envId) {\n await this.warnAboutMisconfiguredEnv(envId);\n }\n }\n mergeRes.envId = envId;\n return mergeRes;\n }\n\n async warnAboutMisconfiguredEnv(envId: string) {\n if (!envId) return;\n if (this.envs.getCoreEnvsIds().includes(envId)) return;\n if (this.warnedAboutMisconfiguredEnvs.includes(envId)) return;\n let env: Component;\n try {\n const parsedEnvId = await this.resolveComponentId(envId);\n env = await this.get(parsedEnvId);\n } catch {\n return; // unable to get the component for some reason. don't sweat it. forget about the warning\n }\n if (!this.envs.isUsingEnvEnv(env)) {\n this.warnedAboutMisconfiguredEnvs.push(envId);\n this.logger.consoleWarning(\n `env \"${envId}\" is not of type env. (correct the env's type, or component config with \"bit env set ${envId} teambit.envs/env\")`\n );\n }\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: ComponentID): VariantPolicyConfigArr {\n return this.aspectsMerger.getDepsDataOfMergeConfig(id);\n }\n\n /**\n * @deprecated\n * the workspace.jsonc conflicts are not written to the config-merge file anymore.\n * see https://github.com/teambit/bit/pull/8393 for more details.\n */\n getWorkspaceJsonConflictFromMergeConfig(): { data?: Record<string, any>; conflict: boolean } {\n const configMergeFile = this.getConflictMergeFile();\n let data: Record<string, any> | undefined;\n let conflict = false;\n try {\n data = configMergeFile.getConflictParsed('WORKSPACE');\n } catch (err) {\n if (!(err instanceof MergeConfigConflict)) {\n throw err;\n }\n conflict = true;\n this.logger.error(`unable to parse the config file for the workspace due to conflicts`);\n }\n return { data, conflict };\n }\n\n getWorkspaceIssues(): Error[] {\n const errors: Error[] = [];\n\n // since PR #8393, the workspace.jsonc conflicts are not written to the config-merge file anymore.\n // @todo remove this in the future. (maybe Q2 of 2024).\n const configMergeFile = this.getConflictMergeFile();\n try {\n configMergeFile.getConflictParsed('WORKSPACE');\n } catch (err) {\n if (err instanceof MergeConfigConflict) {\n errors.push(err);\n }\n }\n return errors;\n }\n\n async listComponentsDuringMerge(): Promise<ComponentID[]> {\n const unmergedComps = this.scope.legacyScope.objects.unmergedComponents.getComponents();\n const bitIds = unmergedComps.map((u) => ComponentID.fromObject(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);\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 false; // 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.getComponentStatusById(component.id);\n return componentStatus.modified === true;\n }\n\n async isModifiedOrNew(component: Component): Promise<boolean> {\n const head = component.head;\n if (!head) {\n return true; // it's a new component\n }\n return this.isModified(component);\n }\n\n isExported(id: ComponentID): boolean {\n return this.consumer.isExported(id);\n }\n getExportedFrom(ids: ComponentID[]): ComponentID[] {\n const notExported = this.consumer.getNotExportedIds();\n return ids.filter((id) => !notExported.hasWithoutVersion(id));\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('scope-set');\n return newComponentIds;\n }\n\n /**\n * @param scopeName\n * @param includeComponents whether to update new components in the workspace to use the new default-scope\n * this is relevant only for new components that were using the previous default-scope\n */\n async setDefaultScope(scopeName: string, includeComponents = true) {\n if (this.defaultScope === scopeName) {\n throw new Error(`the default-scope is already set as \"${scopeName}\", nothing to change`);\n }\n if (!isValidScopeName(scopeName)) {\n throw new InvalidScopeName(scopeName);\n }\n const workspaceConfig = this.getWorkspaceConfig();\n workspaceConfig.setExtension(\n WorkspaceAspect.id,\n { defaultScope: scopeName },\n { mergeIntoExisting: true, ignoreVersion: true }\n );\n if (includeComponents) {\n // fix also comps using the old default-scope\n this.bitMap.updateDefaultScope(this.config.defaultScope, scopeName);\n }\n\n this.config.defaultScope = scopeName;\n await workspaceConfig.write({ reasonForChange: `default-scope (${scopeName})` });\n await this.bitMap.write('scope-set');\n }\n\n async addSpecificComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n {\n shouldMergeWithExisting,\n shouldMergeWithPrevious,\n }: {\n shouldMergeWithExisting?: boolean;\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?: boolean;\n } = { shouldMergeWithExisting: false, 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 existingConfig = await this.getAspectConfigForComponent(id, aspectId);\n config = existingConfig ? merge(existingConfig, config) : config;\n }\n this.bitMap.addComponentConfig(id, aspectId, config, shouldMergeWithExisting);\n }\n }\n\n async removeSpecificComponentConfig(\n id: ComponentID,\n aspectId: string,\n markWithMinusIfNotExist = false\n ): Promise<boolean> {\n const componentConfigFile = await this.componentConfigFile(id);\n if (componentConfigFile) {\n const removed = await componentConfigFile.removeAspect(\n aspectId,\n markWithMinusIfNotExist,\n this.resolveComponentId.bind(this)\n );\n if (removed) {\n await componentConfigFile.write({ override: true });\n }\n return removed;\n } else {\n return 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 (isPathInside(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);\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 bitId;\n }\n return undefined;\n }\n\n private async componentConfigFileFromComponentDirAndName(\n relativeComponentDir: PathOsBasedRelative\n ): Promise<ComponentConfigFile | undefined> {\n let componentConfigFile;\n if (relativeComponentDir) {\n const absComponentDir = this.componentDirToAbsolute(relativeComponentDir);\n componentConfigFile = await ComponentConfigFile.load(absComponentDir, this.createAspectList.bind(this));\n }\n\n return componentConfigFile;\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(\n ids: string[] = [],\n throwOnError = false,\n neededFor?: string,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<string[]> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.loadAspects(ids, throwOnError, neededFor, opts);\n }\n\n async loadComponentsExtensions(\n extensions: ExtensionDataList,\n originatedFrom?: ComponentID,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<void> {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.loadComponentsExtensions(extensions, originatedFrom, opts);\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 const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\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 getWorkspaceAspectsLoader(): WorkspaceAspectsLoader {\n let resolveEnvsFromRoots = this.config.resolveEnvsFromRoots;\n if (resolveEnvsFromRoots === undefined) {\n const resolveEnvsFromRootsConfig = this.configStore.getConfig(CFG_DEFAULT_RESOLVE_ENVS_FROM_ROOTS);\n const defaultResolveEnvsFromRoots: boolean =\n // @ts-ignore\n resolveEnvsFromRootsConfig === 'true' || resolveEnvsFromRootsConfig === true;\n resolveEnvsFromRoots = defaultResolveEnvsFromRoots;\n }\n\n const workspaceAspectsLoader = new WorkspaceAspectsLoader(\n this,\n this.scope,\n this.aspectLoader,\n this.envs,\n this.dependencyResolver,\n this.logger,\n this.configStore,\n this.harmony,\n this.onAspectsResolveSlot,\n this.onRootAspectAddedSlot,\n this.config.resolveAspectsFromNodeModules,\n resolveEnvsFromRoots\n );\n return workspaceAspectsLoader;\n }\n\n getCapsulePath() {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.getCapsulePath();\n }\n\n shouldUseHashForCapsules() {\n const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();\n return workspaceAspectsLoader.shouldUseHashForCapsules();\n }\n\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.bitMap = new BitMap(this.consumer.bitMap, this.consumer);\n await this.clearCache();\n }\n\n getComponentPackagePath(component: Component) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component, {\n workspacePath: this.path,\n rootComponentsPath: this.rootComponentsPath,\n isInWorkspace: this.hasId(component.id),\n });\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 async resolveComponentIdFromPackageName(packageName: string, keepOriginalVersion = false): Promise<ComponentID> {\n if (!packageName.startsWith('@')) {\n throw new Error(`findComponentIdFromPackageName supports only packages that start with @, got ${packageName}`);\n }\n const errMsgPrefix = `unable to resolve a component-id from the package-name ${packageName}, `;\n\n const fromPackageJson = await this.resolveComponentIdFromPackageJsonInNM(packageName, errMsgPrefix);\n if (fromPackageJson) return fromPackageJson;\n const fromRegistryManifest = await this.resolveComponentIdFromRegistryManifest(\n packageName,\n errMsgPrefix,\n keepOriginalVersion\n );\n if (fromRegistryManifest) return fromRegistryManifest;\n const fromWsComponents = await this.resolveComponentIdFromWsComponents(packageName);\n if (fromWsComponents) return fromWsComponents;\n throw new BitError(errMsgPrefix);\n }\n\n private async resolveComponentIdFromWsComponents(packageName: string): Promise<ComponentID | undefined> {\n const ids = this.consumer.bitMap.getAllIdsAvailableOnLane();\n const [, name] = packageName.split('/');\n const foundByName = ids.filter((id) => id.fullName.includes(name));\n const idsToSearch = foundByName;\n if (!idsToSearch.length) {\n return undefined;\n }\n // if (!foundByName.length) {\n // const foundByScope = ids.filter(id => id.toString().includes(scope.replace('@', '')));\n // idsToSearch = foundByScope;\n // }\n const comps = await this.getMany(idsToSearch, {\n loadExtensions: false,\n storeInCache: false,\n loadSeedersAsAspects: false,\n });\n const found = comps.find((comp) => {\n const currPackageName = this.dependencyResolver.getPackageName(comp);\n return currPackageName === packageName;\n });\n if (found) {\n return found.id;\n }\n }\n\n private async resolveComponentIdFromRegistryManifest(\n packageName: string,\n errMsgPrefix: string,\n keepOriginalVersion = false\n ): Promise<ComponentID | undefined> {\n const manifest = await this.dependencyResolver.fetchFullPackageManifest(packageName);\n if (!manifest) {\n return undefined;\n }\n if (!('componentId' in manifest)) {\n throw new BitError(\n `${errMsgPrefix}the package.json of version \"${manifest.version}\" has no componentId field, it's probably not a component`\n );\n }\n if (keepOriginalVersion) return ComponentID.fromObject(manifest.componentId as ComponentIdObj);\n return ComponentID.fromObject(manifest.componentId as ComponentIdObj).changeVersion(undefined);\n }\n\n private async resolveComponentIdFromPackageJsonInNM(\n packageName: string,\n errMsgPrefix: string\n ): Promise<ComponentID | undefined> {\n const pkgJsonPath = path.join(this.path, 'node_modules', packageName, 'package.json');\n let pkgJson: Record<string, any> | undefined;\n try {\n pkgJson = await fs.readJson(pkgJsonPath);\n if (!pkgJson) return undefined;\n const compId = pkgJson.componentId;\n if (!compId) {\n throw new BitError(\n `${errMsgPrefix}the package.json file has no componentId field, it's probably not a component`\n );\n }\n return ComponentID.fromObject(compId);\n } catch {\n // never mind the reason. probably it's not there.\n return undefined;\n }\n }\n\n /**\n * Transform the id to ComponentId and get the exact id as appear in bitmap\n */\n async resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID> {\n if (id instanceof BitId && id.hasScope() && id.hasVersion()) {\n // an optimization to make it faster when BitId is passed\n return ComponentID.fromLegacy(id);\n }\n if (id instanceof ComponentID && id.hasVersion()) {\n return id;\n }\n if (typeof id === 'string' && id.startsWith('@')) {\n return this.resolveComponentIdFromPackageName(id);\n }\n const getDefaultScope = async (bitId: ComponentID, 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.fullName\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._legacy, 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._legacy, 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 {\n return ComponentID.fromString(id.toString());\n }\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | ComponentID>): Promise<ComponentID[]> {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * component-id coming from Scope don't have the defaultScope, the legacyComponentId.scope is always populated.\n * in the .bitmap we need to distinguish between the two, so the componentId needs to be corrected with the defaultScope.\n */\n resolveIdWithDefaultScope(componentId: ComponentID): ComponentID {\n const isExported = !this.consumer.getNotExportedIds().searchWithoutVersion(componentId);\n const bitId = componentId._legacy.changeScope(isExported ? componentId.scope : undefined);\n return ComponentID.fromLegacy(bitId, componentId.scope);\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;\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[], verifyEnv = true) {\n const envStrWithPossiblyVersion = await this.resolveEnvIdWithPotentialVersionForConfig(envId);\n if (verifyEnv) {\n const envComp = await this.get(ComponentID.fromString(envStrWithPossiblyVersion));\n const isEnv = this.envs.isEnv(envComp);\n if (!isEnv) throw new BitError(`the component ${envComp.id.toString()} is not an env`);\n }\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(`env-set (${envId.toString()})`);\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], `to get the env ${envId.toString()}`);\n const comp = comps[0];\n if (!comp) throw new BitError(`unable to find ${envId.toString()} in the workspace or in the remote`);\n return comp.id.toString();\n }\n\n async resolveEnvManifest(envId: string, envExtendsDeps: LegacyDependency[] = []): Promise<EnvJsonc> {\n if (this.aspectLoader.isCoreEnv(envId)) return {};\n\n const splitted = envId.split('@');\n const envIdWithVersion = envId.startsWith('@') ? `@${splitted[1]}` : splitted[0];\n const foundEnv = envExtendsDeps.find(\n (dep) => dep.id.toStringWithoutVersion() === envIdWithVersion || dep.packageName === envIdWithVersion\n );\n let id = envId;\n if (foundEnv?.id) {\n if (foundEnv.id.version.includes('-new')) {\n id = foundEnv.id.toStringWithoutVersion();\n } else {\n id = foundEnv.id.toString();\n }\n }\n\n const resolvedEnvComponentId = await this.resolveComponentId(id);\n\n // We need to load the env component with the slot and extensions to get the env manifest of the parent\n // already resolved\n let envComponent: Component;\n try {\n envComponent = await this.get(resolvedEnvComponentId, undefined, true, true, {\n executeLoadSlot: true,\n loadExtensions: true,\n });\n } catch (error) {\n // If component not found in workspace (e.g. during bit new with extends), try remote\n if (error instanceof VersionNotFoundOnFS || (error as any).name === 'VersionNotFoundOnFS') {\n envComponent = await this.scope.getRemoteComponent(resolvedEnvComponentId);\n } else {\n throw error;\n }\n }\n\n // TODO: caching this\n const alreadyResolved = this.envs.getEnvManifest(envComponent);\n if (alreadyResolved) return alreadyResolved;\n\n // TODO: caching this\n const envJson = envComponent.filesystem.files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n if (!envJson) {\n throw new BitError(`unable to find env.jsonc file in ${envId}`);\n }\n const envManifest: EnvJsonc = parse(envJson.contents.toString('utf8'), undefined, true) as EnvJsonc;\n\n return envManifest;\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 // the env that gets saved in the .bitmap file config root can be with or without version.\n // e.g. when a custom env is in .bitmap, it's saved without version, but when asking the component for the\n // env by `this.getAspectIdFromConfig`, it returns the env with version.\n // to make sure we remove the env from the .bitmap, we need to remove both with and without version.\n const currentEnvWithPotentialVersion = await this.getAspectIdFromConfig(id, currentEnv, true);\n let anyRemoved = false;\n anyRemoved = (await this.removeSpecificComponentConfig(id, currentEnv)) || anyRemoved;\n if (currentEnvWithPotentialVersion && currentEnvWithPotentialVersion.includes('@')) {\n anyRemoved = (await this.removeSpecificComponentConfig(id, currentEnvWithPotentialVersion)) || anyRemoved;\n }\n anyRemoved = (await this.removeSpecificComponentConfig(id, EnvsAspect.id)) || anyRemoved;\n if (anyRemoved) {\n changed.push(id);\n } else {\n unchanged.push(id);\n }\n })\n );\n await this.bitMap.write(`env-unset`);\n return { changed, unchanged };\n }\n\n async updateEnvForComponents(envIdStr?: string, pattern?: string) {\n const allWsComps = await this.list();\n const allWsIds = 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 if (isInWs(envId)) return envId;\n const currentLane = await this.getCurrentLaneObject();\n const isDeletedOnLane = currentLane && currentLane.getComponent(envId)?.isDeleted;\n try {\n const fromRemote = await this.scope.getRemoteComponent(envId, isDeletedOnLane);\n return envId.changeVersion(fromRemote.id.version);\n } catch {\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 const envWithVer = await getEnvWithVersion(envCompId);\n return [envWithVer];\n }\n const allEnvsIds = allEnvs.runtimeEnvs.map((env) => env.id);\n const allEnvsCompIds = await this.resolveMultipleComponentIds(allEnvsIds);\n // check whether the envId has version, otherwise, it's a core env.\n const nonCoreEnvs = allEnvsCompIds.filter((envId) => envId.hasVersion());\n const envsWithVersions = await mapSeries(nonCoreEnvs, (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 const envIsInWs = isInWs(envToUpdate);\n\n if (!envIsInWs && compEnv.id.version === envToUpdate.version) {\n // nothing to update\n alreadyUpToDate.push(comp.id);\n return;\n }\n if (envIsInWs && !(await this.getSpecificComponentConfig(comp.id, compEnv.id.toString()))) {\n // compEnv has version. If this id with version doesn't exist in .bitmap, either, it's not saved in .bitmap\n // (probably it's in the model) or it's in .bitmap without version (as expected). either way, 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(\n comp.id,\n envIsInWs ? envToUpdate.toStringWithoutVersion() : envToUpdate.toString(),\n compEnv.config\n );\n (updated[envToUpdate.toString()] ||= []).push(comp.id);\n })\n );\n await this.bitMap.write('env-update');\n return { updated, alreadyUpToDate };\n }\n\n getComponentPathsRegExps() {\n return this.componentPathsRegExps;\n }\n\n async setComponentPathsRegExps() {\n const workspaceComponents = await this.list();\n if (!workspaceComponents.length) {\n this.componentPathsRegExps = [];\n return;\n }\n\n const workspacePackageNames = workspaceComponents.map((c) => this.componentPackageName(c));\n const packageManager = this.dependencyResolver.packageManagerName;\n const isPnpmEnabled = typeof packageManager === 'undefined' || packageManager.includes('pnpm');\n const pathsExcluding = [\n generateNodeModulesPattern({\n packages: workspacePackageNames,\n target: PatternTarget.WEBPACK,\n isPnpmEnabled,\n }),\n ];\n this.componentPathsRegExps = pathsExcluding.map((stringPattern) => new RegExp(stringPattern));\n }\n\n getInjectedDirs(component: Component): Promise<string[]> {\n const relativeCompDir = this.componentDir(component.id, undefined, {\n relative: true,\n });\n return this.dependencyResolver.getInjectedDirs(\n this.path,\n relativeCompDir,\n this.dependencyResolver.getPackageName(component)\n );\n }\n\n /**\n * the dependencies returned from this method will override the auto-detected dependencies. (done by \"applyAutoDetectOverridesOnComponent\")\n * to calculate this, we merge several sources: env, env-for-itself, config from variant, and the merge-config.\n * keep in mind that component-config (coming from .bitmap or component.json) is not included in this merge.\n */\n async getAutoDetectOverrides(\n configuredExtensions: ExtensionDataList,\n id: ComponentID,\n legacyFiles: SourceFile[],\n envExtendedDeps?: LegacyDependency[]\n ): Promise<DependenciesOverridesData> {\n let policy = await this.dependencyResolver.mergeVariantPolicies(\n configuredExtensions,\n id,\n legacyFiles,\n envExtendedDeps\n );\n // this is needed for \"bit install\" to install the dependencies from the merge config (see https://github.com/teambit/bit/pull/6849)\n const depsDataOfMergeConfig = this.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policiesFromMergeConfig = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, { source: 'auto' });\n policy = VariantPolicy.mergePolices([policy, policiesFromMergeConfig]);\n }\n return policy.toLegacyAutoDetectOverrides();\n }\n\n getAutoDetectConfigMerge(id: ComponentID) {\n const depsDataOfMergeConfig = this.getDepsDataOfMergeConfig(id);\n if (depsDataOfMergeConfig) {\n const policy = VariantPolicy.fromConfigObject(depsDataOfMergeConfig, { source: 'auto' });\n return policy.toLegacyAutoDetectOverrides();\n }\n return undefined;\n }\n\n async getManyComponentsStatuses(ids: ComponentID[]): Promise<ComponentStatusResult[]> {\n return this.componentStatusLoader.getManyComponentsStatuses(ids);\n }\n\n async getComponentStatusById(id: ComponentID): Promise<ComponentStatusLegacy> {\n return this.componentStatusLoader.getComponentStatusById(id);\n }\n\n async setLocalOnly(ids: ComponentID[]) {\n const staged = compact(\n await mapSeries(ids, async (id) => {\n const componentStatus = await this.getComponentStatusById(id);\n if (componentStatus.staged) return id;\n })\n );\n if (staged.length) {\n throw new BitError(\n `unable to set the following component(s) as local-only because they have local snaps/tags: ${staged.join(\n ', '\n )}`\n );\n }\n this.bitMap.setLocalOnly(ids);\n await this.bitMap.write('setLocalOnly');\n }\n async unsetLocalOnly(ids: ComponentID[]): Promise<ComponentID[]> {\n const successfullyUnset = this.bitMap.unsetLocalOnly(ids);\n await this.bitMap.write('unsetLocalOnly');\n return successfullyUnset;\n }\n listLocalOnly(): ComponentIdList {\n return ComponentIdList.fromArray(this.bitMap.listLocalOnly());\n }\n\n async writeDependencies(target?: 'workspace.jsonc' | 'package.json') {\n if (target === 'package.json') {\n await this.writeDependenciesToPackageJson();\n } else {\n await this.writeDependenciesToWorkspaceJsonc();\n }\n }\n\n async writeDependenciesToWorkspaceJsonc(): Promise<void> {\n const allDeps = await this.getAllDedupedDirectDependencies();\n const updatedWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n for (const dep of allDeps) {\n updatedWorkspacePolicyEntries.push({\n dependencyId: dep.name,\n value: {\n version: dep.currentRange,\n },\n lifecycleType: 'runtime',\n });\n }\n this.dependencyResolver.addToRootPolicy(updatedWorkspacePolicyEntries, {\n updateExisting: true,\n });\n await this.dependencyResolver.persistConfig('Write dependencies');\n }\n\n externalPackageManagerIsUsed(): boolean {\n return this.dependencyResolver.config.externalPackageManager === true;\n }\n\n async writeDependenciesToPackageJson(dependencies?: Record<string, string>): Promise<void> {\n const pkgJson = await PackageJsonFile.load(this.path);\n const allDeps = dependencies\n ? Object.entries(dependencies).map(([name, currentRange]) => ({ name, currentRange }))\n : await this.getAllDedupedDirectDependencies();\n pkgJson.packageJsonObject.dependencies ??= {};\n for (const dep of allDeps) {\n pkgJson.packageJsonObject.dependencies[dep.name] = dep.currentRange;\n }\n await pkgJson.write();\n }\n\n async getAllDedupedDirectDependencies(): Promise<CurrentPkg[]> {\n const componentPolicies = await this.getComponentsWithDependencyPolicies();\n const variantPoliciesByPatterns = this.variantPatternsToDepPolicesDict();\n const components = await this.list();\n return this.dependencyResolver.getAllDedupedDirectDependencies({\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n });\n }\n\n variantPatternsToDepPolicesDict(): Record<string, VariantPolicyConfigObject> {\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n async getComponentsWithDependencyPolicies(): Promise<Array<{ componentId: ComponentID; policy: any }>> {\n const allComponentIds = this.listIds();\n const componentPolicies = [] as Array<{ componentId: ComponentID; policy: any }>;\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index];\n componentPolicies.push({ componentId, policy: depResolverConfig.config.policy });\n });\n return componentPolicies;\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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","ignoreList":[]}