@teambit/workspace 0.0.736 → 0.0.739

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.
Files changed (78) hide show
  1. package/dist/bit-map.js.map +1 -1
  2. package/dist/build-graph-from-fs.js.map +1 -1
  3. package/dist/capsule.cmd.js.map +1 -1
  4. package/dist/component-config-file/component-config-file.js.map +1 -1
  5. package/dist/component-config-file/exceptions/already-exists.js.map +1 -1
  6. package/dist/component-config-file/exceptions/index.js.map +1 -1
  7. package/dist/component-config-file/index.js.map +1 -1
  8. package/dist/component-tree.widget.js.map +1 -1
  9. package/dist/constants.js.map +1 -1
  10. package/dist/eject-conf.cmd.js.map +1 -1
  11. package/dist/envs-subcommands/envs-replace.cmd.js.map +1 -1
  12. package/dist/envs-subcommands/envs-set.cmd.js.map +1 -1
  13. package/dist/envs-subcommands/envs-unset.cmd.js.map +1 -1
  14. package/dist/events/index.js.map +1 -1
  15. package/dist/events/on-component-add-event.js.map +1 -1
  16. package/dist/events/on-component-change-event.js.map +1 -1
  17. package/dist/events/on-component-removed-event.js.map +1 -1
  18. package/dist/exceptions/dependency-type-not-supported-in-policy.js.map +1 -1
  19. package/dist/exceptions/incorrect-env-aspect.js.map +1 -1
  20. package/dist/exceptions/index.js.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/install.cmd.js.map +1 -1
  23. package/dist/link/component-list-links.js.map +1 -1
  24. package/dist/link/core-aspects-links.js.map +1 -1
  25. package/dist/link/get-package-name-from-target.js.map +1 -1
  26. package/dist/link/index.js.map +1 -1
  27. package/dist/link/link-row.js.map +1 -1
  28. package/dist/link/link-to-dir.js.map +1 -1
  29. package/dist/link/link.cmd.js.map +1 -1
  30. package/dist/link/nested-deps-in-nm-links.js.map +1 -1
  31. package/dist/link/rewire-row.js.map +1 -1
  32. package/dist/list.cmd.js.map +1 -1
  33. package/dist/on-component-events.js.map +1 -1
  34. package/dist/pattern.cmd.js.map +1 -1
  35. package/dist/pick-outdated-pkgs.js.map +1 -1
  36. package/dist/pick-outdated-pkgs.spec.js.map +1 -1
  37. package/dist/scope-subcommands/scope-set.cmd.d.ts +1 -1
  38. package/dist/scope-subcommands/scope-set.cmd.js +17 -8
  39. package/dist/scope-subcommands/scope-set.cmd.js.map +1 -1
  40. package/dist/types.js.map +1 -1
  41. package/dist/ui/index.js.map +1 -1
  42. package/dist/ui/workspace/default-component.js.map +1 -1
  43. package/dist/ui/workspace/index.js.map +1 -1
  44. package/dist/ui/workspace/use-workspace.js.map +1 -1
  45. package/dist/ui/workspace/workspace-context.js.map +1 -1
  46. package/dist/ui/workspace/workspace-model.js.map +1 -1
  47. package/dist/ui/workspace/workspace-overview/index.js.map +1 -1
  48. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  49. package/dist/ui/workspace/workspace-provider.js.map +1 -1
  50. package/dist/ui/workspace/workspace.js.map +1 -1
  51. package/dist/uninstall.cmd.js.map +1 -1
  52. package/dist/update.cmd.js.map +1 -1
  53. package/dist/watch/check-types.js.map +1 -1
  54. package/dist/watch/output-formatter.js.map +1 -1
  55. package/dist/watch/watch.cmd.js.map +1 -1
  56. package/dist/watch/watcher.js.map +1 -1
  57. package/dist/workspace-component/component-status.js.map +1 -1
  58. package/dist/workspace-component/index.js.map +1 -1
  59. package/dist/workspace-component/workspace-component-loader.js.map +1 -1
  60. package/dist/workspace-component/workspace-component.js.map +1 -1
  61. package/dist/workspace-section.js.map +1 -1
  62. package/dist/workspace.aspect.js.map +1 -1
  63. package/dist/workspace.composition.js.map +1 -1
  64. package/dist/workspace.d.ts +5 -0
  65. package/dist/workspace.graphql.js.map +1 -1
  66. package/dist/workspace.js +66 -11
  67. package/dist/workspace.js.map +1 -1
  68. package/dist/workspace.main.runtime.js.map +1 -1
  69. package/dist/workspace.provider.js.map +1 -1
  70. package/dist/workspace.ui-root.js.map +1 -1
  71. package/dist/workspace.ui.drawer.js.map +1 -1
  72. package/dist/workspace.ui.runtime.js.map +1 -1
  73. package/package-tar/teambit-workspace-0.0.739.tgz +0 -0
  74. package/package.json +19 -19
  75. package/{preview-1652844422371.js → preview-1653362849981.js} +2 -2
  76. package/scope-subcommands/scope-set.cmd.ts +18 -8
  77. package/tsconfig.json +1 -1
  78. package/package-tar/teambit-workspace-0.0.736.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["watcher.ts"],"names":["Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","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","buildResults","handleChange","initiator","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","handleBitmapChanges","completeWatch","componentId","getComponentIdAndClearItsCache","logger","debug","executeWatchOperationsOnComponent","msg","error","console","message","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","keys","removedDirs","results","length","add","addResults","dir","push","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","toString","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","files","isChange","isComponentWatchedExternally","get","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","loader","stop","watcherData","find","m","isEqual","_legacy","compilerId","relativeFile","getPathRelativeToConsumer","trackDir","findTrackDirByFilePathRecursively","clearComponentCache","component","componentMap","state","_consumer","getFilesRelativeToConsumer","parentDir","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"],"mappings":"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","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';\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\nexport class Watcher {\n private fsWatcher: FSWatcher;\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 buildResults = (await this.handleChange(filePath, opts?.initiator)) || [];\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(filePath, buildResults, this.verbose, duration);\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 buildResults = (await this.handleChange(filePath)) || [];\n const duration = new Date().getTime() - startTime;\n msgs?.onAdd(filePath, buildResults, this.verbose, duration);\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 private async handleChange(filePath: string, initiator?: CompilationInitiator): Promise<OnComponentEventResult[]> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n const buildResults = await this.handleBitmapChanges();\n this.completeWatch();\n return buildResults;\n }\n const componentId = await this.getComponentIdAndClearItsCache(filePath);\n if (!componentId) {\n logger.debug(`file ${filePath} is not part of any component, ignoring it`);\n return this.completeWatch();\n }\n\n const buildResults = await this.executeWatchOperationsOnComponent(componentId, [filePath], true, initiator);\n this.completeWatch();\n return buildResults;\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 return [];\n }\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 if (buildResults && buildResults.length) {\n return buildResults;\n }\n logger.console(`${idStr} doesn't have a compiler, nothing to build`);\n return [];\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 completeWatch() {\n loader.stop();\n return [];\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 /**\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 getComponentIdAndClearItsCache(filePath: string): Promise<ComponentID | null> {\n const relativeFile = pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(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 const componentId = this.trackDirs[trackDir];\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile)) {\n return componentId;\n }\n // the file is inside the component dir but it's ignored. (e.g. it's in IGNORE_LIST)\n return null;\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"]}
