@teambit/scope 0.0.1077 → 0.0.1079

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.1077/dist/scope.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.1077/dist/scope.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.1079/dist/scope.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.1079/dist/scope.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,3 +1,4 @@
1
+ import { GlobalConfigMain } from '@teambit/global-config';
1
2
  import { Lane } from '@teambit/legacy/dist/scope/models';
2
3
  import { IsolatorMain } from '@teambit/isolator';
3
4
  import { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';
@@ -19,8 +20,9 @@ export declare class ScopeAspectsLoader {
19
20
  private envs;
20
21
  private isolator;
21
22
  private logger;
23
+ private globalConfig;
22
24
  private resolvedInstalledAspects;
23
- constructor(scope: ScopeMain, aspectLoader: AspectLoaderMain, envs: EnvsMain, isolator: IsolatorMain, logger: Logger);
25
+ constructor(scope: ScopeMain, aspectLoader: AspectLoaderMain, envs: EnvsMain, isolator: IsolatorMain, logger: Logger, globalConfig: GlobalConfigMain);
24
26
  private parseLocalAspect;
25
27
  private findRuntime;
26
28
  private findAspectFile;
@@ -57,6 +59,7 @@ export declare class ScopeAspectsLoader {
57
59
  workspaceName?: string;
58
60
  }): Promise<Array<ExtensionManifest | Aspect>>;
59
61
  getAspectCapsulePath(): string;
62
+ shouldUseHashForCapsules(): boolean;
60
63
  private resolveUserAspects;
61
64
  resolveAspects(runtimeName?: string, componentIds?: ComponentID[], opts?: ResolveAspectsOptions): Promise<AspectDefinition[]>;
62
65
  }
@@ -77,12 +77,13 @@ function _harmonyModules() {
77
77
  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; }
78
78
  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; }
79
79
  class ScopeAspectsLoader {
80
- constructor(scope, aspectLoader, envs, isolator, logger) {
80
+ constructor(scope, aspectLoader, envs, isolator, logger, globalConfig) {
81
81
  this.scope = scope;
82
82
  this.aspectLoader = aspectLoader;
83
83
  this.envs = envs;
84
84
  this.isolator = isolator;
85
85
  this.logger = logger;
86
+ this.globalConfig = globalConfig;
86
87
  (0, _defineProperty2().default)(this, "resolvedInstalledAspects", void 0);
87
88
  (0, _defineProperty2().default)(this, "localAspects", []);
88
89
  }
@@ -234,10 +235,12 @@ needed-for: ${neededFor || '<unknown>'}`);
234
235
  async getResolvedAspects(components, opts) {
235
236
  var _opts$skipIfExists;
236
237
  if (!components || !components.length) return [];
238
+ const useHash = this.shouldUseHashForCapsules();
237
239
  const network = await this.isolator.isolateComponents(components.map(c => c.id),
238
240
  // includeFromNestedHosts - to support case when you are in a workspace, trying to load aspect defined in the workspace.jsonc but not part of the workspace
239
241
  {
240
242
  baseDir: this.getAspectCapsulePath(),
243
+ useHash,
241
244
  skipIfExists: (_opts$skipIfExists = opts === null || opts === void 0 ? void 0 : opts.skipIfExists) !== null && _opts$skipIfExists !== void 0 ? _opts$skipIfExists : true,
242
245
  seedersOnly: true,
243
246
  includeFromNestedHosts: true,
@@ -355,13 +358,25 @@ needed-for: ${neededFor || '<unknown>'}`);
355
358
  return [];
356
359
  }
