@teambit/workspace 0.0.1114 → 0.0.1116

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 (66) hide show
  1. package/.bit-capsule-ready +0 -0
  2. package/dist/aspects-merger.js +1 -2
  3. package/dist/aspects-merger.js.map +1 -1
  4. package/dist/bit-map.js.map +1 -1
  5. package/dist/build-graph-from-fs.js.map +1 -1
  6. package/dist/build-graph-ids-from-fs.js.map +1 -1
  7. package/dist/capsule.cmd.js +1 -1
  8. package/dist/capsule.cmd.js.map +1 -1
  9. package/dist/component-config-file/component-config-file.js.map +1 -1
  10. package/dist/component-config-file/exceptions/already-exists.js.map +1 -1
  11. package/dist/component-config-file/exceptions/index.js.map +1 -1
  12. package/dist/component-config-file/index.js.map +1 -1
  13. package/dist/component-tree.widget.js.map +1 -1
  14. package/dist/constants.js.map +1 -1
  15. package/dist/eject-conf.cmd.js +2 -0
  16. package/dist/eject-conf.cmd.js.map +1 -1
  17. package/dist/envs-subcommands/envs-replace.cmd.js.map +1 -1
  18. package/dist/envs-subcommands/envs-set.cmd.js.map +1 -1
  19. package/dist/envs-subcommands/envs-unset.cmd.js.map +1 -1
  20. package/dist/envs-subcommands/envs-update.cmd.js.map +1 -1
  21. package/dist/events/index.js.map +1 -1
  22. package/dist/events/on-component-add-event.js.map +1 -1
  23. package/dist/events/on-component-change-event.js.map +1 -1
  24. package/dist/events/on-component-removed-event.js.map +1 -1
  25. package/dist/exceptions/incorrect-env-aspect.js.map +1 -1
  26. package/dist/exceptions/merge-config-conflict.js.map +1 -1
  27. package/dist/exceptions/outside-workspace.js.map +1 -1
  28. package/dist/index.js +2 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/list.cmd.js.map +1 -1
  31. package/dist/merge-conflict-file.js.map +1 -1
  32. package/dist/pattern.cmd.js.map +1 -1
  33. package/dist/{preview-1690168610397.js → preview-1690296596827.js} +2 -2
  34. package/dist/scope-subcommands/scope-set.cmd.js.map +1 -1
  35. package/dist/ui/index.js.map +1 -1
  36. package/dist/ui/workspace/default-component.js.map +1 -1
  37. package/dist/ui/workspace/index.js.map +1 -1
  38. package/dist/ui/workspace/use-workspace.js.map +1 -1
  39. package/dist/ui/workspace/workspace-context.js.map +1 -1
  40. package/dist/ui/workspace/workspace-model.js.map +1 -1
  41. package/dist/ui/workspace/workspace-overview/index.js.map +1 -1
  42. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  43. package/dist/ui/workspace/workspace-provider.js.map +1 -1
  44. package/dist/ui/workspace/workspace.js.map +1 -1
  45. package/dist/use.cmd.js.map +1 -1
  46. package/dist/workspace-aspects-loader.js.map +1 -1
  47. package/dist/workspace-component/comp-files.js.map +1 -1
  48. package/dist/workspace-component/component-status.js.map +1 -1
  49. package/dist/workspace-component/index.js.map +1 -1
  50. package/dist/workspace-component/workspace-component-loader.js.map +1 -1
  51. package/dist/workspace-component/workspace-component.js.map +1 -1
  52. package/dist/workspace.aspect.js.map +1 -1
  53. package/dist/workspace.composition.js.map +1 -1
  54. package/dist/workspace.d.ts +2 -1
  55. package/dist/workspace.graphql.js.map +1 -1
  56. package/dist/workspace.js +15 -12
  57. package/dist/workspace.js.map +1 -1
  58. package/dist/workspace.main.runtime.js.map +1 -1
  59. package/dist/workspace.provider.js.map +1 -1
  60. package/dist/workspace.ui-root.js.map +1 -1
  61. package/dist/workspace.ui.drawer.js.map +1 -1
  62. package/dist/workspace.ui.runtime.js +3 -0
  63. package/dist/workspace.ui.runtime.js.map +1 -1
  64. package/package-tar/teambit-workspace-0.0.1116.tgz +0 -0
  65. package/package.json +36 -36
  66. package/package-tar/teambit-workspace-0.0.1114.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","loadOpts","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","undefined","catch","err","isComponentNotExistsError","push","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLaneIncludeRemoved","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","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","some","MergeConfigConflict","MergeConfigHasConflict","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","updatedComp","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","originatedFromHarmony","removedComponents","loadComponents","BitIds","fromArray","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","_consumer","removed","envsData","calcDescriptor","policy","mergeVariantPolicies","config","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","Promise","all","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","aspects","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","updatedAspectList","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"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, fromPairs, 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 { BitIds } from '@teambit/legacy/dist/bit-id';\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 { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\nimport { MergeConfigConflict } from '../exceptions/merge-config-conflict';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\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 }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions): 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, undefined, undefined, undefined, loadOpts).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id, loadOpts));\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, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, loadOpts);\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 }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\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, errors } = await this.workspace.componentExtensions(id, componentFromScope);\n if (errors?.some((err) => err instanceof MergeConfigConflict)) {\n consumerComponent.issues.getOrCreate(IssuesClasses.MergeConfigHasConflict).data = true;\n }\n\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 const updatedComp = await this.executeLoadSlot(workspaceComponent, loadOpts);\n return updatedComp;\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n this.componentsCache.set(cacheKey, component);\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, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n async getConsumerComponent(\n id: ComponentID,\n loadOpts: ComponentLoadOptions = {}\n ): Promise<ConsumerComponent | undefined> {\n loadOpts.originatedFromHarmony = true;\n try {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(\n BitIds.fromArray([id._legacy]),\n true,\n loadOpts\n );\n return components?.[0] || removedComponents?.[0];\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, loadOpts?: ComponentLoadOptions) {\n if (component.state._consumer.removed) {\n // if it was soft-removed now, the component is not in the FS. loading aspects such as composition ends up with\n // errors as they try to read component files from the filesystem.\n return component;\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.envs.calcDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id._legacy,\n component.state._consumer.files\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = aspectListWithEnvsAndDeps;\n\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\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 if (!data) return;\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension) {\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\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_component","data","require","_extensionData","_pMapSeries","_interopRequireDefault","_lodash","_component2","_exceptions","_utils","_componentIssues","_bitId","_exceptions2","_dependencyResolver","_envs","_config","_inMemoryCache","_cacheFactory","_componentNotFoundInPath","_workspaceComponent","_mergeConfigConflict","WorkspaceComponentLoader","constructor","workspace","logger","dependencyResolver","envs","_defineProperty2","default","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","getMany","ids","loadOpts","idsWithoutEmpty","compact","errors","longProcessLogger","createLongProcessLogger","length","componentsP","mapSeries","id","logProgress","toString","get","undefined","catch","err","isComponentNotExistsError","push","components","forEach","console","warn","filteredComponents","end","getInvalid","consumer","loadComponent","_legacy","ConsumerComponent","isComponentInvalidByErrorType","componentId","legacyComponent","useCache","storeInCache","bitIdWithVersion","getLatestVersionNumber","bitmapIdsFromCurrentLaneIncludeRemoved","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","clearCache","deleteAll","clearComponentCache","idStr","cacheKey","keys","startsWith","delete","componentFromScope","MissingBitMapComponent","extensions","componentExtensions","some","MergeConfigConflict","MergeConfigHasConflict","extensionsFromConsumerComponent","ExtensionDataList","extensionDataList","mergeConfigs","filterRemovedExtensions","State","Config","mainFile","createAspectList","ComponentFS","fromVinyls","files","dependencies","workspaceComponent","WorkspaceComponent","head","tags","updatedComp","executeLoadSlot","newComponentFromState","createComponentCacheKey","set","isEqual","originatedFromHarmony","removedComponents","loadComponents","BitIds","fromArray","debug","name","message","ComponentNotFound","ComponentNotFoundInPath","_consumer","removed","envsData","calcDescriptor","policy","mergeVariantPolicies","config","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","Promise","all","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","aspects","entries","onComponentLoadSlot","toArray","promises","extension","onLoad","updatedAspectList","TagMap","existingExtension","findExtension","Object","assign","getDataEntry","ExtensionDataEntry","exports","JSON","stringify","sortKeys","obj","fromPairs","sort","k1","k2","localeCompare"],"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, fromPairs, 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 { BitIds } from '@teambit/legacy/dist/bit-id';\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 { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { Workspace } from '../workspace';\nimport { WorkspaceComponent } from './workspace-component';\nimport { MergeConfigConflict } from '../exceptions/merge-config-conflict';\n\nexport class WorkspaceComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\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 }\n\n async getMany(ids: Array<ComponentID>, loadOpts?: ComponentLoadOptions): 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, undefined, undefined, undefined, loadOpts).catch((err) => {\n if (this.isComponentNotExistsError(err)) {\n errors.push({\n id,\n err,\n });\n return undefined;\n }\n throw err;\n });\n });\n const components = await componentsP;\n errors.forEach((err) => {\n this.logger.console(`failed loading component ${err.id.toString()}, see full error in debug.log file`);\n this.logger.warn(`failed loading component ${err.id.toString()}`, err.err);\n });\n // remove errored components\n const filteredComponents: Component[] = compact(components);\n longProcessLogger.end();\n return filteredComponents;\n }\n\n async getInvalid(ids: Array<ComponentID>): Promise<InvalidComponent[]> {\n const idsWithoutEmpty = compact(ids);\n const errors: InvalidComponent[] = [];\n const longProcessLogger = this.logger.createLongProcessLogger('loading components', ids.length);\n await mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n longProcessLogger.logProgress(id.toString());\n try {\n await this.workspace.consumer.loadComponent(id._legacy);\n } catch (err: any) {\n if (ConsumerComponent.isComponentInvalidByErrorType(err)) {\n errors.push({\n id,\n err,\n });\n return;\n }\n throw err;\n }\n });\n return errors;\n }\n\n async get(\n componentId: ComponentID,\n legacyComponent?: ConsumerComponent,\n useCache = true,\n storeInCache = true,\n loadOpts?: ComponentLoadOptions\n ): Promise<Component> {\n const bitIdWithVersion: BitId = getLatestVersionNumber(\n this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved,\n componentId._legacy\n );\n const id = bitIdWithVersion.version ? componentId.changeVersion(bitIdWithVersion.version) : componentId;\n const fromCache = this.getFromCache(id, loadOpts);\n if (fromCache && useCache) {\n return fromCache;\n }\n const consumerComponent = legacyComponent || (await this.getConsumerComponent(id, loadOpts));\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, loadOpts);\n if (storeInCache) {\n this.addMultipleEnvsIssueIfNeeded(component); // it's in storeInCache block, otherwise, it wasn't fully loaded\n this.saveInCache(component, loadOpts);\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 }\n clearComponentCache(id: ComponentID) {\n const idStr = id.toString();\n for (const cacheKey of this.componentsCache.keys()) {\n if (cacheKey === idStr || cacheKey.startsWith(`${idStr}:`)) {\n this.componentsCache.delete(cacheKey);\n }\n }\n }\n\n private async loadOne(id: ComponentID, consumerComponent?: ConsumerComponent, loadOpts?: ComponentLoadOptions) {\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, errors } = await this.workspace.componentExtensions(id, componentFromScope);\n if (errors?.some((err) => err instanceof MergeConfigConflict)) {\n consumerComponent.issues.getOrCreate(IssuesClasses.MergeConfigHasConflict).data = true;\n }\n\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 const updatedComp = await this.executeLoadSlot(workspaceComponent, loadOpts);\n return updatedComp;\n }\n return this.executeLoadSlot(this.newComponentFromState(id, state), loadOpts);\n }\n\n private saveInCache(component: Component, loadOpts?: ComponentLoadOptions): void {\n const cacheKey = createComponentCacheKey(component.id, loadOpts);\n this.componentsCache.set(cacheKey, component);\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, loadOpts?: ComponentLoadOptions): Component | undefined {\n const cacheKey = createComponentCacheKey(id, loadOpts);\n const fromCache = this.componentsCache.get(cacheKey);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n async getConsumerComponent(\n id: ComponentID,\n loadOpts: ComponentLoadOptions = {}\n ): Promise<ConsumerComponent | undefined> {\n loadOpts.originatedFromHarmony = true;\n try {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(\n BitIds.fromArray([id._legacy]),\n true,\n loadOpts\n );\n return components?.[0] || removedComponents?.[0];\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, loadOpts?: ComponentLoadOptions) {\n if (component.state._consumer.removed) {\n // if it was soft-removed now, the component is not in the FS. loading aspects such as composition ends up with\n // errors as they try to read component files from the filesystem.\n return component;\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.envs.calcDescriptor(component);\n\n // Move to deps resolver main runtime once we switch ws<> deps resolver direction\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id._legacy,\n component.state._consumer.files\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.workspace.createAspectList(component.state.config.extensions);\n component.state.aspects = aspectListWithEnvsAndDeps;\n\n const entries = this.workspace.onComponentLoadSlot.toArray();\n const promises = entries.map(async ([extension, onLoad]) => {\n const data = await onLoad(component, loadOpts);\n return this.upsertExtensionData(component, extension, data);\n });\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 if (!data) return;\n const existingExtension = component.state.config.extensions.findExtension(extension);\n if (existingExtension) {\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\nfunction createComponentCacheKey(id: ComponentID, loadOpts?: ComponentLoadOptions): string {\n return `${id.toString()}:${JSON.stringify(sortKeys(loadOpts ?? {}))}`;\n}\n\nfunction sortKeys(obj: Object) {\n return fromPairs(Object.entries(obj).sort(([k1], [k2]) => k1.localeCompare(k2)));\n}\n"],"mappings":"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"}
