@teambit/workspace 0.0.783 → 0.0.786

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.
@@ -541,10 +541,10 @@ class Watcher {
541
541
  const componentsFromBitMap = this.consumer.bitMap.getAllComponents([_constants().COMPONENT_ORIGINS.AUTHORED, _constants().COMPONENT_ORIGINS.IMPORTED]);
542
542
  await Promise.all(componentsFromBitMap.map(async componentMap => {
543
543
  const bitId = componentMap.id;
544
- const trackDir = componentMap.getTrackDir();
545
- if (!trackDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);
544
+ const rootDir = componentMap.getRootDir();
545
+ if (!rootDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);
546
546
  const componentId = await this.workspace.resolveComponentId(bitId);
547
- this.trackDirs[trackDir] = componentId;
547
+ this.trackDirs[rootDir] = componentId;
548
548
  }));
549
549
  }
550
550
 
@@ -1 +1 @@
1
- {"version":3,"names":["DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","WatchQueue","consumer","watchAll","opts","msgs","watchOpts","pathsToWatch","getPathsToWatch","componentIds","Object","values","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","Promise","resolve","reject","process","env","BIT_LOG","onAll","on","onReady","filePath","startTime","Date","getTime","files","results","debounced","failureMsg","handleChange","initiator","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","loader","stop","onIdle","componentId","getComponentIdByPath","logger","debug","compIdStr","toString","changedFilesPerComponent","push","sleep","triggerCompChanges","length","undefined","join","msg","error","console","message","ms","setTimeout","clearComponentCache","component","get","componentMap","state","_consumer","compFiles","filter","relativeFile","getRelativePathLinux","isCompFile","Boolean","getFilesRelativeToConsumer","find","executeWatchOperationsOnComponent","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","difference","keys","removedDirs","addResults","mapSeries","dir","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","m","isEqual","_legacy","compilerId","trackDir","findTrackDirByFilePathRecursively","pathNormalizeToLinux","getPathRelativeToConsumer","parentDir","dirname","chokidar","watch","ignoreInitial","ignored","path","includes","sep","persistent","useFsEvents","componentsFromBitMap","bitMap","getAllComponents","COMPONENT_ORIGINS","AUTHORED","IMPORTED","all","map","bitId","getTrackDir","Error","resolveComponentId","paths","pathsAbsolute","toAbsolutePath"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport { dirname, sep } from 'path';\nimport { difference } from 'lodash';\nimport { ComponentID } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, COMPONENT_ORIGINS } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { WorkspaceAspect } from '../';\nimport { OnComponentChangeEvent, OnComponentAddEvent, OnComponentRemovedEvent } from '../events';\nimport { Workspace } from '../workspace';\nimport { OnComponentEventResult } from '../on-component-events';\nimport { CheckTypes } from './check-types';\nimport { WatchQueue } from './watch-queue';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: BitId; componentIds: BitId[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: Function;\n onAdd: Function;\n onUnlink: Function;\n onError: Function;\n};\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n};\n\nconst DEBOUNCE_WAIT_MS = 100;\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private trackDirs: { [dir: PathLinux]: ComponentID } = {},\n private verbose = false,\n private multipleWatchers: WatcherProcessData[] = []\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts: WatchOptions) {\n const { msgs, ...watchOpts } = opts;\n // TODO: run build in the beginning of process (it's work like this in other envs)\n const pathsToWatch = await this.getPathsToWatch();\n const componentIds = Object.values(this.trackDirs);\n await this.workspace.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher(pathsToWatch);\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n return new Promise((resolve, reject) => {\n // prefix your command with \"BIT_LOG=*\" to see all watch events\n if (process.env.BIT_LOG) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.trackDirs, this.verbose);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n const startTime = new Date().getTime();\n const { files, results, debounced, failureMsg } = await this.handleChange(filePath, opts?.initiator);\n if (debounced) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('add', async (filePath) => {\n const startTime = new Date().getTime();\n const { files, results, debounced, failureMsg } = await this.handleChange(filePath, opts?.initiator);\n if (debounced) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onAdd(files, results, this.verbose, duration, failureMsg);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('unlink', async (p) => {\n msgs?.onUnlink(p);\n await this.handleChange(p);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(\n filePath: string,\n initiator?: CompilationInitiator\n ): Promise<{\n results: OnComponentEventResult[];\n files?: string[];\n failureMsg?: string;\n debounced?: boolean;\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n loader.stop();\n return { results: buildResults, files: [filePath] };\n }\n if (this.bitMapChangesInProgress) {\n await this.watchQueue.onIdle();\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n const failureMsg = `file ${filePath} is not part of any component, ignoring it`;\n logger.debug(failureMsg);\n loader.stop();\n return { results: [], files: [filePath], failureMsg };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n loader.stop();\n return { results: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files, initiator));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n loader.stop();\n return { results: buildResults, files, failureMsg };\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n loader.stop();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n /**\n * if a file was added/remove, once the component is loaded, it changes .bitmap, and then the\n * entire cache is invalidated and the consumer is reloaded.\n * when a file just changed, no need to reload the consumer, it is enough to just delete the\n * component from the cache (both, workspace and consumer)\n */\n private async triggerCompChanges(\n componentId: ComponentID,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n const compFiles = files.filter((filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n const isCompFile = Boolean(componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile));\n if (!isCompFile) {\n logger.debug(`file ${filePath} is inside the component ${componentId.toString()} but configured to be ignored`);\n }\n return isCompFile;\n });\n if (!compFiles.length) {\n return [];\n }\n const buildResults = await this.executeWatchOperationsOnComponent(componentId, compFiles, true, initiator);\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsTrackDirs = { ...this.trackDirs };\n await this.workspace._reloadConsumer();\n await this.setTrackDirs();\n const newDirs: string[] = difference(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));\n const removedDirs: string[] = difference(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n this.fsWatcher.add(newDirs);\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.trackDirs[dir], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await this.fsWatcher.unwatch(removedDirs);\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));\n }\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: string[],\n isChange = true,\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n let buildResults: OnComponentEventResult[];\n try {\n buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, initiator)\n : await this.workspace.triggerOnComponentAdd(componentId);\n } catch (err: any) {\n // do not exit the watch process on errors, just print them\n const msg = `found an issue during onComponentChange or onComponentAdd hooks`;\n logger.error(msg, err);\n logger.console(`\\n${msg}: ${err.message || err}`);\n return [];\n }\n return buildResults;\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId._legacy)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);\n if (!trackDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.trackDirs[trackDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findTrackDirByFilePathRecursively(filePath: string): string | null {\n if (this.trackDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findTrackDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher(pathsToWatch: string[]) {\n this.fsWatcher = chokidar.watch(pathsToWatch, {\n ignoreInitial: true,\n // Using the function way since the regular way not working as expected\n // It might be solved when upgrading to chokidar > 3.0.0\n // See:\n // https://github.com/paulmillr/chokidar/issues/773\n // https://github.com/paulmillr/chokidar/issues/492\n // https://github.com/paulmillr/chokidar/issues/724\n ignored: (path) => {\n // Ignore package.json temporarily since it cerates endless loop since it's re-written after each build\n if (path.includes(`${sep}node_modules${sep}`) || path.includes(`${sep}package.json`)) {\n return true;\n }\n return false;\n },\n persistent: true,\n useFsEvents: false,\n });\n }\n\n async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents([\n COMPONENT_ORIGINS.AUTHORED,\n COMPONENT_ORIGINS.IMPORTED,\n ]);\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const trackDir = componentMap.getTrackDir();\n if (!trackDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[trackDir] = componentId;\n })\n );\n }\n\n private async getPathsToWatch(): Promise<PathOsBasedAbsolute[]> {\n await this.setTrackDirs();\n const paths = [...Object.keys(this.trackDirs), BIT_MAP];\n const pathsAbsolute = paths.map((dir) => this.consumer.toAbsolutePath(dir));\n return pathsAbsolute;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEBOUNCE_WAIT_MS","Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","WatchQueue","consumer","watchAll","opts","msgs","watchOpts","pathsToWatch","getPathsToWatch","componentIds","Object","values","triggerOnPreWatch","createWatcher","watcher","fsWatcher","onStart","Promise","resolve","reject","process","env","BIT_LOG","onAll","on","onReady","filePath","startTime","Date","getTime","files","results","debounced","failureMsg","handleChange","initiator","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","bitMapChangesInProgress","buildResults","watchQueue","add","handleBitmapChanges","loader","stop","onIdle","componentId","getComponentIdByPath","logger","debug","compIdStr","toString","changedFilesPerComponent","push","sleep","triggerCompChanges","length","undefined","join","msg","error","console","message","ms","setTimeout","clearComponentCache","component","get","componentMap","state","_consumer","compFiles","filter","relativeFile","getRelativePathLinux","isCompFile","Boolean","getFilesRelativeToConsumer","find","executeWatchOperationsOnComponent","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","difference","keys","removedDirs","addResults","mapSeries","dir","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","isChange","isComponentWatchedExternally","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","watcherData","m","isEqual","_legacy","compilerId","trackDir","findTrackDirByFilePathRecursively","pathNormalizeToLinux","getPathRelativeToConsumer","parentDir","dirname","chokidar","watch","ignoreInitial","ignored","path","includes","sep","persistent","useFsEvents","componentsFromBitMap","bitMap","getAllComponents","COMPONENT_ORIGINS","AUTHORED","IMPORTED","all","map","bitId","rootDir","getRootDir","Error","resolveComponentId","paths","pathsAbsolute","toAbsolutePath"],"sources":["watcher.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport { dirname, sep } from 'path';\nimport { difference } from 'lodash';\nimport { ComponentID } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { BIT_MAP, COMPONENT_ORIGINS } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport mapSeries from 'p-map-series';\nimport chalk from 'chalk';\nimport { ChildProcess } from 'child_process';\nimport chokidar, { FSWatcher } from 'chokidar';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { PathLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { WorkspaceAspect } from '../';\nimport { OnComponentChangeEvent, OnComponentAddEvent, OnComponentRemovedEvent } from '../events';\nimport { Workspace } from '../workspace';\nimport { OnComponentEventResult } from '../on-component-events';\nimport { CheckTypes } from './check-types';\nimport { WatchQueue } from './watch-queue';\n\nexport type WatcherProcessData = { watchProcess: ChildProcess; compilerId: BitId; componentIds: BitId[] };\n\nexport type EventMessages = {\n onAll: Function;\n onStart: Function;\n onReady: Function;\n onChange: Function;\n onAdd: Function;\n onUnlink: Function;\n onError: Function;\n};\n\nexport type WatchOptions = {\n msgs?: EventMessages;\n initiator?: CompilationInitiator;\n verbose?: boolean; // print watch events to the console. (also ts-server events if spawnTSServer is true)\n spawnTSServer?: boolean; // needed for check types and extract API/docs.\n checkTypes?: CheckTypes; // if enabled, the spawnTSServer becomes true.\n preCompile?: boolean; // whether compile all components before start watching\n};\n\nconst DEBOUNCE_WAIT_MS = 100;\n\nexport class Watcher {\n private fsWatcher: FSWatcher;\n private changedFilesPerComponent: { [componentId: string]: string[] } = {};\n private watchQueue = new WatchQueue();\n private bitMapChangesInProgress = false;\n constructor(\n private workspace: Workspace,\n private pubsub: PubsubMain,\n private trackDirs: { [dir: PathLinux]: ComponentID } = {},\n private verbose = false,\n private multipleWatchers: WatcherProcessData[] = []\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async watchAll(opts: WatchOptions) {\n const { msgs, ...watchOpts } = opts;\n // TODO: run build in the beginning of process (it's work like this in other envs)\n const pathsToWatch = await this.getPathsToWatch();\n const componentIds = Object.values(this.trackDirs);\n await this.workspace.triggerOnPreWatch(componentIds, watchOpts);\n await this.createWatcher(pathsToWatch);\n const watcher = this.fsWatcher;\n msgs?.onStart(this.workspace);\n\n return new Promise((resolve, reject) => {\n // prefix your command with \"BIT_LOG=*\" to see all watch events\n if (process.env.BIT_LOG) {\n // @ts-ignore\n if (msgs?.onAll) watcher.on('all', msgs?.onAll);\n }\n watcher.on('ready', () => {\n msgs?.onReady(this.workspace, this.trackDirs, this.verbose);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n const startTime = new Date().getTime();\n const { files, results, debounced, failureMsg } = await this.handleChange(filePath, opts?.initiator);\n if (debounced) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(files, results, this.verbose, duration, failureMsg);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('add', async (filePath) => {\n const startTime = new Date().getTime();\n const { files, results, debounced, failureMsg } = await this.handleChange(filePath, opts?.initiator);\n if (debounced) {\n return;\n }\n const duration = new Date().getTime() - startTime;\n msgs?.onAdd(files, results, this.verbose, duration, failureMsg);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('unlink', async (p) => {\n msgs?.onUnlink(p);\n await this.handleChange(p);\n });\n watcher.on('error', (err) => {\n msgs?.onError(err);\n reject(err);\n });\n });\n }\n\n /**\n * *** DEBOUNCING ***\n * some actions trigger multiple files changes at (almost) the same time. e.g. \"git pull\".\n * this causes some performance and instability issues. a debouncing mechanism was implemented to help with this.\n * the way how it works is that the first file of the same component starts the execution with a delay (e.g. 200ms).\n * if, in the meanwhile, another file of the same component was changed, it won't start a new execution, instead,\n * it'll only add the file to `this.changedFilesPerComponent` prop.\n * once the execution starts, it'll delete this component-id from the `this.changedFilesPerComponent` array,\n * indicating the next file-change to start a new execution.\n *\n * implementation wise, `lodash.debounce` doesn't help here, because:\n * A) it doesn't return the results, unless \"leading\" option is true. here, it must be false, otherwise, it'll start\n * the execution immediately.\n * B) it debounces the method regardless the param passes to it. so it'll disregard the component-id and will delay\n * other components undesirably.\n *\n * *** QUEUE ***\n * the debouncing helps to not execute the same component multiple times concurrently. however, multiple components\n * and .bitmap changes execution can still be processed concurrently.\n * the following example explains why this is an issue.\n * compA is changed in the .bitmap file from version 0.0.1 to 0.0.2. its files were changed as well.\n * all these changes get pulled at the same time by \"git pull\", as a result, the execution of compA and the .bitmap\n * happen at the same time.\n * during the execution of compA, the component id is parsed as compA@0.0.1, later, it asks for the Workspace for this\n * id. while the workspace is looking for this id, the .bitmap execution reloaded the consumer and changed all versions.\n * after this change, the workspace doesn't have this id anymore, which will trigger an error.\n * to ensure this won't happen, we keep a flag to indicate whether the .bitmap execution is running, and if so, all\n * other executions are paused until the queue is empty (this is done by awaiting for queue.onIdle).\n * once the queue is empty, we know the .bitmap process was done and the workspace has all new ids.\n * in the example above, at this stage, the id will be resolved to compA@0.0.2.\n * one more thing, the queue is configured to have concurrency of 1. to make sure two components are not processed at\n * the same time. (the same way is done when loading all components from the filesystem/scope).\n * this way we can also ensure that if compA was started before the .bitmap execution, it will complete before the\n * .bitmap execution starts.\n */\n private async handleChange(\n filePath: string,\n initiator?: CompilationInitiator\n ): Promise<{\n results: OnComponentEventResult[];\n files?: string[];\n failureMsg?: string;\n debounced?: boolean;\n }> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n this.bitMapChangesInProgress = true;\n const buildResults = await this.watchQueue.add(() => this.handleBitmapChanges());\n this.bitMapChangesInProgress = false;\n loader.stop();\n return { results: buildResults, files: [filePath] };\n }\n if (this.bitMapChangesInProgress) {\n await this.watchQueue.onIdle();\n }\n const componentId = this.getComponentIdByPath(filePath);\n if (!componentId) {\n const failureMsg = `file ${filePath} is not part of any component, ignoring it`;\n logger.debug(failureMsg);\n loader.stop();\n return { results: [], files: [filePath], failureMsg };\n }\n const compIdStr = componentId.toString();\n if (this.changedFilesPerComponent[compIdStr]) {\n this.changedFilesPerComponent[compIdStr].push(filePath);\n loader.stop();\n return { results: [], debounced: true };\n }\n this.changedFilesPerComponent[compIdStr] = [filePath];\n await this.sleep(DEBOUNCE_WAIT_MS);\n const files = this.changedFilesPerComponent[compIdStr];\n delete this.changedFilesPerComponent[compIdStr];\n\n const buildResults = await this.watchQueue.add(() => this.triggerCompChanges(componentId, files, initiator));\n const failureMsg = buildResults.length\n ? undefined\n : `files ${files.join(', ')} are inside the component ${compIdStr} but configured to be ignored`;\n loader.stop();\n return { results: buildResults, files, failureMsg };\n } catch (err: any) {\n const msg = `watcher found an error while handling ${filePath}`;\n logger.error(msg, err);\n logger.console(`${msg}, ${err.message}`);\n loader.stop();\n return { results: [], files: [filePath], failureMsg: err.message };\n }\n }\n\n private async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n /**\n * if a file was added/remove, once the component is loaded, it changes .bitmap, and then the\n * entire cache is invalidated and the consumer is reloaded.\n * when a file just changed, no need to reload the consumer, it is enough to just delete the\n * component from the cache (both, workspace and consumer)\n */\n private async triggerCompChanges(\n componentId: ComponentID,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n const compFiles = files.filter((filePath) => {\n const relativeFile = this.getRelativePathLinux(filePath);\n const isCompFile = Boolean(componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile));\n if (!isCompFile) {\n logger.debug(`file ${filePath} is inside the component ${componentId.toString()} but configured to be ignored`);\n }\n return isCompFile;\n });\n if (!compFiles.length) {\n return [];\n }\n const buildResults = await this.executeWatchOperationsOnComponent(componentId, compFiles, true, initiator);\n return buildResults;\n }\n\n /**\n * if .bitmap changed, it's possible that a new component has been added. trigger onComponentAdd.\n */\n private async handleBitmapChanges(): Promise<OnComponentEventResult[]> {\n const previewsTrackDirs = { ...this.trackDirs };\n await this.workspace._reloadConsumer();\n await this.setTrackDirs();\n const newDirs: string[] = difference(Object.keys(this.trackDirs), Object.keys(previewsTrackDirs));\n const removedDirs: string[] = difference(Object.keys(previewsTrackDirs), Object.keys(this.trackDirs));\n const results: OnComponentEventResult[] = [];\n if (newDirs.length) {\n this.fsWatcher.add(newDirs);\n const addResults = await mapSeries(newDirs, async (dir) =>\n this.executeWatchOperationsOnComponent(this.trackDirs[dir], [], false)\n );\n results.push(...addResults.flat());\n }\n if (removedDirs.length) {\n await this.fsWatcher.unwatch(removedDirs);\n await mapSeries(removedDirs, (dir) => this.executeWatchOperationsOnRemove(previewsTrackDirs[dir]));\n }\n return results;\n }\n\n private async executeWatchOperationsOnRemove(componentId: ComponentID) {\n logger.debug(`running OnComponentRemove hook for ${chalk.bold(componentId.toString())}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentRemovedEvent(componentId.toString()));\n await this.workspace.triggerOnComponentRemove(componentId);\n }\n\n private async executeWatchOperationsOnComponent(\n componentId: ComponentID,\n files: string[],\n isChange = true,\n initiator?: CompilationInitiator\n ): Promise<OnComponentEventResult[]> {\n if (this.isComponentWatchedExternally(componentId)) {\n // update capsule, once done, it automatically triggers the external watcher\n await this.workspace.get(componentId);\n return [];\n }\n const idStr = componentId.toString();\n\n if (isChange) {\n logger.debug(`running OnComponentChange hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentChangeEvent(idStr, 'OnComponentChange'));\n } else {\n logger.debug(`running OnComponentAdd hook for ${chalk.bold(idStr)}`);\n this.pubsub.pub(WorkspaceAspect.id, this.creatOnComponentAddEvent(idStr, 'OnComponentAdd'));\n }\n\n let buildResults: OnComponentEventResult[];\n try {\n buildResults = isChange\n ? await this.workspace.triggerOnComponentChange(componentId, files, initiator)\n : await this.workspace.triggerOnComponentAdd(componentId);\n } catch (err: any) {\n // do not exit the watch process on errors, just print them\n const msg = `found an issue during onComponentChange or onComponentAdd hooks`;\n logger.error(msg, err);\n logger.console(`\\n${msg}: ${err.message || err}`);\n return [];\n }\n return buildResults;\n }\n\n private creatOnComponentRemovedEvent(idStr) {\n return new OnComponentRemovedEvent(Date.now(), idStr);\n }\n\n private creatOnComponentChangeEvent(idStr, hook) {\n return new OnComponentChangeEvent(Date.now(), idStr, hook);\n }\n\n private creatOnComponentAddEvent(idStr, hook) {\n return new OnComponentAddEvent(Date.now(), idStr, hook);\n }\n\n private isComponentWatchedExternally(componentId: ComponentID) {\n const watcherData = this.multipleWatchers.find((m) => m.componentIds.find((id) => id.isEqual(componentId._legacy)));\n if (watcherData) {\n logger.debug(`${componentId.toString()} is watched by ${watcherData.compilerId.toString()}`);\n return true;\n }\n return false;\n }\n\n private getComponentIdByPath(filePath: string): ComponentID | null {\n const relativeFile = this.getRelativePathLinux(filePath);\n const trackDir = this.findTrackDirByFilePathRecursively(relativeFile);\n if (!trackDir) {\n // the file is not part of any component. If it was a new component, or a new file of\n // existing component, then, handleBitmapChanges() should deal with it.\n return null;\n }\n return this.trackDirs[trackDir];\n }\n\n private getRelativePathLinux(filePath: string) {\n return pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(filePath));\n }\n\n private findTrackDirByFilePathRecursively(filePath: string): string | null {\n if (this.trackDirs[filePath]) return filePath;\n const parentDir = dirname(filePath);\n if (parentDir === filePath) return null;\n return this.findTrackDirByFilePathRecursively(parentDir);\n }\n\n private async createWatcher(pathsToWatch: string[]) {\n this.fsWatcher = chokidar.watch(pathsToWatch, {\n ignoreInitial: true,\n // Using the function way since the regular way not working as expected\n // It might be solved when upgrading to chokidar > 3.0.0\n // See:\n // https://github.com/paulmillr/chokidar/issues/773\n // https://github.com/paulmillr/chokidar/issues/492\n // https://github.com/paulmillr/chokidar/issues/724\n ignored: (path) => {\n // Ignore package.json temporarily since it cerates endless loop since it's re-written after each build\n if (path.includes(`${sep}node_modules${sep}`) || path.includes(`${sep}package.json`)) {\n return true;\n }\n return false;\n },\n persistent: true,\n useFsEvents: false,\n });\n }\n\n async setTrackDirs() {\n this.trackDirs = {};\n const componentsFromBitMap = this.consumer.bitMap.getAllComponents([\n COMPONENT_ORIGINS.AUTHORED,\n COMPONENT_ORIGINS.IMPORTED,\n ]);\n await Promise.all(\n componentsFromBitMap.map(async (componentMap) => {\n const bitId = componentMap.id;\n const rootDir = componentMap.getRootDir();\n if (!rootDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);\n const componentId = await this.workspace.resolveComponentId(bitId);\n this.trackDirs[rootDir] = componentId;\n })\n );\n }\n\n private async getPathsToWatch(): Promise<PathOsBasedAbsolute[]> {\n await this.setTrackDirs();\n const paths = [...Object.keys(this.trackDirs), BIT_MAP];\n const pathsAbsolute = paths.map((dir) => this.consumer.toAbsolutePath(dir));\n return pathsAbsolute;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAuBA,MAAMA,gBAAgB,GAAG,GAAzB;;AAEO,MAAMC,OAAN,CAAc;EAKnBC,WAAW,CACDC,SADC,EAEDC,MAFC,EAGDC,SAA4C,GAAG,EAH9C,EAIDC,OAAO,GAAG,KAJT,EAKDC,gBAAsC,GAAG,EALxC,EAMT;IAAA,KALQJ,SAKR,GALQA,SAKR;IAAA,KAJQC,MAIR,GAJQA,MAIR;IAAA,KAHQC,SAGR,GAHQA,SAGR;IAAA,KAFQC,OAER,GAFQA,OAER;IAAA,KADQC,gBACR,GADQA,gBACR;IAAA;IAAA,kEATsE,EAStE;IAAA,oDARmB,KAAIC,wBAAJ,GAQnB;IAAA,iEAPgC,KAOhC;EAAE;;EAEQ,IAARC,QAAQ,GAAa;IACvB,OAAO,KAAKN,SAAL,CAAeM,QAAtB;EACD;;EAEa,MAARC,QAAQ,CAACC,IAAD,EAAqB;IACjC,MAAM;MAAEC;IAAF,IAAyBD,IAA/B;IAAA,MAAiBE,SAAjB,4CAA+BF,IAA/B,YADiC,CAEjC;;IACA,MAAMG,YAAY,GAAG,MAAM,KAAKC,eAAL,EAA3B;IACA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAc,KAAKb,SAAnB,CAArB;IACA,MAAM,KAAKF,SAAL,CAAegB,iBAAf,CAAiCH,YAAjC,EAA+CH,SAA/C,CAAN;IACA,MAAM,KAAKO,aAAL,CAAmBN,YAAnB,CAAN;IACA,MAAMO,OAAO,GAAG,KAAKC,SAArB;IACAV,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEW,OAAN,CAAc,KAAKpB,SAAnB;IAEA,OAAO,IAAIqB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtC;MACA,IAAIC,OAAO,CAACC,GAAR,CAAYC,OAAhB,EAAyB;QACvB;QACA,IAAIjB,IAAJ,aAAIA,IAAJ,eAAIA,IAAI,CAAEkB,KAAV,EAAiBT,OAAO,CAACU,EAAR,CAAW,KAAX,EAAkBnB,IAAlB,aAAkBA,IAAlB,uBAAkBA,IAAI,CAAEkB,KAAxB;MAClB;;MACDT,OAAO,CAACU,EAAR,CAAW,OAAX,EAAoB,MAAM;QACxBnB,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEoB,OAAN,CAAc,KAAK7B,SAAnB,EAA8B,KAAKE,SAAnC,EAA8C,KAAKC,OAAnD;MACD,CAFD,EANsC,CAStC;;MACAe,OAAO,CAACU,EAAR,CAAW,QAAX,EAAqB,MAAOE,QAAP,IAAoB;QACvC,MAAMC,SAAS,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAlB;QACA,MAAM;UAAEC,KAAF;UAASC,OAAT;UAAkBC,SAAlB;UAA6BC;QAA7B,IAA4C,MAAM,KAAKC,YAAL,CAAkBR,QAAlB,EAA4BtB,IAA5B,aAA4BA,IAA5B,uBAA4BA,IAAI,CAAE+B,SAAlC,CAAxD;;QACA,IAAIH,SAAJ,EAAe;UACb;QACD;;QACD,MAAMI,QAAQ,GAAG,IAAIR,IAAJ,GAAWC,OAAX,KAAuBF,SAAxC;QACAtB,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEgC,QAAN,CAAeP,KAAf,EAAsBC,OAAtB,EAA+B,KAAKhC,OAApC,EAA6CqC,QAA7C,EAAuDH,UAAvD;MACD,CARD,EAVsC,CAmBtC;;MACAnB,OAAO,CAACU,EAAR,CAAW,KAAX,EAAkB,MAAOE,QAAP,IAAoB;QACpC,MAAMC,SAAS,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAlB;QACA,MAAM;UAAEC,KAAF;UAASC,OAAT;UAAkBC,SAAlB;UAA6BC;QAA7B,IAA4C,MAAM,KAAKC,YAAL,CAAkBR,QAAlB,EAA4BtB,IAA5B,aAA4BA,IAA5B,uBAA4BA,IAAI,CAAE+B,SAAlC,CAAxD;;QACA,IAAIH,SAAJ,EAAe;UACb;QACD;;QACD,MAAMI,QAAQ,GAAG,IAAIR,IAAJ,GAAWC,OAAX,KAAuBF,SAAxC;QACAtB,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEiC,KAAN,CAAYR,KAAZ,EAAmBC,OAAnB,EAA4B,KAAKhC,OAAjC,EAA0CqC,QAA1C,EAAoDH,UAApD;MACD,CARD,EApBsC,CA6BtC;;MACAnB,OAAO,CAACU,EAAR,CAAW,QAAX,EAAqB,MAAOe,CAAP,IAAa;QAChClC,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEmC,QAAN,CAAeD,CAAf;QACA,MAAM,KAAKL,YAAL,CAAkBK,CAAlB,CAAN;MACD,CAHD;MAIAzB,OAAO,CAACU,EAAR,CAAW,OAAX,EAAqBiB,GAAD,IAAS;QAC3BpC,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEqC,OAAN,CAAcD,GAAd;QACAtB,MAAM,CAACsB,GAAD,CAAN;MACD,CAHD;IAID,CAtCM,CAAP;EAuCD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC4B,MAAZP,YAAY,CACxBR,QADwB,EAExBS,SAFwB,EAQvB;IACD,IAAI;MACF,IAAIT,QAAQ,CAACiB,QAAT,CAAkBC,oBAAlB,CAAJ,EAAgC;QAC9B,KAAKC,uBAAL,GAA+B,IAA/B;QACA,MAAMC,YAAY,GAAG,MAAM,KAAKC,UAAL,CAAgBC,GAAhB,CAAoB,MAAM,KAAKC,mBAAL,EAA1B,CAA3B;QACA,KAAKJ,uBAAL,GAA+B,KAA/B;;QACAK,iBAAA,CAAOC,IAAP;;QACA,OAAO;UAAEpB,OAAO,EAAEe,YAAX;UAAyBhB,KAAK,EAAE,CAACJ,QAAD;QAAhC,CAAP;MACD;;MACD,IAAI,KAAKmB,uBAAT,EAAkC;QAChC,MAAM,KAAKE,UAAL,CAAgBK,MAAhB,EAAN;MACD;;MACD,MAAMC,WAAW,GAAG,KAAKC,oBAAL,CAA0B5B,QAA1B,CAApB;;MACA,IAAI,CAAC2B,WAAL,EAAkB;QAChB,MAAMpB,UAAU,GAAI,QAAOP,QAAS,4CAApC;;QACA6B,iBAAA,CAAOC,KAAP,CAAavB,UAAb;;QACAiB,iBAAA,CAAOC,IAAP;;QACA,OAAO;UAAEpB,OAAO,EAAE,EAAX;UAAeD,KAAK,EAAE,CAACJ,QAAD,CAAtB;UAAkCO;QAAlC,CAAP;MACD;;MACD,MAAMwB,SAAS,GAAGJ,WAAW,CAACK,QAAZ,EAAlB;;MACA,IAAI,KAAKC,wBAAL,CAA8BF,SAA9B,CAAJ,EAA8C;QAC5C,KAAKE,wBAAL,CAA8BF,SAA9B,EAAyCG,IAAzC,CAA8ClC,QAA9C;;QACAwB,iBAAA,CAAOC,IAAP;;QACA,OAAO;UAAEpB,OAAO,EAAE,EAAX;UAAeC,SAAS,EAAE;QAA1B,CAAP;MACD;;MACD,KAAK2B,wBAAL,CAA8BF,SAA9B,IAA2C,CAAC/B,QAAD,CAA3C;MACA,MAAM,KAAKmC,KAAL,CAAWpE,gBAAX,CAAN;MACA,MAAMqC,KAAK,GAAG,KAAK6B,wBAAL,CAA8BF,SAA9B,CAAd;MACA,OAAO,KAAKE,wBAAL,CAA8BF,SAA9B,CAAP;MAEA,MAAMX,YAAY,GAAG,MAAM,KAAKC,UAAL,CAAgBC,GAAhB,CAAoB,MAAM,KAAKc,kBAAL,CAAwBT,WAAxB,EAAqCvB,KAArC,EAA4CK,SAA5C,CAA1B,CAA3B;MACA,MAAMF,UAAU,GAAGa,YAAY,CAACiB,MAAb,GACfC,SADe,GAEd,SAAQlC,KAAK,CAACmC,IAAN,CAAW,IAAX,CAAiB,6BAA4BR,SAAU,+BAFpE;;MAGAP,iBAAA,CAAOC,IAAP;;MACA,OAAO;QAAEpB,OAAO,EAAEe,YAAX;QAAyBhB,KAAzB;QAAgCG;MAAhC,CAAP;IACD,CAnCD,CAmCE,OAAOQ,GAAP,EAAiB;MACjB,MAAMyB,GAAG,GAAI,yCAAwCxC,QAAS,EAA9D;;MACA6B,iBAAA,CAAOY,KAAP,CAAaD,GAAb,EAAkBzB,GAAlB;;MACAc,iBAAA,CAAOa,OAAP,CAAgB,GAAEF,GAAI,KAAIzB,GAAG,CAAC4B,OAAQ,EAAtC;;MACAnB,iBAAA,CAAOC,IAAP;;MACA,OAAO;QAAEpB,OAAO,EAAE,EAAX;QAAeD,KAAK,EAAE,CAACJ,QAAD,CAAtB;QAAkCO,UAAU,EAAEQ,GAAG,CAAC4B;MAAlD,CAAP;IACD;EACF;;EAEkB,MAALR,KAAK,CAACS,EAAD,EAAa;IAC9B,OAAO,IAAIrD,OAAJ,CAAaC,OAAD,IAAaqD,UAAU,CAACrD,OAAD,EAAUoD,EAAV,CAAnC,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;;;EACkC,MAAlBR,kBAAkB,CAC9BT,WAD8B,EAE9BvB,KAF8B,EAG9BK,SAH8B,EAIK;IACnC,KAAKvC,SAAL,CAAe4E,mBAAf,CAAmCnB,WAAnC;IACA,MAAMoB,SAAS,GAAG,MAAM,KAAK7E,SAAL,CAAe8E,GAAf,CAAmBrB,WAAnB,CAAxB;IACA,MAAMsB,YAA0B,GAAGF,SAAS,CAACG,KAAV,CAAgBC,SAAhB,CAA0BF,YAA7D;IACA,MAAMG,SAAS,GAAGhD,KAAK,CAACiD,MAAN,CAAcrD,QAAD,IAAc;MAC3C,MAAMsD,YAAY,GAAG,KAAKC,oBAAL,CAA0BvD,QAA1B,CAArB;MACA,MAAMwD,UAAU,GAAGC,OAAO,CAACR,YAAY,CAACS,0BAAb,GAA0CC,IAA1C,CAAgD9C,CAAD,IAAOA,CAAC,KAAKyC,YAA5D,CAAD,CAA1B;;MACA,IAAI,CAACE,UAAL,EAAiB;QACf3B,iBAAA,CAAOC,KAAP,CAAc,QAAO9B,QAAS,4BAA2B2B,WAAW,CAACK,QAAZ,EAAuB,+BAAhF;MACD;;MACD,OAAOwB,UAAP;IACD,CAPiB,CAAlB;;IAQA,IAAI,CAACJ,SAAS,CAACf,MAAf,EAAuB;MACrB,OAAO,EAAP;IACD;;IACD,MAAMjB,YAAY,GAAG,MAAM,KAAKwC,iCAAL,CAAuCjC,WAAvC,EAAoDyB,SAApD,EAA+D,IAA/D,EAAqE3C,SAArE,CAA3B;IACA,OAAOW,YAAP;EACD;EAED;AACF;AACA;;;EACmC,MAAnBG,mBAAmB,GAAsC;IACrE,MAAMsC,iBAAiB,qBAAQ,KAAKzF,SAAb,CAAvB;;IACA,MAAM,KAAKF,SAAL,CAAe4F,eAAf,EAAN;IACA,MAAM,KAAKC,YAAL,EAAN;IACA,MAAMC,OAAiB,GAAG,IAAAC,oBAAA,EAAWjF,MAAM,CAACkF,IAAP,CAAY,KAAK9F,SAAjB,CAAX,EAAwCY,MAAM,CAACkF,IAAP,CAAYL,iBAAZ,CAAxC,CAA1B;IACA,MAAMM,WAAqB,GAAG,IAAAF,oBAAA,EAAWjF,MAAM,CAACkF,IAAP,CAAYL,iBAAZ,CAAX,EAA2C7E,MAAM,CAACkF,IAAP,CAAY,KAAK9F,SAAjB,CAA3C,CAA9B;IACA,MAAMiC,OAAiC,GAAG,EAA1C;;IACA,IAAI2D,OAAO,CAAC3B,MAAZ,EAAoB;MAClB,KAAKhD,SAAL,CAAeiC,GAAf,CAAmB0C,OAAnB;MACA,MAAMI,UAAU,GAAG,MAAM,IAAAC,qBAAA,EAAUL,OAAV,EAAmB,MAAOM,GAAP,IAC1C,KAAKV,iCAAL,CAAuC,KAAKxF,SAAL,CAAekG,GAAf,CAAvC,EAA4D,EAA5D,EAAgE,KAAhE,CADuB,CAAzB;MAGAjE,OAAO,CAAC6B,IAAR,CAAa,GAAGkC,UAAU,CAACG,IAAX,EAAhB;IACD;;IACD,IAAIJ,WAAW,CAAC9B,MAAhB,EAAwB;MACtB,MAAM,KAAKhD,SAAL,CAAemF,OAAf,CAAuBL,WAAvB,CAAN;MACA,MAAM,IAAAE,qBAAA,EAAUF,WAAV,EAAwBG,GAAD,IAAS,KAAKG,8BAAL,CAAoCZ,iBAAiB,CAACS,GAAD,CAArD,CAAhC,CAAN;IACD;;IACD,OAAOjE,OAAP;EACD;;EAE2C,MAA9BoE,8BAA8B,CAAC9C,WAAD,EAA2B;IACrEE,iBAAA,CAAOC,KAAP,CAAc,sCAAqC4C,gBAAA,CAAMC,IAAN,CAAWhD,WAAW,CAACK,QAAZ,EAAX,CAAmC,EAAtF;;IACA,KAAK7D,MAAL,CAAYyG,GAAZ,CAAgBC,mBAAA,CAAgBC,EAAhC,EAAoC,KAAKC,4BAAL,CAAkCpD,WAAW,CAACK,QAAZ,EAAlC,CAApC;IACA,MAAM,KAAK9D,SAAL,CAAe8G,wBAAf,CAAwCrD,WAAxC,CAAN;EACD;;EAE8C,MAAjCiC,iCAAiC,CAC7CjC,WAD6C,EAE7CvB,KAF6C,EAG7C6E,QAAQ,GAAG,IAHkC,EAI7CxE,SAJ6C,EAKV;IACnC,IAAI,KAAKyE,4BAAL,CAAkCvD,WAAlC,CAAJ,EAAoD;MAClD;MACA,MAAM,KAAKzD,SAAL,CAAe8E,GAAf,CAAmBrB,WAAnB,CAAN;MACA,OAAO,EAAP;IACD;;IACD,MAAMwD,KAAK,GAAGxD,WAAW,CAACK,QAAZ,EAAd;;IAEA,IAAIiD,QAAJ,EAAc;MACZpD,iBAAA,CAAOC,KAAP,CAAc,sCAAqC4C,gBAAA,CAAMC,IAAN,CAAWQ,KAAX,CAAkB,EAArE;;MACA,KAAKhH,MAAL,CAAYyG,GAAZ,CAAgBC,mBAAA,CAAgBC,EAAhC,EAAoC,KAAKM,2BAAL,CAAiCD,KAAjC,EAAwC,mBAAxC,CAApC;IACD,CAHD,MAGO;MACLtD,iBAAA,CAAOC,KAAP,CAAc,mCAAkC4C,gBAAA,CAAMC,IAAN,CAAWQ,KAAX,CAAkB,EAAlE;;MACA,KAAKhH,MAAL,CAAYyG,GAAZ,CAAgBC,mBAAA,CAAgBC,EAAhC,EAAoC,KAAKO,wBAAL,CAA8BF,KAA9B,EAAqC,gBAArC,CAApC;IACD;;IAED,IAAI/D,YAAJ;;IACA,IAAI;MACFA,YAAY,GAAG6D,QAAQ,GACnB,MAAM,KAAK/G,SAAL,CAAeoH,wBAAf,CAAwC3D,WAAxC,EAAqDvB,KAArD,EAA4DK,SAA5D,CADa,GAEnB,MAAM,KAAKvC,SAAL,CAAeqH,qBAAf,CAAqC5D,WAArC,CAFV;IAGD,CAJD,CAIE,OAAOZ,GAAP,EAAiB;MACjB;MACA,MAAMyB,GAAG,GAAI,iEAAb;;MACAX,iBAAA,CAAOY,KAAP,CAAaD,GAAb,EAAkBzB,GAAlB;;MACAc,iBAAA,CAAOa,OAAP,CAAgB,KAAIF,GAAI,KAAIzB,GAAG,CAAC4B,OAAJ,IAAe5B,GAAI,EAA/C;;MACA,OAAO,EAAP;IACD;;IACD,OAAOK,YAAP;EACD;;EAEO2D,4BAA4B,CAACI,KAAD,EAAQ;IAC1C,OAAO,KAAIK,iCAAJ,EAA4BtF,IAAI,CAACuF,GAAL,EAA5B,EAAwCN,KAAxC,CAAP;EACD;;EAEOC,2BAA2B,CAACD,KAAD,EAAQO,IAAR,EAAc;IAC/C,OAAO,KAAIC,gCAAJ,EAA2BzF,IAAI,CAACuF,GAAL,EAA3B,EAAuCN,KAAvC,EAA8CO,IAA9C,CAAP;EACD;;EAEOL,wBAAwB,CAACF,KAAD,EAAQO,IAAR,EAAc;IAC5C,OAAO,KAAIE,6BAAJ,EAAwB1F,IAAI,CAACuF,GAAL,EAAxB,EAAoCN,KAApC,EAA2CO,IAA3C,CAAP;EACD;;EAEOR,4BAA4B,CAACvD,WAAD,EAA2B;IAC7D,MAAMkE,WAAW,GAAG,KAAKvH,gBAAL,CAAsBqF,IAAtB,CAA4BmC,CAAD,IAAOA,CAAC,CAAC/G,YAAF,CAAe4E,IAAf,CAAqBmB,EAAD,IAAQA,EAAE,CAACiB,OAAH,CAAWpE,WAAW,CAACqE,OAAvB,CAA5B,CAAlC,CAApB;;IACA,IAAIH,WAAJ,EAAiB;MACfhE,iBAAA,CAAOC,KAAP,CAAc,GAAEH,WAAW,CAACK,QAAZ,EAAuB,kBAAiB6D,WAAW,CAACI,UAAZ,CAAuBjE,QAAvB,EAAkC,EAA1F;;MACA,OAAO,IAAP;IACD;;IACD,OAAO,KAAP;EACD;;EAEOJ,oBAAoB,CAAC5B,QAAD,EAAuC;IACjE,MAAMsD,YAAY,GAAG,KAAKC,oBAAL,CAA0BvD,QAA1B,CAArB;IACA,MAAMkG,QAAQ,GAAG,KAAKC,iCAAL,CAAuC7C,YAAvC,CAAjB;;IACA,IAAI,CAAC4C,QAAL,EAAe;MACb;MACA;MACA,OAAO,IAAP;IACD;;IACD,OAAO,KAAK9H,SAAL,CAAe8H,QAAf,CAAP;EACD;;EAEO3C,oBAAoB,CAACvD,QAAD,EAAmB;IAC7C,OAAO,IAAAoG,6BAAA,EAAqB,KAAK5H,QAAL,CAAc6H,yBAAd,CAAwCrG,QAAxC,CAArB,CAAP;EACD;;EAEOmG,iCAAiC,CAACnG,QAAD,EAAkC;IACzE,IAAI,KAAK5B,SAAL,CAAe4B,QAAf,CAAJ,EAA8B,OAAOA,QAAP;IAC9B,MAAMsG,SAAS,GAAG,IAAAC,eAAA,EAAQvG,QAAR,CAAlB;IACA,IAAIsG,SAAS,KAAKtG,QAAlB,EAA4B,OAAO,IAAP;IAC5B,OAAO,KAAKmG,iCAAL,CAAuCG,SAAvC,CAAP;EACD;;EAE0B,MAAbnH,aAAa,CAACN,YAAD,EAAyB;IAClD,KAAKQ,SAAL,GAAiBmH,mBAAA,CAASC,KAAT,CAAe5H,YAAf,EAA6B;MAC5C6H,aAAa,EAAE,IAD6B;MAE5C;MACA;MACA;MACA;MACA;MACA;MACAC,OAAO,EAAGC,IAAD,IAAU;QACjB;QACA,IAAIA,IAAI,CAACC,QAAL,CAAe,GAAEC,WAAI,eAAcA,WAAI,EAAvC,KAA6CF,IAAI,CAACC,QAAL,CAAe,GAAEC,WAAI,cAArB,CAAjD,EAAsF;UACpF,OAAO,IAAP;QACD;;QACD,OAAO,KAAP;MACD,CAd2C;MAe5CC,UAAU,EAAE,IAfgC;MAgB5CC,WAAW,EAAE;IAhB+B,CAA7B,CAAjB;EAkBD;;EAEiB,MAAZjD,YAAY,GAAG;IACnB,KAAK3F,SAAL,GAAiB,EAAjB;IACA,MAAM6I,oBAAoB,GAAG,KAAKzI,QAAL,CAAc0I,MAAd,CAAqBC,gBAArB,CAAsC,CACjEC,8BAAA,CAAkBC,QAD+C,EAEjED,8BAAA,CAAkBE,QAF+C,CAAtC,CAA7B;IAIA,MAAM/H,OAAO,CAACgI,GAAR,CACJN,oBAAoB,CAACO,GAArB,CAAyB,MAAOvE,YAAP,IAAwB;MAC/C,MAAMwE,KAAK,GAAGxE,YAAY,CAAC6B,EAA3B;MACA,MAAM4C,OAAO,GAAGzE,YAAY,CAAC0E,UAAb,EAAhB;MACA,IAAI,CAACD,OAAL,EAAc,MAAM,IAAIE,KAAJ,CAAW,GAAEH,KAAK,CAACzF,QAAN,EAAiB,8CAA9B,CAAN;MACd,MAAML,WAAW,GAAG,MAAM,KAAKzD,SAAL,CAAe2J,kBAAf,CAAkCJ,KAAlC,CAA1B;MACA,KAAKrJ,SAAL,CAAesJ,OAAf,IAA0B/F,WAA1B;IACD,CAND,CADI,CAAN;EASD;;EAE4B,MAAf7C,eAAe,GAAmC;IAC9D,MAAM,KAAKiF,YAAL,EAAN;IACA,MAAM+D,KAAK,GAAG,CAAC,GAAG9I,MAAM,CAACkF,IAAP,CAAY,KAAK9F,SAAjB,CAAJ,EAAiC8C,oBAAjC,CAAd;IACA,MAAM6G,aAAa,GAAGD,KAAK,CAACN,GAAN,CAAWlD,GAAD,IAAS,KAAK9F,QAAL,CAAcwJ,cAAd,CAA6B1D,GAA7B,CAAnB,CAAtB;IACA,OAAOyD,aAAP;EACD;;AArVkB"}
@@ -219,10 +219,7 @@ class WorkspaceComponentLoader {
219
219
  });