1
+ {"version":3,"names":["Watcher","constructor","workspace","pubsub","trackDirs","verbose","multipleWatchers","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","buildResults","handleChange","initiator","duration","onChange","onAdd","p","onUnlink","err","onError","endsWith","BIT_MAP","handleBitmapChanges","completeWatch","componentId","getComponentIdAndClearItsCache","logger","debug","executeWatchOperationsOnComponent","msg","error","console","message","previewsTrackDirs","_reloadConsumer","setTrackDirs","newDirs","difference","keys","removedDirs","results","length","add","addResults","mapSeries","dir","push","flat","unwatch","executeWatchOperationsOnRemove","chalk","bold","toString","pub","WorkspaceAspect","id","creatOnComponentRemovedEvent","triggerOnComponentRemove","files","isChange","isComponentWatchedExternally","get","idStr","creatOnComponentChangeEvent","creatOnComponentAddEvent","triggerOnComponentChange","triggerOnComponentAdd","OnComponentRemovedEvent","now","hook","OnComponentChangeEvent","OnComponentAddEvent","loader","stop","watcherData","find","m","isEqual","_legacy","compilerId","relativeFile","pathNormalizeToLinux","getPathRelativeToConsumer","trackDir","findTrackDirByFilePathRecursively","clearComponentCache","component","componentMap","state","_consumer","getFilesRelativeToConsumer","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';\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\nexport class Watcher {\n private fsWatcher: FSWatcher;\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 buildResults = (await this.handleChange(filePath, opts?.initiator)) || [];\n const duration = new Date().getTime() - startTime;\n msgs?.onChange(filePath, buildResults, this.verbose, duration);\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 buildResults = (await this.handleChange(filePath)) || [];\n const duration = new Date().getTime() - startTime;\n msgs?.onAdd(filePath, buildResults, this.verbose, duration);\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 private async handleChange(filePath: string, initiator?: CompilationInitiator): Promise<OnComponentEventResult[]> {\n try {\n if (filePath.endsWith(BIT_MAP)) {\n const buildResults = await this.handleBitmapChanges();\n this.completeWatch();\n return buildResults;\n }\n const componentId = await this.getComponentIdAndClearItsCache(filePath);\n if (!componentId) {\n logger.debug(`file ${filePath} is not part of any component, ignoring it`);\n return this.completeWatch();\n }\n\n const buildResults = await this.executeWatchOperationsOnComponent(componentId, [filePath], true, initiator);\n this.completeWatch();\n return buildResults;\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 return [];\n }\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 if (buildResults && buildResults.length) {\n return buildResults;\n }\n logger.console(`${idStr} doesn't have a compiler, nothing to build`);\n return [];\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 completeWatch() {\n loader.stop();\n return [];\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 /**\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 getComponentIdAndClearItsCache(filePath: string): Promise<ComponentID | null> {\n const relativeFile = pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(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 const componentId = this.trackDirs[trackDir];\n this.workspace.clearComponentCache(componentId);\n const component = await this.workspace.get(componentId);\n const componentMap: ComponentMap = component.state._consumer.componentMap;\n if (componentMap.getFilesRelativeToConsumer().find((p) => p === relativeFile)) {\n return componentId;\n }\n // the file is inside the component dir but it's ignored. (e.g. it's in IGNORE_LIST)\n return null;\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 +1 @@
1
- {"version":3,"sources":["component-status.ts"],"names":["ComponentStatus","constructor","modifyInfo","isNew","isDeleted","isStaged","isInWorkspace","isInScope","isOutdated","nested","isInCurrentLane","fromLegacy","status","hasModifiedDependencies","modify","hasModifiedFiles","modified","newlyCreated","deleted","staged","notExist","missingFromScope"],"mappings":";;;;;;;AAOO,MAAMA,eAAN,CAAsB;AAC3BC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,UAJA;AAMT;AACJ;AACA;AACaC,EAAAA,KATA;AAWT;AACJ;AACA;AACaC,EAAAA,SAdA;AAgBT;AACJ;AACA;AACaC,EAAAA,QAnBA;AAqBT;AACJ;AACA;AACaC,EAAAA,aAxBA;AA0BT;AACJ;AACA;AACaC,EAAAA,SA7BA;AA+BT;AACJ;AACA;AACaC,EAAAA,UAlCA;AAoCT;AACJ;AACA;AACaC,EAAAA,MAvCA;AAwCT;AACJ;AACA;AACaC,EAAAA,eA3CA,EA4CT;AAAA,SAxCSR,UAwCT,GAxCSA,UAwCT;AAAA,SAnCSC,KAmCT,GAnCSA,KAmCT;AAAA,SA9BSC,SA8BT,GA9BSA,SA8BT;AAAA,SAzBSC,QAyBT,GAzBSA,QAyBT;AAAA,SApBSC,aAoBT,GApBSA,aAoBT;AAAA,SAfSC,SAeT,GAfSA,SAeT;AAAA,SAVSC,UAUT,GAVSA,UAUT;AAAA,SALSC,MAKT,GALSA,MAKT;AAAA,SADSC,eACT,GADSA,eACT;AAAE;;AAEa,SAAVC,UAAU,CACfC,MADe,EAEfC,uBAFe,EAGfL,UAHe,EAIfE,eAJe,EAKf;AACA,UAAMI,MAAkB,GAAG;AACzBC,MAAAA,gBAAgB,EAAE,CAAC,CAACH,MAAM,CAACI,QADF;AAEzBH,MAAAA;AAFyB,KAA3B;AAIA,WAAO,IAAIb,eAAJ,CACLc,MADK,EAEL,CAAC,CAACF,MAAM,CAACK,YAFJ,EAGL,CAAC,CAACL,MAAM,CAACM,OAHJ,EAIL,CAAC,CAACN,MAAM,CAACO,MAJJ,EAKL,CAACP,MAAM,CAACQ,QALH,EAML,CAACR,MAAM,CAACS,gBANH,EAOLb,UAPK,EAQL,CAAC,CAACI,MAAM,CAACH,MARJ,EASLC,eATK,CAAP;AAWD;;AApE0B","sourcesContent":["import { ComponentStatus as LegacyComponentStatus } from '@teambit/legacy/dist/consumer/component-ops/component-status-loader';\n\nexport type ModifyInfo = {\n hasModifiedFiles: boolean;\n hasModifiedDependencies: boolean;\n};\n\nexport class ComponentStatus {\n constructor(\n /**\n * is the component modified.\n */\n readonly modifyInfo: ModifyInfo,\n\n /**\n * is the new component new.\n */\n readonly isNew: boolean,\n\n /**\n * is the component deleted from the workspace.\n */\n readonly isDeleted: boolean,\n\n /**\n * is the component staged.\n */\n readonly isStaged: boolean,\n\n /**\n * does the component exists in the workspace.\n */\n readonly isInWorkspace: boolean,\n\n /**\n * does the component exists in the scope.\n */\n readonly isInScope: boolean,\n\n /**\n * does the component is outdated (pending for update).\n */\n readonly isOutdated: boolean,\n\n /**\n * the component is not authored and not imported.\n */\n readonly nested?: boolean,\n /**\n * does the component exist on the current lane\n */\n readonly isInCurrentLane?: boolean\n ) {}\n\n static fromLegacy(\n status: LegacyComponentStatus,\n hasModifiedDependencies: boolean,\n isOutdated: boolean,\n isInCurrentLane?: boolean\n ) {\n const modify: ModifyInfo = {\n hasModifiedFiles: !!status.modified,\n hasModifiedDependencies,\n };\n return new ComponentStatus(\n modify,\n !!status.newlyCreated,\n !!status.deleted,\n !!status.staged,\n !status.notExist,\n !status.missingFromScope,\n isOutdated,\n !!status.nested,\n isInCurrentLane\n );\n }\n}\n"]}
1
+ {"version":3,"names":["ComponentStatus","constructor","modifyInfo","isNew","isDeleted","isStaged","isInWorkspace","isInScope","isOutdated","nested","isInCurrentLane","fromLegacy","status","hasModifiedDependencies","modify","hasModifiedFiles","modified","newlyCreated","deleted","staged","notExist","missingFromScope"],"sources":["component-status.ts"],"sourcesContent":["import { ComponentStatus as LegacyComponentStatus } from '@teambit/legacy/dist/consumer/component-ops/component-status-loader';\n\nexport type ModifyInfo = {\n hasModifiedFiles: boolean;\n hasModifiedDependencies: boolean;\n};\n\nexport class ComponentStatus {\n constructor(\n /**\n * is the component modified.\n */\n readonly modifyInfo: ModifyInfo,\n\n /**\n * is the new component new.\n */\n readonly isNew: boolean,\n\n /**\n * is the component deleted from the workspace.\n */\n readonly isDeleted: boolean,\n\n /**\n * is the component staged.\n */\n readonly isStaged: boolean,\n\n /**\n * does the component exists in the workspace.\n */\n readonly isInWorkspace: boolean,\n\n /**\n * does the component exists in the scope.\n */\n readonly isInScope: boolean,\n\n /**\n * does the component is outdated (pending for update).\n */\n readonly isOutdated: boolean,\n\n /**\n * the component is not authored and not imported.\n */\n readonly nested?: boolean,\n /**\n * does the component exist on the current lane\n */\n readonly isInCurrentLane?: boolean\n ) {}\n\n static fromLegacy(\n status: LegacyComponentStatus,\n hasModifiedDependencies: boolean,\n isOutdated: boolean,\n isInCurrentLane?: boolean\n ) {\n const modify: ModifyInfo = {\n hasModifiedFiles: !!status.modified,\n hasModifiedDependencies,\n };\n return new ComponentStatus(\n modify,\n !!status.newlyCreated,\n !!status.deleted,\n !!status.staged,\n !status.notExist,\n !status.missingFromScope,\n isOutdated,\n !!status.nested,\n isInCurrentLane\n );\n }\n}\n"],"mappings":";;;;;;;AAOO,MAAMA,eAAN,CAAsB;EAC3BC,WAAW;EACT;AACJ;AACA;EACaC,UAJA;EAMT;AACJ;AACA;EACaC,KATA;EAWT;AACJ;AACA;EACaC,SAdA;EAgBT;AACJ;AACA;EACaC,QAnBA;EAqBT;AACJ;AACA;EACaC,aAxBA;EA0BT;AACJ;AACA;EACaC,SA7BA;EA+BT;AACJ;AACA;EACaC,UAlCA;EAoCT;AACJ;AACA;EACaC,MAvCA;EAwCT;AACJ;AACA;EACaC,eA3CA,EA4CT;IAAA,KAxCSR,UAwCT,GAxCSA,UAwCT;IAAA,KAnCSC,KAmCT,GAnCSA,KAmCT;IAAA,KA9BSC,SA8BT,GA9BSA,SA8BT;IAAA,KAzBSC,QAyBT,GAzBSA,QAyBT;IAAA,KApBSC,aAoBT,GApBSA,aAoBT;IAAA,KAfSC,SAeT,GAfSA,SAeT;IAAA,KAVSC,UAUT,GAVSA,UAUT;IAAA,KALSC,MAKT,GALSA,MAKT;IAAA,KADSC,eACT,GADSA,eACT;EAAE;;EAEa,OAAVC,UAAU,CACfC,MADe,EAEfC,uBAFe,EAGfL,UAHe,EAIfE,eAJe,EAKf;IACA,MAAMI,MAAkB,GAAG;MACzBC,gBAAgB,EAAE,CAAC,CAACH,MAAM,CAACI,QADF;MAEzBH;IAFyB,CAA3B;IAIA,OAAO,IAAIb,eAAJ,CACLc,MADK,EAEL,CAAC,CAACF,MAAM,CAACK,YAFJ,EAGL,CAAC,CAACL,MAAM,CAACM,OAHJ,EAIL,CAAC,CAACN,MAAM,CAACO,MAJJ,EAKL,CAACP,MAAM,CAACQ,QALH,EAML,CAACR,MAAM,CAACS,gBANH,EAOLb,UAPK,EAQL,CAAC,CAACI,MAAM,CAACH,MARJ,EASLC,eATK,CAAP;EAWD;;AApE0B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { WorkspaceComponent } from './workspace-component';\nexport { ComponentStatus } from './component-status';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { WorkspaceComponent } from './workspace-component';\nexport { ComponentStatus } from './component-status';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace-component-loader.ts"],"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","maxSize","componentsCacheForCapsule","getMany","ids","forCapsule","idsWithoutEmpty","errors","longProcessLogger","createLongProcessLogger","length","componentsP","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","bitmapIdsFromCurrentLane","version","changeVersion","fromCache","getFromCache","consumerComponent","getConsumerComponent","updatedId","ComponentID","fromLegacy","scope","component","loadOne","addMultipleEnvsIssueIfNeeded","saveInCache","getIfExist","getAllEnvsConfiguredOnComponent","envIds","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"],"mappings":"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","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"]}
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 +1 @@
1
- {"version":3,"sources":["workspace-component.ts"],"names":["WorkspaceComponent","Component","constructor","id","head","workspaceState","tags","TagMap","workspace","getStatus","getComponentStatus","getIssues","getComponentIssues","fromComponent","component","state"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AACO,MAAMA,kBAAN,SAAiCC,sBAAjC,CAA2C;AAChDC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,EAJA;AAMT;AACJ;AACA;AACaC,EAAAA,IAAiB,GAAG,IATpB;AAWT;AACJ;AACA;AACIC,EAAAA,cAdS;AAgBT;AACJ;AACA;AACaC,EAAAA,IAAY,GAAG,KAAIC,mBAAJ,GAnBf;AAqBT;AACJ;AACA;AACaC,EAAAA,SAxBA,EAyBT;AACA,UAAML,EAAN,EAAUC,IAAV,EAAgBC,cAAhB,EAAgCC,IAAhC,EAAsCE,SAAtC;AADA,SArBSL,EAqBT,GArBSA,EAqBT;AAAA,SAhBSC,IAgBT,GAhBSA,IAgBT;AAAA,SANSE,IAMT,GANSA,IAMT;AAAA,SADSE,SACT,GADSA,SACT;AAED;;AAEc,QAATC,SAAS,GAA6B;AAC1C,WAAO,KAAKD,SAAL,CAAeE,kBAAf,CAAkC,IAAlC,CAAP;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,SAAS,GAAsB;AAC7B,WAAO,KAAKH,SAAL,CAAeI,kBAAf,CAAkC,IAAlC,CAAP;AACD;;AAEmB,SAAbC,aAAa,CAACC,SAAD,EAAuBN,SAAvB,EAA6C;AAC/D,WAAO,IAAIR,kBAAJ,CAAuBc,SAAS,CAACX,EAAjC,EAAqCW,SAAS,CAACV,IAA/C,EAAqDU,SAAS,CAACC,KAA/D,EAAsED,SAAS,CAACR,IAAhF,EAAsFE,SAAtF,CAAP;AACD;;AA3C+C","sourcesContent":["import { Component, ComponentID, Snap, State, TagMap } from '@teambit/component';\nimport { IssuesList } from '@teambit/component-issues';\nimport { Workspace } from '../workspace';\nimport { ComponentStatus } from './component-status';\n\n// TODO: refactor this to a composition rather than to use inheritance\nexport class WorkspaceComponent extends Component {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n workspaceState: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * workspace extension.\n */\n readonly workspace: Workspace\n ) {\n super(id, head, workspaceState, tags, workspace);\n }\n\n async getStatus(): Promise<ComponentStatus> {\n return this.workspace.getComponentStatus(this);\n }\n\n /**\n * get all issues reported on the component.\n */\n getIssues(): IssuesList | null {\n return this.workspace.getComponentIssues(this);\n }\n\n static fromComponent(component: Component, workspace: Workspace) {\n return new WorkspaceComponent(component.id, component.head, component.state, component.tags, workspace);\n }\n}\n"]}
1
+ {"version":3,"names":["WorkspaceComponent","Component","constructor","id","head","workspaceState","tags","TagMap","workspace","getStatus","getComponentStatus","getIssues","getComponentIssues","fromComponent","component","state"],"sources":["workspace-component.ts"],"sourcesContent":["import { Component, ComponentID, Snap, State, TagMap } from '@teambit/component';\nimport { IssuesList } from '@teambit/component-issues';\nimport { Workspace } from '../workspace';\nimport { ComponentStatus } from './component-status';\n\n// TODO: refactor this to a composition rather than to use inheritance\nexport class WorkspaceComponent extends Component {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n workspaceState: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * workspace extension.\n */\n readonly workspace: Workspace\n ) {\n super(id, head, workspaceState, tags, workspace);\n }\n\n async getStatus(): Promise<ComponentStatus> {\n return this.workspace.getComponentStatus(this);\n }\n\n /**\n * get all issues reported on the component.\n */\n getIssues(): IssuesList | null {\n return this.workspace.getComponentIssues(this);\n }\n\n static fromComponent(component: Component, workspace: Workspace) {\n return new WorkspaceComponent(component.id, component.head, component.state, component.tags, workspace);\n }\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;AACO,MAAMA,kBAAN,SAAiCC,sBAAjC,CAA2C;EAChDC,WAAW;EACT;AACJ;AACA;EACaC,EAJA;EAMT;AACJ;AACA;EACaC,IAAiB,GAAG,IATpB;EAWT;AACJ;AACA;EACIC,cAdS;EAgBT;AACJ;AACA;EACaC,IAAY,GAAG,KAAIC,mBAAJ,GAnBf;EAqBT;AACJ;AACA;EACaC,SAxBA,EAyBT;IACA,MAAML,EAAN,EAAUC,IAAV,EAAgBC,cAAhB,EAAgCC,IAAhC,EAAsCE,SAAtC;IADA,KArBSL,EAqBT,GArBSA,EAqBT;IAAA,KAhBSC,IAgBT,GAhBSA,IAgBT;IAAA,KANSE,IAMT,GANSA,IAMT;IAAA,KADSE,SACT,GADSA,SACT;EAED;;EAEc,MAATC,SAAS,GAA6B;IAC1C,OAAO,KAAKD,SAAL,CAAeE,kBAAf,CAAkC,IAAlC,CAAP;EACD;EAED;AACF;AACA;;;EACEC,SAAS,GAAsB;IAC7B,OAAO,KAAKH,SAAL,CAAeI,kBAAf,CAAkC,IAAlC,CAAP;EACD;;EAEmB,OAAbC,aAAa,CAACC,SAAD,EAAuBN,SAAvB,EAA6C;IAC/D,OAAO,IAAIR,kBAAJ,CAAuBc,SAAS,CAACX,EAAjC,EAAqCW,SAAS,CAACV,IAA/C,EAAqDU,SAAS,CAACC,KAA/D,EAAsED,SAAS,CAACR,IAAhF,EAAsFE,SAAtF,CAAP;EACD;;AA3C+C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace-section.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA","sourcesContent":["// export class WorkspaceSection {\n// constructor(\n// readonly route: string\n// ) {}\n\n// toRoute() {\n// return {\n// path: this.toRoute\n// children:\n// };\n// }\n// };\n\n// export interface WorkspaceSection {}\n"]}
1
+ {"version":3,"names":[],"sources":["workspace-section.ts"],"sourcesContent":["// export class WorkspaceSection {\n// constructor(\n// readonly route: string\n// ) {}\n\n// toRoute() {\n// return {\n// path: this.toRoute\n// children:\n// };\n// }\n// };\n\n// export interface WorkspaceSection {}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace.aspect.ts"],"names":["WorkspaceAspect","Aspect","create","id","dependencies","defaultConfig"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,eAAe,GAAGC,kBAAOC,MAAP,CAAc;AAC3CC,EAAAA,EAAE,EAAE,6BADuC;AAE3CC,EAAAA,YAAY,EAAE,EAF6B;AAG3CC,EAAAA,aAAa,EAAE;AAH4B,CAAd,CAAxB;;;eAMQL,e","sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const WorkspaceAspect = Aspect.create({\n id: 'teambit.workspace/workspace',\n dependencies: [],\n defaultConfig: {},\n});\n\nexport default WorkspaceAspect;\n"]}
1
+ {"version":3,"names":["WorkspaceAspect","Aspect","create","id","dependencies","defaultConfig"],"sources":["workspace.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const WorkspaceAspect = Aspect.create({\n id: 'teambit.workspace/workspace',\n dependencies: [],\n defaultConfig: {},\n});\n\nexport default WorkspaceAspect;\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,eAAe,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EAC3CC,EAAE,EAAE,6BADuC;EAE3CC,YAAY,EAAE,EAF6B;EAG3CC,aAAa,EAAE;AAH4B,CAAd,CAAxB;;;eAMQL,e"}
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace.composition.tsx"],"names":["Logo","height","display","justifyContent","width"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;AAAK,EAAA,KAAK,EAAE;AAAEC,IAAAA,MAAM,EAAE,MAAV;AAAkBC,IAAAA,OAAO,EAAE,MAA3B;AAAmCC,IAAAA,cAAc,EAAE;AAAnD;AAAZ,gBACE;AAAK,EAAA,KAAK,EAAE;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAAZ;AAA2B,EAAA,GAAG,EAAC;AAA/B,EADF,CADK","sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/workspace.svg\" />\n </div>\n);\n"]}
1
+ {"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["workspace.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/workspace.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
@@ -381,6 +381,7 @@ export declare class Workspace implements ComponentFactory {
381
381
  * returns the affected components.
382
382
  */
383
383
  setDefaultScopeToComponents(componentIds: ComponentID[], scopeName: string): Promise<ComponentID[]>;
384
+ setDefaultScope(scopeName: string): Promise<void>;
384
385
  addSpecificComponentConfig(id: ComponentID, aspectId: string, config?: Record<string, any>): Promise<void>;
385
386
  removeSpecificComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): Promise<void>;
386
387
  getAspectIdFromConfig(componentId: ComponentID, aspectIdStr: string, ignoreAspectVersion?: boolean): Promise<string | undefined>;
@@ -447,6 +448,10 @@ export declare class Workspace implements ComponentFactory {
447
448
  private _saveManyComponentConfigFiles;
448
449
  private _installModules;
449
450
  link(options?: WorkspaceLinkOptions): Promise<LinkResults>;
451
+ /**
452
+ * @param componentPath can be relative or absolute. supports Linux and Windows
453
+ */
454
+ getComponentIdByPath(componentPath: PathOsBased): Promise<ComponentID | undefined>;
450
455
  /**
451
456
  * Generate a filter to pass to the installer
452
457
  * This will filter deps which are come from remotes which defined in scope.json
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace.graphql.ts"],"names":["workspace","graphql","typeDefs","resolvers","Subscription","componentAdded","subscribe","pubsub","asyncIterator","ComponentAdded","componentChanged","ComponentChanged","componentRemoved","ComponentRemoved","Component","status","wsComponent","getStatus","issuesCount","getIssues","count","issues","toObjectWithDataAsString","Workspace","path","ws","name","icon","components","offset","limit","list","getComponent","id","componentID","resolveComponentId","component","get","error","Query"],"mappings":";;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;eAGe,CAACA,SAAD,EAAuBC,OAAvB,KAAgD;AAC7D,SAAO;AACLC,IAAAA,QAAQ,EAAE,0BAAI;AAClB;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA/ES;AAgFLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,YAAY,EAAE;AACZC,QAAAA,cAAc,EAAE;AACdC,UAAAA,SAAS,EAAE,MAAML,OAAO,CAACM,MAAR,CAAeC,aAAf,CAA6BC,2BAA7B;AADH,SADJ;AAIZC,QAAAA,gBAAgB,EAAE;AAChBJ,UAAAA,SAAS,EAAE,MAAML,OAAO,CAACM,MAAR,CAAeC,aAAf,CAA6BG,6BAA7B;AADD,SAJN;AAOZC,QAAAA,gBAAgB,EAAE;AAChBN,UAAAA,SAAS,EAAE,MAAML,OAAO,CAACM,MAAR,CAAeC,aAAf,CAA6BK,6BAA7B;AADD;AAPN,OADL;AAYTC,MAAAA,SAAS,EAAE;AACTC,QAAAA,MAAM,EAAE,MAAOC,WAAP,IAA2C;AACjD,iBAAOA,WAAW,CAACC,SAAZ,EAAP;AACD,SAHQ;AAITC,QAAAA,WAAW,EAAGF,WAAD,IAA6C;AAAA;;AACxD,iBAAO,0BAAAA,WAAW,CAACG,SAAZ,kFAAyBC,KAAzB,KAAkC,CAAzC;AACD,SANQ;AAOTC,QAAAA,MAAM,EAAGL,WAAD,IAAqC;AAAA;;AAC3C,2CAAOA,WAAW,CAACG,SAAZ,EAAP,2DAAO,uBAAyBG,wBAAzB,EAAP;AACD;AATQ,OAZF;AAuBTC,MAAAA,SAAS,EAAE;AACTC,QAAAA,IAAI,EAAGC,EAAD,IAAQA,EAAE,CAACD,IADR;AAETE,QAAAA,IAAI,EAAGD,EAAD,IAAQA,EAAE,CAACC,IAFR;AAGTC,QAAAA,IAAI,EAAGF,EAAD,IAAQA,EAAE,CAACE,IAHR;AAITC,QAAAA,UAAU,EAAE,OAAOH,EAAP,EAAsB;AAAEI,UAAAA,MAAF;AAAUC,UAAAA;AAAV,SAAtB,KAA+E;AACzF,iBAAOL,EAAE,CAACM,IAAH,CAAQ;AAAEF,YAAAA,MAAF;AAAUC,YAAAA;AAAV,WAAR,CAAP;AACD,SANQ;AAOTE,QAAAA,YAAY,EAAE,OAAOP,EAAP,EAAsB;AAAEQ,UAAAA;AAAF,SAAtB,KAAiD;AAC7D,cAAI;AACF,kBAAMC,WAAW,GAAG,MAAMT,EAAE,CAACU,kBAAH,CAAsBF,EAAtB,CAA1B;AACA,kBAAMG,SAAS,GAAG,MAAMX,EAAE,CAACY,GAAH,CAAOH,WAAP,CAAxB;AACA,mBAAOE,SAAP;AACD,WAJD,CAIE,OAAOE,KAAP,EAAmB;AACnB,mBAAO,IAAP;AACD;AACF;AAfQ,OAvBF;AAwCTC,MAAAA,KAAK,EAAE;AACLvC,QAAAA,SAAS,EAAE,MAAMA;AADZ;AAxCE;AAhFN,GAAP;AA6HD,C","sourcesContent":["import { GraphqlMain } from '@teambit/graphql';\nimport gql from 'graphql-tag';\n\nimport { ComponentAdded, ComponentChanged, ComponentRemoved, Workspace } from './workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport default (workspace: Workspace, graphql: GraphqlMain) => {\n return {\n typeDefs: gql`\n type ModifyInfo {\n # is the component modified.\n hasModifiedFiles: Boolean\n\n # the component has Modified Dependencies\n hasModifiedDependencies: Boolean\n }\n\n type ComponentStatus {\n # component is pending to be tagged automatically.\n modifyInfo: ModifyInfo\n\n # is the new component new.\n isNew: Boolean\n\n # is the component deleted from the workspace.\n isDeleted: Boolean\n\n # is the component staged.\n isStaged: Boolean\n\n # does the component exists in the workspace.\n isInWorkspace: Boolean\n\n # does the component exists in the scope.\n isInScope: Boolean\n\n # does the component is outdated (pending for update).\n isOutdated: Boolean\n }\n\n extend type Component {\n status: ComponentStatus\n }\n\n type Issue {\n type: String!\n description: String!\n solution: String\n data: String\n }\n\n extend type Component {\n # the count of errors in component in workspace\n issuesCount: Int\n issues: [Issue]\n }\n\n type Workspace {\n name: String\n path: String\n icon: String\n components(offset: Int, limit: Int): [Component]\n getComponent(id: String!): Component\n }\n\n type Subscription {\n componentAdded: ComponentAdded\n componentChanged: ComponentChanged\n componentRemoved: ComponentRemoved\n }\n\n type ComponentAdded {\n component: Component\n }\n\n type ComponentChanged {\n component: Component\n }\n\n type ComponentRemoved {\n componentIds: [ComponentID]\n }\n\n type Query {\n workspace: Workspace\n }\n `,\n resolvers: {\n Subscription: {\n componentAdded: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentAdded),\n },\n componentChanged: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentChanged),\n },\n componentRemoved: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentRemoved),\n },\n },\n Component: {\n status: async (wsComponent: WorkspaceComponent) => {\n return wsComponent.getStatus();\n },\n issuesCount: (wsComponent: WorkspaceComponent): number => {\n return wsComponent.getIssues()?.count || 0;\n },\n issues: (wsComponent: WorkspaceComponent) => {\n return wsComponent.getIssues()?.toObjectWithDataAsString();\n },\n },\n Workspace: {\n path: (ws) => ws.path,\n name: (ws) => ws.name,\n icon: (ws) => ws.icon,\n components: async (ws: Workspace, { offset, limit }: { offset: number; limit: number }) => {\n return ws.list({ offset, limit });\n },\n getComponent: async (ws: Workspace, { id }: { id: string }) => {\n try {\n const componentID = await ws.resolveComponentId(id);\n const component = await ws.get(componentID);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n },\n Query: {\n workspace: () => workspace,\n },\n },\n };\n};\n"]}
1
+ {"version":3,"names":["workspace","graphql","typeDefs","gql","resolvers","Subscription","componentAdded","subscribe","pubsub","asyncIterator","ComponentAdded","componentChanged","ComponentChanged","componentRemoved","ComponentRemoved","Component","status","wsComponent","getStatus","issuesCount","getIssues","count","issues","toObjectWithDataAsString","Workspace","path","ws","name","icon","components","offset","limit","list","getComponent","id","componentID","resolveComponentId","component","get","error","Query"],"sources":["workspace.graphql.ts"],"sourcesContent":["import { GraphqlMain } from '@teambit/graphql';\nimport gql from 'graphql-tag';\n\nimport { ComponentAdded, ComponentChanged, ComponentRemoved, Workspace } from './workspace';\nimport { WorkspaceComponent } from './workspace-component';\n\nexport default (workspace: Workspace, graphql: GraphqlMain) => {\n return {\n typeDefs: gql`\n type ModifyInfo {\n # is the component modified.\n hasModifiedFiles: Boolean\n\n # the component has Modified Dependencies\n hasModifiedDependencies: Boolean\n }\n\n type ComponentStatus {\n # component is pending to be tagged automatically.\n modifyInfo: ModifyInfo\n\n # is the new component new.\n isNew: Boolean\n\n # is the component deleted from the workspace.\n isDeleted: Boolean\n\n # is the component staged.\n isStaged: Boolean\n\n # does the component exists in the workspace.\n isInWorkspace: Boolean\n\n # does the component exists in the scope.\n isInScope: Boolean\n\n # does the component is outdated (pending for update).\n isOutdated: Boolean\n }\n\n extend type Component {\n status: ComponentStatus\n }\n\n type Issue {\n type: String!\n description: String!\n solution: String\n data: String\n }\n\n extend type Component {\n # the count of errors in component in workspace\n issuesCount: Int\n issues: [Issue]\n }\n\n type Workspace {\n name: String\n path: String\n icon: String\n components(offset: Int, limit: Int): [Component]\n getComponent(id: String!): Component\n }\n\n type Subscription {\n componentAdded: ComponentAdded\n componentChanged: ComponentChanged\n componentRemoved: ComponentRemoved\n }\n\n type ComponentAdded {\n component: Component\n }\n\n type ComponentChanged {\n component: Component\n }\n\n type ComponentRemoved {\n componentIds: [ComponentID]\n }\n\n type Query {\n workspace: Workspace\n }\n `,\n resolvers: {\n Subscription: {\n componentAdded: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentAdded),\n },\n componentChanged: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentChanged),\n },\n componentRemoved: {\n subscribe: () => graphql.pubsub.asyncIterator(ComponentRemoved),\n },\n },\n Component: {\n status: async (wsComponent: WorkspaceComponent) => {\n return wsComponent.getStatus();\n },\n issuesCount: (wsComponent: WorkspaceComponent): number => {\n return wsComponent.getIssues()?.count || 0;\n },\n issues: (wsComponent: WorkspaceComponent) => {\n return wsComponent.getIssues()?.toObjectWithDataAsString();\n },\n },\n Workspace: {\n path: (ws) => ws.path,\n name: (ws) => ws.name,\n icon: (ws) => ws.icon,\n components: async (ws: Workspace, { offset, limit }: { offset: number; limit: number }) => {\n return ws.list({ offset, limit });\n },\n getComponent: async (ws: Workspace, { id }: { id: string }) => {\n try {\n const componentID = await ws.resolveComponentId(id);\n const component = await ws.get(componentID);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n },\n Query: {\n workspace: () => workspace,\n },\n },\n };\n};\n"],"mappings":";;;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAGe,CAACA,SAAD,EAAuBC,OAAvB,KAAgD;EAC7D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAA,CAAI;AAClB;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA/ES;IAgFLC,SAAS,EAAE;MACTC,YAAY,EAAE;QACZC,cAAc,EAAE;UACdC,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAR,CAAeC,aAAf,CAA6BC,2BAA7B;QADH,CADJ;QAIZC,gBAAgB,EAAE;UAChBJ,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAR,CAAeC,aAAf,CAA6BG,6BAA7B;QADD,CAJN;QAOZC,gBAAgB,EAAE;UAChBN,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAR,CAAeC,aAAf,CAA6BK,6BAA7B;QADD;MAPN,CADL;MAYTC,SAAS,EAAE;QACTC,MAAM,EAAE,MAAOC,WAAP,IAA2C;UACjD,OAAOA,WAAW,CAACC,SAAZ,EAAP;QACD,CAHQ;QAITC,WAAW,EAAGF,WAAD,IAA6C;UAAA;;UACxD,OAAO,0BAAAA,WAAW,CAACG,SAAZ,kFAAyBC,KAAzB,KAAkC,CAAzC;QACD,CANQ;QAOTC,MAAM,EAAGL,WAAD,IAAqC;UAAA;;UAC3C,iCAAOA,WAAW,CAACG,SAAZ,EAAP,2DAAO,uBAAyBG,wBAAzB,EAAP;QACD;MATQ,CAZF;MAuBTC,SAAS,EAAE;QACTC,IAAI,EAAGC,EAAD,IAAQA,EAAE,CAACD,IADR;QAETE,IAAI,EAAGD,EAAD,IAAQA,EAAE,CAACC,IAFR;QAGTC,IAAI,EAAGF,EAAD,IAAQA,EAAE,CAACE,IAHR;QAITC,UAAU,EAAE,OAAOH,EAAP,EAAsB;UAAEI,MAAF;UAAUC;QAAV,CAAtB,KAA+E;UACzF,OAAOL,EAAE,CAACM,IAAH,CAAQ;YAAEF,MAAF;YAAUC;UAAV,CAAR,CAAP;QACD,CANQ;QAOTE,YAAY,EAAE,OAAOP,EAAP,EAAsB;UAAEQ;QAAF,CAAtB,KAAiD;UAC7D,IAAI;YACF,MAAMC,WAAW,GAAG,MAAMT,EAAE,CAACU,kBAAH,CAAsBF,EAAtB,CAA1B;YACA,MAAMG,SAAS,GAAG,MAAMX,EAAE,CAACY,GAAH,CAAOH,WAAP,CAAxB;YACA,OAAOE,SAAP;UACD,CAJD,CAIE,OAAOE,KAAP,EAAmB;YACnB,OAAO,IAAP;UACD;QACF;MAfQ,CAvBF;MAwCTC,KAAK,EAAE;QACLxC,SAAS,EAAE,MAAMA;MADZ;IAxCE;EAhFN,CAAP;AA6HD,C"}
package/dist/workspace.js CHANGED
@@ -331,6 +331,16 @@ function _componentIdToPackageName() {
331
331
  return data;
332
332
  }
333
333
 
334
+ function _path() {
335
+ const data = require("@teambit/legacy/dist/utils/path");
336
+
337
+ _path = function () {
338
+ return data;
339
+ };
340
+
341
+ return data;
342
+ }
343
+
334
344
  function _fsExtra() {
335
345
  const data = _interopRequireDefault(require("fs-extra"));
336
346
 
@@ -351,10 +361,10 @@ function _lodash() {
351
361
  return data;
352
362
  }
353
363
 
354
- function _path() {
364
+ function _path2() {
355
365
  const data = _interopRequireDefault(require("path"));
356
366
 
357
- _path = function () {
367
+ _path2 = function () {
358
368
  return data;
359
369
  };
360
370
 
@@ -501,6 +511,16 @@ function _bitMap() {
501
511
  return data;
502
512
  }
503
513
 
514
+ function _workspace() {
515
+ const data = require("./workspace.aspect");
516
+
517
+ _workspace = function () {
518
+ return data;
519
+ };
520
+
521
+ return data;
522
+ }
523
+
504
524
  /* eslint-disable max-lines */
505
525
  const AspectSpecificField = '__specific';
506
526
  exports.AspectSpecificField = AspectSpecificField;
@@ -617,7 +637,7 @@ class Workspace {
617
637
 
618
638
 
619
639
  get modulesPath() {
620
- return _path().default.join(this.path, 'node_modules');
640
+ return _path2().default.join(this.path, 'node_modules');
621
641
  }
622
642
 
623
643
  get isLegacy() {
@@ -1288,7 +1308,7 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1288
1308
 
1289
1309
  async write(component, rootPath) {
1290
1310
  await Promise.all(component.filesystem.files.map(async file => {
1291
- const pathToWrite = rootPath ? _path().default.join(this.path, rootPath, file.relative) : file.path;
1311
+ const pathToWrite = rootPath ? _path2().default.join(this.path, rootPath, file.relative) : file.path;
1292
1312
  await _fsExtra().default.outputFile(pathToWrite, file.contents);
1293
1313
  }));
1294
1314
  }
@@ -1317,7 +1337,7 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1317
1337
  }) {
1318
1338
  const packageName = (0, _componentIdToPackageName().default)(component.state._consumer);
1319
1339
 
1320
- const packageDir = _path().default.join('node_modules', packageName);
1340
+ const packageDir = _path2().default.join('node_modules', packageName);
1321
1341
 
1322
1342
  return options.relative ? packageDir : this.consumer.toAbsolutePath(packageDir);
1323
1343
  }
@@ -1336,11 +1356,11 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1336
1356
  return relativeComponentDir;
1337
1357
  }
1338
1358
 
1339
- return _path().default.join(this.path, relativeComponentDir);
1359
+ return _path2().default.join(this.path, relativeComponentDir);
1340
1360
  }
1341
1361
 
1342
1362
  componentDirToAbsolute(relativeComponentDir) {
1343
- return _path().default.join(this.path, relativeComponentDir);
1363
+ return _path2().default.join(this.path, relativeComponentDir);
1344
1364
  }
1345
1365
 
1346
1366
  async componentDefaultScope(componentId) {
@@ -1611,6 +1631,25 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1611
1631
  return newComponentIds;
1612
1632
  }
1613
1633
 
1634
+ async setDefaultScope(scopeName) {
1635
+ var _config$workspaceConf, _config$workspaceConf2;
1636
+
1637
+ if (this.defaultScope === scopeName) {
1638
+ throw new Error(`the default-scope is already set as "${scopeName}", nothing to change`);
1639
+ }
1640
+
1641
+ const config = this.harmony.get('teambit.harmony/config');
1642
+ (_config$workspaceConf = config.workspaceConfig) === null || _config$workspaceConf === void 0 ? void 0 : _config$workspaceConf.setExtension(_workspace().WorkspaceAspect.id, {
1643
+ defaultScope: scopeName
1644
+ }, {
1645
+ mergeIntoExisting: true,
1646
+ ignoreVersion: true
1647
+ });
1648
+ await ((_config$workspaceConf2 = config.workspaceConfig) === null || _config$workspaceConf2 === void 0 ? void 0 : _config$workspaceConf2.write({
1649
+ dir: _path2().default.dirname(config.workspaceConfig.path)
1650
+ }));
1651
+ }
1652
+
1614
1653
  async addSpecificComponentConfig(id, aspectId, config = {}) {
1615
1654
  const componentConfigFile = await this.componentConfigFile(id);
1616
1655
 
@@ -1967,7 +2006,7 @@ needed-for: ${(neededFor === null || neededFor === void 0 ? void 0 : neededFor.t
1967
2006
  id) {
1968
2007
  const PREFIX = 'bit';
1969
2008
 
1970
- const cacheDir = _path().default.join(this.modulesPath, '.cache', PREFIX, id); // maybe should also check it's a folder and has write permissions
2009
+ const cacheDir = _path2().default.join(this.modulesPath, '.cache', PREFIX, id); // maybe should also check it's a folder and has write permissions
1971
2010
 
1972
2011
 
1973
2012
  if (!_fsExtra().default.existsSync(cacheDir)) {
@@ -2254,6 +2293,22 @@ needed-for: ${(neededFor === null || neededFor === void 0 ? void 0 : neededFor.t
2254
2293
  const res = await linker.link(this.path, mergedRootPolicy, compDirMap, options);
2255
2294
  return res;
2256
2295
  }
2296
+ /**
2297
+ * @param componentPath can be relative or absolute. supports Linux and Windows
2298
+ */
2299
+
2300
+
2301
+ async getComponentIdByPath(componentPath) {
2302
+ const relativePath = _path2().default.isAbsolute(componentPath) ? _path2().default.relative(this.path, componentPath) : componentPath;
2303
+ const linuxPath = (0, _path().pathNormalizeToLinux)(relativePath);
2304
+ const bitId = this.consumer.bitMap.getComponentIdByPath(linuxPath);
2305
+
2306
+ if (bitId) {
2307
+ return this.resolveComponentId(bitId);
2308
+ }
2309
+
2310
+ return undefined;
2311
+ }
2257
2312
  /**
2258
2313
  * Generate a filter to pass to the installer
2259
2314
  * This will filter deps which are come from remotes which defined in scope.json
@@ -2307,10 +2362,10 @@ needed-for: ${(neededFor === null || neededFor === void 0 ? void 0 : neededFor.t
2307
2362
  return await this.importAndGetMany(componentIds);
2308
2363
  } catch (err) {
2309
2364
  if (err instanceof _exceptions2().ComponentNotFound) {
2310
- var _config$workspaceConf;
2365
+ var _config$workspaceConf3;
2311
2366
 
2312
2367
  const config = this.harmony.get('teambit.harmony/config');
2313
- const configStr = JSON.stringify(((_config$workspaceConf = config.workspaceConfig) === null || _config$workspaceConf === void 0 ? void 0 : _config$workspaceConf.raw) || {});
2368
+ const configStr = JSON.stringify(((_config$workspaceConf3 = config.workspaceConfig) === null || _config$workspaceConf3 === void 0 ? void 0 : _config$workspaceConf3.raw) || {});
2314
2369
 
2315
2370
  if (configStr.includes(err.id)) {
2316
2371
  throw new (_bitError().BitError)(`error: a component "${err.id}" was not found
@@ -2364,7 +2419,7 @@ your workspace.jsonc has this component-id set. you might want to remove/change
2364
2419
 
2365
2420
  getComponentPackagePath(component) {
2366
2421
  const packageName = (0, _componentIdToPackageName().default)(component instanceof _component2().default ? component : component.state._consumer);
2367
- return _path().default.join(this.modulesPath, packageName);
2422
+ return _path2().default.join(this.modulesPath, packageName);
2368
2423
  } // TODO: should we return here the dir as it defined (aka components) or with /{name} prefix (as it used in legacy)
2369
2424
 
2370
2425