357
360
  getAspectCapsulePath() {
358
- return `${this.scope.path}-aspects`;
361
+ const defaultPath = `${this.scope.path}-aspects`;
362
+ if (this.scope.isGlobalScope) {
363
+ return this.globalConfig.getSync(_constants().CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;
364
+ }
365
+ return this.globalConfig.getSync(_constants().CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;
366
+ }
367
+ shouldUseHashForCapsules() {
368
+ if (this.scope.isGlobalScope) {
369
+ return !this.globalConfig.getSync(_constants().CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);
370
+ }
371
+ return !this.globalConfig.getSync(_constants().CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);
359
372
  }
360
373
  async resolveUserAspects(runtimeName, userAspectsIds, opts) {
361
374
  if (!userAspectsIds || !userAspectsIds.length) return [];
362
375
  const components = await this.scope.getMany(userAspectsIds);
376
+ const useHash = this.shouldUseHashForCapsules();
363
377
  const network = await this.isolator.isolateComponents(userAspectsIds, {
364
378
  baseDir: this.getAspectCapsulePath(),
379
+ useHash,
365
380
  skipIfExists: true,
366
381
  // for some reason this needs to be false, otherwise tagging components in some workspaces
367
382
  // result in error during Preview task:
@@ -1 +1 @@
1
- {"version":3,"names":["ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","parseLocalAspect","localAspects","dirPaths","map","localAspect","resolve","replace","nonExistsDirPaths","filter","path","existsSync","forEach","warn","existsDirPaths","findRuntime","dirPath","runtime","files","readdirSync","join","find","includes","findAspectFile","loadAspectFromPath","manifests","scopeRuntime","module","require","default","loadExtensionsByManifests","undefined","throwOnError","loadAspects","ids","neededFor","lane","opts","length","callId","Math","floor","random","loggerPrefix","info","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","component","getEnvId","envId","isCoreEnv","groupBy","id","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","scopePluginsManifests","allManifests","compact","manifest","visited","nonVisitedId","customEnvsIds","push","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","preferDependencyGraph","resolveLocalAspects","dirs","dir","runtimeManifest","aspectFilePath","AspectDefinition","getResolvedAspects","network","isolateComponents","c","baseDir","getAspectCapsulePath","skipIfExists","seedersOnly","includeFromNestedHosts","installOptions","copyPeerToRuntimeOnRoot","packageManagerConfigRootDir","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","context","aspects","workspaceName","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","plugins","getPlugins","has","compileIfNoDist","load","MainRuntime","name","aspect","getRuntimePath","mainRuntime","runtimePath","env","getEnv","compiler","getCompiler","distDir","DEFAULT_DIST_DIRNAME","distExists","compiledCode","filesystem","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","Promise","all","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","err","code","newErr","resolvedAspectsAgain","manifestAgain","handleExtensionLoadingError","resolveUserAspects","runtimeName","userAspectsIds","getMany","host","aspectDefs","resolveAspects","getCapsule","Error","localPath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","withoutLocalAspects","aspectId","fullName","userAspectsDefs","localResolved","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { readdirSync, existsSync } from 'fs-extra';\nimport { resolve, join } from 'path';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';\nimport { Compiler } from '@teambit/compiler';\nimport { Capsule, IsolatorMain } from '@teambit/isolator';\nimport { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\n\ntype ManifestOrAspect = ExtensionManifest | Aspect;\n\nexport type ScopeLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n};\n\nexport class ScopeAspectsLoader {\n private resolvedInstalledAspects: Map<string, string | null>;\n\n constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger\n ) {}\n private parseLocalAspect(localAspects: string[]) {\n const dirPaths = localAspects.map((localAspect) => resolve(localAspect.replace('file://', '')));\n const nonExistsDirPaths = dirPaths.filter((path) => !existsSync(path));\n nonExistsDirPaths.forEach((path) => this.logger.warn(`no such file or directory: ${path}`));\n const existsDirPaths = dirPaths.filter((path) => existsSync(path));\n return existsDirPaths;\n }\n\n private findRuntime(dirPath: string, runtime: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`${runtime}.runtime.js`));\n }\n\n private findAspectFile(dirPath: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`.aspect.js`));\n }\n\n private async loadAspectFromPath(localAspects: string[]) {\n const dirPaths = this.parseLocalAspect(localAspects);\n const manifests = dirPaths.map((dirPath) => {\n const scopeRuntime = this.findRuntime(dirPath, 'scope');\n if (scopeRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(join(dirPath, 'dist', scopeRuntime));\n return module.default || module;\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(dirPath);\n return module.default || module;\n });\n\n await this.aspectLoader.loadExtensionsByManifests(manifests, undefined, { throwOnError: true });\n }\n\n private localAspects: string[] = [];\n\n async loadAspects(\n ids: string[],\n throwOnError = false,\n neededFor?: string,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n if (!ids.length) return [];\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const grouped = await this.groupAspectIdsByEnvOfTheList(ids, lane);\n this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${grouped.envs?.length || 0}`);\n const envsManifestsIds = await this.getManifestsAndLoadAspects(grouped.envs, throwOnError, lane, opts);\n this.logger.info(\n `${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${grouped.other?.length || 0}`\n );\n const otherManifestsIds = await this.getManifestsAndLoadAspects(grouped.other, throwOnError, lane, opts);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return envsManifestsIds.concat(otherManifestsIds);\n }\n\n /**\n * This function get's a list of aspect ids and return them grouped by whether any of them is the env of other from the list\n * @param ids\n */\n async groupAspectIdsByEnvOfTheList(ids: string[], lane?: Lane): Promise<{ envs?: string[]; other?: string[] }> {\n const components = await this.getNonLoadedAspects(ids, lane);\n const envsIds = uniq(\n components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId))\n );\n const grouped = groupBy(ids, (id) => {\n if (envsIds.includes(id)) return 'envs';\n return 'other';\n });\n return grouped as { envs: string[]; other: string[] };\n }\n\n private async getManifestsAndLoadAspects(\n ids: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const { manifests: scopeManifests, potentialPluginsIds } = await this.getManifestsGraphRecursively(\n ids,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopeManifests);\n const { manifests: scopePluginsManifests } = await this.getManifestsGraphRecursively(\n potentialPluginsIds,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopePluginsManifests);\n const allManifests = scopeManifests.concat(scopePluginsManifests);\n return compact(allManifests.map((manifest) => manifest.id));\n }\n\n async getManifestsGraphRecursively(\n ids: string[],\n visited: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts: {\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, opts);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = this.scope.localAspects.concat(localAspects);\n // load local aspects for debugging purposes.\n await this.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n const components = await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n preferDependencyGraph: true,\n lane,\n });\n\n return components;\n }\n\n private async resolveLocalAspects(ids: string[], runtime?: string): Promise<AspectDefinition[]> {\n const dirs = this.parseLocalAspect(ids);\n\n return dirs.map((dir) => {\n const runtimeManifest = runtime ? this.findRuntime(dir, runtime) : undefined;\n const aspectFilePath = runtime ? this.findAspectFile(dir) : undefined;\n return new AspectDefinition(\n dir,\n aspectFilePath ? join(dir, 'dist', aspectFilePath) : null,\n runtimeManifest ? join(dir, 'dist', runtimeManifest) : null,\n undefined,\n undefined,\n true\n );\n });\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n if (!components || !components.length) return [];\n const network = await this.isolator.isolateComponents(\n components.map((c) => c.id),\n // includeFromNestedHosts - to support case when you are in a workspace, trying to load aspect defined in the workspace.jsonc but not part of the workspace\n {\n baseDir: this.getAspectCapsulePath(),\n skipIfExists: opts?.skipIfExists ?? true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n workspaceName: opts?.workspaceName,\n },\n },\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n\n return capsules.map((capsule) => {\n return new RequireableComponent(\n capsule.component,\n async () => {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n const env = this.envs.getEnv(component);\n const compiler: Compiler = env.env.getCompiler();\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n\n const compiledCode = component.filesystem.files.flatMap((file) => {\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ];\n }\n\n if (compiler.transpileFile) {\n return compiler.transpileFile(file.contents.toString('utf8'), {\n filePath: file.path,\n componentDir: capsule.path,\n });\n }\n\n return [];\n });\n\n await Promise.all(\n compact(compiledCode).map((compiledFile) => {\n const path = compiler.getDistPathBySrcPath(compiledFile.outputPath);\n return capsule?.outputFile(path, compiledFile.outputText);\n })\n );\n }\n\n private async tryCompile(requirableAspect: RequireableComponent) {\n if (requirableAspect.capsule) return this.compileIfNoDist(requirableAspect.capsule, requirableAspect.component);\n return undefined;\n }\n\n async requireAspects(\n components: Component[],\n throwOnError = false,\n opts: { packageManagerConfigRootDir?: string; workspaceName?: string } = {}\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const requireableExtensions = await this.getResolvedAspects(components, opts);\n if (!requireableExtensions) {\n return [];\n }\n let error: any;\n let erroredId = '';\n const requireWithCatch = async (requireableAspects: RequireableComponent[]) => {\n error = undefined;\n try {\n const manifests = await mapSeries(requireableAspects, async (requireableExtension) => {\n try {\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (err: any) {\n erroredId = requireableExtension.component.id.toString();\n if (err.code === 'MODULE_NOT_FOUND') {\n try {\n await this.tryCompile(requireableExtension);\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (newErr: any) {\n error = newErr;\n throw newErr;\n }\n }\n error = err;\n throw err;\n }\n });\n return manifests;\n } catch (err) {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n getAspectCapsulePath() {\n return `${this.scope.path}-aspects`;\n }\n\n private async resolveUserAspects(\n runtimeName?: string,\n userAspectsIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n if (!userAspectsIds || !userAspectsIds.length) return [];\n const components = await this.scope.getMany(userAspectsIds);\n const network = await this.isolator.isolateComponents(\n userAspectsIds,\n {\n baseDir: this.getAspectCapsulePath(),\n skipIfExists: true,\n // for some reason this needs to be false, otherwise tagging components in some workspaces\n // result in error during Preview task:\n // \"No matching version found for <some-component-on-the-workspace>\"\n seedersOnly: true,\n includeFromNestedHosts: true,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n host: this.scope,\n context: {\n aspects: true,\n workspaceName: opts?.workspaceName,\n },\n },\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n const aspectDefs = await this.aspectLoader.resolveAspects(components, async (component) => {\n const capsule = capsules.getCapsule(component.id);\n if (!capsule) throw new Error(`failed loading aspect: ${component.id.toString()}`);\n const localPath = capsule.path;\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `scope resolveUserAspects, resolving id: ${component.id.toString()}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n\n return {\n id: capsule.component.id,\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n return aspectDefs;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const originalStringIds = componentIds?.map((id) => id.toString());\n this.logger.debug(`scope resolveAspects, runtimeName: ${runtimeName}, componentIds: ${originalStringIds}`);\n\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n let userAspectsIds;\n // let requestedCoreStringIds;\n if (componentIds && componentIds.length) {\n const groupedByIsCore = groupBy(componentIds, (id) => coreAspectsIds.includes(id.toString()));\n userAspectsIds = groupedByIsCore.false || [];\n // requestedCoreStringIds = groupedByIsCore.true?.map((id) => id.toStringWithoutVersion()) || [];\n } else {\n userAspectsIds = await this.scope.resolveMultipleComponentIds(this.aspectLoader.getUserAspects());\n }\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !this.scope.localAspects.find((localAspect) => {\n return localAspect.includes(aspectId.fullName.replace('/', '.'));\n });\n });\n\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\n const localResolved = await this.resolveLocalAspects(this.scope.localAspects, runtimeName);\n const coreAspectsDefs = await this.aspectLoader.getCoreAspectDefs(runtimeName);\n\n const allDefs = userAspectsDefs.concat(coreAspectsDefs).concat(localResolved);\n // const userAspectsIdsWithoutVersion = userAspectsIds.map((aspectId) => aspectId.toStringWithoutVersion());\n // const userAspectsIdsWithoutVersionAndCoreRequested = userAspectsIdsWithoutVersion.concat(requestedCoreStringIds);\n const filteredDefs = this.aspectLoader.filterAspectDefs(\n allDefs,\n componentIds || userAspectsIds,\n runtimeName,\n mergedOpts\n );\n return filteredDefs;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","globalConfig","parseLocalAspect","localAspects","dirPaths","map","localAspect","resolve","replace","nonExistsDirPaths","filter","path","existsSync","forEach","warn","existsDirPaths","findRuntime","dirPath","runtime","files","readdirSync","join","find","includes","findAspectFile","loadAspectFromPath","manifests","scopeRuntime","module","require","default","loadExtensionsByManifests","undefined","throwOnError","loadAspects","ids","neededFor","lane","opts","length","callId","Math","floor","random","loggerPrefix","info","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","component","getEnvId","envId","isCoreEnv","groupBy","id","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","scopePluginsManifests","allManifests","compact","manifest","visited","nonVisitedId","customEnvsIds","push","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","preferDependencyGraph","resolveLocalAspects","dirs","dir","runtimeManifest","aspectFilePath","AspectDefinition","getResolvedAspects","useHash","shouldUseHashForCapsules","network","isolateComponents","c","baseDir","getAspectCapsulePath","skipIfExists","seedersOnly","includeFromNestedHosts","installOptions","copyPeerToRuntimeOnRoot","packageManagerConfigRootDir","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","context","aspects","workspaceName","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","plugins","getPlugins","has","compileIfNoDist","load","MainRuntime","name","aspect","getRuntimePath","mainRuntime","runtimePath","env","getEnv","compiler","getCompiler","distDir","DEFAULT_DIST_DIRNAME","distExists","compiledCode","filesystem","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","Promise","all","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","err","code","newErr","resolvedAspectsAgain","manifestAgain","handleExtensionLoadingError","defaultPath","isGlobalScope","getSync","CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR","CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR","resolveUserAspects","runtimeName","userAspectsIds","getMany","host","aspectDefs","resolveAspects","getCapsule","Error","localPath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","withoutLocalAspects","aspectId","fullName","userAspectsDefs","localResolved","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { readdirSync, existsSync } from 'fs-extra';\nimport { resolve, join } from 'path';\nimport {\n DEFAULT_DIST_DIRNAME,\n CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR,\n CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR,\n} from '@teambit/legacy/dist/constants';\nimport { Compiler } from '@teambit/compiler';\nimport { Capsule, IsolatorMain } from '@teambit/isolator';\nimport { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\n\ntype ManifestOrAspect = ExtensionManifest | Aspect;\n\nexport type ScopeLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n};\n\nexport class ScopeAspectsLoader {\n private resolvedInstalledAspects: Map<string, string | null>;\n\n constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger,\n private globalConfig: GlobalConfigMain\n ) {}\n private parseLocalAspect(localAspects: string[]) {\n const dirPaths = localAspects.map((localAspect) => resolve(localAspect.replace('file://', '')));\n const nonExistsDirPaths = dirPaths.filter((path) => !existsSync(path));\n nonExistsDirPaths.forEach((path) => this.logger.warn(`no such file or directory: ${path}`));\n const existsDirPaths = dirPaths.filter((path) => existsSync(path));\n return existsDirPaths;\n }\n\n private findRuntime(dirPath: string, runtime: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`${runtime}.runtime.js`));\n }\n\n private findAspectFile(dirPath: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`.aspect.js`));\n }\n\n private async loadAspectFromPath(localAspects: string[]) {\n const dirPaths = this.parseLocalAspect(localAspects);\n const manifests = dirPaths.map((dirPath) => {\n const scopeRuntime = this.findRuntime(dirPath, 'scope');\n if (scopeRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(join(dirPath, 'dist', scopeRuntime));\n return module.default || module;\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(dirPath);\n return module.default || module;\n });\n\n await this.aspectLoader.loadExtensionsByManifests(manifests, undefined, { throwOnError: true });\n }\n\n private localAspects: string[] = [];\n\n async loadAspects(\n ids: string[],\n throwOnError = false,\n neededFor?: string,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n if (!ids.length) return [];\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const grouped = await this.groupAspectIdsByEnvOfTheList(ids, lane);\n this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${grouped.envs?.length || 0}`);\n const envsManifestsIds = await this.getManifestsAndLoadAspects(grouped.envs, throwOnError, lane, opts);\n this.logger.info(\n `${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${grouped.other?.length || 0}`\n );\n const otherManifestsIds = await this.getManifestsAndLoadAspects(grouped.other, throwOnError, lane, opts);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return envsManifestsIds.concat(otherManifestsIds);\n }\n\n /**\n * This function get's a list of aspect ids and return them grouped by whether any of them is the env of other from the list\n * @param ids\n */\n async groupAspectIdsByEnvOfTheList(ids: string[], lane?: Lane): Promise<{ envs?: string[]; other?: string[] }> {\n const components = await this.getNonLoadedAspects(ids, lane);\n const envsIds = uniq(\n components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId))\n );\n const grouped = groupBy(ids, (id) => {\n if (envsIds.includes(id)) return 'envs';\n return 'other';\n });\n return grouped as { envs: string[]; other: string[] };\n }\n\n private async getManifestsAndLoadAspects(\n ids: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const { manifests: scopeManifests, potentialPluginsIds } = await this.getManifestsGraphRecursively(\n ids,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopeManifests);\n const { manifests: scopePluginsManifests } = await this.getManifestsGraphRecursively(\n potentialPluginsIds,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopePluginsManifests);\n const allManifests = scopeManifests.concat(scopePluginsManifests);\n return compact(allManifests.map((manifest) => manifest.id));\n }\n\n async getManifestsGraphRecursively(\n ids: string[],\n visited: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts: {\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, opts);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = this.scope.localAspects.concat(localAspects);\n // load local aspects for debugging purposes.\n await this.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n const components = await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n preferDependencyGraph: true,\n lane,\n });\n\n return components;\n }\n\n private async resolveLocalAspects(ids: string[], runtime?: string): Promise<AspectDefinition[]> {\n const dirs = this.parseLocalAspect(ids);\n\n return dirs.map((dir) => {\n const runtimeManifest = runtime ? this.findRuntime(dir, runtime) : undefined;\n const aspectFilePath = runtime ? this.findAspectFile(dir) : undefined;\n return new AspectDefinition(\n dir,\n aspectFilePath ? join(dir, 'dist', aspectFilePath) : null,\n runtimeManifest ? join(dir, 'dist', runtimeManifest) : null,\n undefined,\n undefined,\n true\n );\n });\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n if (!components || !components.length) return [];\n const useHash = this.shouldUseHashForCapsules();\n const network = await this.isolator.isolateComponents(\n components.map((c) => c.id),\n // includeFromNestedHosts - to support case when you are in a workspace, trying to load aspect defined in the workspace.jsonc but not part of the workspace\n {\n baseDir: this.getAspectCapsulePath(),\n useHash,\n skipIfExists: opts?.skipIfExists ?? true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n workspaceName: opts?.workspaceName,\n },\n },\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n\n return capsules.map((capsule) => {\n return new RequireableComponent(\n capsule.component,\n async () => {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n const env = this.envs.getEnv(component);\n const compiler: Compiler = env.env.getCompiler();\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n\n const compiledCode = component.filesystem.files.flatMap((file) => {\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ];\n }\n\n if (compiler.transpileFile) {\n return compiler.transpileFile(file.contents.toString('utf8'), {\n filePath: file.path,\n componentDir: capsule.path,\n });\n }\n\n return [];\n });\n\n await Promise.all(\n compact(compiledCode).map((compiledFile) => {\n const path = compiler.getDistPathBySrcPath(compiledFile.outputPath);\n return capsule?.outputFile(path, compiledFile.outputText);\n })\n );\n }\n\n private async tryCompile(requirableAspect: RequireableComponent) {\n if (requirableAspect.capsule) return this.compileIfNoDist(requirableAspect.capsule, requirableAspect.component);\n return undefined;\n }\n\n async requireAspects(\n components: Component[],\n throwOnError = false,\n opts: { packageManagerConfigRootDir?: string; workspaceName?: string } = {}\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const requireableExtensions = await this.getResolvedAspects(components, opts);\n if (!requireableExtensions) {\n return [];\n }\n let error: any;\n let erroredId = '';\n const requireWithCatch = async (requireableAspects: RequireableComponent[]) => {\n error = undefined;\n try {\n const manifests = await mapSeries(requireableAspects, async (requireableExtension) => {\n try {\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (err: any) {\n erroredId = requireableExtension.component.id.toString();\n if (err.code === 'MODULE_NOT_FOUND') {\n try {\n await this.tryCompile(requireableExtension);\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (newErr: any) {\n error = newErr;\n throw newErr;\n }\n }\n error = err;\n throw err;\n }\n });\n return manifests;\n } catch (err) {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n getAspectCapsulePath() {\n const defaultPath = `${this.scope.path}-aspects`;\n if (this.scope.isGlobalScope) {\n return this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n private async resolveUserAspects(\n runtimeName?: string,\n userAspectsIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n if (!userAspectsIds || !userAspectsIds.length) return [];\n const components = await this.scope.getMany(userAspectsIds);\n const useHash = this.shouldUseHashForCapsules();\n const network = await this.isolator.isolateComponents(\n userAspectsIds,\n {\n baseDir: this.getAspectCapsulePath(),\n useHash,\n skipIfExists: true,\n // for some reason this needs to be false, otherwise tagging components in some workspaces\n // result in error during Preview task:\n // \"No matching version found for <some-component-on-the-workspace>\"\n seedersOnly: true,\n includeFromNestedHosts: true,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n host: this.scope,\n context: {\n aspects: true,\n workspaceName: opts?.workspaceName,\n },\n },\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n const aspectDefs = await this.aspectLoader.resolveAspects(components, async (component) => {\n const capsule = capsules.getCapsule(component.id);\n if (!capsule) throw new Error(`failed loading aspect: ${component.id.toString()}`);\n const localPath = capsule.path;\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `scope resolveUserAspects, resolving id: ${component.id.toString()}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n\n return {\n id: capsule.component.id,\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n return aspectDefs;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const originalStringIds = componentIds?.map((id) => id.toString());\n this.logger.debug(`scope resolveAspects, runtimeName: ${runtimeName}, componentIds: ${originalStringIds}`);\n\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n let userAspectsIds;\n // let requestedCoreStringIds;\n if (componentIds && componentIds.length) {\n const groupedByIsCore = groupBy(componentIds, (id) => coreAspectsIds.includes(id.toString()));\n userAspectsIds = groupedByIsCore.false || [];\n // requestedCoreStringIds = groupedByIsCore.true?.map((id) => id.toStringWithoutVersion()) || [];\n } else {\n userAspectsIds = await this.scope.resolveMultipleComponentIds(this.aspectLoader.getUserAspects());\n }\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !this.scope.localAspects.find((localAspect) => {\n return localAspect.includes(aspectId.fullName.replace('/', '.'));\n });\n });\n\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\n const localResolved = await this.resolveLocalAspects(this.scope.localAspects, runtimeName);\n const coreAspectsDefs = await this.aspectLoader.getCoreAspectDefs(runtimeName);\n\n const allDefs = userAspectsDefs.concat(coreAspectsDefs).concat(localResolved);\n // const userAspectsIdsWithoutVersion = userAspectsIds.map((aspectId) => aspectId.toStringWithoutVersion());\n // const userAspectsIdsWithoutVersionAndCoreRequested = userAspectsIdsWithoutVersion.concat(requestedCoreStringIds);\n const filteredDefs = this.aspectLoader.filterAspectDefs(\n allDefs,\n componentIds || userAspectsIds,\n runtimeName,\n mergedOpts\n );\n return filteredDefs;\n }\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { GlobalConfigMain } from '@teambit/global-config';
1
2
  import { Graph } from '@teambit/graph.cleargraph';
2
3
  import type { AspectLoaderMain } from '@teambit/aspect-loader';
3
4
  import { RawBuilderData } from '@teambit/builder';
@@ -90,6 +91,7 @@ export declare class ScopeMain implements ComponentFactory {
90
91
  private logger;
91
92
  private envs;
92
93
  private dependencyResolver;
94
+ private globalConfig;
93
95
  componentLoader: ScopeComponentLoader;
94
96
  constructor(
95
97
  /**
@@ -107,7 +109,7 @@ export declare class ScopeMain implements ComponentFactory {
107
109
  /**
108
110
  * slot registry for subscribing to build
109
111
  */
110
- config: ScopeConfig, postPutSlot: OnPostPutSlot, postDeleteSlot: OnPostDeleteSlot, postExportSlot: OnPostExportSlot, postObjectsPersist: OnPostObjectsPersistSlot, preFetchObjects: OnPreFetchObjectsSlot, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, logger: Logger, envs: EnvsMain, dependencyResolver: DependencyResolverMain);
112
+ config: ScopeConfig, postPutSlot: OnPostPutSlot, postDeleteSlot: OnPostDeleteSlot, postExportSlot: OnPostExportSlot, postObjectsPersist: OnPostObjectsPersistSlot, preFetchObjects: OnPreFetchObjectsSlot, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, logger: Logger, envs: EnvsMain, dependencyResolver: DependencyResolverMain, globalConfig: GlobalConfigMain);
111
113
  priority?: boolean | undefined;
112
114
  localAspects: string[];
113
115
  /**
@@ -119,6 +121,7 @@ export declare class ScopeMain implements ComponentFactory {
119
121
  get description(): string | undefined;
120
122
  get path(): string;
121
123
  get isLegacy(): boolean;
124
+ get isGlobalScope(): boolean;
122
125
  reloadAspectsWithNewVersion(components: ConsumerComponent[]): Promise<void>;
123
126
  loadAspects(ids: string[], throwOnError?: boolean | undefined, neededFor?: string | undefined, lane?: Lane, opts?: ScopeLoadAspectsOptions): Promise<string[]>;
124
127
  resolveAspects(runtimeName?: string | undefined, componentIds?: ComponentID[] | undefined, opts?: ResolveAspectsOptions | undefined): Promise<AspectDefinition[]>;
@@ -128,6 +131,7 @@ export declare class ScopeMain implements ComponentFactory {
128
131
  workspaceName?: string;
129
132
  }): Promise<RequireableComponent[]>;
130
133
  getAspectCapsulePath(): string;
134
+ shouldUseHashForCapsules(): boolean;
131
135
  getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]>;
132
136
  getScopeAspectsLoader(): ScopeAspectsLoader;
133
137
  clearCache(): void;
@@ -313,7 +317,7 @@ export declare class ScopeMain implements ComponentFactory {
313
317
  static runtime: import("@teambit/harmony").RuntimeDefinition;
314
318
  static dependencies: import("@teambit/harmony").Aspect[];
315
319
  static defaultConfig: ScopeConfig;
316
- static provider([componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver]: [
320
+ static provider([componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver, globalConfig]: [
317
321
  ComponentMain,
318
322
  UiMain,
319
323
  GraphqlMain,
@@ -323,7 +327,8 @@ export declare class ScopeMain implements ComponentFactory {
323
327
  ExpressMain,
324
328
  LoggerMain,
325
329
  EnvsMain,
326
- DependencyResolverMain
330
+ DependencyResolverMain,
331
+ GlobalConfigMain
327
332
  ], config: ScopeConfig, [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot]: [
328
333
  OnPostPutSlot,
329
334
  OnPostDeleteSlot,
@@ -20,6 +20,13 @@ function _defineProperty2() {
20
20
  };
21
21
  return data;
22
22
  }
23
+ function _globalConfig() {
24
+ const data = _interopRequireDefault(require("@teambit/global-config"));
25
+ _globalConfig = function () {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
23
30
  function _pMapSeries() {
24
31
  const data = _interopRequireDefault(require("p-map-series"));
25
32
  _pMapSeries = function () {
@@ -223,6 +230,13 @@ function _exportScopeComponents() {
223
230
  };
224
231
  return data;
225
232
  }
233
+ function _constants() {
234
+ const data = require("@teambit/legacy/dist/constants");
235
+ _constants = function () {
236
+ return data;
237
+ };
238
+ return data;
239
+ }
226
240
  function _config() {
227
241
  const data = require("@teambit/legacy/dist/consumer/config");
228
242
  _config = function () {
@@ -334,7 +348,7 @@ class ScopeMain {
334
348
  * slot registry for subscribing to build
335
349
  */
336
350
 
337
- config, postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersist, preFetchObjects, isolator, aspectLoader, logger, envs, dependencyResolver) {
351
+ config, postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersist, preFetchObjects, isolator, aspectLoader, logger, envs, dependencyResolver, globalConfig) {
338
352
  this.harmony = harmony;
339
353
  this.legacyScope = legacyScope;
340
354
  this.componentExtension = componentExtension;
@@ -349,6 +363,7 @@ class ScopeMain {
349
363
  this.logger = logger;
350
364
  this.envs = envs;
351
365
  this.dependencyResolver = dependencyResolver;
366
+ this.globalConfig = globalConfig;
352
367
  (0, _defineProperty2().default)(this, "componentLoader", void 0);
353
368
  (0, _defineProperty2().default)(this, "priority", void 0);
354
369
  (0, _defineProperty2().default)(this, "localAspects", []);
@@ -375,6 +390,9 @@ class ScopeMain {
375
390
  get isLegacy() {
376
391
  return this.legacyScope.isLegacy;
377
392
  }
393
+ get isGlobalScope() {
394
+ return this.path === _constants().GLOBAL_SCOPE;
395
+ }
378
396
 
379
397
  // We need to reload the aspects with their new version since:
380
398
  // during get many by legacy, we go load component which in turn go to getEnv
@@ -429,11 +447,15 @@ class ScopeMain {
429
447
  const scopeAspectsLoader = this.getScopeAspectsLoader();
430
448
  return scopeAspectsLoader.getAspectCapsulePath();
431
449
  }
450
+ shouldUseHashForCapsules() {
451
+ const scopeAspectsLoader = this.getScopeAspectsLoader();
452
+ return scopeAspectsLoader.shouldUseHashForCapsules();
453
+ }
432
454
  getManyByLegacy(components) {
433
455
  return (0, _pMapSeries().default)(components, async component => this.getFromConsumerComponent(component));
434
456
  }
435
457
  getScopeAspectsLoader() {
436
- const scopeAspectsLoader = new (_scopeAspectsLoader().ScopeAspectsLoader)(this, this.aspectLoader, this.envs, this.isolator, this.logger);
458
+ const scopeAspectsLoader = new (_scopeAspectsLoader().ScopeAspectsLoader)(this, this.aspectLoader, this.envs, this.isolator, this.logger, this.globalConfig);
437
459
  return scopeAspectsLoader;
438
460
  }
439
461
  clearCache() {
@@ -1000,14 +1022,14 @@ class ScopeMain {
1000
1022
  * declare the slots of scope extension.
1001
1023
  */
1002
1024
 
1003
- static async provider([componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver], config, [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot], harmony) {
1025
+ static async provider([componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver, globalConfig], config, [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot], harmony) {
1004
1026
  const bitConfig = harmony.config.get('teambit.harmony/bit');
1005
1027
  const legacyScope = await (0, _scopeLoader().loadScopeIfExist)(bitConfig === null || bitConfig === void 0 ? void 0 : bitConfig.cwd);
1006
1028
  if (!legacyScope) {
1007
1029
  return undefined;
1008
1030
  }
1009
1031
  const logger = loggerMain.createLogger(_scope3().ScopeAspect.id);
1010
- const scope = new ScopeMain(harmony, legacyScope, componentExt, config, postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot, isolator, aspectLoader, logger, envs, depsResolver);
1032
+ const scope = new ScopeMain(harmony, legacyScope, componentExt, config, postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot, isolator, aspectLoader, logger, envs, depsResolver, globalConfig);
1011
1033
  cli.registerOnStart(async hasWorkspace => {
1012
1034
  if (hasWorkspace) return;
1013
1035
  await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');
@@ -1073,7 +1095,7 @@ class ScopeMain {
1073
1095
  exports.ScopeMain = ScopeMain;
1074
1096
  (0, _defineProperty2().default)(ScopeMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
1075
1097
  (0, _defineProperty2().default)(ScopeMain, "runtime", _cli().MainRuntime);
1076
- (0, _defineProperty2().default)(ScopeMain, "dependencies", [_component().ComponentAspect, _ui().UIAspect, _graphql().GraphqlAspect, _cli().CLIAspect, _isolator().IsolatorAspect, _aspectLoader().AspectLoaderAspect, _express().ExpressAspect, _logger().LoggerAspect, _envs().default, _dependencyResolver().DependencyResolverAspect]);
1098
+ (0, _defineProperty2().default)(ScopeMain, "dependencies", [_component().ComponentAspect, _ui().UIAspect, _graphql().GraphqlAspect, _cli().CLIAspect, _isolator().IsolatorAspect, _aspectLoader().AspectLoaderAspect, _express().ExpressAspect, _logger().LoggerAspect, _envs().default, _dependencyResolver().DependencyResolverAspect, _globalConfig().default]);
1077
1099
  (0, _defineProperty2().default)(ScopeMain, "defaultConfig", {
1078
1100
  httpTimeOut: 600000
1079
1101
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","isolator","aspectLoader","logger","envs","dependencyResolver","componentLoader","ScopeComponentLoader","name","icon","backgroundIconColor","description","path","isLegacy","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","Object","keys","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","push","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","getAspectCapsulePath","getManyByLegacy","mapSeries","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","builderDataMapToLegacyOnTagResults","builderDataComponentMap","builderDataToLegacyExtension","builderData","existingBuilder","state","aspects","get","BuilderAspect","legacy","builderExtension","ExtensionDataEntry","undefined","data","toArray","_legacy","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnPostObjectsPersist","postObjectsPersistFn","fetch","persist","options","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","watchScopeInternalFiles","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","pathsToWatch","watcher","chokidar","watch","on","join","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","length","comp","getMany","allFlattened","_consumer","getAllFlattenedDependencies","flat","allFlattenedUniq","BitIds","uniqFromArray","scopeImporter","importMany","allFlattenedCompIds","resolveMultipleComponentIds","dependencies","allComponents","graph","Graph","forEach","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","addEdges","compId","label","depId","resolveComponentIdFromBitId","componentsAndVersions","getComponentsAndVersions","versionStr","compBitId","toBitId","devDependencies","extensionDependencies","consumerComponent","flattenedEdges","flattenedDependencies","edges","edge","source","target","nodes","node","type","useCache","throwIfNotExist","preferDependencyGraph","legacyIds","legacyId","scope","changeScope","withoutOwnScopeAndLocals","filter","hasScope","ComponentsIds","fromArray","cache","throwForDependencyNotFound","getRemoteComponent","getManyRemoteComponents","includeCache","includeFromLanes","patternsWithScope","namespaces","pattern","componentsIds","listIds","limit","slice","offset","listInvalid","patterns","allModelComponents","filterByCacheAndLanes","modelComponent","cacheFilter","exists","lanesFilter","hasHead","modelComponentsToList","fromLegacy","toBitIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","idsWithoutEmpty","compact","componentsP","getOrThrow","loadMany","load","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","loadComponentLogs","getStagedConfig","currentLaneId","StagedConfig","isComponentRemoved","versionObj","loadVersion","isRemoved","BitId","idStr","loadModelComponentByIdStr","getIdToCheck","IdToCheck","getParsedId","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","split","p","trim","every","unshift","idsToCheck","idsFiltered","multimatch","NoIdMatchPattern","getExactVersionBySemverRange","range","versions","listVersions","semver","maxSatisfying","includePrerelease","resumeExport","exportId","remotes","resolveId","_legacyRemotes","getScopeRemotes","listRemoteScope","scopeName","remote","resolve","results","getLegacyMinimal","getConsumerComponent","aspectIds","appData","appName","envsData","EnvsAspect","services","self","loadComponentsAspect","addAspectsFromConfigObject","configObject","extensionsFromConfigObject","ExtensionDataList","fromConfigObject","extensionDataList","mergeConfigs","extensions","filterRemovedExtensions","createAspectListFromExtensionDataList","entries","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","isModified","write","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","loadScopeIfExist","cwd","createLogger","ScopeAspect","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","ScopeCmd","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","DependencyResolverAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { RawBuilderData, BuilderAspect } from '@teambit/builder';\nimport { AspectLoaderAspect, AspectDefinition } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain, ComponentMap, ResolveAspectsOptions } from '@teambit/component';\nimport {\n Component,\n ComponentAspect,\n ComponentFactory,\n ComponentID,\n Snap,\n State,\n AspectEntry,\n} from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds, BitIds as ComponentsIds } from '@teambit/legacy/dist/bit-id';\nimport { ModelComponent, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Repository } from '@teambit/legacy/dist/scope/objects';\nimport LegacyScope, { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';\nimport { loadScopeIfExist } from '@teambit/legacy/dist/scope/scope-loader';\nimport { PersistOptions } from '@teambit/legacy/dist/scope/types';\nimport { ExportPersist, PostSign } from '@teambit/legacy/dist/scope/actions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { getScopeRemotes } from '@teambit/legacy/dist/scope/scope-remotes';\nimport { Remotes } from '@teambit/legacy/dist/remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport chokidar from 'chokidar';\nimport { Types } from '@teambit/legacy/dist/scope/object-registrar';\nimport { FETCH_OPTIONS } from '@teambit/legacy/dist/api/scope/lib/fetch';\nimport { ObjectList } from '@teambit/legacy/dist/scope/objects/object-list';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { Http, DEFAULT_AUTH_TYPE, AuthData, getAuthDataFromHeader } from '@teambit/legacy/dist/scope/network/http/http';\nimport { remove } from '@teambit/legacy/dist/api/scope';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { resumeExport } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { compact, slice, difference } from 'lodash';\nimport { ComponentNotFound } from './exceptions';\nimport { ScopeAspect } from './scope.aspect';\nimport { scopeSchema } from './scope.graphql';\nimport { ScopeUIRoot } from './scope.ui-root';\nimport { PutRoute, FetchRoute, ActionRoute, DeleteRoute } from './routes';\nimport { ScopeComponentLoader } from './scope-component-loader';\nimport { ScopeCmd } from './scope-cmd';\nimport { StagedConfig } from './staged-config';\nimport { NoIdMatchPattern } from './exceptions/no-id-match-pattern';\nimport { ScopeAspectsLoader, ScopeLoadAspectsOptions } from './scope-aspects-loader';\n\ntype RemoteEventMetadata = { auth?: AuthData; headers?: {} };\ntype RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;\ntype OnPostPutData = { ids: ComponentID[]; lanes: Lane[] };\ntype OnPostDeleteData = { ids: ComponentID[] };\ntype OnPreFetchObjectData = { ids: string[]; fetchOptions: FETCH_OPTIONS };\n\ntype OnPostPut = RemoteEvent<OnPostPutData>;\ntype OnPostExport = RemoteEvent<OnPostPutData>;\ntype OnPostDelete = RemoteEvent<OnPostDeleteData>;\ntype OnPostObjectsPersist = RemoteEvent<undefined>;\ntype OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;\n\nexport type OnPostPutSlot = SlotRegistry<OnPostPut>;\nexport type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;\nexport type OnPostExportSlot = SlotRegistry<OnPostExport>;\nexport type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;\nexport type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n};\n\nexport class ScopeMain implements ComponentFactory {\n componentLoader: ScopeComponentLoader;\n constructor(\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n /**\n * legacy scope\n */\n readonly legacyScope: LegacyScope,\n\n /**\n * component extension.\n */\n readonly componentExtension: ComponentMain,\n\n /**\n * slot registry for subscribing to build\n */\n\n readonly config: ScopeConfig,\n\n private postPutSlot: OnPostPutSlot,\n\n private postDeleteSlot: OnPostDeleteSlot,\n\n private postExportSlot: OnPostExportSlot,\n\n private postObjectsPersist: OnPostObjectsPersistSlot,\n\n public preFetchObjects: OnPreFetchObjectsSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * name of the scope\n */\n get name(): string {\n return this.legacyScope.name;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get backgroundIconColor(): string | undefined {\n return this.config.backgroundIconColor;\n }\n\n get description(): string | undefined {\n return this.config.description;\n }\n\n get path(): string {\n return this.legacyScope.path;\n }\n\n get isLegacy(): boolean {\n return this.legacyScope.isLegacy;\n }\n\n // We need to reload the aspects with their new version since:\n // during get many by legacy, we go load component which in turn go to getEnv\n // get env validates that the env written on the component is really exist by checking the envs slot registry\n // when we load here, it's env version in the aspect list already has the new version in case the env itself is being tagged\n // so we are search for the env in the registry with the new version number\n // but since the env only registered during the on load of the bit process (before the tag) it's version in the registry is only the old one\n // once we reload them we will have it registered with the new version as well\n async reloadAspectsWithNewVersion(components: ConsumerComponent[]): Promise<void> {\n const host = this.componentExtension.getHost();\n\n // Return only aspects that defined on components but not in the root config file (workspace.jsonc/scope.jsonc)\n const getUserAspectsIdsWithoutRootIds = (): string[] => {\n const allUserAspectIds = this.aspectLoader.getUserAspects();\n const rootIds = Object.keys(this.harmony.config.toObject());\n const diffIds = difference(allUserAspectIds, rootIds);\n return diffIds;\n };\n\n // Based on the list of components to be tagged return those who are loaded to harmony with their used version\n const getAspectsByPreviouslyUsedVersion = async (): Promise<string[]> => {\n const harmonyIds = getUserAspectsIdsWithoutRootIds();\n const aspectsIds: string[] = [];\n const aspectsP = components.map(async (component) => {\n const newId = await host.resolveComponentId(component.id);\n if (\n component.previouslyUsedVersion &&\n component.version &&\n component.previouslyUsedVersion !== component.version\n ) {\n const newIdWithPreviouslyUsedVersion = newId.changeVersion(component.previouslyUsedVersion);\n if (harmonyIds.includes(newIdWithPreviouslyUsedVersion.toString())) {\n aspectsIds.push(newId.toString());\n }\n }\n });\n await Promise.all(aspectsP);\n return aspectsIds;\n };\n\n const idsToLoad = await getAspectsByPreviouslyUsedVersion();\n await host.loadAspects(idsToLoad, false, 'scope.reloadAspectsWithNewVersion');\n }\n\n loadAspects(\n ids: string[],\n throwOnError?: boolean | undefined,\n neededFor?: string | undefined,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.loadAspects(ids, throwOnError, neededFor, lane, opts);\n }\n resolveAspects(\n runtimeName?: string | undefined,\n componentIds?: ComponentID[] | undefined,\n opts?: ResolveAspectsOptions | undefined\n ): Promise<AspectDefinition[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getResolvedAspects(components, opts);\n }\n\n getAspectCapsulePath() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getAspectCapsulePath();\n }\n\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]> {\n return mapSeries(components, async (component) => this.getFromConsumerComponent(component));\n }\n\n getScopeAspectsLoader(): ScopeAspectsLoader {\n const scopeAspectsLoader = new ScopeAspectsLoader(this, this.aspectLoader, this.envs, this.isolator, this.logger);\n return scopeAspectsLoader;\n }\n\n clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n this.legacyScope.objects.clearCache();\n }\n\n builderDataMapToLegacyOnTagResults(builderDataComponentMap: ComponentMap<RawBuilderData>): LegacyOnTagResult[] {\n const builderDataToLegacyExtension = (component: Component, builderData: RawBuilderData) => {\n const existingBuilder = component.state.aspects.get(BuilderAspect.id)?.legacy;\n const builderExtension = existingBuilder || new ExtensionDataEntry(undefined, undefined, BuilderAspect.id);\n builderExtension.data = builderData;\n return builderExtension;\n };\n return builderDataComponentMap.toArray().map(([component, builderData]) => ({\n id: component.id._legacy,\n builderData: builderDataToLegacyExtension(component, builderData),\n }));\n }\n\n /**\n * register to the post-export slot.\n */\n onPostPut(postPutFn: OnPostPut) {\n this.postPutSlot.register(postPutFn);\n return this;\n }\n\n /**\n * register to the post-delete slot.\n */\n onPostDelete(postDeleteFn: OnPostDelete) {\n this.postDeleteSlot.register(postDeleteFn);\n return this;\n }\n\n /**\n * register to the post-export slot.\n */\n registerOnPostExport(postExportFn: OnPostExport) {\n this.postExportSlot.register(postExportFn);\n return this;\n }\n\n registerOnPreFetchObjects(preFetchObjectsFn: OnPreFetchObjects) {\n this.preFetchObjects.register(preFetchObjectsFn);\n return this;\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * Will fetch a list of components into the current scope.\n * This will only fetch the object and won't write the files to the actual FS\n *\n * @param {ComponentsIds} ids list of ids to fetch\n */\n fetch(ids: ComponentsIds) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * This function will get a component and sealed it's current state into the scope\n *\n * @param {Component[]} components A list of components to seal with specific persist options (such as message and version number)\n * @param {PersistOptions} persistGeneralOptions General persistence options such as verbose\n */\n persist(components: Component[], options: PersistOptions) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n async delete(\n { ids, force, lanes }: { ids: string[]; force: boolean; lanes: boolean },\n headers?: Record<string, any>\n ) {\n const authData = getAuthDataFromHeader(headers?.authorization);\n const result = await remove({\n path: this.path,\n ids,\n force,\n lanes,\n });\n\n const fns = this.postDeleteSlot.values();\n const metadata = { auth: authData, headers };\n const componentIds = lanes ? [] : ids.map((id) => ComponentID.fromString(id));\n await mapSeries(fns, async (fn) => {\n try {\n await fn({ ids: componentIds }, metadata);\n } catch (err: any) {\n this.logger.error('failed to run delete slot', err);\n }\n });\n return result;\n }\n\n /**\n * for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:\n * 1. scope-index (.bit/index.json file).\n * 2. remote-refs (.bit/refs/*).\n * it's possible that other commands (e.g. `bit import`) modified these files, while these processes are running.\n * Because these data are kept in memory, they're not up to date anymore.\n */\n async watchScopeInternalFiles() {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const pathsToWatch = [scopeIndexFile, remoteLanesDir];\n const watcher = chokidar.watch(pathsToWatch);\n watcher.on('ready', () => {\n this.logger.debug(`watchSystemFiles has started, watching ${pathsToWatch.join(', ')}`);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n if (filePath === scopeIndexFile) {\n this.logger.debug('scope index file has been changed, reloading it');\n await this.legacyScope.objects.reLoadScopeIndex();\n } else if (filePath.startsWith(remoteLanesDir)) {\n this.legacyScope.objects.remoteLanes.removeFromCacheByFilePath(filePath);\n } else {\n this.logger.error(\n 'unknown file has been changed, please check why it is watched by scope.watchSystemFiles',\n filePath\n );\n }\n });\n }\n\n async toObjectList(types: Types): Promise<ObjectList> {\n const objects = await this.legacyScope.objects.list(types);\n return ObjectList.fromBitObjects(objects);\n }\n\n // TODO: temporary compiler workaround - discuss this with david.\n private toJs(str: string) {\n if (str.endsWith('.ts')) return str.replace('.ts', '.js');\n return str;\n }\n\n async getGraph(ids?: ComponentID[]): Promise<Graph<Component, string>> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const allFlattened = components.map((component) => component.state._consumer.getAllFlattenedDependencies()).flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importMany({ ids: allFlattenedUniq });\n const allFlattenedCompIds = await this.resolveMultipleComponentIds(allFlattenedUniq);\n const dependencies = await this.getMany(allFlattenedCompIds);\n const allComponents: Component[] = [...components, ...dependencies];\n\n // build the graph\n const graph = new Graph<Component, string>();\n allComponents.forEach((comp) => graph.setNode(new Node(comp.id.toString(), comp)));\n await Promise.all(\n allComponents.map(async (comp) => {\n const deps = await this.dependencyResolver.getComponentDependencies(comp);\n deps.forEach((dep) => {\n const depCompId = dep.componentId;\n if (!graph.hasNode(depCompId.toString())) {\n throw new Error(`scope.getGraph: missing node of ${depCompId.toString()}`);\n }\n graph.setEdge(new Edge(comp.id.toString(), depCompId.toString(), dep.lifecycle));\n });\n })\n );\n return graph;\n }\n\n async getGraphIds(ids?: ComponentID[]): Promise<CompIdGraph> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const graph = new Graph<ComponentID, DepEdgeType>();\n const componentsWithoutSavedGraph: Component[] = [];\n\n // try to add from saved graph\n components.forEach((component) => {\n const compGraph = this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([graph]);\n });\n if (!componentsWithoutSavedGraph.length) {\n return graph;\n }\n\n // there are components that don't have the graph saved, create the graph by using Version objects of all flattened\n const lane = (await this.legacyScope.getCurrentLaneObject()) || undefined;\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane }\n );\n\n const allFlattened = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = this.resolveComponentIdFromBitId(dep.id);\n graph.setNode(new Node(depId.toString(), depId));\n graph.setEdge(new Edge(compId.toString(), depId.toString(), label));\n });\n };\n const componentsAndVersions = await this.legacyScope.getComponentsAndVersions(allFlattenedUniq);\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compBitId = component.toBitId().changeVersion(versionStr);\n const compId = this.resolveComponentIdFromBitId(compBitId);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n\n return graph;\n }\n\n private getSavedGraphOfComponentIfExist(component: Component): Graph<ComponentID, DepEdgeType> | null {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = consumerComponent.flattenedEdges;\n if (!flattenedEdges.length && consumerComponent.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: this.resolveComponentIdFromBitId(edge.source),\n target: this.resolveComponentIdFromBitId(edge.target),\n }));\n const nodes = consumerComponent.flattenedDependencies.map((depId) => this.resolveComponentIdFromBitId(depId));\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * import components into the scope.\n */\n async import(\n ids: ComponentID[],\n {\n useCache = true,\n throwIfNotExist = false,\n reFetchUnBuiltVersion = true,\n preferDependencyGraph = false,\n lane,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: boolean;\n throwIfNotExist?: boolean;\n /**\n * if the Version objects exists locally, but its `buildStatus` is Pending or Failed, reach the remote to find\n * whether the version was already built there.\n */\n reFetchUnBuiltVersion?: boolean;\n /**\n * if the component is on a lane, provide the lane object. the component will be fetched from the lane-scope and\n * not from the component-scope.\n */\n lane?: Lane;\n /**\n * if an external is missing and the remote has it with the dependency graph, don't fetch all its dependencies\n */\n preferDependencyGraph?: boolean;\n } = {}\n ): Promise<Component[]> {\n const legacyIds = ids.map((id) => {\n const legacyId = id._legacy;\n if (legacyId.scope === this.name) return legacyId.changeScope(null);\n return legacyId;\n });\n\n const withoutOwnScopeAndLocals = legacyIds.filter((id) => {\n return id.scope !== this.name && id.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentsIds.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n });\n\n return this.getMany(ids, throwIfNotExist);\n }\n\n async get(id: ComponentID): Promise<Component | undefined> {\n return this.componentLoader.get(id);\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n return this.componentLoader.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n return this.componentLoader.getManyRemoteComponents(ids);\n }\n\n /**\n * list all components in the scope.\n */\n async list(\n filter?: { offset: number; limit: number; namespaces?: string[] },\n includeCache = false,\n includeFromLanes = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `**/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n return this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n }\n\n /**\n * for now, list of invalid components are mostly useful for the workspace.\n * in the future, this can return components that failed to load in the scope due to objects file\n * corruption or similar issues.\n */\n async listInvalid() {\n return [];\n }\n\n /**\n * get ids of all scope components.\n * @param includeCache whether or not include components that their scope-name is different than the current scope-name\n */\n async listIds(includeCache = false, includeFromLanes = false, patterns?: string[]): Promise<ComponentID[]> {\n const allModelComponents = await this.legacyScope.list();\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const cacheFilter = includeCache ? true : this.exists(modelComponent);\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n\n return cacheFilter && lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) =>\n ComponentID.fromLegacy(component.toBitIdWithLatestVersion(), component.scope || this.name)\n );\n if (patterns && patterns.length > 0) {\n ids = ids.filter((id) =>\n patterns?.some((pattern) => isMatchNamespacePatternItem(id.toStringWithoutVersion(), pattern).match)\n );\n }\n this.logger.debug(`scope listIds: total ${ids.length} components after filter scope`);\n return ids;\n }\n\n /**\n * Check if a specific id exist in the scope\n * @param componentId\n */\n async hasId(componentId: ComponentID, includeCache = false): Promise<boolean> {\n if (!includeCache && componentId.scope !== this.name) return false;\n const opts = {\n includeVersion: true,\n };\n\n return this.legacyScope.hasId(componentId._legacy, opts);\n }\n\n async hasIdNested(componentId: ComponentID, includeCache = false): Promise<boolean> {\n return this.hasId(componentId, includeCache);\n }\n\n /**\n * determine whether a component exists in the scope.\n */\n exists(modelComponent: ModelComponent) {\n return modelComponent.scope === this.name;\n }\n\n async getMany(ids: ComponentID[], throwIfNotExist = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n return throwIfNotExist ? this.getOrThrow(id) : this.get(id);\n });\n const components = await componentsP;\n return compact(components);\n }\n\n /**\n * important! you probably want to use `getMany`, which returns the components from the scope.\n * this method loads all aspects of the loaded components. (which hurts performance)\n */\n async loadMany(ids: ComponentID[], lane?: Lane): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane));\n return compact(components);\n }\n\n /**\n * get a component and throw an exception if not found.\n * @param id component id\n */\n async getOrThrow(id: ComponentID): Promise<Component> {\n const component = await this.get(id);\n if (!component) throw new ComponentNotFound(id);\n return component;\n }\n\n /**\n * returns a specific state of a component.\n * @param id component ID.\n * @param hash state hash.\n */\n async getState(id: ComponentID, hash: string): Promise<State> {\n return this.componentLoader.getState(id, hash);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const ref = modelComponent.getRef(hash);\n if (!ref) throw new Error(`ref was not found: ${id.toString()} with tag ${hash}`);\n return this.componentLoader.getSnap(id, ref.toString());\n }\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id._legacy, shortHash, startsFrom);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.currentLaneId;\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * wether a component is soft-removed.\n * the version is required as it can be removed on a lane. in which case, the version is the head in the lane.\n */\n async isComponentRemoved(id: ComponentID): Promise<Boolean> {\n const version = id.version;\n if (!version) throw new Error(`isComponentRemoved expect to get version, got ${id.toString()}`);\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | ComponentID | BitId): Promise<ComponentID> {\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n const component = await this.legacyScope.loadModelComponentByIdStr(idStr);\n const getIdToCheck = () => {\n if (component) return idStr; // component exists in the scope with the scope-name.\n if (idStr.startsWith(`${this.name}/`)) {\n // component with the full name doesn't exist in the scope, it might be locally tagged\n return idStr.replace(`${this.name}/`, '');\n }\n return idStr;\n };\n const IdToCheck = getIdToCheck();\n const legacyId = await this.legacyScope.getParsedId(IdToCheck);\n return this.resolveComponentIdFromBitId(legacyId);\n }\n\n private resolveComponentIdFromBitId(id: BitId) {\n return id.hasScope() ? ComponentID.fromLegacy(id) : ComponentID.fromLegacy(id, this.name);\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | BitId>) {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency, which supports also negation and list of patterns.\n */\n async byPattern(patterns: string[], scope = '**'): Promise<Component[]> {\n const patternsWithScope = patterns.map((pattern) => `${scope}/${pattern || '**'}`);\n\n const ids = await this.listIds(true, false, patternsWithScope);\n\n const components = await this.getMany(ids);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n const exists = await this.hasId(id, true);\n if (exists) return [id];\n if (throwForNoMatch) throw new BitError(`unable to find \"${pattern}\" in the scope`);\n return [];\n }\n const ids = await this.listIds(true);\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n // todo: move this to somewhere else (where?)\n filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n const patterns = pattern\n .split(',')\n .map((p) => p.trim())\n .map((p) => p.split('@')[0]); // no need for the version\n if (patterns.every((p) => p.startsWith('!'))) {\n // otherwise it'll never match anything. don't use \".push()\". it must be the first item in the array.\n patterns.unshift('**');\n }\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id.toStringWithoutVersion(), id._legacy.toStringWithoutVersion()];\n const idsFiltered = ids.filter((id) => multimatch(idsToCheck(id), patterns).length);\n if (throwForNoMatch && !idsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return idsFiltered;\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n async resumeExport(exportId: string, remotes: string[]): Promise<string[]> {\n return resumeExport(this.legacyScope, exportId, remotes);\n }\n\n async resolveId(id: string): Promise<ComponentID> {\n const legacyId = await this.legacyScope.getParsedId(id);\n return ComponentID.fromLegacy(legacyId);\n }\n\n // TODO: add new API for this\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n\n /**\n * list all component ids from a remote-scope\n */\n async listRemoteScope(scopeName: string): Promise<ComponentID[]> {\n const remotes = await this._legacyRemotes();\n const remote = await remotes.resolve(scopeName, this.legacyScope);\n const results = await remote.list();\n return results.map(({ id }) => ComponentID.fromLegacy(id));\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id._legacy);\n } catch (err) {\n // in case the component is missing locally, this.get imports it.\n return (await this.get(id))?.state._consumer;\n }\n }\n\n /**\n * get a component and load its aspect\n */\n async load(id: ComponentID, lane?: Lane): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n const aspectIds = component.state.aspects.ids;\n // load components from type aspects as aspects.\n // important! previously, this was running for any aspect, not only apps. (the if statement was `this.aspectLoader.isAspectComponent(component)`)\n // Ran suggests changing it and if it breaks something, we'll document is and fix it.\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if (envsData?.data?.services || envsData?.data?.self) {\n aspectIds.push(component.id.toString());\n }\n await this.loadAspects(aspectIds, true, id.toString(), lane);\n\n return component;\n }\n\n async loadComponentsAspect(component: Component) {\n const aspectIds = component.state.aspects.ids;\n await this.loadAspects(aspectIds, true, component.id.toString());\n }\n\n async addAspectsFromConfigObject(component: Component, configObject: Record<string, any>) {\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n component.state._consumer.extensions,\n ]).filterRemovedExtensions();\n component.state._consumer.extensions = extensionDataList;\n }\n\n public async createAspectListFromExtensionDataList(extensionDataList: ExtensionDataList) {\n const entries = await Promise.all(extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry)));\n return this.componentExtension.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n async isModified(): Promise<boolean> {\n return false;\n }\n\n async write() {\n // no-op (it's relevant for the workspace only)\n }\n\n /**\n * declare the slots of scope extension.\n */\n static slots = [\n Slot.withType<OnPostPut>(),\n Slot.withType<OnPostDelete>(),\n Slot.withType<OnPostExport>(),\n Slot.withType<OnPostObjectsPersist>(),\n Slot.withType<OnPreFetchObjects>(),\n ];\n static runtime = MainRuntime;\n\n static dependencies = [\n ComponentAspect,\n UIAspect,\n GraphqlAspect,\n CLIAspect,\n IsolatorAspect,\n AspectLoaderAspect,\n ExpressAspect,\n LoggerAspect,\n EnvsAspect,\n DependencyResolverAspect,\n ];\n\n static defaultConfig: ScopeConfig = {\n httpTimeOut: 600000,\n };\n\n static async provider(\n [componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain\n ],\n config: ScopeConfig,\n [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n return undefined;\n }\n\n const logger = loggerMain.createLogger(ScopeAspect.id);\n const scope = new ScopeMain(\n harmony,\n legacyScope,\n componentExt,\n config,\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver\n );\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\n cli.register(new ScopeCmd());\n\n const onPutHook = async (ids: string[], lanes: Lane[], authData?: AuthData): Promise<void> => {\n logger.debug(`onPutHook, started. (${ids.length} components)`);\n scope.componentLoader.clearCache();\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postPutSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: authData };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPutHook, completed. (${ids.length} components)`);\n };\n\n const getAuthData = (): AuthData | undefined => {\n const token = Http.getToken();\n return token ? { type: DEFAULT_AUTH_TYPE, credentials: token } : undefined;\n };\n\n const onPostExportHook = async (ids: BitId[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postExportSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPostExportHook, completed. (${ids.length} components)`);\n };\n\n const onPostObjectsPersistHook = async (): Promise<void> => {\n logger.debug(`onPostObjectsPersistHook, started`);\n const fns = postObjectsPersistSlot.values();\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(undefined, metadata)));\n logger.debug(`onPostObjectsPersistHook, completed`);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n // @ts-ignore - @ran to implement the missing functions and remove it\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAUA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAA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"}
1
+ {"version":3,"names":["ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","isolator","aspectLoader","logger","envs","dependencyResolver","globalConfig","componentLoader","ScopeComponentLoader","name","icon","backgroundIconColor","description","path","isLegacy","isGlobalScope","GLOBAL_SCOPE","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","Object","keys","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","push","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","getAspectCapsulePath","shouldUseHashForCapsules","getManyByLegacy","mapSeries","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","builderDataMapToLegacyOnTagResults","builderDataComponentMap","builderDataToLegacyExtension","builderData","existingBuilder","state","aspects","get","BuilderAspect","legacy","builderExtension","ExtensionDataEntry","undefined","data","toArray","_legacy","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnPostObjectsPersist","postObjectsPersistFn","fetch","persist","options","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","watchScopeInternalFiles","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","pathsToWatch","watcher","chokidar","watch","on","join","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","length","comp","getMany","allFlattened","_consumer","getAllFlattenedDependencies","flat","allFlattenedUniq","BitIds","uniqFromArray","scopeImporter","importMany","allFlattenedCompIds","resolveMultipleComponentIds","dependencies","allComponents","graph","Graph","forEach","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","addEdges","compId","label","depId","resolveComponentIdFromBitId","componentsAndVersions","getComponentsAndVersions","versionStr","compBitId","toBitId","devDependencies","extensionDependencies","consumerComponent","flattenedEdges","flattenedDependencies","edges","edge","source","target","nodes","node","type","useCache","throwIfNotExist","preferDependencyGraph","legacyIds","legacyId","scope","changeScope","withoutOwnScopeAndLocals","filter","hasScope","ComponentsIds","fromArray","cache","throwForDependencyNotFound","getRemoteComponent","getManyRemoteComponents","includeCache","includeFromLanes","patternsWithScope","namespaces","pattern","componentsIds","listIds","limit","slice","offset","listInvalid","patterns","allModelComponents","filterByCacheAndLanes","modelComponent","cacheFilter","exists","lanesFilter","hasHead","modelComponentsToList","fromLegacy","toBitIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","idsWithoutEmpty","compact","componentsP","getOrThrow","loadMany","load","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","loadComponentLogs","getStagedConfig","currentLaneId","StagedConfig","isComponentRemoved","versionObj","loadVersion","isRemoved","BitId","idStr","loadModelComponentByIdStr","getIdToCheck","IdToCheck","getParsedId","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","split","p","trim","every","unshift","idsToCheck","idsFiltered","multimatch","NoIdMatchPattern","getExactVersionBySemverRange","range","versions","listVersions","semver","maxSatisfying","includePrerelease","resumeExport","exportId","remotes","resolveId","_legacyRemotes","getScopeRemotes","listRemoteScope","scopeName","remote","resolve","results","getLegacyMinimal","getConsumerComponent","aspectIds","appData","appName","envsData","EnvsAspect","services","self","loadComponentsAspect","addAspectsFromConfigObject","configObject","extensionsFromConfigObject","ExtensionDataList","fromConfigObject","extensionDataList","mergeConfigs","extensions","filterRemovedExtensions","createAspectListFromExtensionDataList","entries","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","isModified","write","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","loadScopeIfExist","cwd","createLogger","ScopeAspect","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","ScopeCmd","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","DependencyResolverAspect","GlobalConfigAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { RawBuilderData, BuilderAspect } from '@teambit/builder';\nimport { AspectLoaderAspect, AspectDefinition } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain, ComponentMap, ResolveAspectsOptions } from '@teambit/component';\nimport {\n Component,\n ComponentAspect,\n ComponentFactory,\n ComponentID,\n Snap,\n State,\n AspectEntry,\n} from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds, BitIds as ComponentsIds } from '@teambit/legacy/dist/bit-id';\nimport { ModelComponent, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Repository } from '@teambit/legacy/dist/scope/objects';\nimport LegacyScope, { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';\nimport { loadScopeIfExist } from '@teambit/legacy/dist/scope/scope-loader';\nimport { PersistOptions } from '@teambit/legacy/dist/scope/types';\nimport { ExportPersist, PostSign } from '@teambit/legacy/dist/scope/actions';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { getScopeRemotes } from '@teambit/legacy/dist/scope/scope-remotes';\nimport { Remotes } from '@teambit/legacy/dist/remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport chokidar from 'chokidar';\nimport { Types } from '@teambit/legacy/dist/scope/object-registrar';\nimport { FETCH_OPTIONS } from '@teambit/legacy/dist/api/scope/lib/fetch';\nimport { ObjectList } from '@teambit/legacy/dist/scope/objects/object-list';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { Http, DEFAULT_AUTH_TYPE, AuthData, getAuthDataFromHeader } from '@teambit/legacy/dist/scope/network/http/http';\nimport { remove } from '@teambit/legacy/dist/api/scope';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { resumeExport } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport { GLOBAL_SCOPE } from '@teambit/legacy/dist/constants';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { compact, slice, difference } from 'lodash';\nimport { ComponentNotFound } from './exceptions';\nimport { ScopeAspect } from './scope.aspect';\nimport { scopeSchema } from './scope.graphql';\nimport { ScopeUIRoot } from './scope.ui-root';\nimport { PutRoute, FetchRoute, ActionRoute, DeleteRoute } from './routes';\nimport { ScopeComponentLoader } from './scope-component-loader';\nimport { ScopeCmd } from './scope-cmd';\nimport { StagedConfig } from './staged-config';\nimport { NoIdMatchPattern } from './exceptions/no-id-match-pattern';\nimport { ScopeAspectsLoader, ScopeLoadAspectsOptions } from './scope-aspects-loader';\n\ntype RemoteEventMetadata = { auth?: AuthData; headers?: {} };\ntype RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;\ntype OnPostPutData = { ids: ComponentID[]; lanes: Lane[] };\ntype OnPostDeleteData = { ids: ComponentID[] };\ntype OnPreFetchObjectData = { ids: string[]; fetchOptions: FETCH_OPTIONS };\n\ntype OnPostPut = RemoteEvent<OnPostPutData>;\ntype OnPostExport = RemoteEvent<OnPostPutData>;\ntype OnPostDelete = RemoteEvent<OnPostDeleteData>;\ntype OnPostObjectsPersist = RemoteEvent<undefined>;\ntype OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;\n\nexport type OnPostPutSlot = SlotRegistry<OnPostPut>;\nexport type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;\nexport type OnPostExportSlot = SlotRegistry<OnPostExport>;\nexport type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;\nexport type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n};\n\nexport class ScopeMain implements ComponentFactory {\n componentLoader: ScopeComponentLoader;\n constructor(\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n /**\n * legacy scope\n */\n readonly legacyScope: LegacyScope,\n\n /**\n * component extension.\n */\n readonly componentExtension: ComponentMain,\n\n /**\n * slot registry for subscribing to build\n */\n\n readonly config: ScopeConfig,\n\n private postPutSlot: OnPostPutSlot,\n\n private postDeleteSlot: OnPostDeleteSlot,\n\n private postExportSlot: OnPostExportSlot,\n\n private postObjectsPersist: OnPostObjectsPersistSlot,\n\n public preFetchObjects: OnPreFetchObjectsSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private globalConfig: GlobalConfigMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * name of the scope\n */\n get name(): string {\n return this.legacyScope.name;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get backgroundIconColor(): string | undefined {\n return this.config.backgroundIconColor;\n }\n\n get description(): string | undefined {\n return this.config.description;\n }\n\n get path(): string {\n return this.legacyScope.path;\n }\n\n get isLegacy(): boolean {\n return this.legacyScope.isLegacy;\n }\n\n get isGlobalScope(): boolean {\n return this.path === GLOBAL_SCOPE;\n }\n\n // We need to reload the aspects with their new version since:\n // during get many by legacy, we go load component which in turn go to getEnv\n // get env validates that the env written on the component is really exist by checking the envs slot registry\n // when we load here, it's env version in the aspect list already has the new version in case the env itself is being tagged\n // so we are search for the env in the registry with the new version number\n // but since the env only registered during the on load of the bit process (before the tag) it's version in the registry is only the old one\n // once we reload them we will have it registered with the new version as well\n async reloadAspectsWithNewVersion(components: ConsumerComponent[]): Promise<void> {\n const host = this.componentExtension.getHost();\n\n // Return only aspects that defined on components but not in the root config file (workspace.jsonc/scope.jsonc)\n const getUserAspectsIdsWithoutRootIds = (): string[] => {\n const allUserAspectIds = this.aspectLoader.getUserAspects();\n const rootIds = Object.keys(this.harmony.config.toObject());\n const diffIds = difference(allUserAspectIds, rootIds);\n return diffIds;\n };\n\n // Based on the list of components to be tagged return those who are loaded to harmony with their used version\n const getAspectsByPreviouslyUsedVersion = async (): Promise<string[]> => {\n const harmonyIds = getUserAspectsIdsWithoutRootIds();\n const aspectsIds: string[] = [];\n const aspectsP = components.map(async (component) => {\n const newId = await host.resolveComponentId(component.id);\n if (\n component.previouslyUsedVersion &&\n component.version &&\n component.previouslyUsedVersion !== component.version\n ) {\n const newIdWithPreviouslyUsedVersion = newId.changeVersion(component.previouslyUsedVersion);\n if (harmonyIds.includes(newIdWithPreviouslyUsedVersion.toString())) {\n aspectsIds.push(newId.toString());\n }\n }\n });\n await Promise.all(aspectsP);\n return aspectsIds;\n };\n\n const idsToLoad = await getAspectsByPreviouslyUsedVersion();\n await host.loadAspects(idsToLoad, false, 'scope.reloadAspectsWithNewVersion');\n }\n\n loadAspects(\n ids: string[],\n throwOnError?: boolean | undefined,\n neededFor?: string | undefined,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.loadAspects(ids, throwOnError, neededFor, lane, opts);\n }\n resolveAspects(\n runtimeName?: string | undefined,\n componentIds?: ComponentID[] | undefined,\n opts?: ResolveAspectsOptions | undefined\n ): Promise<AspectDefinition[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getResolvedAspects(components, opts);\n }\n\n getAspectCapsulePath() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getAspectCapsulePath();\n }\n\n shouldUseHashForCapsules() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.shouldUseHashForCapsules();\n }\n\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]> {\n return mapSeries(components, async (component) => this.getFromConsumerComponent(component));\n }\n\n getScopeAspectsLoader(): ScopeAspectsLoader {\n const scopeAspectsLoader = new ScopeAspectsLoader(\n this,\n this.aspectLoader,\n this.envs,\n this.isolator,\n this.logger,\n this.globalConfig\n );\n return scopeAspectsLoader;\n }\n\n clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n this.legacyScope.objects.clearCache();\n }\n\n builderDataMapToLegacyOnTagResults(builderDataComponentMap: ComponentMap<RawBuilderData>): LegacyOnTagResult[] {\n const builderDataToLegacyExtension = (component: Component, builderData: RawBuilderData) => {\n const existingBuilder = component.state.aspects.get(BuilderAspect.id)?.legacy;\n const builderExtension = existingBuilder || new ExtensionDataEntry(undefined, undefined, BuilderAspect.id);\n builderExtension.data = builderData;\n return builderExtension;\n };\n return builderDataComponentMap.toArray().map(([component, builderData]) => ({\n id: component.id._legacy,\n builderData: builderDataToLegacyExtension(component, builderData),\n }));\n }\n\n /**\n * register to the post-export slot.\n */\n onPostPut(postPutFn: OnPostPut) {\n this.postPutSlot.register(postPutFn);\n return this;\n }\n\n /**\n * register to the post-delete slot.\n */\n onPostDelete(postDeleteFn: OnPostDelete) {\n this.postDeleteSlot.register(postDeleteFn);\n return this;\n }\n\n /**\n * register to the post-export slot.\n */\n registerOnPostExport(postExportFn: OnPostExport) {\n this.postExportSlot.register(postExportFn);\n return this;\n }\n\n registerOnPreFetchObjects(preFetchObjectsFn: OnPreFetchObjects) {\n this.preFetchObjects.register(preFetchObjectsFn);\n return this;\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * Will fetch a list of components into the current scope.\n * This will only fetch the object and won't write the files to the actual FS\n *\n * @param {ComponentsIds} ids list of ids to fetch\n */\n fetch(ids: ComponentsIds) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * This function will get a component and sealed it's current state into the scope\n *\n * @param {Component[]} components A list of components to seal with specific persist options (such as message and version number)\n * @param {PersistOptions} persistGeneralOptions General persistence options such as verbose\n */\n persist(components: Component[], options: PersistOptions) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n async delete(\n { ids, force, lanes }: { ids: string[]; force: boolean; lanes: boolean },\n headers?: Record<string, any>\n ) {\n const authData = getAuthDataFromHeader(headers?.authorization);\n const result = await remove({\n path: this.path,\n ids,\n force,\n lanes,\n });\n\n const fns = this.postDeleteSlot.values();\n const metadata = { auth: authData, headers };\n const componentIds = lanes ? [] : ids.map((id) => ComponentID.fromString(id));\n await mapSeries(fns, async (fn) => {\n try {\n await fn({ ids: componentIds }, metadata);\n } catch (err: any) {\n this.logger.error('failed to run delete slot', err);\n }\n });\n return result;\n }\n\n /**\n * for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:\n * 1. scope-index (.bit/index.json file).\n * 2. remote-refs (.bit/refs/*).\n * it's possible that other commands (e.g. `bit import`) modified these files, while these processes are running.\n * Because these data are kept in memory, they're not up to date anymore.\n */\n async watchScopeInternalFiles() {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const pathsToWatch = [scopeIndexFile, remoteLanesDir];\n const watcher = chokidar.watch(pathsToWatch);\n watcher.on('ready', () => {\n this.logger.debug(`watchSystemFiles has started, watching ${pathsToWatch.join(', ')}`);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n if (filePath === scopeIndexFile) {\n this.logger.debug('scope index file has been changed, reloading it');\n await this.legacyScope.objects.reLoadScopeIndex();\n } else if (filePath.startsWith(remoteLanesDir)) {\n this.legacyScope.objects.remoteLanes.removeFromCacheByFilePath(filePath);\n } else {\n this.logger.error(\n 'unknown file has been changed, please check why it is watched by scope.watchSystemFiles',\n filePath\n );\n }\n });\n }\n\n async toObjectList(types: Types): Promise<ObjectList> {\n const objects = await this.legacyScope.objects.list(types);\n return ObjectList.fromBitObjects(objects);\n }\n\n // TODO: temporary compiler workaround - discuss this with david.\n private toJs(str: string) {\n if (str.endsWith('.ts')) return str.replace('.ts', '.js');\n return str;\n }\n\n async getGraph(ids?: ComponentID[]): Promise<Graph<Component, string>> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const allFlattened = components.map((component) => component.state._consumer.getAllFlattenedDependencies()).flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importMany({ ids: allFlattenedUniq });\n const allFlattenedCompIds = await this.resolveMultipleComponentIds(allFlattenedUniq);\n const dependencies = await this.getMany(allFlattenedCompIds);\n const allComponents: Component[] = [...components, ...dependencies];\n\n // build the graph\n const graph = new Graph<Component, string>();\n allComponents.forEach((comp) => graph.setNode(new Node(comp.id.toString(), comp)));\n await Promise.all(\n allComponents.map(async (comp) => {\n const deps = await this.dependencyResolver.getComponentDependencies(comp);\n deps.forEach((dep) => {\n const depCompId = dep.componentId;\n if (!graph.hasNode(depCompId.toString())) {\n throw new Error(`scope.getGraph: missing node of ${depCompId.toString()}`);\n }\n graph.setEdge(new Edge(comp.id.toString(), depCompId.toString(), dep.lifecycle));\n });\n })\n );\n return graph;\n }\n\n async getGraphIds(ids?: ComponentID[]): Promise<CompIdGraph> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const graph = new Graph<ComponentID, DepEdgeType>();\n const componentsWithoutSavedGraph: Component[] = [];\n\n // try to add from saved graph\n components.forEach((component) => {\n const compGraph = this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([graph]);\n });\n if (!componentsWithoutSavedGraph.length) {\n return graph;\n }\n\n // there are components that don't have the graph saved, create the graph by using Version objects of all flattened\n const lane = (await this.legacyScope.getCurrentLaneObject()) || undefined;\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane }\n );\n\n const allFlattened = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = this.resolveComponentIdFromBitId(dep.id);\n graph.setNode(new Node(depId.toString(), depId));\n graph.setEdge(new Edge(compId.toString(), depId.toString(), label));\n });\n };\n const componentsAndVersions = await this.legacyScope.getComponentsAndVersions(allFlattenedUniq);\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compBitId = component.toBitId().changeVersion(versionStr);\n const compId = this.resolveComponentIdFromBitId(compBitId);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n\n return graph;\n }\n\n private getSavedGraphOfComponentIfExist(component: Component): Graph<ComponentID, DepEdgeType> | null {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = consumerComponent.flattenedEdges;\n if (!flattenedEdges.length && consumerComponent.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: this.resolveComponentIdFromBitId(edge.source),\n target: this.resolveComponentIdFromBitId(edge.target),\n }));\n const nodes = consumerComponent.flattenedDependencies.map((depId) => this.resolveComponentIdFromBitId(depId));\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * import components into the scope.\n */\n async import(\n ids: ComponentID[],\n {\n useCache = true,\n throwIfNotExist = false,\n reFetchUnBuiltVersion = true,\n preferDependencyGraph = false,\n lane,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: boolean;\n throwIfNotExist?: boolean;\n /**\n * if the Version objects exists locally, but its `buildStatus` is Pending or Failed, reach the remote to find\n * whether the version was already built there.\n */\n reFetchUnBuiltVersion?: boolean;\n /**\n * if the component is on a lane, provide the lane object. the component will be fetched from the lane-scope and\n * not from the component-scope.\n */\n lane?: Lane;\n /**\n * if an external is missing and the remote has it with the dependency graph, don't fetch all its dependencies\n */\n preferDependencyGraph?: boolean;\n } = {}\n ): Promise<Component[]> {\n const legacyIds = ids.map((id) => {\n const legacyId = id._legacy;\n if (legacyId.scope === this.name) return legacyId.changeScope(null);\n return legacyId;\n });\n\n const withoutOwnScopeAndLocals = legacyIds.filter((id) => {\n return id.scope !== this.name && id.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentsIds.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n });\n\n return this.getMany(ids, throwIfNotExist);\n }\n\n async get(id: ComponentID): Promise<Component | undefined> {\n return this.componentLoader.get(id);\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n return this.componentLoader.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n return this.componentLoader.getManyRemoteComponents(ids);\n }\n\n /**\n * list all components in the scope.\n */\n async list(\n filter?: { offset: number; limit: number; namespaces?: string[] },\n includeCache = false,\n includeFromLanes = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `**/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n return this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n }\n\n /**\n * for now, list of invalid components are mostly useful for the workspace.\n * in the future, this can return components that failed to load in the scope due to objects file\n * corruption or similar issues.\n */\n async listInvalid() {\n return [];\n }\n\n /**\n * get ids of all scope components.\n * @param includeCache whether or not include components that their scope-name is different than the current scope-name\n */\n async listIds(includeCache = false, includeFromLanes = false, patterns?: string[]): Promise<ComponentID[]> {\n const allModelComponents = await this.legacyScope.list();\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const cacheFilter = includeCache ? true : this.exists(modelComponent);\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n\n return cacheFilter && lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) =>\n ComponentID.fromLegacy(component.toBitIdWithLatestVersion(), component.scope || this.name)\n );\n if (patterns && patterns.length > 0) {\n ids = ids.filter((id) =>\n patterns?.some((pattern) => isMatchNamespacePatternItem(id.toStringWithoutVersion(), pattern).match)\n );\n }\n this.logger.debug(`scope listIds: total ${ids.length} components after filter scope`);\n return ids;\n }\n\n /**\n * Check if a specific id exist in the scope\n * @param componentId\n */\n async hasId(componentId: ComponentID, includeCache = false): Promise<boolean> {\n if (!includeCache && componentId.scope !== this.name) return false;\n const opts = {\n includeVersion: true,\n };\n\n return this.legacyScope.hasId(componentId._legacy, opts);\n }\n\n async hasIdNested(componentId: ComponentID, includeCache = false): Promise<boolean> {\n return this.hasId(componentId, includeCache);\n }\n\n /**\n * determine whether a component exists in the scope.\n */\n exists(modelComponent: ModelComponent) {\n return modelComponent.scope === this.name;\n }\n\n async getMany(ids: ComponentID[], throwIfNotExist = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n return throwIfNotExist ? this.getOrThrow(id) : this.get(id);\n });\n const components = await componentsP;\n return compact(components);\n }\n\n /**\n * important! you probably want to use `getMany`, which returns the components from the scope.\n * this method loads all aspects of the loaded components. (which hurts performance)\n */\n async loadMany(ids: ComponentID[], lane?: Lane): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane));\n return compact(components);\n }\n\n /**\n * get a component and throw an exception if not found.\n * @param id component id\n */\n async getOrThrow(id: ComponentID): Promise<Component> {\n const component = await this.get(id);\n if (!component) throw new ComponentNotFound(id);\n return component;\n }\n\n /**\n * returns a specific state of a component.\n * @param id component ID.\n * @param hash state hash.\n */\n async getState(id: ComponentID, hash: string): Promise<State> {\n return this.componentLoader.getState(id, hash);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const ref = modelComponent.getRef(hash);\n if (!ref) throw new Error(`ref was not found: ${id.toString()} with tag ${hash}`);\n return this.componentLoader.getSnap(id, ref.toString());\n }\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id._legacy, shortHash, startsFrom);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.currentLaneId;\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * wether a component is soft-removed.\n * the version is required as it can be removed on a lane. in which case, the version is the head in the lane.\n */\n async isComponentRemoved(id: ComponentID): Promise<Boolean> {\n const version = id.version;\n if (!version) throw new Error(`isComponentRemoved expect to get version, got ${id.toString()}`);\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | ComponentID | BitId): Promise<ComponentID> {\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n const component = await this.legacyScope.loadModelComponentByIdStr(idStr);\n const getIdToCheck = () => {\n if (component) return idStr; // component exists in the scope with the scope-name.\n if (idStr.startsWith(`${this.name}/`)) {\n // component with the full name doesn't exist in the scope, it might be locally tagged\n return idStr.replace(`${this.name}/`, '');\n }\n return idStr;\n };\n const IdToCheck = getIdToCheck();\n const legacyId = await this.legacyScope.getParsedId(IdToCheck);\n return this.resolveComponentIdFromBitId(legacyId);\n }\n\n private resolveComponentIdFromBitId(id: BitId) {\n return id.hasScope() ? ComponentID.fromLegacy(id) : ComponentID.fromLegacy(id, this.name);\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | BitId>) {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency, which supports also negation and list of patterns.\n */\n async byPattern(patterns: string[], scope = '**'): Promise<Component[]> {\n const patternsWithScope = patterns.map((pattern) => `${scope}/${pattern || '**'}`);\n\n const ids = await this.listIds(true, false, patternsWithScope);\n\n const components = await this.getMany(ids);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n const exists = await this.hasId(id, true);\n if (exists) return [id];\n if (throwForNoMatch) throw new BitError(`unable to find \"${pattern}\" in the scope`);\n return [];\n }\n const ids = await this.listIds(true);\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n // todo: move this to somewhere else (where?)\n filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n const patterns = pattern\n .split(',')\n .map((p) => p.trim())\n .map((p) => p.split('@')[0]); // no need for the version\n if (patterns.every((p) => p.startsWith('!'))) {\n // otherwise it'll never match anything. don't use \".push()\". it must be the first item in the array.\n patterns.unshift('**');\n }\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id.toStringWithoutVersion(), id._legacy.toStringWithoutVersion()];\n const idsFiltered = ids.filter((id) => multimatch(idsToCheck(id), patterns).length);\n if (throwForNoMatch && !idsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return idsFiltered;\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n async resumeExport(exportId: string, remotes: string[]): Promise<string[]> {\n return resumeExport(this.legacyScope, exportId, remotes);\n }\n\n async resolveId(id: string): Promise<ComponentID> {\n const legacyId = await this.legacyScope.getParsedId(id);\n return ComponentID.fromLegacy(legacyId);\n }\n\n // TODO: add new API for this\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n\n /**\n * list all component ids from a remote-scope\n */\n async listRemoteScope(scopeName: string): Promise<ComponentID[]> {\n const remotes = await this._legacyRemotes();\n const remote = await remotes.resolve(scopeName, this.legacyScope);\n const results = await remote.list();\n return results.map(({ id }) => ComponentID.fromLegacy(id));\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id._legacy);\n } catch (err) {\n // in case the component is missing locally, this.get imports it.\n return (await this.get(id))?.state._consumer;\n }\n }\n\n /**\n * get a component and load its aspect\n */\n async load(id: ComponentID, lane?: Lane): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n const aspectIds = component.state.aspects.ids;\n // load components from type aspects as aspects.\n // important! previously, this was running for any aspect, not only apps. (the if statement was `this.aspectLoader.isAspectComponent(component)`)\n // Ran suggests changing it and if it breaks something, we'll document is and fix it.\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if (envsData?.data?.services || envsData?.data?.self) {\n aspectIds.push(component.id.toString());\n }\n await this.loadAspects(aspectIds, true, id.toString(), lane);\n\n return component;\n }\n\n async loadComponentsAspect(component: Component) {\n const aspectIds = component.state.aspects.ids;\n await this.loadAspects(aspectIds, true, component.id.toString());\n }\n\n async addAspectsFromConfigObject(component: Component, configObject: Record<string, any>) {\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n component.state._consumer.extensions,\n ]).filterRemovedExtensions();\n component.state._consumer.extensions = extensionDataList;\n }\n\n public async createAspectListFromExtensionDataList(extensionDataList: ExtensionDataList) {\n const entries = await Promise.all(extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry)));\n return this.componentExtension.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n async isModified(): Promise<boolean> {\n return false;\n }\n\n async write() {\n // no-op (it's relevant for the workspace only)\n }\n\n /**\n * declare the slots of scope extension.\n */\n static slots = [\n Slot.withType<OnPostPut>(),\n Slot.withType<OnPostDelete>(),\n Slot.withType<OnPostExport>(),\n Slot.withType<OnPostObjectsPersist>(),\n Slot.withType<OnPreFetchObjects>(),\n ];\n static runtime = MainRuntime;\n\n static dependencies = [\n ComponentAspect,\n UIAspect,\n GraphqlAspect,\n CLIAspect,\n IsolatorAspect,\n AspectLoaderAspect,\n ExpressAspect,\n LoggerAspect,\n EnvsAspect,\n DependencyResolverAspect,\n GlobalConfigAspect,\n ];\n\n static defaultConfig: ScopeConfig = {\n httpTimeOut: 600000,\n };\n\n static async provider(\n [componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver, globalConfig]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain,\n GlobalConfigMain\n ],\n config: ScopeConfig,\n [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n return undefined;\n }\n\n const logger = loggerMain.createLogger(ScopeAspect.id);\n const scope = new ScopeMain(\n harmony,\n legacyScope,\n componentExt,\n config,\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver,\n globalConfig\n );\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\n cli.register(new ScopeCmd());\n\n const onPutHook = async (ids: string[], lanes: Lane[], authData?: AuthData): Promise<void> => {\n logger.debug(`onPutHook, started. (${ids.length} components)`);\n scope.componentLoader.clearCache();\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postPutSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: authData };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPutHook, completed. (${ids.length} components)`);\n };\n\n const getAuthData = (): AuthData | undefined => {\n const token = Http.getToken();\n return token ? { type: DEFAULT_AUTH_TYPE, credentials: token } : undefined;\n };\n\n const onPostExportHook = async (ids: BitId[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postExportSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPostExportHook, completed. (${ids.length} components)`);\n };\n\n const onPostObjectsPersistHook = async (): Promise<void> => {\n logger.debug(`onPostObjectsPersistHook, started`);\n const fns = postObjectsPersistSlot.values();\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(undefined, metadata)));\n logger.debug(`onPostObjectsPersistHook, completed`);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n // @ts-ignore - @ran to implement the missing functions and remove it\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAUA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAA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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/scope",
3
- "version": "0.0.1077",
3
+ "version": "0.0.1079",
4
4
  "homepage": "https://bit.cloud/teambit/scope/scope",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.scope",
8
8
  "name": "scope",
9
- "version": "0.0.1077"
9
+ "version": "0.0.1079"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -32,54 +32,55 @@
32
32
  "@teambit/base-ui.utils.composer": "1.0.0",
33
33
  "@teambit/explorer.ui.gallery.component-grid": "0.0.496",
34
34
  "@teambit/ui-foundation.ui.tree.drawer": "0.0.512",
35
- "@teambit/scope.models.scope-model": "0.0.383",
36
- "@teambit/scope.ui.hooks.scope-context": "0.0.383",
37
- "@teambit/aspect-loader": "0.0.1077",
38
- "@teambit/cli": "0.0.725",
39
- "@teambit/compiler": "0.0.1077",
40
- "@teambit/component": "0.0.1077",
41
- "@teambit/envs": "0.0.1077",
35
+ "@teambit/scope.models.scope-model": "0.0.385",
36
+ "@teambit/scope.ui.hooks.scope-context": "0.0.385",
37
+ "@teambit/aspect-loader": "0.0.1079",
38
+ "@teambit/cli": "0.0.727",
39
+ "@teambit/compiler": "0.0.1079",
40
+ "@teambit/component": "0.0.1079",
41
+ "@teambit/envs": "0.0.1079",
42
+ "@teambit/global-config": "0.0.729",
42
43
  "@teambit/harmony.modules.requireable-component": "0.0.491",
43
- "@teambit/isolator": "0.0.1077",
44
- "@teambit/logger": "0.0.818",
44
+ "@teambit/isolator": "0.0.1079",
45
+ "@teambit/logger": "0.0.820",
45
46
  "@teambit/bit-error": "0.0.402",
46
- "@teambit/builder": "0.0.1077",
47
- "@teambit/dependency-resolver": "0.0.1077",
48
- "@teambit/express": "0.0.823",
49
- "@teambit/graph": "0.0.1077",
50
- "@teambit/graphql": "0.0.1077",
51
- "@teambit/ui": "0.0.1077",
47
+ "@teambit/builder": "0.0.1079",
48
+ "@teambit/dependency-resolver": "0.0.1079",
49
+ "@teambit/express": "0.0.825",
50
+ "@teambit/graph": "0.0.1079",
51
+ "@teambit/graphql": "0.0.1079",
52
+ "@teambit/ui": "0.0.1079",
52
53
  "@teambit/workspace.modules.match-pattern": "0.0.498",
53
- "@teambit/component.ui.component-drawer": "0.0.284",
54
- "@teambit/lanes.hooks.use-lane-components": "0.0.188",
55
- "@teambit/lanes.hooks.use-lanes": "0.0.189",
56
- "@teambit/lanes.ui.models.lanes-model": "0.0.142",
57
- "@teambit/ui-foundation.ui.side-bar": "0.0.801",
58
- "@teambit/command-bar": "0.0.1077",
59
- "@teambit/component-tree": "0.0.865",
54
+ "@teambit/component.ui.component-drawer": "0.0.286",
55
+ "@teambit/lanes.hooks.use-lane-components": "0.0.190",
56
+ "@teambit/lanes.hooks.use-lanes": "0.0.191",
57
+ "@teambit/lanes.ui.models.lanes-model": "0.0.144",
58
+ "@teambit/ui-foundation.ui.side-bar": "0.0.803",
59
+ "@teambit/command-bar": "0.0.1079",
60
+ "@teambit/component-tree": "0.0.867",
60
61
  "@teambit/component.modules.component-url": "0.0.151",
61
- "@teambit/component.ui.component-filters.component-filter-context": "0.0.149",
62
- "@teambit/component.ui.component-filters.deprecate-filter": "0.0.149",
63
- "@teambit/component.ui.component-filters.env-filter": "0.0.155",
64
- "@teambit/component.ui.component-filters.show-main-filter": "0.0.142",
65
- "@teambit/sidebar": "0.0.1077",
62
+ "@teambit/component.ui.component-filters.component-filter-context": "0.0.151",
63
+ "@teambit/component.ui.component-filters.deprecate-filter": "0.0.151",
64
+ "@teambit/component.ui.component-filters.env-filter": "0.0.157",
65
+ "@teambit/component.ui.component-filters.show-main-filter": "0.0.144",
66
+ "@teambit/sidebar": "0.0.1079",
66
67
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.497",
67
68
  "@teambit/ui-foundation.ui.menu": "0.0.497",
68
69
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501",
69
- "@teambit/lane-id": "0.0.242",
70
+ "@teambit/lane-id": "0.0.244",
70
71
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.499",
71
- "@teambit/scope.ui.hooks.use-scope": "0.0.388",
72
+ "@teambit/scope.ui.hooks.use-scope": "0.0.390",
72
73
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.207",
73
74
  "@teambit/ui-foundation.ui.corner": "0.0.508",
74
75
  "@teambit/ui-foundation.ui.full-loader": "0.0.495",
75
76
  "@teambit/ui-foundation.ui.hooks.use-is-mobile": "0.0.188",
76
77
  "@teambit/ui-foundation.ui.top-bar": "0.0.506",
78
+ "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.133",
79
+ "@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.133",
77
80
  "@teambit/explorer.ui.gallery.component-card": "0.0.507",
78
81
  "@teambit/preview.ui.preview-placeholder": "0.0.496",
79
82
  "@teambit/scope.ui.empty-scope": "0.0.504",
80
- "@teambit/scope.ui.scope-details": "0.0.515",
81
- "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.133",
82
- "@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.133"
83
+ "@teambit/scope.ui.scope-details": "0.0.515"
83
84
  },
84
85
  "devDependencies": {
85
86
  "@types/react": "^17.0.8",
@@ -96,7 +97,7 @@
96
97
  },
97
98
  "peerDependencies": {
98
99
  "react-router-dom": "^6.0.0",
99
- "@teambit/legacy": "1.0.505",
100
+ "@teambit/legacy": "1.0.507",
100
101
  "react": "^16.8.0 || ^17.0.0",
101
102
  "react-dom": "^16.8.0 || ^17.0.0"
102
103
  },