220
220
  const components = await componentsP;
221
221
  errors.forEach(err => {
222
- if (!this.workspace.consumer.isLegacy) {
223
- this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);
224
- }
225
-
222
+ this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);
226
223
  this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);
227
224
  }); // remove errored components
228
225
 
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","componentsCacheForCapsule","getMany","ids","forCapsule","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","consumer","isLegacy","console","warn","filteredComponents","end","getInvalid","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","set","isEqual","loadComponentForCapsule","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private componentsCacheForCapsule: InMemoryCache<Component>; // cache loaded components for capsule, must not use the cache for the workspace\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.componentsCacheForCapsule = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>, forCapsule = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id, forCapsule).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n if (!this.workspace.consumer.isLegacy) {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n }\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n forCapsule = false,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, forCapsule);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id, forCapsule));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, forCapsule);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n this.componentsCacheForCapsule.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n this.componentsCache.delete(idStr);\n this.componentsCacheForCapsule.delete(idStr);\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state));\n }\n\n private saveInCache(component: Component, forCapsule: boolean): void {\n if (forCapsule) {\n this.componentsCacheForCapsule.set(component.id.toString(), component);\n } else {\n this.componentsCache.set(component.id.toString(), component);\n }\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, forCapsule: boolean): Component | undefined {\n const fromCache = forCapsule\n ? this.componentsCacheForCapsule.get(id.toString())\n : this.componentsCache.get(id.toString());\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID, forCapsule = false): Promise<ConsumerComponent | undefined> {\n try {\n return forCapsule\n ? // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponentForCapsule(id._legacy)\n : // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component) {\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","componentsCacheForCapsule","getMany","ids","forCapsule","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","catch","err","isComponentNotExistsError","push","undefined","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","uniq","map","env","state","issues","getOrCreate","IssuesClasses","MultipleEnvs","data","clearCache","deleteAll","clearComponentCache","idStr","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","executeLoadSlot","newComponentFromState","set","isEqual","loadComponentForCapsule","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","upsertExtensionData","envsData","getEnvSystemDescriptor","policy","mergeVariantPolicies","config","extractDepsFromLegacy","depResolverData","serialize","EnvsAspect","DependencyResolverAspect","Promise","all","updatedAspectList","aspects","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry"],"sources":["workspace-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, InvalidComponent, State, TagMap } from '@teambit/component';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport mapSeries from 'p-map-series';\nimport { compact, uniq } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';\nimport { getLatestVersionNumber } from '@teambit/legacy/dist/utils';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport ComponentNotFoundInPath from '@teambit/legacy/dist/consumer/component/exceptions/component-not-found-in-path';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private componentsCacheForCapsule: InMemoryCache<Component>; // cache loaded components for capsule, must not use the cache for the workspace\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private envs: EnvsMain\n ) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.componentsCacheForCapsule = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n async getMany(ids: Array<ComponentID>, forCapsule = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: { id: ComponentID; err: Error }[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n return this.get(id, forCapsule).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n forCapsule = false,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLane,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, forCapsule);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id, forCapsule));\n // in case of out-of-sync, the id may changed during the load process\n const updatedId = consumerComponent ? ComponentID.fromLegacy(consumerComponent.id, id.scope) : id;\n const component = await this.loadOne(updatedId, consumerComponent);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, forCapsule);\n }\n return component;\n }\n\n async getIfExist(componentId: ComponentID) {\n try {\n return await this.get(componentId);\n } catch (err: any) {\n if (this.isComponentNotExistsError(err)) {\n return undefined;\n }\n throw err;\n }\n }\n\n private addMultipleEnvsIssueIfNeeded(component: Component) {\n const envs = this.envs.getAllEnvsConfiguredOnComponent(component);\n const envIds = uniq(envs.map((env) => env.id));\n if (envIds.length < 2) {\n return;\n }\n component.state.issues.getOrCreate(IssuesClasses.MultipleEnvs).data = envIds;\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n this.componentsCacheForCapsule.deleteAll();\n }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n this.componentsCache.delete(idStr);\n this.componentsCacheForCapsule.delete(idStr);\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent) {\n const componentFromScope = await this.workspace.scope.get(id);\n if (!consumerComponent) {\n if (!componentFromScope) throw new MissingBitMapComponent(id.toString());\n return componentFromScope;\n }\n const { extensions } = await this.workspace.componentExtensions(id, componentFromScope);\n const extensionsFromConsumerComponent = consumerComponent.extensions || new ExtensionDataList();\n // Merge extensions added by the legacy code in memory (for example data of dependency resolver)\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConsumerComponent,\n extensions,\n ]).filterRemovedExtensions();\n\n // temporarily mutate consumer component extensions until we remove all direct access from legacy to extensions data\n // TODO: remove this once we remove all direct access from legacy code to extensions data\n consumerComponent.extensions = extensionDataList;\n\n const state = new State(\n new Config(consumerComponent.mainFile, extensionDataList),\n await this.workspace.createAspectList(extensionDataList),\n ComponentFS.fromVinyls(consumerComponent.files),\n consumerComponent.dependencies,\n consumerComponent\n );\n if (componentFromScope) {\n // Removed by @gilad. do not mutate the component from the scope\n // componentFromScope.state = state;\n // const workspaceComponent = WorkspaceComponent.fromComponent(componentFromScope, this.workspace);\n const workspaceComponent = new WorkspaceComponent(\n componentFromScope.id,\n componentFromScope.head,\n state,\n componentFromScope.tags,\n this.workspace\n );\n return this.executeLoadSlot(workspaceComponent);\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state));\n }\n\n private saveInCache(component: Component, forCapsule: boolean): void {\n if (forCapsule) {\n this.componentsCacheForCapsule.set(component.id.toString(), component);\n } else {\n this.componentsCache.set(component.id.toString(), component);\n }\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID, forCapsule: boolean): Component | undefined {\n const fromCache = forCapsule\n ? this.componentsCacheForCapsule.get(id.toString())\n : this.componentsCache.get(id.toString());\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private async getConsumerComponent(id: ComponentID, forCapsule = false): Promise<ConsumerComponent | undefined> {\n try {\n return forCapsule\n ? // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponentForCapsule(id._legacy)\n : // eslint-disable-next-line @typescript-eslint/return-await\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n // don't return undefined for any error. otherwise, if the component is invalid (e.g. main\n // file is missing) it returns the model component later unexpectedly, or if it's new, it\n // shows MissingBitMapComponent error incorrectly.\n if (this.isComponentNotExistsError(err)) {\n this.logger.debug(\n `failed loading component \"${id.toString()}\" from the workspace due to \"${err.name}\" error\\n${err.message}`\n );\n return undefined;\n }\n throw err;\n }\n }\n\n private isComponentNotExistsError(err: Error): boolean {\n return (\n err instanceof ComponentNotFound ||\n err instanceof MissingBitMapComponent ||\n err instanceof ComponentNotFoundInPath\n );\n }\n\n private async executeLoadSlot(component: Component) {\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component);\n return this.upsertExtensionData(component, extension, data);\n });\n\n // Special load events which runs from the workspace but should run from the correct aspect\n // TODO: remove this once those extensions dependent on workspace\n const envsData = await this.workspace.getEnvSystemDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(component.config.extensions);\n const dependencies = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n dependencies,\n policy: policy.serialize(),\n };\n\n promises.push(this.upsertExtensionData(component, EnvsAspect.id, envsData));\n promises.push(this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData));\n\n await Promise.all(promises);\n\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n const updatedAspectList = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = updatedAspectList;\n return component;\n }\n\n private newComponentFromState(id: ComponentID, state: State): Component {\n return new WorkspaceComponent(id, null, state, new TagMap(), this.workspace);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension && data) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state.config.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n}\n"],"mappings":"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"}
@@ -8,3 +8,4 @@ export declare const WorkspaceMain: {
8
8
  provider: typeof workspaceProvider;
9
9
  defineRuntime: string;
10
10
  };