@@ -1 +1 @@
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,kBAAkB,SAASC,sBAAS,CAAC;EAChDC,WAAW;EACT;AACJ;AACA;EACaC,EAAe;EAExB;AACJ;AACA;EACaC,IAAiB,GAAG,IAAI;EAEjC;AACJ;AACA;EACIC,cAAqB;EAErB;AACJ;AACA;EACaC,IAAY,GAAG,KAAIC,mBAAM,GAAE;EAEpC;AACJ;AACA;EACaC,SAAoB,EAC7B;IACA,KAAK,CAACL,EAAE,EAAEC,IAAI,EAAEC,cAAc,EAAEC,IAAI,EAAEE,SAAS,CAAC;IAAC,KAtBxCL,EAAe,GAAfA,EAAe;IAAA,KAKfC,IAAiB,GAAjBA,IAAiB;IAAA,KAUjBE,IAAY,GAAZA,IAAY;IAAA,KAKZE,SAAoB,GAApBA,SAAoB;EAG/B;EAEA,MAAMC,SAAS,GAA6B;IAC1C,OAAO,IAAI,CAACD,SAAS,CAACE,kBAAkB,CAAC,IAAI,CAAC;EAChD;;EAEA;AACF;AACA;EACEC,SAAS,GAAsB;IAC7B,OAAO,IAAI,CAACH,SAAS,CAACI,kBAAkB,CAAC,IAAI,CAAC;EAChD;EAEA,OAAOC,aAAa,CAACC,SAAoB,EAAEN,SAAoB,EAAE;IAC/D,OAAO,IAAIR,kBAAkB,CAACc,SAAS,CAACX,EAAE,EAAEW,SAAS,CAACV,IAAI,EAAEU,SAAS,CAACC,KAAK,EAAED,SAAS,CAACR,IAAI,EAAEE,SAAS,CAAC;EACzG;AACF;AAAC"}
1
+ {"version":3,"names":["_component","data","require","WorkspaceComponent","Component","constructor","id","head","workspaceState","tags","TagMap","workspace","getStatus","getComponentStatus","getIssues","getComponentIssues","fromComponent","component","state","exports"],"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,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA;AACO,MAAME,kBAAkB,SAASC,sBAAS,CAAC;EAChDC,WAAWA;EACT;AACJ;AACA;EACaC,EAAe;EAExB;AACJ;AACA;EACaC,IAAiB,GAAG,IAAI;EAEjC;AACJ;AACA;EACIC,cAAqB;EAErB;AACJ;AACA;EACaC,IAAY,GAAG,KAAIC,mBAAM,EAAC,CAAC;EAEpC;AACJ;AACA;EACaC,SAAoB,EAC7B;IACA,KAAK,CAACL,EAAE,EAAEC,IAAI,EAAEC,cAAc,EAAEC,IAAI,EAAEE,SAAS,CAAC;IAAC,KAtBxCL,EAAe,GAAfA,EAAe;IAAA,KAKfC,IAAiB,GAAjBA,IAAiB;IAAA,KAUjBE,IAAY,GAAZA,IAAY;IAAA,KAKZE,SAAoB,GAApBA,SAAoB;EAG/B;EAEA,MAAMC,SAASA,CAAA,EAA6B;IAC1C,OAAO,IAAI,CAACD,SAAS,CAACE,kBAAkB,CAAC,IAAI,CAAC;EAChD;;EAEA;AACF;AACA;EACEC,SAASA,CAAA,EAAsB;IAC7B,OAAO,IAAI,CAACH,SAAS,CAACI,kBAAkB,CAAC,IAAI,CAAC;EAChD;EAEA,OAAOC,aAAaA,CAACC,SAAoB,EAAEN,SAAoB,EAAE;IAC/D,OAAO,IAAIR,kBAAkB,CAACc,SAAS,CAACX,EAAE,EAAEW,SAAS,CAACV,IAAI,EAAEU,SAAS,CAACC,KAAK,EAAED,SAAS,CAACR,IAAI,EAAEE,SAAS,CAAC;EACzG;AACF;AAACQ,OAAA,CAAAhB,kBAAA,GAAAA,kBAAA"}
@@ -1 +1 @@
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,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE,6BAA6B;EACjCC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAAC;AAAA,eAEYL,eAAe;AAAA"}
1
+ {"version":3,"names":["_harmony","data","require","WorkspaceAspect","Aspect","create","id","dependencies","defaultConfig","exports","_default","default"],"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,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,eAAe,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE,6BAA6B;EACjCC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAACC,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAAA,IAAAO,QAAA,GAEYP,eAAe;AAAAM,OAAA,CAAAE,OAAA,GAAAD,QAAA"}
@@ -1 +1 @@
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,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAG,CAAE;EAAC,GAAG,EAAC;AAAuD,EAAG,CAE5F;AAAC"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","Logo","default","createElement","style","height","display","justifyContent","width","src","exports"],"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,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,IAAI,GAAGA,CAAA,kBAClBJ,MAAA,GAAAK,OAAA,CAAAC,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEV,MAAA,GAAAK,OAAA,CAAAC,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAAuD,CAAE,CACrF,CACN;AAACC,OAAA,CAAAT,IAAA,GAAAA,IAAA"}
@@ -250,9 +250,10 @@ export declare class Workspace implements ComponentFactory {
250
250
  */
251
251
  get(componentId: ComponentID, legacyComponent?: ConsumerComponent, useCache?: boolean, storeInCache?: boolean, loadOpts?: ComponentLoadOptions): Promise<Component>;
252
252
  getConfiguredUserAspectsPackages(options: GetConfiguredUserAspectsPackagesOptions): Promise<AspectPackage[]>;
253
- clearCache(options?: ClearCacheOptions): void;
253
+ clearCache(options?: ClearCacheOptions): Promise<void>;
254
254
  clearAllComponentsCache(): void;
255
255
  clearComponentCache(id: ComponentID): void;
256
+ warmCache(): Promise<void>;
256
257
  triggerOnComponentChange(id: ComponentID, files: PathOsBasedAbsolute[], removedFiles: PathOsBasedAbsolute[], initiator?: CompilationInitiator): Promise<OnComponentEventResult[]>;
257
258
  triggerOnComponentAdd(id: ComponentID): Promise<OnComponentEventResult[]>;
258
259
  triggerOnComponentRemove(id: ComponentID): Promise<OnComponentEventResult[]>;
@@ -1 +1 @@
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;AAA4F,eAG7E,CAACA,SAAoB,EAAEC,OAAoB,KAAK;EAC7D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;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,KAAK;IACDC,SAAS,EAAE;MACTC,YAAY,EAAE;QACZC,cAAc,EAAE;UACdC,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAM,CAACC,aAAa,CAACC,2BAAc;QAC9D,CAAC;QACDC,gBAAgB,EAAE;UAChBJ,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAM,CAACC,aAAa,CAACG,6BAAgB;QAChE,CAAC;QACDC,gBAAgB,EAAE;UAChBN,SAAS,EAAE,MAAMN,OAAO,CAACO,MAAM,CAACC,aAAa,CAACK,6BAAgB;QAChE;MACF,CAAC;MACDC,SAAS,EAAE;QACTC,MAAM,EAAE,MAAOC,WAA+B,IAAK;UACjD,OAAOA,WAAW,CAACC,SAAS,EAAE;QAChC,CAAC;QACDC,WAAW,EAAGF,WAA+B,IAAa;UAAA;UACxD,OAAO,0BAAAA,WAAW,CAACG,SAAS,EAAE,0DAAvB,sBAAyBC,KAAK,KAAI,CAAC;QAC5C,CAAC;QACDC,MAAM,EAAGL,WAA+B,IAAK;UAAA;UAC3C,iCAAOA,WAAW,CAACG,SAAS,EAAE,2DAAvB,uBAAyBG,wBAAwB,EAAE;QAC5D;MACF,CAAC;MACDC,SAAS,EAAE;QACTC,IAAI,EAAGC,EAAE,IAAKA,EAAE,CAACD,IAAI;QACrBE,IAAI,EAAGD,EAAE,IAAKA,EAAE,CAACC,IAAI;QACrBC,IAAI,EAAGF,EAAE,IAAKA,EAAE,CAACE,IAAI;QACrBC,UAAU,EAAE,OAAOH,EAAa,EAAE;UAAEI,MAAM;UAAEC;QAAyC,CAAC,KAAK;UACzF,OAAOL,EAAE,CAACM,IAAI,CAAC;YAAEF,MAAM;YAAEC;UAAM,CAAC,CAAC;QACnC,CAAC;QACDE,YAAY,EAAE,OAAOP,EAAa,EAAE;UAAEQ;QAAmB,CAAC,KAAK;UAC7D,IAAI;YACF,MAAMC,WAAW,GAAG,MAAMT,EAAE,CAACU,kBAAkB,CAACF,EAAE,CAAC;YACnD,MAAMG,SAAS,GAAG,MAAMX,EAAE,CAACY,GAAG,CAACH,WAAW,CAAC;YAC3C,OAAOE,SAAS;UAClB,CAAC,CAAC,OAAOE,KAAU,EAAE;YACnB,OAAO,IAAI;UACb;QACF;MACF,CAAC;MACDC,KAAK,EAAE;QACLxC,SAAS,EAAE,MAAMA;MACnB;IACF;EACF,CAAC;AACH,CAAC;AAAA"}
1
+ {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","_workspace","_default","workspace","graphql","typeDefs","gql","resolvers","Subscription","componentAdded","subscribe","pubsub","asyncIterator","ComponentAdded","componentChanged","ComponentChanged","componentRemoved","ComponentRemoved","Component","status","wsComponent","getStatus","issuesCount","_wsComponent$getIssue","getIssues","count","issues","_wsComponent$getIssue2","toObjectWithDataAsString","Workspace","path","ws","name","icon","components","offset","limit","list","getComponent","id","componentID","resolveComponentId","component","get","error","Query","exports","default"],"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":"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"}
package/dist/workspace.js CHANGED
@@ -312,7 +312,7 @@ function _compFiles() {
312
312
  return data;
313
313
  }
314
314
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
315
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
315
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /* eslint-disable max-lines */
316
316
  const AspectSpecificField = '__specific';
317
317
  exports.AspectSpecificField = AspectSpecificField;
318
318
  const ComponentAdded = 'componentAdded';
@@ -327,13 +327,6 @@ const DEFAULT_VENDOR_DIR = 'vendor';
327
327
  * API of the Bit Workspace
328
328
  */
329
329
  class Workspace {
330
- /**
331
- * Indicate that we are now running installaion process
332
- * This is important to know to ignore missing modules across different places
333
- */
334
-
335
- // cache loaded components
336
-
337
330
  constructor(
338
331
  /**
339
332
  * private pubsub.
@@ -394,9 +387,14 @@ class Workspace {
394
387
  (0, _defineProperty2().default)(this, "componentsScopeDirsMap", void 0);
395
388
  (0, _defineProperty2().default)(this, "componentLoader", void 0);
396
389
  (0, _defineProperty2().default)(this, "bitMap", void 0);
390
+ /**
391
+ * Indicate that we are now running installaion process
392
+ * This is important to know to ignore missing modules across different places
393
+ */
397
394
  (0, _defineProperty2().default)(this, "inInstallContext", false);
398
395
  (0, _defineProperty2().default)(this, "_cachedListIds", void 0);
399
396
  (0, _defineProperty2().default)(this, "componentLoadedSelfAsAspects", void 0);
397
+ // cache loaded components
400
398
  (0, _defineProperty2().default)(this, "aspectsMerger", void 0);
401
399
  (0, _defineProperty2().default)(this, "componentDefaultScopeFromComponentDirAndNameWithoutConfigFileMemoized", void 0);
402
400
  (0, _defineProperty2().default)(this, "localAspects", []);
@@ -725,7 +723,9 @@ it's possible that the version ${component.id.version} belong to ${idStr.split('
725
723
  }
726
724
  }
727
725
  async getFilesModification(id) {
728
- const bitMapEntry = this.bitMap.getBitmapEntry(id);
726
+ const bitMapEntry = this.bitMap.getBitmapEntry(id, {
727
+ ignoreVersion: true
728
+ });
729
729
  const compDir = bitMapEntry.getComponentDir();
730
730
  const compDirAbs = _path2().default.join(this.path, compDir);
731
731
  const sourceFilesVinyls = bitMapEntry.files.map(file => {
@@ -787,13 +787,13 @@ it's possible that the version ${component.id.version} belong to ${idStr.split('
787
787
  const workspaceAspectsLoader = this.getWorkspaceAspectsLoader();
788
788
  return workspaceAspectsLoader.getConfiguredUserAspectsPackages(options);
789
789
  }
790
- clearCache(options = {}) {
790
+ async clearCache(options = {}) {
791
791
  this.aspectLoader.resetFailedLoadAspects();
792
792
  if (!options.skipClearFailedToLoadEnvs) this.envs.resetFailedToLoadEnvs();
793
793
  this.logger.debug('clearing the workspace and scope caches');
794
794
  delete this._cachedListIds;
795
795
  this.componentLoader.clearCache();
796
- this.scope.clearCache();
796
+ await this.scope.clearCache();
797
797
  this.componentList = new (_componentsList().default)(this.consumer);
798
798
  this.componentDefaultScopeFromComponentDirAndNameWithoutConfigFileMemoized.clear();
799
799
  }
@@ -807,6 +807,9 @@ it's possible that the version ${component.id.version} belong to ${idStr.split('
807
807
  this.consumer.componentLoader.clearOneComponentCache(id._legacy);
808
808
  this.componentList = new (_componentsList().default)(this.consumer);
809
809
  }
810
+ async warmCache() {
811
+ await this.list();
812
+ }
810
813
  async triggerOnComponentChange(id, files, removedFiles, initiator) {
811
814
  const component = await this.get(id);
812
815
  const onChangeEntries = this.onComponentChangeSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onComponentChange] ] ]
@@ -1475,7 +1478,7 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1475
1478
  async _reloadConsumer() {
1476
1479
  this.consumer = await (0, _consumer().loadConsumer)(this.path, true);
1477
1480
  this.bitMap = new (_bitMap().BitMap)(this.consumer.bitMap, this.consumer);
1478
- this.clearCache();
1481
+ await this.clearCache();
1479
1482
  }
1480
1483
  getComponentPackagePath(component) {
1481
1484
  const relativePath = this.dependencyResolver.getRuntimeModulePath(component);