11
+ export default WorkspaceMain;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.WorkspaceMain = void 0;
8
+ exports.default = exports.WorkspaceMain = void 0;
9
9
 
10
10
  function _pubsub() {
11
11
  const data = require("@teambit/pubsub");
@@ -199,4 +199,7 @@ exports.WorkspaceMain = WorkspaceMain;
199
199
 
200
200
  _workspace().WorkspaceAspect.addRuntime(WorkspaceMain);
201
201
 
202
+ var _default = WorkspaceMain;
203
+ exports.default = _default;
204
+
202
205
  //# sourceMappingURL=workspace.main.runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceMain","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","CommunityAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport CommunityAspect from '@teambit/community';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\n\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider, { OnPreWatch } from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n CommunityAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnPreWatch>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,aAAa,GAAG;EAC3BC,IAAI,EAAEC,qBADqB;EAE3BC,OAAO,EAAEC,kBAFkB;EAG3BC,YAAY,EAAE,CACZC,sBADY,EAEZC,gBAFY,EAGZC,oBAHY,EAIZC,4BAJY,EAKZC,0BALY,EAMZC,8CANY,EAOZC,0BAPY,EAQZC,sBARY,EASZC,wBATY,EAUZC,cAVY,EAWZC,wBAXY,EAYZC,kCAZY,EAaZC,kBAbY,EAcZC,oBAdY,CAHa;EAmB3BC,KAAK,EAAE,CACLC,eAAA,CAAKC,QAAL,EADK,EAELD,eAAA,CAAKC,QAAL,EAFK,EAGLD,eAAA,CAAKC,QAAL,EAHK,EAILD,eAAA,CAAKC,QAAL,EAJK,EAKLD,eAAA,CAAKC,QAAL,EALK,CAnBoB;EA0B3BC,QAAQ,EAAEC,qBA1BiB;EA2B3BC,aAAa,EAAE;AA3BY,CAAtB;;;AA8BPC,4BAAA,CAAgBC,UAAhB,CAA2B3B,aAA3B"}
1
+ {"version":3,"names":["WorkspaceMain","name","EXT_NAME","runtime","MainRuntime","dependencies","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","DependencyResolverAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","CommunityAspect","slots","Slot","withType","provider","workspaceProvider","defineRuntime","WorkspaceAspect","addRuntime"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { EnvsAspect } from '@teambit/envs';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Slot } from '@teambit/harmony';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport { LoggerAspect } from '@teambit/logger';\nimport { ScopeAspect } from '@teambit/scope';\nimport CommunityAspect from '@teambit/community';\nimport { UIAspect } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\n\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport workspaceProvider, { OnPreWatch } from './workspace.provider';\n\nexport const WorkspaceMain = {\n name: EXT_NAME,\n runtime: MainRuntime,\n dependencies: [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n CommunityAspect,\n ],\n slots: [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnPreWatch>(),\n ],\n provider: workspaceProvider,\n defineRuntime: 'browser',\n};\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,aAAa,GAAG;EAC3BC,IAAI,EAAEC,qBADqB;EAE3BC,OAAO,EAAEC,kBAFkB;EAG3BC,YAAY,EAAE,CACZC,sBADY,EAEZC,gBAFY,EAGZC,oBAHY,EAIZC,4BAJY,EAKZC,0BALY,EAMZC,8CANY,EAOZC,0BAPY,EAQZC,sBARY,EASZC,wBATY,EAUZC,cAVY,EAWZC,wBAXY,EAYZC,kCAZY,EAaZC,kBAbY,EAcZC,oBAdY,CAHa;EAmB3BC,KAAK,EAAE,CACLC,eAAA,CAAKC,QAAL,EADK,EAELD,eAAA,CAAKC,QAAL,EAFK,EAGLD,eAAA,CAAKC,QAAL,EAHK,EAILD,eAAA,CAAKC,QAAL,EAJK,EAKLD,eAAA,CAAKC,QAAL,EALK,CAnBoB;EA0B3BC,QAAQ,EAAEC,qBA1BiB;EA2B3BC,aAAa,EAAE;AA3BY,CAAtB;;;AA8BPC,4BAAA,CAAgBC,UAAhB,CAA2B3B,aAA3B;;eAEeA,a"}
@@ -285,13 +285,11 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
285
285
 
286
286
  consumer.onCacheClear.push(() => workspace.clearCache());
287
287
 
288
- if (!workspace.isLegacy) {
289
- _componentLoader().default.registerOnComponentLoadSubscriber(async legacyComponent => {
290
- const id = await workspace.resolveComponentId(legacyComponent.id);
291
- const newComponent = await workspace.get(id, false, legacyComponent);
292
- return newComponent.state._consumer;
293
- });
294
- }
288
+ _componentLoader().default.registerOnComponentLoadSubscriber(async legacyComponent => {
289
+ const id = await workspace.resolveComponentId(legacyComponent.id);
290
+ const newComponent = await workspace.get(id, false, legacyComponent);
291
+ return newComponent.state._consumer;
292
+ });
295
293
 
296
294
  _component().default.registerOnComponentConfigLoading(_constants().EXT_NAME, async id => {
297
295
  const componentId = await workspace.resolveComponentId(id); // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component
@@ -338,10 +336,8 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
338
336
  const commands = [new (_install().default)(workspace, logger), new (_update().default)(workspace), new (_uninstall().default)(workspace), new (_ejectConf().default)(workspace), capsuleCmd];
339
337
  const watcher = new (_watcher().Watcher)(workspace, pubsub);
340
338
 
341
- if (workspace && !workspace.consumer.isLegacy) {
342
- cli.unregister('watch');
339
+ if (workspace) {
343
340
  commands.push(new (_watch().WatchCommand)(pubsub, logger, watcher));
344
- cli.unregister('link');
345
341
  commands.push(new (_link().LinkCommand)(workspace, logger, community.getDocsDomain()));
346
342
  commands.push(new (_use().UseCmd)(workspace));
347
343
  }
@@ -1 +1 @@
1
- {"version":3,"names":["provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","community","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onPreWatchSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","undefined","logger","createLogger","EXT_NAME","workspace","Workspace","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","registerRootPolicy","ManyComponentsWriter","registerExternalInstaller","install","installOpts","dedupe","updateExisting","import","onCacheClear","push","clearCache","isLegacy","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","id","resolveComponentId","newComponent","state","_consumer","ConsumerComponent","registerOnComponentConfigLoading","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","compId","_legacy","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","registerDefaultScopeGetter","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","register","capsuleCmd","CapsuleCmd","commands","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","InstallCmd","UpdateCmd","UninstallCmd","EjectConfCmd","watcher","Watcher","unregister","WatchCommand","LinkCommand","getDocsDomain","UseCmd","PatternCommand","registerHost","registerOnStart","importCurrentLaneIfMissing","loadAspects","getNotLoadedConfiguredExtensions","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","scopeCommand","ScopeSetCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { registerDefaultScopeGetter } from '@teambit/legacy/dist/api/consumer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport LegacyComponentLoader from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { CommunityMain } from '@teambit/community';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { WatchCommand } from './watch/watch.cmd';\nimport { LinkCommand } from './link';\nimport { Watcher, WatchOptions } from './watch/watcher';\nimport { Workspace, WorkspaceInstallOptions } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n CommunityMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnPreWatch = (components: Component[], watchOpts: WatchOptions) => Promise<void>;\nexport type OnPreWatchSlot = SlotRegistry<OnPreWatch>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n community,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onPreWatchSlot]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnPreWatchSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) return undefined;\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onPreWatchSlot,\n graphql\n );\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n dependencyResolver.registerRootPolicy(getWorkspacePolicyFromPackageJson());\n\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return workspace.install(undefined, installOpts);\n },\n });\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n if (!workspace.isLegacy) {\n LegacyComponentLoader.registerOnComponentLoadSubscriber(async (legacyComponent: ConsumerComponent) => {\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, false, legacyComponent);\n return newComponent.state._consumer;\n });\n }\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n const compId = await workspace.resolveComponentId(legacyEntry.extensionId);\n legacyEntry.extensionId = compId._legacy;\n legacyEntry.newExtensionId = compId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n /**\n * Add default scope from harmony during export.\n */\n registerDefaultScopeGetter(async (id: BitId) => {\n const componentId = await workspace.resolveComponentId(id);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n return defaultScope;\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n graphql.register(workspaceSchema);\n const capsuleCmd = new CapsuleCmd();\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace),\n new CapsuleCreateCmd(workspace, isolator),\n new CapsuleDeleteCmd(isolator, workspace),\n ];\n const commands: CommandList = [\n new InstallCmd(workspace, logger),\n new UpdateCmd(workspace),\n new UninstallCmd(workspace),\n new EjectConfCmd(workspace),\n capsuleCmd,\n ];\n const watcher = new Watcher(workspace, pubsub);\n if (workspace && !workspace.consumer.isLegacy) {\n cli.unregister('watch');\n commands.push(new WatchCommand(pubsub, logger, watcher));\n cli.unregister('link');\n commands.push(new LinkCommand(workspace, logger, community.getDocsDomain()));\n commands.push(new UseCmd(workspace));\n }\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async () => {\n await workspace.importCurrentLaneIfMissing();\n await workspace.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions());\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":";;;;;;;;;;;;;AAcA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AA8Be,eAAeA,gBAAf,CACb,CACEC,MADF,EAEEC,GAFF,EAGEC,KAHF,EAIEC,SAJF,EAKEC,QALF,EAMEC,kBANF,EAOEC,QAPF,EAQEC,SARF,EASEC,OATF,EAUEC,EAVF,EAWEC,OAXF,EAYEC,YAZF,EAaEC,IAbF,EAcEC,SAdF,CADa,EAiBbC,MAjBa,EAkBb,CAACC,mBAAD,EAAsBC,qBAAtB,EAA6CC,kBAA7C,EAAiEC,qBAAjE,EAAwFC,cAAxF,CAlBa,EAyBbC,OAzBa,EA0Bb;EAAA;;EACA,MAAMC,SAAc,GAAGD,OAAO,CAACN,MAAR,CAAeQ,GAAf,CAAmB,qBAAnB,CAAvB;EACA,MAAMC,QAAQ,GAAG,MAAMC,WAAW,CAACH,SAAS,CAACI,GAAX,CAAlC;EACA,IAAI,CAACF,QAAL,EAAe,OAAOG,SAAP,CAHf,CAIA;;EACA,MAAMC,MAAM,GAAGpB,SAAS,CAACqB,YAAV,CAAuBC,qBAAvB,CAAf;EACA,MAAMC,SAAS,GAAG,KAAIC,sBAAJ,EAChB/B,MADgB,EAEhBc,MAFgB,EAGhBS,QAHgB,EAIhBrB,KAJgB,EAKhBC,SALgB,EAMhBC,QANgB,EAOhBC,kBAPgB,EAQhBC,QARgB,EAShBK,YATgB,EAUhBgB,MAVgB,EAWhBD,SAXgB,EAYhBN,OAZgB,EAahBL,mBAbgB,EAchBC,qBAdgB,EAehBJ,IAfgB,EAgBhBK,kBAhBgB,EAiBhBC,qBAjBgB,EAkBhBC,cAlBgB,EAmBhBX,OAnBgB,CAAlB;;EAsBA,MAAMwB,iCAAiC,GAAG,MAAM;IAAA;;IAC9C,MAAMC,WAAW,GAAG,0BAAAH,SAAS,CAACP,QAAV,CAAmBU,WAAnB,gFAAgCC,iBAAhC,KAAqD,EAAzE;IACA,MAAMC,qBAAqB,GAAG9B,kBAAkB,CAAC2B,iCAAnB,CAAqDC,WAArD,CAA9B;IACA,OAAOE,qBAAP;EACD,CAJD;;EAMA9B,kBAAkB,CAAC+B,kBAAnB,CAAsCJ,iCAAiC,EAAvE;;EAEAK,+BAAA,CAAqBC,yBAArB,CAA+C;IAC7CC,OAAO,EAAE,YAAY;MACnB;MACA,MAAMC,WAAoC,GAAG;QAC3CC,MAAM,EAAE,IADmC;QAE3CC,cAAc,EAAE,KAF2B;QAG3CC,MAAM,EAAE;MAHmC,CAA7C;MAKA,OAAOb,SAAS,CAACS,OAAV,CAAkBb,SAAlB,EAA6Bc,WAA7B,CAAP;IACD;EAT4C,CAA/C;;EAYAjB,QAAQ,CAACqB,YAAT,CAAsBC,IAAtB,CAA2B,MAAMf,SAAS,CAACgB,UAAV,EAAjC;;EAEA,IAAI,CAAChB,SAAS,CAACiB,QAAf,EAAyB;IACvBC,0BAAA,CAAsBC,iCAAtB,CAAwD,MAAOC,eAAP,IAA8C;MACpG,MAAMC,EAAE,GAAG,MAAMrB,SAAS,CAACsB,kBAAV,CAA6BF,eAAe,CAACC,EAA7C,CAAjB;MACA,MAAME,YAAY,GAAG,MAAMvB,SAAS,CAACR,GAAV,CAAc6B,EAAd,EAAkB,KAAlB,EAAyBD,eAAzB,CAA3B;MACA,OAAOG,YAAY,CAACC,KAAb,CAAmBC,SAA1B;IACD,CAJD;EAKD;;EAEDC,oBAAA,CAAkBC,gCAAlB,CAAmD5B,qBAAnD,EAA6D,MAAOsB,EAAP,IAAc;IACzE,MAAMO,WAAW,GAAG,MAAM5B,SAAS,CAACsB,kBAAV,CAA6BD,EAA7B,CAA1B,CADyE,CAEzE;IACA;IACA;;IACA,MAAMQ,kBAAkB,GAAG,MAAM7B,SAAS,CAAC5B,KAAV,CAAgBoB,GAAhB,CAAoBoC,WAApB,CAAjC;IACA,MAAM;MAAEE;IAAF,IAAiB,MAAM9B,SAAS,CAAC+B,mBAAV,CAA8BH,WAA9B,EAA2CC,kBAA3C,CAA7B;IACA,MAAMG,YAAY,GAAG,MAAMhC,SAAS,CAACiC,qBAAV,CAAgCL,WAAhC,CAA3B;IAEA,MAAMM,wBAAwB,GAAGJ,UAAU,CAACK,GAAX,CAAe,MAAOC,SAAP,IAAqB;MACnE,MAAMC,WAAW,GAAGD,SAAS,CAACE,KAAV,EAApB;;MACA,IAAID,WAAW,CAACE,WAAhB,EAA6B;QAC3B,MAAMC,MAAM,GAAG,MAAMxC,SAAS,CAACsB,kBAAV,CAA6Be,WAAW,CAACE,WAAzC,CAArB;QACAF,WAAW,CAACE,WAAZ,GAA0BC,MAAM,CAACC,OAAjC;QACAJ,WAAW,CAACK,cAAZ,GAA6BF,MAA7B;MACD;;MAED,OAAOH,WAAP;IACD,CATgC,CAAjC;IAUA,MAAMM,uBAAuB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYX,wBAAZ,CAAtC;IAEA,OAAO;MACLF,YADK;MAELF,UAAU,EAAEgB,kCAAA,CAAkBC,SAAlB,CAA4BJ,uBAA5B;IAFP,CAAP;EAID,CAzBD;EA2BA;AACF;AACA;;;EACE,IAAAK,uCAAA,EAA2B,MAAO3B,EAAP,IAAqB;IAC9C,MAAMO,WAAW,GAAG,MAAM5B,SAAS,CAACsB,kBAAV,CAA6BD,EAA7B,CAA1B;IACA,MAAMW,YAAY,GAAG,MAAMhC,SAAS,CAACiC,qBAAV,CAAgCL,WAAhC,CAA3B;IACA,OAAOI,YAAP;EACD,CAJD;EAMA,MAAMiB,eAAe,GAAG,IAAAC,qBAAA,EAAmBlD,SAAnB,EAA8BtB,OAA9B,CAAxB;EACAC,EAAE,CAACwE,cAAH,CAAkB,KAAIC,6BAAJ,EAAoBpD,SAApB,EAA+BpB,OAA/B,CAAlB;EACAF,OAAO,CAAC2E,QAAR,CAAiBJ,eAAjB;EACA,MAAMK,UAAU,GAAG,KAAIC,qBAAJ,GAAnB;EACAD,UAAU,CAACE,QAAX,GAAsB,CACpB,KAAIC,yBAAJ,EAAmBnF,QAAnB,EAA6B0B,SAA7B,CADoB,EAEpB,KAAI0D,2BAAJ,EAAqB1D,SAArB,EAAgC1B,QAAhC,CAFoB,EAGpB,KAAIqF,2BAAJ,EAAqBrF,QAArB,EAA+B0B,SAA/B,CAHoB,CAAtB;EAKA,MAAMwD,QAAqB,GAAG,CAC5B,KAAII,kBAAJ,EAAe5D,SAAf,EAA0BH,MAA1B,CAD4B,EAE5B,KAAIgE,iBAAJ,EAAc7D,SAAd,CAF4B,EAG5B,KAAI8D,oBAAJ,EAAiB9D,SAAjB,CAH4B,EAI5B,KAAI+D,oBAAJ,EAAiB/D,SAAjB,CAJ4B,EAK5BsD,UAL4B,CAA9B;EAOA,MAAMU,OAAO,GAAG,KAAIC,kBAAJ,EAAYjE,SAAZ,EAAuB9B,MAAvB,CAAhB;;EACA,IAAI8B,SAAS,IAAI,CAACA,SAAS,CAACP,QAAV,CAAmBwB,QAArC,EAA+C;IAC7C9C,GAAG,CAAC+F,UAAJ,CAAe,OAAf;IACAV,QAAQ,CAACzC,IAAT,CAAc,KAAIoD,qBAAJ,EAAiBjG,MAAjB,EAAyB2B,MAAzB,EAAiCmE,OAAjC,CAAd;IACA7F,GAAG,CAAC+F,UAAJ,CAAe,MAAf;IACAV,QAAQ,CAACzC,IAAT,CAAc,KAAIqD,mBAAJ,EAAgBpE,SAAhB,EAA2BH,MAA3B,EAAmCd,SAAS,CAACsF,aAAV,EAAnC,CAAd;IACAb,QAAQ,CAACzC,IAAT,CAAc,KAAIuD,aAAJ,EAAWtE,SAAX,CAAd;EACD;;EACDwD,QAAQ,CAACzC,IAAT,CAAc,KAAIwD,yBAAJ,EAAmBvE,SAAnB,CAAd;EACA7B,GAAG,CAACkF,QAAJ,CAAa,GAAGG,QAAhB;EACAnF,SAAS,CAACmG,YAAV,CAAuBxE,SAAvB;EAEA7B,GAAG,CAACsG,eAAJ,CAAoB,YAAY;IAC9B,MAAMzE,SAAS,CAAC0E,0BAAV,EAAN;IACA,MAAM1E,SAAS,CAAC2E,WAAV,CAAsB9F,YAAY,CAAC+F,gCAAb,EAAtB,CAAN;EACD,CAHD,EA1HA,CA+HA;;EACA,MAAMC,WAAW,GAAG1G,GAAG,CAAC2G,UAAJ,CAAe,MAAf,CAApB;EACAD,WAAW,SAAX,IAAAA,WAAW,WAAX,qCAAAA,WAAW,CAAErB,QAAb,gFAAuBzC,IAAvB,CAA4B,KAAIgE,qBAAJ,EAAe/E,SAAf,CAA5B,EAjIA,CAiIwD;;EACxD6E,WAAW,SAAX,IAAAA,WAAW,WAAX,sCAAAA,WAAW,CAAErB,QAAb,kFAAuBzC,IAAvB,CAA4B,KAAIiE,yBAAJ,EAAiBhF,SAAjB,CAA5B,EAlIA,CAkI0D;;EAC1D6E,WAAW,SAAX,IAAAA,WAAW,WAAX,sCAAAA,WAAW,CAAErB,QAAb,kFAAuBzC,IAAvB,CAA4B,KAAIkE,6BAAJ,EAAmBjF,SAAnB,CAA5B,EAnIA,CAmI4D;EAE5D;;EACA,MAAMkF,YAAY,GAAG/G,GAAG,CAAC2G,UAAJ,CAAe,OAAf,CAArB;EACAI,YAAY,SAAZ,IAAAA,YAAY,WAAZ,qCAAAA,YAAY,CAAE1B,QAAd,gFAAwBzC,IAAxB,CAA6B,KAAIoE,uBAAJ,EAAgBnF,SAAhB,CAA7B;EAEA,OAAOA,SAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeN,WAAf,CAA2B0F,IAA3B,EAAyE;EACvE,OAAO,IAAAC,+BAAA,EAAoBD,IAApB,CAAP;AACD"}
1
+ {"version":3,"names":["provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","community","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onPreWatchSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","undefined","logger","createLogger","EXT_NAME","workspace","Workspace","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","registerRootPolicy","ManyComponentsWriter","registerExternalInstaller","install","installOpts","dedupe","updateExisting","import","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","id","resolveComponentId","newComponent","state","_consumer","ConsumerComponent","registerOnComponentConfigLoading","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","compId","_legacy","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","registerDefaultScopeGetter","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","register","capsuleCmd","CapsuleCmd","commands","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","InstallCmd","UpdateCmd","UninstallCmd","EjectConfCmd","watcher","Watcher","WatchCommand","LinkCommand","getDocsDomain","UseCmd","PatternCommand","registerHost","registerOnStart","importCurrentLaneIfMissing","loadAspects","getNotLoadedConfiguredExtensions","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","scopeCommand","ScopeSetCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { registerDefaultScopeGetter } from '@teambit/legacy/dist/api/consumer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport LegacyComponentLoader from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { CommunityMain } from '@teambit/community';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { WatchCommand } from './watch/watch.cmd';\nimport { LinkCommand } from './link';\nimport { Watcher, WatchOptions } from './watch/watcher';\nimport { Workspace, WorkspaceInstallOptions } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n CommunityMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnPreWatch = (components: Component[], watchOpts: WatchOptions) => Promise<void>;\nexport type OnPreWatchSlot = SlotRegistry<OnPreWatch>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n community,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onPreWatchSlot]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnPreWatchSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) return undefined;\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onPreWatchSlot,\n graphql\n );\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n dependencyResolver.registerRootPolicy(getWorkspacePolicyFromPackageJson());\n\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return workspace.install(undefined, installOpts);\n },\n });\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(async (legacyComponent: ConsumerComponent) => {\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, false, legacyComponent);\n return newComponent.state._consumer;\n });\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n const compId = await workspace.resolveComponentId(legacyEntry.extensionId);\n legacyEntry.extensionId = compId._legacy;\n legacyEntry.newExtensionId = compId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n /**\n * Add default scope from harmony during export.\n */\n registerDefaultScopeGetter(async (id: BitId) => {\n const componentId = await workspace.resolveComponentId(id);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n return defaultScope;\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n graphql.register(workspaceSchema);\n const capsuleCmd = new CapsuleCmd();\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace),\n new CapsuleCreateCmd(workspace, isolator),\n new CapsuleDeleteCmd(isolator, workspace),\n ];\n const commands: CommandList = [\n new InstallCmd(workspace, logger),\n new UpdateCmd(workspace),\n new UninstallCmd(workspace),\n new EjectConfCmd(workspace),\n capsuleCmd,\n ];\n const watcher = new Watcher(workspace, pubsub);\n if (workspace) {\n commands.push(new WatchCommand(pubsub, logger, watcher));\n commands.push(new LinkCommand(workspace, logger, community.getDocsDomain()));\n commands.push(new UseCmd(workspace));\n }\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async () => {\n await workspace.importCurrentLaneIfMissing();\n await workspace.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions());\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "0.0.783",
3
+ "version": "0.0.786",
4
4
  "homepage": "https://bit.dev/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "0.0.783"
9
+ "version": "0.0.786"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -39,46 +39,46 @@
39
39
  "@teambit/bit-error": "0.0.394",
40
40
  "@teambit/component-id": "0.0.402",
41
41
  "@teambit/legacy-bit-id": "0.0.399",
42
- "@teambit/logger": "0.0.611",
43
- "@teambit/scope": "0.0.783",
44
- "@teambit/cli": "0.0.518",
45
- "@teambit/isolator": "0.0.783",
46
- "@teambit/component-tree": "0.0.571",
42
+ "@teambit/logger": "0.0.612",
43
+ "@teambit/scope": "0.0.786",
44
+ "@teambit/cli": "0.0.519",
45
+ "@teambit/isolator": "0.0.786",
46
+ "@teambit/component-tree": "0.0.574",
47
47
  "@teambit/component.ui.component-status-resolver": "0.0.493",
48
- "@teambit/lanes.ui.lanes": "0.0.86",
48
+ "@teambit/lanes.ui.lanes": "0.0.87",
49
49
  "@teambit/harmony.modules.resolved-component": "0.0.484",
50
- "@teambit/dependency-resolver": "0.0.783",
51
- "@teambit/compiler": "0.0.783",
52
- "@teambit/component": "0.0.783",
53
- "@teambit/graphql": "0.0.783",
54
- "@teambit/aspect-loader": "0.0.783",
55
- "@teambit/bundler": "0.0.783",
56
- "@teambit/community": "0.0.66",
57
- "@teambit/envs": "0.0.783",
58
- "@teambit/pubsub": "0.0.783",
59
- "@teambit/ui": "0.0.783",
60
- "@teambit/variants": "0.0.614",
61
- "@teambit/component-issues": "0.0.56",
62
- "@teambit/config": "0.0.531",
50
+ "@teambit/dependency-resolver": "0.0.786",
51
+ "@teambit/compiler": "0.0.786",
52
+ "@teambit/component": "0.0.786",
53
+ "@teambit/graphql": "0.0.786",
54
+ "@teambit/aspect-loader": "0.0.786",
55
+ "@teambit/bundler": "0.0.786",
56
+ "@teambit/community": "0.0.67",
57
+ "@teambit/envs": "0.0.786",
58
+ "@teambit/pubsub": "0.0.786",
59
+ "@teambit/ui": "0.0.786",
60
+ "@teambit/variants": "0.0.615",
61
+ "@teambit/component-issues": "0.0.57",
62
+ "@teambit/config": "0.0.532",
63
63
  "@teambit/harmony.modules.requireable-component": "0.0.484",
64
- "@teambit/importer": "0.0.212",
65
- "@teambit/lane-id": "0.0.37",
64
+ "@teambit/importer": "0.0.215",
65
+ "@teambit/lane-id": "0.0.38",
66
66
  "@teambit/workspace.modules.match-pattern": "0.0.489",
67
- "@teambit/component.ui.component-drawer": "0.0.66",
67
+ "@teambit/component.ui.component-drawer": "0.0.67",
68
68
  "@teambit/design.ui.tree": "0.0.6",
69
- "@teambit/ui-foundation.ui.side-bar": "0.0.583",
70
- "@teambit/command-bar": "0.0.783",
69
+ "@teambit/ui-foundation.ui.side-bar": "0.0.584",
70
+ "@teambit/command-bar": "0.0.786",
71
71
  "@teambit/component.ui.component-filters": "0.0.7",
72
- "@teambit/graph": "0.0.783",
73
- "@teambit/sidebar": "0.0.783",
72
+ "@teambit/graph": "0.0.786",
73
+ "@teambit/sidebar": "0.0.786",
74
74
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.487",
75
75
  "@teambit/ui-foundation.ui.menu": "0.0.487",
76
76
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.490",
77
77
  "@teambit/ui-foundation.ui.tree.drawer": "0.0.499",
78
78
  "@teambit/toolbox.time.time-format": "0.0.483",
79
79
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.488",
80
- "@teambit/component-descriptor": "0.0.80",
81
- "@teambit/deprecation": "0.0.783",
80
+ "@teambit/component-descriptor": "0.0.81",
81
+ "@teambit/deprecation": "0.0.786",
82
82
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.488",
83
83
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.195",
84
84
  "@teambit/ui-foundation.ui.corner": "0.0.498",
@@ -105,40 +105,11 @@
105
105
  "peerDependencies": {
106
106
  "react-router-dom": "^6.0.0",
107
107
  "@apollo/client": "^3.0.0",
108
- "@teambit/legacy": "1.0.299",
108
+ "@teambit/legacy": "1.0.300",
109
109
  "react-dom": "^16.8.0 || ^17.0.0",
110
110
  "react": "^16.8.0 || ^17.0.0"
111
111
  },
112
112
  "license": "Apache-2.0",
113
- "bit": {
114
- "bindingPrefix": "@teambit",
115
- "env": {},
116
- "overrides": {
117
- "dependencies": {
118
- "@teambit/legacy": "-",
119
- "@babel/runtime": "7.12.18",
120
- "core-js": "^3.0.0",
121
- "react-dom": "-",
122
- "react": "-"
123
- },
124
- "devDependencies": {
125
- "@teambit/legacy": "-",
126
- "@types/mocha": "9.1.0",
127
- "@types/testing-library__jest-dom": "5.9.5",
128
- "@types/jest": "^26.0.0",
129
- "@types/react-dom": "^17.0.5",
130
- "@types/react": "^17.0.8",
131
- "@types/node": "12.20.4",
132
- "react-dom": "-",
133
- "react": "-"
134
- },
135
- "peerDependencies": {
136
- "@teambit/legacy": "1.0.299",
137
- "react-dom": "^16.8.0 || ^17.0.0",
138
- "react": "^16.8.0 || ^17.0.0"
139
- }
140
- }
141
- },
142
113
  "private": false,
143
114
  "engines": {
144
115
  "node": ">=12.22.0"
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.783/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.783/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.786/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@0.0.786/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/watch/watcher.ts CHANGED
@@ -373,10 +373,10 @@ export class Watcher {
373
373
  await Promise.all(
374
374
  componentsFromBitMap.map(async (componentMap) => {
375
375
  const bitId = componentMap.id;
376
- const trackDir = componentMap.getTrackDir();
377
- if (!trackDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);
376
+ const rootDir = componentMap.getRootDir();
377
+ if (!rootDir) throw new Error(`${bitId.toString()} has no rootDir, which is invalid in Harmony`);
378
378
  const componentId = await this.workspace.resolveComponentId(bitId);
379
- this.trackDirs[trackDir] = componentId;
379
+ this.trackDirs[rootDir] = componentId;
380
380
  })
381
381
  );
382
382
  }
@@ -50,9 +50,7 @@ export class WorkspaceComponentLoader {
50
50
  });
51
51
  const components = await componentsP;
52
52
  errors.forEach((err) => {
53
- if (!this.workspace.consumer.isLegacy) {
54
- this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);
55
- }
53
+ this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);
56
54
  this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);
57
55
  });
58
56
  // remove errored components