@teambit/scope 1.0.1186 → 1.0.1188

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/8891be5ad/teambit.scope_scope@1.0.1186/dist/scope.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.1186/dist/scope.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.1188/dist/scope.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.1188/dist/scope.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -39,16 +39,16 @@ function _lodash() {
39
39
  };
40
40
  return data;
41
41
  }
42
- function _cli() {
43
- const data = require("@teambit/cli");
44
- _cli = function () {
42
+ function _harmonyModules() {
43
+ const data = require("@teambit/harmony.modules.runtimes");
44
+ _harmonyModules = function () {
45
45
  return data;
46
46
  };
47
47
  return data;
48
48
  }
49
- function _harmonyModules() {
49
+ function _harmonyModules2() {
50
50
  const data = require("@teambit/harmony.modules.requireable-component");
51
- _harmonyModules = function () {
51
+ _harmonyModules2 = function () {
52
52
  return data;
53
53
  };
54
54
  return data;
@@ -192,7 +192,7 @@ needed-for: ${neededFor || '<unknown>'}`);
192
192
  isolateOpts, this.scope.legacyScope);
193
193
  const capsules = network.seedersCapsules;
194
194
  return capsules.map(capsule => {
195
- return new (_harmonyModules().RequireableComponent)(capsule.component, async () => {
195
+ return new (_harmonyModules2().RequireableComponent)(capsule.component, async () => {
196
196
  // Honor the workspace's scope-trust hook if registered. Absent in
197
197
  // pure scope (remote-server) contexts.
198
198
  const guard = this.scope.getAspectLoadGuard();
@@ -200,12 +200,12 @@ needed-for: ${neededFor || '<unknown>'}`);
200
200
  const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);
201
201
  if (plugins.has()) {
202
202
  await this.compileIfNoDist(capsule, capsule.component);
203
- return plugins.load(_cli().MainRuntime.name);
203
+ return plugins.load(_harmonyModules().MainRuntime.name);
204
204
  }
205
205
  // eslint-disable-next-line global-require, import/no-dynamic-require
206
206
  const aspect = require(capsule.path);
207
207
  const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');
208
- const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, _cli().MainRuntime.name);
208
+ const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, _harmonyModules().MainRuntime.name);
209
209
  const runtimePath = scopeRuntime || mainRuntime;
210
210
  // eslint-disable-next-line global-require, import/no-dynamic-require
211
211
  if (runtimePath) require(runtimePath);
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_legacy","_lodash","_cli","_harmonyModules","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","configStore","loadAspects","ids","throwOnError","neededFor","lane","opts","callId","Math","floor","random","loggerPrefix","info","join","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","map","component","getEnvId","envId","isCoreEnv","groupBy","id","includes","manifests","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","loadExtensionsByManifests","scopePluginsManifests","allManifests","compact","manifest","visited","optsWithDefaults","loadCustomEnvs","nonVisitedId","customEnvsIds","undefined","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","runtime","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","localAspects","loadAspectFromPath","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","reason","getMany","getResolvedAspects","isolateOpts","getIsolateOpts","network","isolateComponents","c","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","guard","getAspectLoadGuard","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","compiler","env","getEnv","getCompiler","err","message","distDir","DEFAULT_DIST_DIRNAME","distExists","existsSync","compiledCode","Promise","all","filesystem","files","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","flat","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","globalConfig","getConfig","CFG_USE_DATED_CAPSULES","shouldCacheLockFileOnly","CFG_CACHE_LOCK_ONLY_CAPSULES","getAspectCapsulePath","defaultPath","isGlobalScope","CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR","CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR","shouldUseHashForCapsules","getAspectsPackageManager","aspectsPackageManager","getAspectsNodeLinker","aspectsNodeLinker","resolveUserAspects","runtimeName","userAspectsIds","aspectDefs","resolveAspects","getCapsule","Error","localPath","aspectFilePath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","localResolved","resolveLocalAspects","withoutLocalAspects","aspectId","find","localAspect","toStringWithoutVersion","userAspectsDefs","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs","overrideOpts","installOptions","packageManagerConfigRootDir","context","workspaceName","defaultsDeep","getDefaultIsolateOpts","useHash","useDatedDirs","cacheLockFileOnly","nodeLinker","datedDirId","baseDir","packageManager","seedersOnly","includeFromNestedHosts","host","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","aspects","exports"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport type { Lane } from '@teambit/objects';\nimport { existsSync } from 'fs-extra';\nimport { join } from 'path';\nimport {\n DEFAULT_DIST_DIRNAME,\n CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR,\n CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR,\n CFG_USE_DATED_CAPSULES,\n CFG_CACHE_LOCK_ONLY_CAPSULES,\n} from '@teambit/legacy.constants';\nimport type { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport type { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy, defaultsDeep } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport type { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport type { Logger } from '@teambit/logger';\nimport type { EnvsMain } from '@teambit/envs';\nimport type { NodeLinker } from '@teambit/dependency-resolver';\nimport type { ScopeMain } from './scope.main.runtime';\nimport type { ConfigStoreMain } from '@teambit/config-store';\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 constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger,\n private configStore: ConfigStoreMain\n ) {}\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 loadCustomEnvs?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n const optsWithDefaults = { loadCustomEnvs: false, ...opts };\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 // This is usually not required, right now it required when signing aspects with custom envs.\n // if you see another case where it's required, please consult @Gilad before passing it as true\n // as it might have performance implications (like creating unnecessary capsules for aspects that are not needed\n // during bit create for example, like loading the env of the env (aka bitdev.general/envs/bit-env) when\n // loading the component's env.)\n if (optsWithDefaults.loadCustomEnvs) {\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\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 }\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, optsWithDefaults);\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, opts);\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 = uniq(this.scope.localAspects.concat(localAspects));\n // load local aspects for debugging purposes.\n await this.aspectLoader.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n lane,\n reason: 'for loading aspects from the scope',\n });\n const components = await this.scope.getMany(componentIds);\n\n return components;\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 isolateOpts = this.getIsolateOpts(opts);\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 isolateOpts,\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 // Honor the workspace's scope-trust hook if registered. Absent in\n // pure scope (remote-server) contexts.\n const guard = this.scope.getAspectLoadGuard();\n if (guard) await guard(capsule.component.id);\n\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 return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n let compiler: Compiler | undefined;\n try {\n const env = this.envs.getEnv(component);\n compiler = env.env.getCompiler();\n } catch (err: any) {\n this.logger.info(\n `compileIfNoDist: failed loading compiler for ${component.id.toString()} in capsule ${capsule.path}, error: ${\n err.message\n }`\n );\n }\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n // an aspect whose env has no compiler, e.g. a JS env using the empty-env, runs as its source. the\n // aspect-loader resolves its plugin files from the source then, see pluginFileResolver\n if (!compiler) return;\n\n const compiledCode = (\n await Promise.all(\n component.filesystem.files.flatMap(async (file) => {\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ] as TranspileFileOutputOneFile[];\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 ).flat();\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 {\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 shouldUseDatedCapsules(): boolean {\n const globalConfig = this.configStore.getConfig(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.configStore.getConfig(CFG_CACHE_LOCK_ONLY_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n getAspectCapsulePath() {\n const defaultPath = `${this.scope.path}-aspects`;\n if (this.scope.isGlobalScope) {\n return this.configStore.getConfig(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.configStore.getConfig(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.configStore.getConfig(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.configStore.getConfig(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n getAspectsPackageManager(): string | undefined {\n return this.scope.aspectsPackageManager;\n }\n\n getAspectsNodeLinker(): NodeLinker | undefined {\n return this.scope.aspectsNodeLinker;\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 isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(userAspectsIds, isolateOpts, this.scope.legacyScope);\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: ComponentID[];\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 const localResolved = await this.aspectLoader.resolveLocalAspects(this.scope.localAspects, runtimeName);\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.toStringWithoutVersion();\n });\n });\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\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 getIsolateOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const overrideOpts = {\n skipIfExists: opts?.skipIfExists ?? true,\n installOptions: {\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n },\n context: {\n workspaceName: opts?.workspaceName,\n },\n };\n const isolateOpts = defaultsDeep(overrideOpts, this.getDefaultIsolateOpts());\n return isolateOpts;\n }\n\n getDefaultIsolateOpts() {\n const useHash = this.shouldUseHashForCapsules();\n const useDatedDirs = this.shouldUseDatedCapsules();\n const cacheLockFileOnly = this.shouldCacheLockFileOnly();\n const nodeLinker = this.getAspectsNodeLinker();\n\n const opts = {\n datedDirId: this.scope.name,\n baseDir: this.getAspectCapsulePath(),\n useHash,\n packageManager: this.getAspectsPackageManager(),\n nodeLinker,\n useDatedDirs,\n cacheLockFileOnly,\n skipIfExists: true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n host: this.scope,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n },\n };\n return opts;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_legacy","_lodash","_harmonyModules","_harmonyModules2","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","configStore","loadAspects","ids","throwOnError","neededFor","lane","opts","callId","Math","floor","random","loggerPrefix","info","join","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","map","component","getEnvId","envId","isCoreEnv","groupBy","id","includes","manifests","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","loadExtensionsByManifests","scopePluginsManifests","allManifests","compact","manifest","visited","optsWithDefaults","loadCustomEnvs","nonVisitedId","customEnvsIds","undefined","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","runtime","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","localAspects","loadAspectFromPath","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","reason","getMany","getResolvedAspects","isolateOpts","getIsolateOpts","network","isolateComponents","c","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","guard","getAspectLoadGuard","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","compiler","env","getEnv","getCompiler","err","message","distDir","DEFAULT_DIST_DIRNAME","distExists","existsSync","compiledCode","Promise","all","filesystem","files","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","flat","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","globalConfig","getConfig","CFG_USE_DATED_CAPSULES","shouldCacheLockFileOnly","CFG_CACHE_LOCK_ONLY_CAPSULES","getAspectCapsulePath","defaultPath","isGlobalScope","CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR","CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR","shouldUseHashForCapsules","getAspectsPackageManager","aspectsPackageManager","getAspectsNodeLinker","aspectsNodeLinker","resolveUserAspects","runtimeName","userAspectsIds","aspectDefs","resolveAspects","getCapsule","Error","localPath","aspectFilePath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","localResolved","resolveLocalAspects","withoutLocalAspects","aspectId","find","localAspect","toStringWithoutVersion","userAspectsDefs","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs","overrideOpts","installOptions","packageManagerConfigRootDir","context","workspaceName","defaultsDeep","getDefaultIsolateOpts","useHash","useDatedDirs","cacheLockFileOnly","nodeLinker","datedDirId","baseDir","packageManager","seedersOnly","includeFromNestedHosts","host","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","aspects","exports"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport type { Lane } from '@teambit/objects';\nimport { existsSync } from 'fs-extra';\nimport { join } from 'path';\nimport {\n DEFAULT_DIST_DIRNAME,\n CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR,\n CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR,\n CFG_USE_DATED_CAPSULES,\n CFG_CACHE_LOCK_ONLY_CAPSULES,\n} from '@teambit/legacy.constants';\nimport type { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport type { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy, defaultsDeep } from 'lodash';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport type { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport type { Logger } from '@teambit/logger';\nimport type { EnvsMain } from '@teambit/envs';\nimport type { NodeLinker } from '@teambit/dependency-resolver';\nimport type { ScopeMain } from './scope.main.runtime';\nimport type { ConfigStoreMain } from '@teambit/config-store';\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 constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger,\n private configStore: ConfigStoreMain\n ) {}\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 loadCustomEnvs?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n const optsWithDefaults = { loadCustomEnvs: false, ...opts };\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 // This is usually not required, right now it required when signing aspects with custom envs.\n // if you see another case where it's required, please consult @Gilad before passing it as true\n // as it might have performance implications (like creating unnecessary capsules for aspects that are not needed\n // during bit create for example, like loading the env of the env (aka bitdev.general/envs/bit-env) when\n // loading the component's env.)\n if (optsWithDefaults.loadCustomEnvs) {\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\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 }\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, optsWithDefaults);\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, opts);\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 = uniq(this.scope.localAspects.concat(localAspects));\n // load local aspects for debugging purposes.\n await this.aspectLoader.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n lane,\n reason: 'for loading aspects from the scope',\n });\n const components = await this.scope.getMany(componentIds);\n\n return components;\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 isolateOpts = this.getIsolateOpts(opts);\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 isolateOpts,\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 // Honor the workspace's scope-trust hook if registered. Absent in\n // pure scope (remote-server) contexts.\n const guard = this.scope.getAspectLoadGuard();\n if (guard) await guard(capsule.component.id);\n\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 return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n let compiler: Compiler | undefined;\n try {\n const env = this.envs.getEnv(component);\n compiler = env.env.getCompiler();\n } catch (err: any) {\n this.logger.info(\n `compileIfNoDist: failed loading compiler for ${component.id.toString()} in capsule ${capsule.path}, error: ${\n err.message\n }`\n );\n }\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n // an aspect whose env has no compiler, e.g. a JS env using the empty-env, runs as its source. the\n // aspect-loader resolves its plugin files from the source then, see pluginFileResolver\n if (!compiler) return;\n\n const compiledCode = (\n await Promise.all(\n component.filesystem.files.flatMap(async (file) => {\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ] as TranspileFileOutputOneFile[];\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 ).flat();\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 {\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 shouldUseDatedCapsules(): boolean {\n const globalConfig = this.configStore.getConfig(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.configStore.getConfig(CFG_CACHE_LOCK_ONLY_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n getAspectCapsulePath() {\n const defaultPath = `${this.scope.path}-aspects`;\n if (this.scope.isGlobalScope) {\n return this.configStore.getConfig(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.configStore.getConfig(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.configStore.getConfig(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.configStore.getConfig(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n getAspectsPackageManager(): string | undefined {\n return this.scope.aspectsPackageManager;\n }\n\n getAspectsNodeLinker(): NodeLinker | undefined {\n return this.scope.aspectsNodeLinker;\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 isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(userAspectsIds, isolateOpts, this.scope.legacyScope);\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: ComponentID[];\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 const localResolved = await this.aspectLoader.resolveLocalAspects(this.scope.localAspects, runtimeName);\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.toStringWithoutVersion();\n });\n });\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\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 getIsolateOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const overrideOpts = {\n skipIfExists: opts?.skipIfExists ?? true,\n installOptions: {\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n },\n context: {\n workspaceName: opts?.workspaceName,\n },\n };\n const isolateOpts = defaultsDeep(overrideOpts, this.getDefaultIsolateOpts());\n return isolateOpts;\n }\n\n getDefaultIsolateOpts() {\n const useHash = this.shouldUseHashForCapsules();\n const useDatedDirs = this.shouldUseDatedCapsules();\n const cacheLockFileOnly = this.shouldCacheLockFileOnly();\n const nodeLinker = this.getAspectsNodeLinker();\n\n const opts = {\n datedDirId: this.scope.name,\n baseDir: this.getAspectCapsulePath(),\n useHash,\n packageManager: this.getAspectsPackageManager(),\n nodeLinker,\n useDatedDirs,\n cacheLockFileOnly,\n skipIfExists: true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n host: this.scope,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n },\n };\n return opts;\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,MAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAUA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,gBAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,eAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,iBAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,gBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAC,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAiB/E,MAAM8B,kBAAkB,CAAC;EAC9BC,WAAWA,CACDC,KAAgB,EAChBC,YAA8B,EAC9BC,IAAc,EACdC,QAAsB,EACtBC,MAAc,EACdC,WAA4B,EACpC;IAAA,KANQL,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,IAAc,GAAdA,IAAc;IAAA,KACdC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,MAAc,GAAdA,MAAc;IAAA,KACdC,WAA4B,GAA5BA,WAA4B;EACnC;EAEH,MAAMC,WAAWA,CACfC,GAAa,EACbC,YAAY,GAAG,KAAK,EACpBC,SAAkB,EAClBC,IAAW,EACXC,IAA8B,EACX;IACnB,IAAI,CAACJ,GAAG,CAAC3B,MAAM,EAAE,OAAO,EAAE;IAC1B;IACA,MAAMgC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAMC,YAAY,GAAG,IAAIJ,MAAM,gBAAgB;IAC/C,IAAI,CAACR,MAAM,CAACa,IAAI,CAAC,GAAGD,YAAY,YAAYT,GAAG,CAAC3B,MAAM;AAC1D,OAAO2B,GAAG,CAACW,IAAI,CAAC,IAAI,CAAC;AACrB,cAAcT,SAAS,IAAI,WAAW,EAAE,CAAC;IACrC,MAAMU,OAAO,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAACb,GAAG,EAAEG,IAAI,CAAC;IAClE,IAAI,CAACN,MAAM,CAACa,IAAI,CAAC,GAAGD,YAAY,uDAAuDG,OAAO,CAACjB,IAAI,EAAEtB,MAAM,IAAI,CAAC,EAAE,CAAC;IACnH,MAAMyC,gBAAgB,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACH,OAAO,CAACjB,IAAI,EAAEM,YAAY,EAAEE,IAAI,EAAEC,IAAI,CAAC;IACtG,IAAI,CAACP,MAAM,CAACa,IAAI,CACd,GAAGD,YAAY,wDAAwDG,OAAO,CAACI,KAAK,EAAE3C,MAAM,IAAI,CAAC,EACnG,CAAC;IACD,MAAM4C,iBAAiB,GAAG,MAAM,IAAI,CAACF,0BAA0B,CAACH,OAAO,CAACI,KAAK,EAAEf,YAAY,EAAEE,IAAI,EAAEC,IAAI,CAAC;IACxG,IAAI,CAACP,MAAM,CAACqB,KAAK,CAAC,GAAGT,YAAY,yBAAyB,CAAC;IAC3D,OAAOK,gBAAgB,CAACK,MAAM,CAACF,iBAAiB,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE,MAAMJ,4BAA4BA,CAACb,GAAa,EAAEG,IAAW,EAAkD;IAC7G,MAAMiB,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACrB,GAAG,EAAEG,IAAI,CAAC;IAC5D,MAAMmB,OAAO,GAAG,IAAAC,cAAI,EAClBH,UAAU,CACPI,GAAG,CAAEC,SAAS,IAAK,IAAI,CAAC9B,IAAI,CAAC+B,QAAQ,CAACD,SAAS,CAAC,CAAC,CACjD3D,MAAM,CAAE6D,KAAK,IAAK,CAAC,IAAI,CAACjC,YAAY,CAACkC,SAAS,CAACD,KAAK,CAAC,CAC1D,CAAC;IACD,MAAMf,OAAO,GAAG,IAAAiB,iBAAO,EAAC7B,GAAG,EAAG8B,EAAE,IAAK;MACnC,IAAIR,OAAO,CAACS,QAAQ,CAACD,EAAE,CAAC,EAAE,OAAO,MAAM;MACvC,OAAO,OAAO;IAChB,CAAC,CAAC;IACF,OAAOlB,OAAO;EAChB;EAEA,MAAcG,0BAA0BA,CACtCf,GAAa,GAAG,EAAE,EAClBC,YAAY,GAAG,KAAK,EACpBE,IAAW,EACXC,IAA8B,EACX;IACnB,MAAM;MAAE4B,SAAS,EAAEC,cAAc;MAAEC;IAAoB,CAAC,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAChGnC,GAAG,EACH,EAAE,EACFC,YAAY,EACZE,IAAI,EACJC,IACF,CAAC;IACD,MAAM,IAAI,CAACV,YAAY,CAAC0C,yBAAyB,CAACH,cAAc,CAAC;IACjE,MAAM;MAAED,SAAS,EAAEK;IAAsB,CAAC,GAAG,MAAM,IAAI,CAACF,4BAA4B,CAClFD,mBAAmB,EACnB,EAAE,EACFjC,YAAY,EACZE,IAAI,EACJC,IACF,CAAC;IACD,MAAM,IAAI,CAACV,YAAY,CAAC0C,yBAAyB,CAACC,qBAAqB,CAAC;IACxE,MAAMC,YAAY,GAAGL,cAAc,CAACd,MAAM,CAACkB,qBAAqB,CAAC;IACjE,OAAO,IAAAE,iBAAO,EAACD,YAAY,CAACd,GAAG,CAAEgB,QAAQ,IAAKA,QAAQ,CAACV,EAAE,CAAC,CAAC;EAC7D;EAEA,MAAMK,4BAA4BA,CAChCnC,GAAa,EACbyC,OAAiB,GAAG,EAAE,EACtBxC,YAAY,GAAG,KAAK,EACpBE,IAAW,EACXC,IAIC,GAAG,CAAC,CAAC,EACqE;IAC3EJ,GAAG,GAAG,IAAAuB,cAAI,EAACvB,GAAG,CAAC;IACf,MAAM0C,gBAAgB,GAAAvE,aAAA;MAAKwE,cAAc,EAAE;IAAK,GAAKvC,IAAI,CAAE;IAC3D,IAAI,CAACP,MAAM,CAACqB,KAAK,CAAC,uCAAuClB,GAAG,CAACW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1E,MAAMiC,YAAY,GAAG5C,GAAG,CAAClC,MAAM,CAAEgE,EAAE,IAAK,CAACW,OAAO,CAACV,QAAQ,CAACD,EAAE,CAAC,CAAC;IAC9D,IAAI,CAACc,YAAY,CAACvE,MAAM,EAAE;MACxB,OAAO;QAAE2D,SAAS,EAAE,EAAE;QAAEE,mBAAmB,EAAE;MAAG,CAAC;IACnD;IACA,MAAMd,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACuB,YAAY,EAAEzC,IAAI,CAAC;IACrE;IACA;IACA;IACA;IACA;IACA,IAAIuC,gBAAgB,CAACC,cAAc,EAAE;MACnC;MACA,MAAME,aAAa,GAAGzB,UAAU,CAC7BI,GAAG,CAAEC,SAAS,IAAK,IAAI,CAAC9B,IAAI,CAAC+B,QAAQ,CAACD,SAAS,CAAC,CAAC,CACjD3D,MAAM,CAAE6D,KAAK,IAAK,CAAC,IAAI,CAACjC,YAAY,CAACkC,SAAS,CAACD,KAAK,CAAC,CAAC;;MAEzD;MACA,MAAM,IAAI,CAACZ,0BAA0B,CAAC8B,aAAa,EAAEC,SAAS,EAAE3C,IAAI,CAAC;IACvE;IACAsC,OAAO,CAACxE,IAAI,CAAC,GAAG2E,YAAY,CAAC;IAC7B,MAAMZ,SAAS,GAAG,MAAM,IAAI,CAACe,cAAc,CAAC3B,UAAU,EAAEnB,YAAY,EAAEyC,gBAAgB,CAAC;IACvF,MAAMR,mBAAmB,GAAG,IAAAK,iBAAO,EACjCP,SAAS,CAACR,GAAG,CAAC,CAACgB,QAAQ,EAAEQ,KAAK,KAAK;MACjC,IAAI,IAAI,CAACtD,YAAY,CAACuD,aAAa,CAACT,QAAQ,CAAC,EAAE,OAAOM,SAAS;MAC/D;MACA,OAAO1B,UAAU,CAAC4B,KAAK,CAAC,CAAClB,EAAE,CAACoB,QAAQ,CAAC,CAAC;IACxC,CAAC,CACH,CAAC;IAED,MAAMC,UAA6C,GAAG,EAAE;IACxD,MAAM,IAAAC,qBAAS,EAACpB,SAAS,EAAE,MAAOQ,QAAQ,IAAK;MAC7CW,UAAU,CAAClF,IAAI,CAAC,IAAIuE,QAAQ,CAACa,YAAY,IAAI,EAAE,CAAC,CAAC;MACjD;MACA,CAACb,QAAQ,CAACc,SAAS,IAAI,EAAE,EAAEhF,OAAO,CAAEiF,OAAO,IAAK;QAC9CJ,UAAU,CAAClF,IAAI,CAAC,IAAIsF,OAAO,CAACF,YAAY,IAAI,EAAE,CAAC,CAAC;MAClD,CAAC,CAAC;MACF,MAAMG,MAAM,GAAGL,UAAU,CAAC3B,GAAG,CAAEiC,CAAC,IAAKA,CAAC,CAAC3B,EAAE,CAAC,CAAChE,MAAM,CAAEgE,EAAE,IAAKA,EAAE,CAAa;MACzE,IAAI,CAACjC,MAAM,CAACqB,KAAK,CACf,qCAAqCsB,QAAQ,CAACV,EAAE,IAAI,WAAW,WAAW0B,MAAM,CAACnF,MAAM,KAAKmF,MAAM,CAAC7C,IAAI,CAAC,IAAI,CAAC,EAC/G,CAAC;MACD,MAAM;QAAEqB,SAAS,EAAE0B;MAAO,CAAC,GAAG,MAAM,IAAI,CAACvB,4BAA4B,CAACqB,MAAM,EAAEf,OAAO,EAAExC,YAAY,EAAEE,IAAI,EAAEC,IAAI,CAAC;MAChH4B,SAAS,CAAC/D,IAAI,CAAC,GAAGyF,MAAM,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;MAAE1B,SAAS;MAAEE;IAAoB,CAAC;EAC3C;EAEA,MAAcb,mBAAmBA,CAACrB,GAAa,EAAEG,IAAW,EAAwB;IAClF,MAAMwD,YAAY,GAAG3D,GAAG,CAAClC,MAAM,CAAEgE,EAAE,IAAK,CAAC,IAAI,CAACpC,YAAY,CAACkE,cAAc,CAAC9B,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC6B,YAAY,CAACtF,MAAM,EAAE,OAAO,EAAE;IACnC,MAAMwF,oBAAoB,GAAG,IAAI,CAACnE,YAAY,CAACoE,gBAAgB,CAAC,CAAC;IACjE,MAAMC,cAAwB,GAAG,IAAAC,oBAAU,EAAChE,GAAG,EAAE6D,oBAAoB,CAAC;IACtE,MAAMI,SAAS,GAAGF,cAAc,CAACjG,MAAM,CAAEgE,EAAE,IAAK,CAACA,EAAE,CAACoC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC1E;IACA,MAAMC,YAAY,GAAGnE,GAAG,CAAClC,MAAM,CAAEgE,EAAE,IAAKA,EAAE,CAACoC,UAAU,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,CAACzE,KAAK,CAAC0E,YAAY,GAAG,IAAA5C,cAAI,EAAC,IAAI,CAAC9B,KAAK,CAAC0E,YAAY,CAAChD,MAAM,CAACgD,YAAY,CAAC,CAAC;IAC5E;IACA,MAAM,IAAI,CAACzE,YAAY,CAAC0E,kBAAkB,CAACD,YAAY,CAAC;IACxD,MAAME,YAAY,GAAG,MAAM,IAAI,CAAC5E,KAAK,CAAC6E,2BAA2B,CAACL,SAAS,CAAC;IAC5E,IAAI,CAACI,YAAY,IAAI,CAACA,YAAY,CAAChG,MAAM,EAAE,OAAO,EAAE;IACpD,MAAM,IAAI,CAACoB,KAAK,CAAC8E,MAAM,CAACF,YAAY,EAAE;MACpCG,qBAAqB,EAAE,KAAK;MAC5BrE,IAAI;MACJsE,MAAM,EAAE;IACV,CAAC,CAAC;IACF,MAAMrD,UAAU,GAAG,MAAM,IAAI,CAAC3B,KAAK,CAACiF,OAAO,CAACL,YAAY,CAAC;IAEzD,OAAOjD,UAAU;EACnB;EAEA,MAAMuD,kBAAkBA,CACtBvD,UAAuB,EACvBhB,IAA+F,EAC9D;IACjC,IAAI,CAACgB,UAAU,IAAI,CAACA,UAAU,CAAC/C,MAAM,EAAE,OAAO,EAAE;IAChD,MAAMuG,WAAW,GAAG,IAAI,CAACC,cAAc,CAACzE,IAAI,CAAC;IAC7C,MAAM0E,OAAO,GAAG,MAAM,IAAI,CAAClF,QAAQ,CAACmF,iBAAiB,CACnD3D,UAAU,CAACI,GAAG,CAAEwD,CAAC,IAAKA,CAAC,CAAClD,EAAE,CAAC;IAC3B;IACA8C,WAAW,EACX,IAAI,CAACnF,KAAK,CAACwF,WACb,CAAC;IAED,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,eAAe;IAExC,OAAOD,QAAQ,CAAC1D,GAAG,CAAE4D,OAAO,IAAK;MAC/B,OAAO,KAAIC,uCAAoB,EAC7BD,OAAO,CAAC3D,SAAS,EACjB,YAAY;QACV;QACA;QACA,MAAM6D,KAAK,GAAG,IAAI,CAAC7F,KAAK,CAAC8F,kBAAkB,CAAC,CAAC;QAC7C,IAAID,KAAK,EAAE,MAAMA,KAAK,CAACF,OAAO,CAAC3D,SAAS,CAACK,EAAE,CAAC;QAE5C,MAAM0D,OAAO,GAAG,IAAI,CAAC9F,YAAY,CAAC+F,UAAU,CAACL,OAAO,CAAC3D,SAAS,EAAE2D,OAAO,CAACM,IAAI,CAAC;QAC7E,IAAIF,OAAO,CAACG,GAAG,CAAC,CAAC,EAAE;UACjB,MAAM,IAAI,CAACC,eAAe,CAACR,OAAO,EAAEA,OAAO,CAAC3D,SAAS,CAAC;UACtD,OAAO+D,OAAO,CAACK,IAAI,CAACC,6BAAW,CAACC,IAAI,CAAC;QACvC;QACA;QACA,MAAMC,MAAM,GAAGnJ,OAAO,CAACuI,OAAO,CAACM,IAAI,CAAC;QACpC,MAAMO,YAAY,GAAG,MAAM,IAAI,CAACvG,YAAY,CAACwG,cAAc,CAACd,OAAO,CAAC3D,SAAS,EAAE2D,OAAO,CAACM,IAAI,EAAE,OAAO,CAAC;QACrG,MAAMS,WAAW,GAAG,MAAM,IAAI,CAACzG,YAAY,CAACwG,cAAc,CAACd,OAAO,CAAC3D,SAAS,EAAE2D,OAAO,CAACM,IAAI,EAAEI,6BAAW,CAACC,IAAI,CAAC;QAC7G,MAAMK,WAAW,GAAGH,YAAY,IAAIE,WAAW;QAC/C;QACA,IAAIC,WAAW,EAAEvJ,OAAO,CAACuJ,WAAW,CAAC;QACrC,OAAOJ,MAAM;MACf,CAAC,EACDZ,OACF,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,MAAcQ,eAAeA,CAACR,OAAgB,EAAE3D,SAAoB,EAAE;IACpE,IAAI4E,QAA8B;IAClC,IAAI;MACF,MAAMC,GAAG,GAAG,IAAI,CAAC3G,IAAI,CAAC4G,MAAM,CAAC9E,SAAS,CAAC;MACvC4E,QAAQ,GAAGC,GAAG,CAACA,GAAG,CAACE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB,IAAI,CAAC5G,MAAM,CAACa,IAAI,CACd,gDAAgDe,SAAS,CAACK,EAAE,CAACoB,QAAQ,CAAC,CAAC,eAAekC,OAAO,CAACM,IAAI,YAChGe,GAAG,CAACC,OAAO,EAEf,CAAC;IACH;IACA,MAAMC,OAAO,GAAGN,QAAQ,EAAEM,OAAO,IAAIC,8BAAoB;IACzD,MAAMC,UAAU,GAAG,IAAAC,qBAAU,EAAC,IAAAnG,YAAI,EAACyE,OAAO,CAACM,IAAI,EAAEiB,OAAO,CAAC,CAAC;IAC1D,IAAIE,UAAU,EAAE;IAChB;IACA;IACA,IAAI,CAACR,QAAQ,EAAE;IAEf,MAAMU,YAAY,GAAG,CACnB,MAAMC,OAAO,CAACC,GAAG,CACfxF,SAAS,CAACyF,UAAU,CAACC,KAAK,CAACC,OAAO,CAAC,MAAOC,IAAI,IAAK;MACjD,IAAI,CAAChB,QAAQ,CAACiB,eAAe,CAACD,IAAI,CAAC3B,IAAI,CAAC,EAAE;QACxC,OAAO,CACL;UACE6B,UAAU,EAAEF,IAAI,CAACG,QAAQ,CAACtE,QAAQ,CAAC,MAAM,CAAC;UAC1CuE,UAAU,EAAEJ,IAAI,CAAC3B;QACnB,CAAC,CACF;MACH;MACA,IAAIW,QAAQ,CAACqB,aAAa,EAAE;QAC1B,OAAOrB,QAAQ,CAACqB,aAAa,CAACL,IAAI,CAACG,QAAQ,CAACtE,QAAQ,CAAC,MAAM,CAAC,EAAE;UAC5DyE,QAAQ,EAAEN,IAAI,CAAC3B,IAAI;UACnBkC,YAAY,EAAExC,OAAO,CAACM;QACxB,CAAC,CAAC;MACJ;MAEA,OAAO,EAAE;IACX,CAAC,CACH,CAAC,EACDmC,IAAI,CAAC,CAAC;IAER,MAAMb,OAAO,CAACC,GAAG,CACf,IAAA1E,iBAAO,EAACwE,YAAY,CAAC,CAACvF,GAAG,CAAEsG,YAAY,IAAK;MAC1C,MAAMpC,IAAI,GAAGW,QAAQ,CAAC0B,oBAAoB,CAACD,YAAY,CAACL,UAAU,CAAC;MACnE,OAAOrC,OAAO,EAAE4C,UAAU,CAACtC,IAAI,EAAEoC,YAAY,CAACP,UAAU,CAAC;IAC3D,CAAC,CACH,CAAC;EACH;EAEA,MAAcU,UAAUA,CAACC,gBAAsC,EAAE;IAC/D,IAAIA,gBAAgB,CAAC9C,OAAO,EAAE,OAAO,IAAI,CAACQ,eAAe,CAACsC,gBAAgB,CAAC9C,OAAO,EAAE8C,gBAAgB,CAACzG,SAAS,CAAC;IAC/G,OAAOqB,SAAS;EAClB;EAEA,MAAMC,cAAcA,CAClB3B,UAAuB,EACvBnB,YAAY,GAAG,KAAK,EACpBG,IAAsE,GAAG,CAAC,CAAC,EAC/B;IAC5C,MAAM+H,qBAAqB,GAAG,MAAM,IAAI,CAACxD,kBAAkB,CAACvD,UAAU,EAAEhB,IAAI,CAAC;IAC7E,IAAI,CAAC+H,qBAAqB,EAAE;MAC1B,OAAO,EAAE;IACX;IACA,IAAIC,KAAU;IACd,IAAIC,SAAS,GAAG,EAAE;IAClB,MAAMC,gBAAgB,GAAG,MAAOC,kBAA0C,IAAK;MAC7EH,KAAK,GAAGtF,SAAS;MACjB,IAAI;QACF,MAAMd,SAAS,GAAG,MAAM,IAAAoB,qBAAS,EAACmF,kBAAkB,EAAE,MAAOC,oBAAoB,IAAK;UACpF,IAAI;YACF,OAAO,MAAM,IAAI,CAAC9I,YAAY,CAAC+I,SAAS,CAACD,oBAAoB,CAAC;UAChE,CAAC,CAAC,OAAO/B,GAAQ,EAAE;YACjB4B,SAAS,GAAGG,oBAAoB,CAAC/G,SAAS,CAACK,EAAE,CAACoB,QAAQ,CAAC,CAAC;YACxD,IAAIuD,GAAG,CAACiC,IAAI,KAAK,kBAAkB,EAAE;cACnC,IAAI;gBACF,MAAM,IAAI,CAACT,UAAU,CAACO,oBAAoB,CAAC;gBAC3C,OAAO,MAAM,IAAI,CAAC9I,YAAY,CAAC+I,SAAS,CAACD,oBAAoB,CAAC;cAChE,CAAC,CAAC,OAAOG,MAAW,EAAE;gBACpBP,KAAK,GAAGO,MAAM;gBACd,MAAMA,MAAM;cACd;YACF;YACAP,KAAK,GAAG3B,GAAG;YACX,MAAMA,GAAG;UACX;QACF,CAAC,CAAC;QACF,OAAOzE,SAAS;MAClB,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF,CAAC;IACD,MAAMA,SAAS,GAAG,MAAMsG,gBAAgB,CAACH,qBAAqB,CAAC;IAC/D,IAAI,CAACC,KAAK,EAAE;MACV,OAAO,IAAA7F,iBAAO,EAACP,SAAS,CAAC;IAC3B;IACA,IAAIoG,KAAK,CAACM,IAAI,KAAK,kBAAkB,EAAE;MACrC,IAAI,CAAC7I,MAAM,CAAC+I,IAAI,CACd,+GACF,CAAC;MACD,MAAMC,oBAAoB,GAAG,MAAM,IAAI,CAAClE,kBAAkB,CAACvD,UAAU,EAAAjD,aAAA,CAAAA,aAAA,KAChEiC,IAAI;QACP0I,YAAY,EAAE;MAAK,EACpB,CAAC;MACF,MAAMC,aAAa,GAAG,MAAMT,gBAAgB,CAACO,oBAAoB,CAAC;MAClE,IAAI,CAACT,KAAK,EAAE;QACV,OAAO,IAAA7F,iBAAO,EAACwG,aAAa,CAAC;MAC/B;IACF;IAEA,IAAI,CAACrJ,YAAY,CAACsJ,2BAA2B,CAACZ,KAAK,EAAEC,SAAS,EAAEpI,YAAY,CAAC;IAC7E,OAAO,EAAE;EACX;EAEAgJ,sBAAsBA,CAAA,EAAY;IAChC,MAAMC,YAAY,GAAG,IAAI,CAACpJ,WAAW,CAACqJ,SAAS,CAACC,gCAAsB,CAAC;IACvE;IACA,OAAOF,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;EACzD;EAEAG,uBAAuBA,CAAA,EAAY;IACjC,MAAMH,YAAY,GAAG,IAAI,CAACpJ,WAAW,CAACqJ,SAAS,CAACG,sCAA4B,CAAC;IAC7E;IACA,OAAOJ,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;EACzD;EAEAK,oBAAoBA,CAAA,EAAG;IACrB,MAAMC,WAAW,GAAG,GAAG,IAAI,CAAC/J,KAAK,CAACiG,IAAI,UAAU;IAChD,IAAI,IAAI,CAACjG,KAAK,CAACgK,aAAa,EAAE;MAC5B,OAAO,IAAI,CAAC3J,WAAW,CAACqJ,SAAS,CAACO,oDAA0C,CAAC,IAAIF,WAAW;IAC9F;IACA,OAAO,IAAI,CAAC1J,WAAW,CAACqJ,SAAS,CAACQ,8CAAoC,CAAC,IAAIH,WAAW;EACxF;EAEAI,wBAAwBA,CAAA,EAAY;IAClC,IAAI,IAAI,CAACnK,KAAK,CAACgK,aAAa,EAAE;MAC5B,OAAO,CAAC,IAAI,CAAC3J,WAAW,CAACqJ,SAAS,CAACO,oDAA0C,CAAC;IAChF;IACA,OAAO,CAAC,IAAI,CAAC5J,WAAW,CAACqJ,SAAS,CAACQ,8CAAoC,CAAC;EAC1E;EAEAE,wBAAwBA,CAAA,EAAuB;IAC7C,OAAO,IAAI,CAACpK,KAAK,CAACqK,qBAAqB;EACzC;EAEAC,oBAAoBA,CAAA,EAA2B;IAC7C,OAAO,IAAI,CAACtK,KAAK,CAACuK,iBAAiB;EACrC;EAEA,MAAcC,kBAAkBA,CAC9BC,WAAoB,EACpBC,cAA8B,EAC9B/J,IAA4B,EACC;IAC7B,IAAI,CAAC+J,cAAc,IAAI,CAACA,cAAc,CAAC9L,MAAM,EAAE,OAAO,EAAE;IACxD,MAAM+C,UAAU,GAAG,MAAM,IAAI,CAAC3B,KAAK,CAACiF,OAAO,CAACyF,cAAc,CAAC;IAC3D,MAAMvF,WAAW,GAAG,IAAI,CAACC,cAAc,CAACzE,IAAI,CAAC;IAC7C,MAAM0E,OAAO,GAAG,MAAM,IAAI,CAAClF,QAAQ,CAACmF,iBAAiB,CAACoF,cAAc,EAAEvF,WAAW,EAAE,IAAI,CAACnF,KAAK,CAACwF,WAAW,CAAC;IAE1G,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,eAAe;IACxC,MAAMiF,UAAU,GAAG,MAAM,IAAI,CAAC1K,YAAY,CAAC2K,cAAc,CAACjJ,UAAU,EAAE,MAAOK,SAAS,IAAK;MACzF,MAAM2D,OAAO,GAAGF,QAAQ,CAACoF,UAAU,CAAC7I,SAAS,CAACK,EAAE,CAAC;MACjD,IAAI,CAACsD,OAAO,EAAE,MAAM,IAAImF,KAAK,CAAC,0BAA0B9I,SAAS,CAACK,EAAE,CAACoB,QAAQ,CAAC,CAAC,EAAE,CAAC;MAClF,MAAMsH,SAAS,GAAGpF,OAAO,CAACM,IAAI;MAC9B,MAAMU,WAAW,GAAG8D,WAAW,GAC3B,MAAM,IAAI,CAACxK,YAAY,CAACwG,cAAc,CAACzE,SAAS,EAAE+I,SAAS,EAAEN,WAAW,CAAC,GACzE,IAAI;MACR,MAAMO,cAAc,GAAG,MAAM,IAAI,CAAC/K,YAAY,CAACgL,iBAAiB,CAACjJ,SAAS,EAAE+I,SAAS,CAAC;MAEtF,IAAI,CAAC3K,MAAM,CAACqB,KAAK,CACf,2CAA2CO,SAAS,CAACK,EAAE,CAACoB,QAAQ,CAAC,CAAC,gBAAgBsH,SAAS,kBAAkBpE,WAAW,EAC1H,CAAC;MAED,OAAO;QACLtE,EAAE,EAAEsD,OAAO,CAAC3D,SAAS,CAACK,EAAE;QACxB6I,UAAU,EAAEH,SAAS;QACrBC,cAAc;QACdrE;MACF,CAAC;IACH,CAAC,CAAC;IACF,OAAOgE,UAAU;EACnB;EAEA,MAAMC,cAAcA,CAClBH,WAAoB,EACpB7F,YAA4B,EAC5BjE,IAA4B,EACC;IAC7B,MAAMwK,iBAAiB,GAAGvG,YAAY,EAAE7C,GAAG,CAAEM,EAAE,IAAKA,EAAE,CAACoB,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,CAACrD,MAAM,CAACqB,KAAK,CAAC,sCAAsCgJ,WAAW,mBAAmBU,iBAAiB,EAAE,CAAC;IAE1G,MAAMC,WAAkC,GAAG;MACzCC,WAAW,EAAE,KAAK;MAClBC,aAAa,EAAE,KAAK;MACpBC,eAAe,EAAE;IACnB,CAAC;IACD,MAAMC,UAAU,GAAA9M,aAAA,CAAAA,aAAA,KAAQ0M,WAAW,GAAKzK,IAAI,CAAE;IAC9C,MAAM8K,cAAc,GAAG,IAAI,CAACxL,YAAY,CAACoE,gBAAgB,CAAC,CAAC;IAC3D,IAAIqG,cAA6B;IACjC;IACA,IAAI9F,YAAY,IAAIA,YAAY,CAAChG,MAAM,EAAE;MACvC,MAAM8M,eAAe,GAAG,IAAAtJ,iBAAO,EAACwC,YAAY,EAAGvC,EAAE,IAAKoJ,cAAc,CAACnJ,QAAQ,CAACD,EAAE,CAACoB,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC7FiH,cAAc,GAAGgB,eAAe,CAACC,KAAK,IAAI,EAAE;MAC5C;IACF,CAAC,MAAM;MACLjB,cAAc,GAAG,MAAM,IAAI,CAAC1K,KAAK,CAAC6E,2BAA2B,CAAC,IAAI,CAAC5E,YAAY,CAAC2L,cAAc,CAAC,CAAC,CAAC;IACnG;IACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAAC5L,YAAY,CAAC6L,mBAAmB,CAAC,IAAI,CAAC9L,KAAK,CAAC0E,YAAY,EAAE+F,WAAW,CAAC;IAEvG,MAAMsB,mBAAmB,GAAGrB,cAAc,CAACrM,MAAM,CAAE2N,QAAQ,IAAK;MAC9D,OAAO,CAACH,aAAa,CAACI,IAAI,CAAEC,WAAW,IAAK;QAC1C,OAAOA,WAAW,CAAC7J,EAAE,KAAK2J,QAAQ,CAACG,sBAAsB,CAAC,CAAC;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMC,eAAe,GAAG,MAAM,IAAI,CAAC5B,kBAAkB,CAACC,WAAW,EAAEsB,mBAAmB,EAAEpL,IAAI,CAAC;IAC7F,MAAM0L,eAAe,GAAG,MAAM,IAAI,CAACpM,YAAY,CAACqM,iBAAiB,CAAC7B,WAAW,CAAC;IAE9E,MAAM8B,OAAO,GAAGH,eAAe,CAAC1K,MAAM,CAAC2K,eAAe,CAAC,CAAC3K,MAAM,CAACmK,aAAa,CAAC;IAC7E;IACA;IACA,MAAMW,YAAY,GAAG,IAAI,CAACvM,YAAY,CAACwM,gBAAgB,CACrDF,OAAO,EACP3H,YAAY,IAAI8F,cAAc,EAC9BD,WAAW,EACXe,UACF,CAAC;IACD,OAAOgB,YAAY;EACrB;EAEApH,cAAcA,CAACzE,IAId,EAA4B;IAC3B,MAAM+L,YAAY,GAAG;MACnBrD,YAAY,EAAE1I,IAAI,EAAE0I,YAAY,IAAI,IAAI;MACxCsD,cAAc,EAAE;QACdC,2BAA2B,EAAEjM,IAAI,EAAEiM;MACrC,CAAC;MACDC,OAAO,EAAE;QACPC,aAAa,EAAEnM,IAAI,EAAEmM;MACvB;IACF,CAAC;IACD,MAAM3H,WAAW,GAAG,IAAA4H,sBAAY,EAACL,YAAY,EAAE,IAAI,CAACM,qBAAqB,CAAC,CAAC,CAAC;IAC5E,OAAO7H,WAAW;EACpB;EAEA6H,qBAAqBA,CAAA,EAAG;IACtB,MAAMC,OAAO,GAAG,IAAI,CAAC9C,wBAAwB,CAAC,CAAC;IAC/C,MAAM+C,YAAY,GAAG,IAAI,CAAC1D,sBAAsB,CAAC,CAAC;IAClD,MAAM2D,iBAAiB,GAAG,IAAI,CAACvD,uBAAuB,CAAC,CAAC;IACxD,MAAMwD,UAAU,GAAG,IAAI,CAAC9C,oBAAoB,CAAC,CAAC;IAE9C,MAAM3J,IAAI,GAAG;MACX0M,UAAU,EAAE,IAAI,CAACrN,KAAK,CAACsG,IAAI;MAC3BgH,OAAO,EAAE,IAAI,CAACxD,oBAAoB,CAAC,CAAC;MACpCmD,OAAO;MACPM,cAAc,EAAE,IAAI,CAACnD,wBAAwB,CAAC,CAAC;MAC/CgD,UAAU;MACVF,YAAY;MACZC,iBAAiB;MACjB9D,YAAY,EAAE,IAAI;MAClBmE,WAAW,EAAE,IAAI;MACjBC,sBAAsB,EAAE,IAAI;MAC5BC,IAAI,EAAE,IAAI,CAAC1N,KAAK;MAChB2M,cAAc,EAAE;QACdgB,uBAAuB,EAAE,IAAI;QAC7BC,UAAU,EAAE,IAAI;QAChBC,6BAA6B,EAAE,IAAI;QACnCC,oBAAoB,EAAE;MACxB,CAAC;MACDjB,OAAO,EAAE;QACPkB,OAAO,EAAE;MACX;IACF,CAAC;IACD,OAAOpN,IAAI;EACb;AACF;AAACqN,OAAA,CAAAlO,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -46,6 +46,13 @@ function _aspectLoader() {
46
46
  };
47
47
  return data;
48
48
  }
49
+ function _harmonyModules() {
50
+ const data = require("@teambit/harmony.modules.runtimes");
51
+ _harmonyModules = function () {
52
+ return data;
53
+ };
54
+ return data;
55
+ }
49
56
  function _cli() {
50
57
  const data = require("@teambit/cli");
51
58
  _cli = function () {
@@ -74,9 +81,9 @@ function _harmony() {
74
81
  };
75
82
  return data;
76
83
  }
77
- function _harmonyModules() {
84
+ function _harmonyModules2() {
78
85
  const data = require("@teambit/harmony.modules.load-trace");
79
- _harmonyModules = function () {
86
+ _harmonyModules2 = function () {
80
87
  return data;
81
88
  };
82
89
  return data;
@@ -989,7 +996,7 @@ class ScopeMain {
989
996
  async getMany(ids, throwIfNotExist = false) {
990
997
  const idsWithoutEmpty = (0, _lodash().compact)(ids);
991
998
  if (!idsWithoutEmpty.length) return [];
992
- return (0, _harmonyModules().startOrJoinLoadTrace)('scope.getMany', {
999
+ return (0, _harmonyModules2().startOrJoinLoadTrace)('scope.getMany', {
993
1000
  ids: idsWithoutEmpty.length
994
1001
  }, async () => {
995
1002
  const componentsP = (0, _pMapSeries().default)(idsWithoutEmpty, async id => {
@@ -1487,7 +1494,7 @@ class ScopeMain {
1487
1494
  }
1488
1495
  exports.ScopeMain = ScopeMain;
1489
1496
  _defineProperty(ScopeMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
1490
- _defineProperty(ScopeMain, "runtime", _cli().MainRuntime);
1497
+ _defineProperty(ScopeMain, "runtime", _harmonyModules().MainRuntime);
1491
1498
  _defineProperty(ScopeMain, "dependencies", [_component().ComponentAspect, _ui().UIAspect, _graphql().GraphqlAspect, _cli().CLIAspect, _isolator().IsolatorAspect, _aspectLoader().AspectLoaderAspect, _express().ExpressAspect, _logger().LoggerAspect, _envs().EnvsAspect, _dependencyResolver().DependencyResolverAspect, _configStore().ConfigStoreAspect]);
1492
1499
  _defineProperty(ScopeMain, "defaultConfig", {
1493
1500
  httpTimeOut: 600000
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_graph","_semver","_multimatch","_aspectLoader","_cli","_component","_graphql","_harmony","_harmonyModules","_isolator","_logger","_express","_ui","_componentId","_objects","_legacy","_scope","_dependencyResolver","_scope2","_workspaceModules","_pkgModules","_chokidar","_component2","_scope3","_legacy2","_bitError","_legacy3","_legacyBitId","_legacy4","_envs","_lodash","_exceptions","_scope4","_scope5","_scope6","_routes","_scopeComponentLoader","_scopeCmd","_stagedConfig","_noIdMatchPattern","_scopeAspectsLoader","_clearCacheAction","_catScopeCmd","_catComponentCmd","_catObjectCmd","_catLaneCmd","_runAction","_configStore","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","OnCompAspectReCalcSlot","preObjectPersistSlot","postObjectReadSlot","isolator","aspectLoader","logger","envs","dependencyResolver","configStore","componentLoader","ScopeComponentLoader","setAspectLoadGuard","guard","aspectLoadGuard","getAspectLoadGuard","name","icon","backgroundIconColor","description","path","isLegacy","isGlobalScope","GLOBAL_SCOPE","aspectsPackageManager","aspectsNodeLinker","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","executeOnCompAspectReCalcSlot","envsData","calcDescriptor","skipWarnings","policy","mergeVariantPolicies","extensions","state","_consumer","files","dependencies","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","resolvedEnvJsonc","calculateEnvManifest","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","createAspectListFromExtensionDataList","aspects","entries","toArray","mapSeries","extension","onLoad","upsertEntry","getDependencies","componentPackageName","getPackageName","existingExtension","findExtension","assign","getDataEntry","ExtensionDataEntry","undefined","getIsolateAspectsOpts","getIsolateOpts","getAspectCapsulePath","shouldUseHashForCapsules","getManyByLegacy","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnCompAspectReCalc","compAspectReCalcSlotFn","registerOnPostObjectsPersist","postObjectsPersistFn","registerOnPreObjectPersist","preObjectPersistFn","registerOnPostObjectRead","postObjectReadFn","fetch","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","isExported","watchScopeInternalFiles","watchOptions","additionalPaths","onAdditionalFileChange","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","globalStore","stores","global","scopeStore","scope","globalConfigFile","scopeJsonPath","pathsToWatch","watcher","chokidar","watch","usePolling","interval","on","join","event","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","invalidateCache","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","comp","getMany","allFlattened","getAllFlattenedDependencies","flat","allFlattenedUniq","ComponentIdList","uniqFromArray","scopeImporter","importWithoutDeps","cache","reason","allComponents","graph","Graph","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","concat","addEdges","compId","label","get","depId","componentsAndVersions","getComponentsAndVersions","versionStr","toComponentId","devDependencies","extensionDependencies","getFlattenedEdges","versionObj","getVersionInstance","flattenedEdges","consumerComponent","flattenedDependencies","edges","edge","source","target","nodes","componentIdForGraph","tag","tags","byHash","raw","node","type","useCache","preferDependencyGraph","includeUpdateDependents","withoutOwnScopeAndLocals","hasScope","importMany","fromArray","throwForDependencyNotFound","importIfMissing","getRemoteComponent","fromMain","getManyRemoteComponents","includeCache","includeFromLanes","includeDeleted","patternsWithScope","namespaces","pattern","componentsIds","listIds","comps","limit","slice","offset","isDeleted","listInvalid","patterns","localScopeOnly","allModelComponents","filterByCacheAndLanes","modelComponent","lanesFilter","hasHead","modelComponentsToList","toComponentIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","exists","throwIfNotExist","idsWithoutEmpty","compact","startOrJoinLoadTrace","componentsP","getOrThrow","loadMany","loadApps","loadEnvs","loadCompAspects","loadCustomEnvs","load","loadManyCompsAspects","loadedComponents","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","throwIfMissing","loadComponentLogs","getStagedConfig","currentLaneId","getCurrentLaneId","StagedConfig","isComponentRemoved","loadVersion","isRemoved","isComponentInScope","BitId","resolveComponentIdFromBitId","idStr","isLikelyPackageName","resolveComponentIdFromPackageName","loadModelComponentByIdStr","getIdToCheck","IdToCheck","legacyId","getParsedId","fromLegacy","resolveMultipleComponentIds","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","filterByStateFunc","split","p","trim","every","unshift","statePatterns","nonStatePatterns","partition","nonStatePatternsNoVer","idsMap","fromEntries","idsFiltered","multimatch","idsStateFiltered","statePattern","filteredByAnd","patternSplit","idsToCheck","onePattern","idsStateFilteredFlat","combineFilteredIds","allIds","allIdsFiltered","NoIdMatchPattern","getSnapDistance","throws","workspaceId","modelComp","setDivergeData","getDivergeData","getSnapsDistanceBetweenTwoSnaps","sourceHead","targetHead","repo","Ref","from","head","getExactVersionBySemverRange","range","versions","listVersions","semver","maxSatisfying","includePrerelease","resolveId","_legacyRemotes","getScopeRemotes","getRemoteScopes","listRemoteScope","scopeName","remotes","remote","resolve","results","isComponentExistsOnRemote","resolvedRemotes","componentFromRemote","show","Boolean","getLegacyMinimal","getConsumerComponent","getBitObjectModelComponent","getModelComponentIfExist","getBitObjectVersion","getBitObjectVersionById","optsWithDefaults","aspectIds","appData","appName","services","self","loadComponentsAspect","extensionDataList","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","getLastMergedPath","getConfigStore","scopeJson","set","key","setConfig","del","rmConfig","write","writeIfChanged","reloadScopeJson","isModified","hasObjects","hashes","refs","h","hasMultiple","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","debugCommands","CatScopeCmd","CatComponentCmd","CatObjectCmd","CatLaneCmd","allCommands","ScopeCmd","RunActionCmd","loadScopeIfExist","cwd","createLogger","ScopeAspect","addStore","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","onPreObjectPersistHook","content","reduce","acc","onPostObjectReadHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","onPreObjectPersist","onPostObjectRead","hasPostObjectReadTransformer","ExternalActions","externalActions","ClearCacheAction","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","getDependenciesGraphByComponentIds","options","exports","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","ConfigStoreAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type {\n AspectData,\n ComponentMain,\n ResolveAspectsOptions,\n Component,\n ComponentFactory,\n Snap,\n State,\n} from '@teambit/component';\nimport { ComponentAspect, AspectEntry } from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { startOrJoinLoadTrace } from '@teambit/harmony.modules.load-trace';\nimport type { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { ExpressMain } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { ComponentIdList, ComponentID } from '@teambit/component-id';\nimport type { DependenciesGraph, DepEdge, ModelComponent, Lane, Version } from '@teambit/objects';\nimport { Ref, Repository, ObjectList } from '@teambit/objects';\nimport type { Scope as LegacyScope, Types } from '@teambit/legacy.scope';\nimport { Scope, loadScopeIfExist } from '@teambit/legacy.scope';\nimport type { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport { ExportPersist, PostSign } from '@teambit/scope.remote-actions';\nimport type { DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { Remotes } from '@teambit/scope.remotes';\nimport { getScopeRemotes } from '@teambit/scope.remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { isLikelyPackageName, resolveComponentIdFromPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport type { WatchOptions } from 'chokidar';\nimport chokidar from 'chokidar';\nimport type { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { SnapsDistance } from '@teambit/component.snap-distance';\nimport { getDivergeData } from '@teambit/component.snap-distance';\nimport type { AuthData } from '@teambit/scope.network';\nimport { Http, DEFAULT_AUTH_TYPE, getAuthDataFromHeader } from '@teambit/scope.network';\nimport type { FETCH_OPTIONS } from '@teambit/legacy.scope-api';\nimport { remove, ExternalActions } from '@teambit/legacy.scope-api';\nimport { BitError } from '@teambit/bit-error';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { GLOBAL_SCOPE } from '@teambit/legacy.constants';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport type { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport { compact, slice, difference, partition } 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 type { ScopeLoadAspectsOptions } from './scope-aspects-loader';\nimport { ScopeAspectsLoader } from './scope-aspects-loader';\nimport { ClearCacheAction } from './clear-cache-action';\nimport { CatScopeCmd } from './debug-commands/cat-scope-cmd';\nimport { CatComponentCmd } from './debug-commands/cat-component-cmd';\nimport CatObjectCmd from './debug-commands/cat-object-cmd';\nimport CatLaneCmd from './debug-commands/cat-lane-cmd';\nimport { RunActionCmd } from './run-action/run-action.cmd';\nimport type { ConfigStoreMain, Store } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\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>;\ntype OnCompAspectReCalc = (component: Component) => Promise<AspectData | undefined>;\ntype OnPreObjectPersist = (content: Buffer) => Buffer;\ntype OnPostObjectRead = (content: Buffer) => Buffer;\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>;\nexport type OnCompAspectReCalcSlot = SlotRegistry<OnCompAspectReCalc>;\nexport type OnPreObjectPersistSlot = SlotRegistry<OnPreObjectPersist>;\nexport type OnPostObjectReadSlot = SlotRegistry<OnPostObjectRead>;\nexport type LoadOptions = {\n /**\n * In case the component we are loading is app, whether to load it as app (in a scope aspects capsule)\n */\n loadApps?: boolean;\n /**\n * In case the component we are loading is env, whether to load it as env (in a scope aspects capsule)\n */\n loadEnvs?: boolean;\n\n /**\n * Should we load the components' aspects (this useful when you only want sometime to load the component itself\n * as aspect but not its aspects)\n */\n loadCompAspects?: boolean;\n\n /**\n * Should we load the components' custom envs when loading from the scope\n * This is usually not required unless you load an aspect with custom env from the scope\n * usually when signing aspects\n */\n loadCustomEnvs?: boolean;\n};\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n /**\n * Set a different package manager for the aspects capsules\n */\n aspectsPackageManager?: string;\n /**\n * Set a different node linker for the aspects capsules\n */\n aspectsNodeLinker?: NodeLinker;\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 OnCompAspectReCalcSlot: OnCompAspectReCalcSlot,\n\n private preObjectPersistSlot: OnPreObjectPersistSlot,\n\n private postObjectReadSlot: OnPostObjectReadSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private configStore: ConfigStoreMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * Optional hook called immediately before an aspect is `require()`d from a\n * scope-aspects capsule. Throws to refuse the load. The workspace aspect\n * registers this to enforce the per-workspace scope-trust list.\n */\n private aspectLoadGuard?: (componentId: ComponentID) => Promise<void>;\n\n setAspectLoadGuard(guard: (componentId: ComponentID) => Promise<void>): void {\n this.aspectLoadGuard = guard;\n }\n\n getAspectLoadGuard(): ((componentId: ComponentID) => Promise<void>) | undefined {\n return this.aspectLoadGuard;\n }\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 get aspectsPackageManager(): string | undefined {\n return this.config.aspectsPackageManager;\n }\n\n get aspectsNodeLinker(): NodeLinker | undefined {\n return this.config.aspectsNodeLinker;\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 async executeOnCompAspectReCalcSlot(component: Component) {\n const envsData = await this.envs.calcDescriptor(component, { skipWarnings: false });\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id,\n component.state._consumer.files,\n component.state._consumer.dependencies.dependencies\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n const resolvedEnvJsonc = await this.envs.calculateEnvManifest(\n component,\n component.state._consumer.files,\n component.state._consumer.dependencies.dependencies\n );\n if (resolvedEnvJsonc) {\n // @ts-ignore\n envsData.resolvedEnvJsonc = resolvedEnvJsonc;\n }\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.createAspectListFromExtensionDataList(\n component.state._consumer.extensions\n );\n component.state.aspects = aspectListWithEnvsAndDeps;\n\n const entries = this.OnCompAspectReCalcSlot.toArray();\n await mapSeries(entries, async ([extension, onLoad]) => {\n const data = await onLoad(component);\n await this.upsertExtensionData(component, extension, data);\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n component.state.aspects.upsertEntry(await this.resolveComponentId(extension), data);\n });\n\n return component;\n }\n\n getDependencies(component: Component) {\n return this.dependencyResolver.getDependencies(component);\n }\n\n componentPackageName(component: Component): string {\n return this.dependencyResolver.getPackageName(component);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n if (!data) return;\n const existingExtension = component.state._consumer.extensions.findExtension(extension);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state._consumer.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n\n getIsolateAspectsOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getIsolateOpts(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.configStore\n );\n return scopeAspectsLoader;\n }\n\n async clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n await this.legacyScope.objects.clearCache();\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 registerOnCompAspectReCalc(compAspectReCalcSlotFn: OnCompAspectReCalc) {\n this.OnCompAspectReCalcSlot.register(compAspectReCalcSlotFn);\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * register to the pre-object persist slot.\n */\n registerOnPreObjectPersist(preObjectPersistFn: OnPreObjectPersist) {\n /**\n * Register a synchronous hook to transform object content before it is persisted to the filesystem.\n *\n * This is typically used for tasks such as encryption, compression, or other pre-save transformations.\n *\n * To ensure data integrity, you should also register a corresponding hook with `registerOnPostObjectRead`\n * to reverse the transformation (e.g., decrypt or decompress) when reading objects back.\n *\n * Example:\n * ```ts\n * // Encrypt before persisting\n * scope.registerOnPreObjectPersist((content) => encrypt(content));\n * // Decrypt after reading\n * scope.registerOnPostObjectRead((content) => decrypt(content));\n * ```\n *\n * @param preObjectPersistFn - Function to transform content before persisting\n * @returns this\n */\n this.preObjectPersistSlot.register(preObjectPersistFn);\n return this;\n }\n\n /**\n * register to the post-object read slot.\n */\n registerOnPostObjectRead(postObjectReadFn: OnPostObjectRead) {\n /**\n * Register a synchronous hook to transform object content after it is read from the filesystem.\n *\n * This is typically used for tasks such as decryption, decompression, or other post-read transformations.\n *\n * To maintain consistency, you should also register a corresponding hook with `registerOnPreObjectPersist`\n * to apply the transformation before persisting (e.g., encrypt or compress).\n *\n * Example:\n * ```ts\n * // Encrypt before persisting\n * scope.registerOnPreObjectPersist((content) => encrypt(content));\n * // Decrypt after reading\n * scope.registerOnPostObjectRead((content) => decrypt(content));\n * ```\n *\n * @param postObjectReadFn - Function to transform content after reading\n * @returns this\n */\n this.postObjectReadSlot.register(postObjectReadFn);\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 fetch(ids: ComponentIdList) {} // 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 isExported(id: ComponentID): boolean {\n return this.legacyScope.isExported(id);\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 * 3. global config. so for example if a user logs in or out it would be reflected.\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 * @param watchOptions - chokidar watch options (ignoreInitial is always enforced to true)\n * @param additionalPaths - extra paths to watch (e.g. IPC events dir, unmerged.json)\n * @param onAdditionalFileChange - callback invoked when a file in additionalPaths changes\n */\n async watchScopeInternalFiles(\n watchOptions: WatchOptions = {},\n additionalPaths: string[] = [],\n onAdditionalFileChange?: (filePath: string) => Promise<void>\n ) {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const globalStore = this.configStore.stores.global;\n const scopeStore = this.configStore.stores.scope;\n const globalConfigFile = globalStore.getPath();\n const scopeJsonPath = scopeStore.getPath();\n const pathsToWatch = [scopeIndexFile, remoteLanesDir, globalConfigFile, scopeJsonPath, ...additionalPaths];\n // Use polling to reduce FSEvents stream consumption on macOS.\n // These files change infrequently (mainly during import/export operations),\n // so the small CPU overhead of polling is acceptable.\n const watcher = chokidar.watch(pathsToWatch, { ...watchOptions, usePolling: true, interval: 300 });\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('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add') return;\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 if (filePath === globalConfigFile) {\n this.logger.debug('global config file has been changed, invalidating its cache');\n await globalStore.invalidateCache();\n this.configStore.invalidateCache();\n } else if (filePath === scopeJsonPath) {\n this.logger.debug('scope.json file has been changed, reloading it');\n await scopeStore.invalidateCache();\n this.configStore.invalidateCache();\n } else if (onAdditionalFileChange) {\n await onAdditionalFileChange(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 = ComponentIdList.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importWithoutDeps(allFlattenedUniq, {\n cache: true,\n reason: `which are unique flattened dependencies to get the graph of ${ids.length} ids`,\n });\n const dependencies = await this.getMany(allFlattenedUniq);\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 await Promise.all(\n components.map(async (component) => {\n const compGraph = await this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([compGraph]);\n })\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();\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane, reason: `to build graph-ids from the scope` }\n );\n\n const allFlattened: ComponentID[] = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened.concat(ids));\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = 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 compId = component.toComponentId().changeVersion(versionStr);\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 async getFlattenedEdges(id: ComponentID): Promise<DepEdge[] | undefined> {\n let versionObj: Version;\n try {\n versionObj = await this.legacyScope.getVersionInstance(id);\n } catch {\n return undefined;\n }\n\n const flattenedEdges = await versionObj.getFlattenedEdges(this.legacyScope.objects);\n return flattenedEdges;\n }\n\n private async getSavedGraphOfComponentIfExist(component: Component): Promise<Graph<ComponentID, DepEdgeType> | null> {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = await this.getFlattenedEdges(component.id);\n if (!flattenedEdges)\n throw new Error(\n 'getSavedGraphOfComponentIfExist failed to get flattenedEdges, it must not be undefined because the version object exists'\n );\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: edge.source,\n target: edge.target,\n }));\n const nodes = consumerComponent.flattenedDependencies;\n\n // Convert component ID from hash to tag if a tag exists, to match flattenedEdges format\n let componentIdForGraph = component.id;\n if (component.id.version) {\n const tag = component.tags.byHash(component.id.version);\n if (tag) {\n componentIdForGraph = component.id.changeVersion(tag.version.raw);\n }\n }\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n graph.setNode(new Node(componentIdForGraph.toString(), componentIdForGraph));\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 reFetchUnBuiltVersion = true,\n preferDependencyGraph = true,\n includeUpdateDependents = false,\n lane,\n reason,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: 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 * include the updateDependents components on a lane (generally, on a workspace, it's not needed)\n */\n includeUpdateDependents?: boolean;\n /**\n * reason why this import is needed (to show in the terminal)\n */\n reason?: string;\n } = {}\n ): Promise<void> {\n const withoutOwnScopeAndLocals = ids.filter((id) => {\n return id.scope !== this.name && id._legacy.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentIdList.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n includeUpdateDependents,\n reason,\n });\n }\n\n async get(id: ComponentID, useCache = true, importIfMissing = true): Promise<Component | undefined> {\n return this.componentLoader.get(id, importIfMissing, useCache);\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 * by default, when on a lane, it loads the component from the lane. unless `fromMain` is set to true.\n */\n async getRemoteComponent(id: ComponentID, fromMain = false): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id, fromMain);\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 includeDeleted = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `${this.name}/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n const comps = await this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n\n return includeDeleted ? comps : comps.filter((comp) => !comp.isDeleted());\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 localScopeOnly = !includeCache;\n const allModelComponents = await this.legacyScope.list(localScopeOnly);\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n return lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) => component.toComponentIdWithLatestVersion());\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, 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 if (!idsWithoutEmpty.length) return [];\n return startOrJoinLoadTrace('scope.getMany', { ids: idsWithoutEmpty.length }, async () => {\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 /**\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(\n ids: ComponentID[],\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane, opts));\n return compact(components);\n }\n\n async loadManyCompsAspects(components: Component[], lane?: Lane): Promise<Component[]> {\n const loadedComponents = await mapSeries(components, (id) => this.loadCompAspects(id, lane));\n return compact(loadedComponents);\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);\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(\n id: ComponentID,\n shortHash = false,\n startsFrom?: string,\n throwIfMissing = false\n ): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id, shortHash, startsFrom, throwIfMissing);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.getCurrentLaneId();\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * whether 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);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * whether the id with the specified version exits in the local scope.\n */\n async isComponentInScope(id: ComponentID): Promise<boolean> {\n return this.legacyScope.isComponentInScope(id);\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID> {\n if (id instanceof ComponentID) return id;\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n\n if (isLikelyPackageName(idStr)) {\n return resolveComponentIdFromPackageName(idStr, this.dependencyResolver);\n }\n\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 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 | ComponentID>) {\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 async filterIdsFromPoolIdsByPattern(\n pattern: string,\n ids: ComponentID[],\n throwForNoMatch = true,\n filterByStateFunc?: (state: any, poolIds: ComponentID[]) => Promise<ComponentID[]>\n ) {\n const patterns = pattern.split(',').map((p) => p.trim());\n\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 const [statePatterns, nonStatePatterns] = partition(patterns, (p) => p.startsWith('$') || p.includes(' AND '));\n const nonStatePatternsNoVer = nonStatePatterns.map((p) => p.split('@')[0]); // no need for the version\n const idsMap: { [id: string]: ComponentID } = Object.fromEntries(\n ids.map((id) => [id.toStringWithoutVersion(), id])\n );\n const idsFiltered = nonStatePatternsNoVer.length\n ? multimatch(Object.keys(idsMap), nonStatePatternsNoVer).map((idStr) => idsMap[idStr])\n : [];\n\n const idsStateFiltered = await mapSeries(statePatterns, async (statePattern) => {\n if (!filterByStateFunc) {\n throw new Error(`filter by a state (${statePattern}) is currently supported on the workspace only`);\n }\n if (statePattern.includes(' AND ')) {\n let filteredByAnd: ComponentID[] = ids;\n const patternSplit = statePattern.split(' AND ').map((p) => p.trim());\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id._legacy.toStringWithoutVersion(), id.toStringWithoutVersion()];\n for await (const onePattern of patternSplit) {\n filteredByAnd = onePattern.startsWith('$')\n ? await filterByStateFunc(onePattern.replace('$', ''), filteredByAnd)\n : filteredByAnd.filter((id) => multimatch(idsToCheck(id), [onePattern.split('@')[0]]).length);\n }\n return filteredByAnd;\n }\n return filterByStateFunc(statePattern.replace('$', ''), ids);\n });\n const idsStateFilteredFlat = idsStateFiltered.flat();\n const combineFilteredIds = () => {\n if (!idsStateFiltered) return idsFiltered;\n const allIds = [...idsFiltered, ...idsStateFilteredFlat];\n return ComponentIdList.uniqFromArray(allIds);\n };\n const allIdsFiltered = combineFilteredIds();\n if (throwForNoMatch && !allIdsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return allIdsFiltered;\n }\n\n async getSnapDistance(id: ComponentID, throws = true, workspaceId?: ComponentID): Promise<SnapsDistance> {\n const modelComp = await this.legacyScope.getModelComponent(id);\n await modelComp.setDivergeData(this.legacyScope.objects, throws, undefined, workspaceId);\n return modelComp.getDivergeData();\n }\n /**\n * get the distance for a component between two lanes. for example, lane-b forked from lane-a and lane-b added some new snaps\n * @param componentId\n * @param sourceHead head on the source lane. leave empty if the source is main\n * @param targetHead head on the target lane. leave empty if the target is main\n * @returns\n */\n async getSnapsDistanceBetweenTwoSnaps(\n componentId: ComponentID,\n sourceHead?: string,\n targetHead?: string,\n throws?: boolean\n ): Promise<SnapsDistance> {\n if (!sourceHead && !targetHead) {\n throw new Error(`getDivergeData got sourceHead and targetHead empty. at least one of them should be populated`);\n }\n const modelComponent = await this.legacyScope.getModelComponent(componentId);\n return getDivergeData({\n modelComponent,\n repo: this.legacyScope.objects,\n sourceHead: sourceHead ? Ref.from(sourceHead) : modelComponent.head || null,\n targetHead: targetHead ? Ref.from(targetHead) : modelComponent.head || null,\n throws,\n });\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n /**\n * @deprecated use `this.resolveComponentId` instead.\n */\n async resolveId(id: string): Promise<ComponentID> {\n return this.resolveComponentId(id);\n }\n\n /**\n * @deprecated use `this.getRemoteScopes()` instead.\n */\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n async getRemoteScopes(): 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.getRemoteScopes();\n const remote = await remotes.resolve(scopeName);\n const results = await remote.list();\n return results.map(({ id }) => id);\n }\n\n /**\n * best-effort check whether a component-id already exists on its remote scope.\n * intended as an early-warning helper (e.g. during \"bit add\"/\"bit create\"), not as a source of\n * truth. it never throws: if the workspace is offline, the scope can't be resolved, the user has\n * no access, or the remote lacks the component, it resolves to `false` so callers can safely skip.\n *\n * pass a pre-resolved `remotes` when checking many ids to avoid reloading the global-remotes file\n * from disk on every call.\n */\n async isComponentExistsOnRemote(id: ComponentID, remotes?: Remotes): Promise<boolean> {\n if (!id.scope) return false;\n try {\n const resolvedRemotes = remotes || (await this.getRemoteScopes());\n const remote = await resolvedRemotes.resolve(id.scope);\n const componentFromRemote = await remote.show(id.changeVersion(undefined));\n return Boolean(componentFromRemote);\n } catch (err) {\n // offline / scope-not-found / no-access / component-not-found — all mean \"don't warn\".\n // trace at debug level so unexpected failures are still diagnosable via the debug.log.\n this.logger.debug(`isComponentExistsOnRemote: skipping check for ${id.toString()}, got an error: ${err}`);\n return false;\n }\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id);\n } catch {\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 * ModelComponent is of type `BitObject` which gets saved into the local scope as an object file.\n * It has data about the tags and the component head. It doesn't have any data about the source-files/artifacts etc.\n */\n async getBitObjectModelComponent(id: ComponentID, throwIfNotExist = false): Promise<ModelComponent | undefined> {\n return throwIfNotExist ? this.legacyScope.getModelComponent(id) : this.legacyScope.getModelComponentIfExist(id);\n }\n\n /**\n * Version BitObject holds the data of the source files and build artifacts of a specific snap/tag.\n */\n async getBitObjectVersion(\n modelComponent: ModelComponent,\n version: string,\n throwIfNotExist = false\n ): Promise<Version | undefined> {\n return modelComponent.loadVersion(version, this.legacyScope.objects, throwIfNotExist);\n }\n\n async getBitObjectVersionById(id: ComponentID, throwIfNotExist = false): Promise<Version | undefined> {\n const modelComponent = await this.getBitObjectModelComponent(id, throwIfNotExist);\n if (!modelComponent) return undefined;\n return this.getBitObjectVersion(modelComponent, id.version, throwIfNotExist);\n }\n\n /**\n * get a component and load its aspect\n */\n async load(\n id: ComponentID,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n const optsWithDefaults = { loadApps: true, loadEnvs: true, loadCompAspects: true, ...opts };\n return this.loadCompAspects(component, lane, optsWithDefaults);\n }\n\n async loadCompAspects(\n component: Component,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component> {\n const optsWithDefaults = { loadApps: true, loadEnvs: true, loadCompAspects: true, ...opts };\n const aspectIds = optsWithDefaults.loadCompAspects ? 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 if (optsWithDefaults.loadApps) {\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n }\n if (optsWithDefaults.loadEnvs) {\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if (envsData?.data?.services || envsData?.data?.self || envsData?.data?.type === 'env') {\n aspectIds.push(component.id.toString());\n }\n }\n if (aspectIds && aspectIds.length) {\n await this.loadAspects(aspectIds, true, component.id.toString(), lane, {\n loadCustomEnvs: optsWithDefaults.loadCustomEnvs,\n });\n }\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 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 getLastMergedPath() {\n return path.join(this.path, 'last-merged');\n }\n\n getConfigStore(): Store {\n return {\n list: () => this.legacyScope.scopeJson.config || {},\n set: (key: string, value: string) => {\n this.legacyScope.scopeJson.setConfig(key, value);\n },\n del: (key: string) => {\n this.legacyScope.scopeJson.rmConfig(key);\n },\n write: async () => {\n await this.legacyScope.scopeJson.writeIfChanged();\n },\n invalidateCache: async () => {\n await this.legacyScope.reloadScopeJson();\n },\n getPath: () => this.legacyScope.scopeJson.scopeJsonPath,\n };\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 async hasObjects(hashes: string[]): Promise<string[]> {\n const refs = hashes.map((h) => Ref.from(h));\n const results = await this.legacyScope.objects.hasMultiple(refs);\n return results.map((r) => r.hash);\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 Slot.withType<OnCompAspectReCalc>(),\n Slot.withType<OnPreObjectPersist>(),\n Slot.withType<OnPostObjectRead>(),\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 ConfigStoreAspect,\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, configStore]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain,\n ConfigStoreMain,\n ],\n config: ScopeConfig,\n [\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n OnCompAspectReCalcSlot,\n preObjectPersistSlot,\n postObjectReadSlot,\n ]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot,\n OnCompAspectReCalcSlot,\n OnPreObjectPersistSlot,\n OnPostObjectReadSlot,\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const debugCommands = [new CatScopeCmd(), new CatComponentCmd(), new CatObjectCmd(), new CatLaneCmd()];\n const allCommands = [new ScopeCmd(), ...debugCommands, new RunActionCmd()];\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n cli.register(...allCommands);\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 OnCompAspectReCalcSlot,\n preObjectPersistSlot,\n postObjectReadSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver,\n configStore\n );\n configStore.addStore('scope', scope.getConfigStore());\n cli.register(...allCommands);\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\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: ComponentID[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const fns = postExportSlot.values();\n const data = {\n ids,\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 /**\n * Hook for transforming content before objects are persisted to the filesystem.\n * Note: This function cannot be async because it is used by synchronous code paths (e.g., Repository.loadSync)\n */\n const onPreObjectPersistHook = (content: Buffer): Buffer => {\n const fns = preObjectPersistSlot.values();\n return fns.reduce((acc, fn) => fn(acc), content);\n };\n\n /**\n * Hook for transforming content after objects are read from the filesystem.\n * Note: This function cannot be async because it is used by synchronous code paths (e.g., Repository.loadSync)\n */\n const onPostObjectReadHook = (content: Buffer): Buffer => {\n const fns = postObjectReadSlot.values();\n return fns.reduce((acc, fn) => fn(acc), content);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n Repository.onPreObjectPersist = onPreObjectPersistHook;\n Repository.onPostObjectRead = onPostObjectReadHook;\n // the hook above is installed whether or not anything registered a transformer, so it can't be\n // used to answer \"is content transformed?\". the slot is filled by other aspects' providers, so\n // this is a live check rather than a snapshot taken here.\n Repository.hasPostObjectReadTransformer = () => postObjectReadSlot.values().length > 0;\n ExternalActions.externalActions.push(new ClearCacheAction(scope));\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(() => scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n\n public getDependenciesGraphByComponentIds(\n componentIds: ComponentID[],\n options?: { ignoreFeatureToggle?: boolean }\n ): Promise<DependenciesGraph | undefined> {\n return this.legacyScope.getDependenciesGraphByComponentIds(componentIds, options);\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_graph","_semver","_multimatch","_aspectLoader","_harmonyModules","_cli","_component","_graphql","_harmony","_harmonyModules2","_isolator","_logger","_express","_ui","_componentId","_objects","_legacy","_scope","_dependencyResolver","_scope2","_workspaceModules","_pkgModules","_chokidar","_component2","_scope3","_legacy2","_bitError","_legacy3","_legacyBitId","_legacy4","_envs","_lodash","_exceptions","_scope4","_scope5","_scope6","_routes","_scopeComponentLoader","_scopeCmd","_stagedConfig","_noIdMatchPattern","_scopeAspectsLoader","_clearCacheAction","_catScopeCmd","_catComponentCmd","_catObjectCmd","_catLaneCmd","_runAction","_configStore","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","OnCompAspectReCalcSlot","preObjectPersistSlot","postObjectReadSlot","isolator","aspectLoader","logger","envs","dependencyResolver","configStore","componentLoader","ScopeComponentLoader","setAspectLoadGuard","guard","aspectLoadGuard","getAspectLoadGuard","name","icon","backgroundIconColor","description","path","isLegacy","isGlobalScope","GLOBAL_SCOPE","aspectsPackageManager","aspectsNodeLinker","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","executeOnCompAspectReCalcSlot","envsData","calcDescriptor","skipWarnings","policy","mergeVariantPolicies","extensions","state","_consumer","files","dependencies","dependenciesList","extractDepsFromLegacy","depResolverData","packageName","calcPackageName","serialize","resolvedEnvJsonc","calculateEnvManifest","upsertExtensionData","EnvsAspect","DependencyResolverAspect","aspectListWithEnvsAndDeps","createAspectListFromExtensionDataList","aspects","entries","toArray","mapSeries","extension","onLoad","upsertEntry","getDependencies","componentPackageName","getPackageName","existingExtension","findExtension","assign","getDataEntry","ExtensionDataEntry","undefined","getIsolateAspectsOpts","getIsolateOpts","getAspectCapsulePath","shouldUseHashForCapsules","getManyByLegacy","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnCompAspectReCalc","compAspectReCalcSlotFn","registerOnPostObjectsPersist","postObjectsPersistFn","registerOnPreObjectPersist","preObjectPersistFn","registerOnPostObjectRead","postObjectReadFn","fetch","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","isExported","watchScopeInternalFiles","watchOptions","additionalPaths","onAdditionalFileChange","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","globalStore","stores","global","scopeStore","scope","globalConfigFile","scopeJsonPath","pathsToWatch","watcher","chokidar","watch","usePolling","interval","on","join","event","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","invalidateCache","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","comp","getMany","allFlattened","getAllFlattenedDependencies","flat","allFlattenedUniq","ComponentIdList","uniqFromArray","scopeImporter","importWithoutDeps","cache","reason","allComponents","graph","Graph","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","concat","addEdges","compId","label","get","depId","componentsAndVersions","getComponentsAndVersions","versionStr","toComponentId","devDependencies","extensionDependencies","getFlattenedEdges","versionObj","getVersionInstance","flattenedEdges","consumerComponent","flattenedDependencies","edges","edge","source","target","nodes","componentIdForGraph","tag","tags","byHash","raw","node","type","useCache","preferDependencyGraph","includeUpdateDependents","withoutOwnScopeAndLocals","hasScope","importMany","fromArray","throwForDependencyNotFound","importIfMissing","getRemoteComponent","fromMain","getManyRemoteComponents","includeCache","includeFromLanes","includeDeleted","patternsWithScope","namespaces","pattern","componentsIds","listIds","comps","limit","slice","offset","isDeleted","listInvalid","patterns","localScopeOnly","allModelComponents","filterByCacheAndLanes","modelComponent","lanesFilter","hasHead","modelComponentsToList","toComponentIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","exists","throwIfNotExist","idsWithoutEmpty","compact","startOrJoinLoadTrace","componentsP","getOrThrow","loadMany","loadApps","loadEnvs","loadCompAspects","loadCustomEnvs","load","loadManyCompsAspects","loadedComponents","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","throwIfMissing","loadComponentLogs","getStagedConfig","currentLaneId","getCurrentLaneId","StagedConfig","isComponentRemoved","loadVersion","isRemoved","isComponentInScope","BitId","resolveComponentIdFromBitId","idStr","isLikelyPackageName","resolveComponentIdFromPackageName","loadModelComponentByIdStr","getIdToCheck","IdToCheck","legacyId","getParsedId","fromLegacy","resolveMultipleComponentIds","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","filterByStateFunc","split","p","trim","every","unshift","statePatterns","nonStatePatterns","partition","nonStatePatternsNoVer","idsMap","fromEntries","idsFiltered","multimatch","idsStateFiltered","statePattern","filteredByAnd","patternSplit","idsToCheck","onePattern","idsStateFilteredFlat","combineFilteredIds","allIds","allIdsFiltered","NoIdMatchPattern","getSnapDistance","throws","workspaceId","modelComp","setDivergeData","getDivergeData","getSnapsDistanceBetweenTwoSnaps","sourceHead","targetHead","repo","Ref","from","head","getExactVersionBySemverRange","range","versions","listVersions","semver","maxSatisfying","includePrerelease","resolveId","_legacyRemotes","getScopeRemotes","getRemoteScopes","listRemoteScope","scopeName","remotes","remote","resolve","results","isComponentExistsOnRemote","resolvedRemotes","componentFromRemote","show","Boolean","getLegacyMinimal","getConsumerComponent","getBitObjectModelComponent","getModelComponentIfExist","getBitObjectVersion","getBitObjectVersionById","optsWithDefaults","aspectIds","appData","appName","services","self","loadComponentsAspect","extensionDataList","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","getLastMergedPath","getConfigStore","scopeJson","set","key","setConfig","del","rmConfig","write","writeIfChanged","reloadScopeJson","isModified","hasObjects","hashes","refs","h","hasMultiple","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","debugCommands","CatScopeCmd","CatComponentCmd","CatObjectCmd","CatLaneCmd","allCommands","ScopeCmd","RunActionCmd","loadScopeIfExist","cwd","createLogger","ScopeAspect","addStore","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","onPreObjectPersistHook","content","reduce","acc","onPostObjectReadHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","onPreObjectPersist","onPostObjectRead","hasPostObjectReadTransformer","ExternalActions","externalActions","ClearCacheAction","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","getDependenciesGraphByComponentIds","options","exports","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","ConfigStoreAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport type { CLIMain } from '@teambit/cli';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } from '@teambit/cli';\nimport type {\n AspectData,\n ComponentMain,\n ResolveAspectsOptions,\n Component,\n ComponentFactory,\n Snap,\n State,\n} from '@teambit/component';\nimport { ComponentAspect, AspectEntry } from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { startOrJoinLoadTrace } from '@teambit/harmony.modules.load-trace';\nimport type { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { IsolatorAspect } from '@teambit/isolator';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { ExpressMain } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { ComponentIdList, ComponentID } from '@teambit/component-id';\nimport type { DependenciesGraph, DepEdge, ModelComponent, Lane, Version } from '@teambit/objects';\nimport { Ref, Repository, ObjectList } from '@teambit/objects';\nimport type { Scope as LegacyScope, Types } from '@teambit/legacy.scope';\nimport { Scope, loadScopeIfExist } from '@teambit/legacy.scope';\nimport type { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport { ExportPersist, PostSign } from '@teambit/scope.remote-actions';\nimport type { DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { Remotes } from '@teambit/scope.remotes';\nimport { getScopeRemotes } from '@teambit/scope.remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { isLikelyPackageName, resolveComponentIdFromPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport type { WatchOptions } from 'chokidar';\nimport chokidar from 'chokidar';\nimport type { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport type { SnapsDistance } from '@teambit/component.snap-distance';\nimport { getDivergeData } from '@teambit/component.snap-distance';\nimport type { AuthData } from '@teambit/scope.network';\nimport { Http, DEFAULT_AUTH_TYPE, getAuthDataFromHeader } from '@teambit/scope.network';\nimport type { FETCH_OPTIONS } from '@teambit/legacy.scope-api';\nimport { remove, ExternalActions } from '@teambit/legacy.scope-api';\nimport { BitError } from '@teambit/bit-error';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { GLOBAL_SCOPE } from '@teambit/legacy.constants';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport type { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport { compact, slice, difference, partition } 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 type { ScopeLoadAspectsOptions } from './scope-aspects-loader';\nimport { ScopeAspectsLoader } from './scope-aspects-loader';\nimport { ClearCacheAction } from './clear-cache-action';\nimport { CatScopeCmd } from './debug-commands/cat-scope-cmd';\nimport { CatComponentCmd } from './debug-commands/cat-component-cmd';\nimport CatObjectCmd from './debug-commands/cat-object-cmd';\nimport CatLaneCmd from './debug-commands/cat-lane-cmd';\nimport { RunActionCmd } from './run-action/run-action.cmd';\nimport type { ConfigStoreMain, Store } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\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>;\ntype OnCompAspectReCalc = (component: Component) => Promise<AspectData | undefined>;\ntype OnPreObjectPersist = (content: Buffer) => Buffer;\ntype OnPostObjectRead = (content: Buffer) => Buffer;\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>;\nexport type OnCompAspectReCalcSlot = SlotRegistry<OnCompAspectReCalc>;\nexport type OnPreObjectPersistSlot = SlotRegistry<OnPreObjectPersist>;\nexport type OnPostObjectReadSlot = SlotRegistry<OnPostObjectRead>;\nexport type LoadOptions = {\n /**\n * In case the component we are loading is app, whether to load it as app (in a scope aspects capsule)\n */\n loadApps?: boolean;\n /**\n * In case the component we are loading is env, whether to load it as env (in a scope aspects capsule)\n */\n loadEnvs?: boolean;\n\n /**\n * Should we load the components' aspects (this useful when you only want sometime to load the component itself\n * as aspect but not its aspects)\n */\n loadCompAspects?: boolean;\n\n /**\n * Should we load the components' custom envs when loading from the scope\n * This is usually not required unless you load an aspect with custom env from the scope\n * usually when signing aspects\n */\n loadCustomEnvs?: boolean;\n};\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n /**\n * Set a different package manager for the aspects capsules\n */\n aspectsPackageManager?: string;\n /**\n * Set a different node linker for the aspects capsules\n */\n aspectsNodeLinker?: NodeLinker;\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 OnCompAspectReCalcSlot: OnCompAspectReCalcSlot,\n\n private preObjectPersistSlot: OnPreObjectPersistSlot,\n\n private postObjectReadSlot: OnPostObjectReadSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private configStore: ConfigStoreMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * Optional hook called immediately before an aspect is `require()`d from a\n * scope-aspects capsule. Throws to refuse the load. The workspace aspect\n * registers this to enforce the per-workspace scope-trust list.\n */\n private aspectLoadGuard?: (componentId: ComponentID) => Promise<void>;\n\n setAspectLoadGuard(guard: (componentId: ComponentID) => Promise<void>): void {\n this.aspectLoadGuard = guard;\n }\n\n getAspectLoadGuard(): ((componentId: ComponentID) => Promise<void>) | undefined {\n return this.aspectLoadGuard;\n }\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 get aspectsPackageManager(): string | undefined {\n return this.config.aspectsPackageManager;\n }\n\n get aspectsNodeLinker(): NodeLinker | undefined {\n return this.config.aspectsNodeLinker;\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 async executeOnCompAspectReCalcSlot(component: Component) {\n const envsData = await this.envs.calcDescriptor(component, { skipWarnings: false });\n const policy = await this.dependencyResolver.mergeVariantPolicies(\n component.config.extensions,\n component.id,\n component.state._consumer.files,\n component.state._consumer.dependencies.dependencies\n );\n const dependenciesList = await this.dependencyResolver.extractDepsFromLegacy(component, policy);\n\n const depResolverData = {\n packageName: this.dependencyResolver.calcPackageName(component),\n dependencies: dependenciesList.serialize(),\n policy: policy.serialize(),\n };\n const resolvedEnvJsonc = await this.envs.calculateEnvManifest(\n component,\n component.state._consumer.files,\n component.state._consumer.dependencies.dependencies\n );\n if (resolvedEnvJsonc) {\n // @ts-ignore\n envsData.resolvedEnvJsonc = resolvedEnvJsonc;\n }\n // Make sure we are adding the envs / deps data first because other on load events might depend on it\n await Promise.all([\n this.upsertExtensionData(component, EnvsAspect.id, envsData),\n this.upsertExtensionData(component, DependencyResolverAspect.id, depResolverData),\n ]);\n\n // We are updating the component state with the envs and deps data here, so in case we have other slots that depend on this data\n // they will be able to get it, as it's very common use case that during on load someone want to access to the component env for example\n const aspectListWithEnvsAndDeps = await this.createAspectListFromExtensionDataList(\n component.state._consumer.extensions\n );\n component.state.aspects = aspectListWithEnvsAndDeps;\n\n const entries = this.OnCompAspectReCalcSlot.toArray();\n await mapSeries(entries, async ([extension, onLoad]) => {\n const data = await onLoad(component);\n await this.upsertExtensionData(component, extension, data);\n // Update the aspect list to have changes happened during the on load slot (new data added above)\n component.state.aspects.upsertEntry(await this.resolveComponentId(extension), data);\n });\n\n return component;\n }\n\n getDependencies(component: Component) {\n return this.dependencyResolver.getDependencies(component);\n }\n\n componentPackageName(component: Component): string {\n return this.dependencyResolver.getPackageName(component);\n }\n\n private async upsertExtensionData(component: Component, extension: string, data: any) {\n if (!data) return;\n const existingExtension = component.state._consumer.extensions.findExtension(extension);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n component.state._consumer.extensions.push(await this.getDataEntry(extension, data));\n }\n\n private async getDataEntry(extension: string, data: { [key: string]: any }): Promise<ExtensionDataEntry> {\n // TODO: @gilad we need to refactor the extension data entry api.\n return new ExtensionDataEntry(undefined, undefined, extension, undefined, data);\n }\n\n getIsolateAspectsOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getIsolateOpts(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.configStore\n );\n return scopeAspectsLoader;\n }\n\n async clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n await this.legacyScope.objects.clearCache();\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 registerOnCompAspectReCalc(compAspectReCalcSlotFn: OnCompAspectReCalc) {\n this.OnCompAspectReCalcSlot.register(compAspectReCalcSlotFn);\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * register to the pre-object persist slot.\n */\n registerOnPreObjectPersist(preObjectPersistFn: OnPreObjectPersist) {\n /**\n * Register a synchronous hook to transform object content before it is persisted to the filesystem.\n *\n * This is typically used for tasks such as encryption, compression, or other pre-save transformations.\n *\n * To ensure data integrity, you should also register a corresponding hook with `registerOnPostObjectRead`\n * to reverse the transformation (e.g., decrypt or decompress) when reading objects back.\n *\n * Example:\n * ```ts\n * // Encrypt before persisting\n * scope.registerOnPreObjectPersist((content) => encrypt(content));\n * // Decrypt after reading\n * scope.registerOnPostObjectRead((content) => decrypt(content));\n * ```\n *\n * @param preObjectPersistFn - Function to transform content before persisting\n * @returns this\n */\n this.preObjectPersistSlot.register(preObjectPersistFn);\n return this;\n }\n\n /**\n * register to the post-object read slot.\n */\n registerOnPostObjectRead(postObjectReadFn: OnPostObjectRead) {\n /**\n * Register a synchronous hook to transform object content after it is read from the filesystem.\n *\n * This is typically used for tasks such as decryption, decompression, or other post-read transformations.\n *\n * To maintain consistency, you should also register a corresponding hook with `registerOnPreObjectPersist`\n * to apply the transformation before persisting (e.g., encrypt or compress).\n *\n * Example:\n * ```ts\n * // Encrypt before persisting\n * scope.registerOnPreObjectPersist((content) => encrypt(content));\n * // Decrypt after reading\n * scope.registerOnPostObjectRead((content) => decrypt(content));\n * ```\n *\n * @param postObjectReadFn - Function to transform content after reading\n * @returns this\n */\n this.postObjectReadSlot.register(postObjectReadFn);\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 fetch(ids: ComponentIdList) {} // 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 isExported(id: ComponentID): boolean {\n return this.legacyScope.isExported(id);\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 * 3. global config. so for example if a user logs in or out it would be reflected.\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 * @param watchOptions - chokidar watch options (ignoreInitial is always enforced to true)\n * @param additionalPaths - extra paths to watch (e.g. IPC events dir, unmerged.json)\n * @param onAdditionalFileChange - callback invoked when a file in additionalPaths changes\n */\n async watchScopeInternalFiles(\n watchOptions: WatchOptions = {},\n additionalPaths: string[] = [],\n onAdditionalFileChange?: (filePath: string) => Promise<void>\n ) {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const globalStore = this.configStore.stores.global;\n const scopeStore = this.configStore.stores.scope;\n const globalConfigFile = globalStore.getPath();\n const scopeJsonPath = scopeStore.getPath();\n const pathsToWatch = [scopeIndexFile, remoteLanesDir, globalConfigFile, scopeJsonPath, ...additionalPaths];\n // Use polling to reduce FSEvents stream consumption on macOS.\n // These files change infrequently (mainly during import/export operations),\n // so the small CPU overhead of polling is acceptable.\n const watcher = chokidar.watch(pathsToWatch, { ...watchOptions, usePolling: true, interval: 300 });\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('all', async (event, filePath) => {\n if (event !== 'change' && event !== 'add') return;\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 if (filePath === globalConfigFile) {\n this.logger.debug('global config file has been changed, invalidating its cache');\n await globalStore.invalidateCache();\n this.configStore.invalidateCache();\n } else if (filePath === scopeJsonPath) {\n this.logger.debug('scope.json file has been changed, reloading it');\n await scopeStore.invalidateCache();\n this.configStore.invalidateCache();\n } else if (onAdditionalFileChange) {\n await onAdditionalFileChange(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 = ComponentIdList.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importWithoutDeps(allFlattenedUniq, {\n cache: true,\n reason: `which are unique flattened dependencies to get the graph of ${ids.length} ids`,\n });\n const dependencies = await this.getMany(allFlattenedUniq);\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 await Promise.all(\n components.map(async (component) => {\n const compGraph = await this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([compGraph]);\n })\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();\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane, reason: `to build graph-ids from the scope` }\n );\n\n const allFlattened: ComponentID[] = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened.concat(ids));\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = 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 compId = component.toComponentId().changeVersion(versionStr);\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 async getFlattenedEdges(id: ComponentID): Promise<DepEdge[] | undefined> {\n let versionObj: Version;\n try {\n versionObj = await this.legacyScope.getVersionInstance(id);\n } catch {\n return undefined;\n }\n\n const flattenedEdges = await versionObj.getFlattenedEdges(this.legacyScope.objects);\n return flattenedEdges;\n }\n\n private async getSavedGraphOfComponentIfExist(component: Component): Promise<Graph<ComponentID, DepEdgeType> | null> {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = await this.getFlattenedEdges(component.id);\n if (!flattenedEdges)\n throw new Error(\n 'getSavedGraphOfComponentIfExist failed to get flattenedEdges, it must not be undefined because the version object exists'\n );\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: edge.source,\n target: edge.target,\n }));\n const nodes = consumerComponent.flattenedDependencies;\n\n // Convert component ID from hash to tag if a tag exists, to match flattenedEdges format\n let componentIdForGraph = component.id;\n if (component.id.version) {\n const tag = component.tags.byHash(component.id.version);\n if (tag) {\n componentIdForGraph = component.id.changeVersion(tag.version.raw);\n }\n }\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n graph.setNode(new Node(componentIdForGraph.toString(), componentIdForGraph));\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 reFetchUnBuiltVersion = true,\n preferDependencyGraph = true,\n includeUpdateDependents = false,\n lane,\n reason,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: 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 * include the updateDependents components on a lane (generally, on a workspace, it's not needed)\n */\n includeUpdateDependents?: boolean;\n /**\n * reason why this import is needed (to show in the terminal)\n */\n reason?: string;\n } = {}\n ): Promise<void> {\n const withoutOwnScopeAndLocals = ids.filter((id) => {\n return id.scope !== this.name && id._legacy.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentIdList.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n includeUpdateDependents,\n reason,\n });\n }\n\n async get(id: ComponentID, useCache = true, importIfMissing = true): Promise<Component | undefined> {\n return this.componentLoader.get(id, importIfMissing, useCache);\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 * by default, when on a lane, it loads the component from the lane. unless `fromMain` is set to true.\n */\n async getRemoteComponent(id: ComponentID, fromMain = false): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id, fromMain);\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 includeDeleted = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `${this.name}/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n const comps = await this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n\n return includeDeleted ? comps : comps.filter((comp) => !comp.isDeleted());\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 localScopeOnly = !includeCache;\n const allModelComponents = await this.legacyScope.list(localScopeOnly);\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n return lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) => component.toComponentIdWithLatestVersion());\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, 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 if (!idsWithoutEmpty.length) return [];\n return startOrJoinLoadTrace('scope.getMany', { ids: idsWithoutEmpty.length }, async () => {\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 /**\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(\n ids: ComponentID[],\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane, opts));\n return compact(components);\n }\n\n async loadManyCompsAspects(components: Component[], lane?: Lane): Promise<Component[]> {\n const loadedComponents = await mapSeries(components, (id) => this.loadCompAspects(id, lane));\n return compact(loadedComponents);\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);\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(\n id: ComponentID,\n shortHash = false,\n startsFrom?: string,\n throwIfMissing = false\n ): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id, shortHash, startsFrom, throwIfMissing);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.getCurrentLaneId();\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * whether 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);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * whether the id with the specified version exits in the local scope.\n */\n async isComponentInScope(id: ComponentID): Promise<boolean> {\n return this.legacyScope.isComponentInScope(id);\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID> {\n if (id instanceof ComponentID) return id;\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n\n if (isLikelyPackageName(idStr)) {\n return resolveComponentIdFromPackageName(idStr, this.dependencyResolver);\n }\n\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 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 | ComponentID>) {\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 async filterIdsFromPoolIdsByPattern(\n pattern: string,\n ids: ComponentID[],\n throwForNoMatch = true,\n filterByStateFunc?: (state: any, poolIds: ComponentID[]) => Promise<ComponentID[]>\n ) {\n const patterns = pattern.split(',').map((p) => p.trim());\n\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 const [statePatterns, nonStatePatterns] = partition(patterns, (p) => p.startsWith('$') || p.includes(' AND '));\n const nonStatePatternsNoVer = nonStatePatterns.map((p) => p.split('@')[0]); // no need for the version\n const idsMap: { [id: string]: ComponentID } = Object.fromEntries(\n ids.map((id) => [id.toStringWithoutVersion(), id])\n );\n const idsFiltered = nonStatePatternsNoVer.length\n ? multimatch(Object.keys(idsMap), nonStatePatternsNoVer).map((idStr) => idsMap[idStr])\n : [];\n\n const idsStateFiltered = await mapSeries(statePatterns, async (statePattern) => {\n if (!filterByStateFunc) {\n throw new Error(`filter by a state (${statePattern}) is currently supported on the workspace only`);\n }\n if (statePattern.includes(' AND ')) {\n let filteredByAnd: ComponentID[] = ids;\n const patternSplit = statePattern.split(' AND ').map((p) => p.trim());\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id._legacy.toStringWithoutVersion(), id.toStringWithoutVersion()];\n for await (const onePattern of patternSplit) {\n filteredByAnd = onePattern.startsWith('$')\n ? await filterByStateFunc(onePattern.replace('$', ''), filteredByAnd)\n : filteredByAnd.filter((id) => multimatch(idsToCheck(id), [onePattern.split('@')[0]]).length);\n }\n return filteredByAnd;\n }\n return filterByStateFunc(statePattern.replace('$', ''), ids);\n });\n const idsStateFilteredFlat = idsStateFiltered.flat();\n const combineFilteredIds = () => {\n if (!idsStateFiltered) return idsFiltered;\n const allIds = [...idsFiltered, ...idsStateFilteredFlat];\n return ComponentIdList.uniqFromArray(allIds);\n };\n const allIdsFiltered = combineFilteredIds();\n if (throwForNoMatch && !allIdsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return allIdsFiltered;\n }\n\n async getSnapDistance(id: ComponentID, throws = true, workspaceId?: ComponentID): Promise<SnapsDistance> {\n const modelComp = await this.legacyScope.getModelComponent(id);\n await modelComp.setDivergeData(this.legacyScope.objects, throws, undefined, workspaceId);\n return modelComp.getDivergeData();\n }\n /**\n * get the distance for a component between two lanes. for example, lane-b forked from lane-a and lane-b added some new snaps\n * @param componentId\n * @param sourceHead head on the source lane. leave empty if the source is main\n * @param targetHead head on the target lane. leave empty if the target is main\n * @returns\n */\n async getSnapsDistanceBetweenTwoSnaps(\n componentId: ComponentID,\n sourceHead?: string,\n targetHead?: string,\n throws?: boolean\n ): Promise<SnapsDistance> {\n if (!sourceHead && !targetHead) {\n throw new Error(`getDivergeData got sourceHead and targetHead empty. at least one of them should be populated`);\n }\n const modelComponent = await this.legacyScope.getModelComponent(componentId);\n return getDivergeData({\n modelComponent,\n repo: this.legacyScope.objects,\n sourceHead: sourceHead ? Ref.from(sourceHead) : modelComponent.head || null,\n targetHead: targetHead ? Ref.from(targetHead) : modelComponent.head || null,\n throws,\n });\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n /**\n * @deprecated use `this.resolveComponentId` instead.\n */\n async resolveId(id: string): Promise<ComponentID> {\n return this.resolveComponentId(id);\n }\n\n /**\n * @deprecated use `this.getRemoteScopes()` instead.\n */\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n async getRemoteScopes(): 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.getRemoteScopes();\n const remote = await remotes.resolve(scopeName);\n const results = await remote.list();\n return results.map(({ id }) => id);\n }\n\n /**\n * best-effort check whether a component-id already exists on its remote scope.\n * intended as an early-warning helper (e.g. during \"bit add\"/\"bit create\"), not as a source of\n * truth. it never throws: if the workspace is offline, the scope can't be resolved, the user has\n * no access, or the remote lacks the component, it resolves to `false` so callers can safely skip.\n *\n * pass a pre-resolved `remotes` when checking many ids to avoid reloading the global-remotes file\n * from disk on every call.\n */\n async isComponentExistsOnRemote(id: ComponentID, remotes?: Remotes): Promise<boolean> {\n if (!id.scope) return false;\n try {\n const resolvedRemotes = remotes || (await this.getRemoteScopes());\n const remote = await resolvedRemotes.resolve(id.scope);\n const componentFromRemote = await remote.show(id.changeVersion(undefined));\n return Boolean(componentFromRemote);\n } catch (err) {\n // offline / scope-not-found / no-access / component-not-found — all mean \"don't warn\".\n // trace at debug level so unexpected failures are still diagnosable via the debug.log.\n this.logger.debug(`isComponentExistsOnRemote: skipping check for ${id.toString()}, got an error: ${err}`);\n return false;\n }\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id);\n } catch {\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 * ModelComponent is of type `BitObject` which gets saved into the local scope as an object file.\n * It has data about the tags and the component head. It doesn't have any data about the source-files/artifacts etc.\n */\n async getBitObjectModelComponent(id: ComponentID, throwIfNotExist = false): Promise<ModelComponent | undefined> {\n return throwIfNotExist ? this.legacyScope.getModelComponent(id) : this.legacyScope.getModelComponentIfExist(id);\n }\n\n /**\n * Version BitObject holds the data of the source files and build artifacts of a specific snap/tag.\n */\n async getBitObjectVersion(\n modelComponent: ModelComponent,\n version: string,\n throwIfNotExist = false\n ): Promise<Version | undefined> {\n return modelComponent.loadVersion(version, this.legacyScope.objects, throwIfNotExist);\n }\n\n async getBitObjectVersionById(id: ComponentID, throwIfNotExist = false): Promise<Version | undefined> {\n const modelComponent = await this.getBitObjectModelComponent(id, throwIfNotExist);\n if (!modelComponent) return undefined;\n return this.getBitObjectVersion(modelComponent, id.version, throwIfNotExist);\n }\n\n /**\n * get a component and load its aspect\n */\n async load(\n id: ComponentID,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n const optsWithDefaults = { loadApps: true, loadEnvs: true, loadCompAspects: true, ...opts };\n return this.loadCompAspects(component, lane, optsWithDefaults);\n }\n\n async loadCompAspects(\n component: Component,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true, loadCompAspects: true, loadCustomEnvs: false }\n ): Promise<Component> {\n const optsWithDefaults = { loadApps: true, loadEnvs: true, loadCompAspects: true, ...opts };\n const aspectIds = optsWithDefaults.loadCompAspects ? 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 if (optsWithDefaults.loadApps) {\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n }\n if (optsWithDefaults.loadEnvs) {\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if (envsData?.data?.services || envsData?.data?.self || envsData?.data?.type === 'env') {\n aspectIds.push(component.id.toString());\n }\n }\n if (aspectIds && aspectIds.length) {\n await this.loadAspects(aspectIds, true, component.id.toString(), lane, {\n loadCustomEnvs: optsWithDefaults.loadCustomEnvs,\n });\n }\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 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 getLastMergedPath() {\n return path.join(this.path, 'last-merged');\n }\n\n getConfigStore(): Store {\n return {\n list: () => this.legacyScope.scopeJson.config || {},\n set: (key: string, value: string) => {\n this.legacyScope.scopeJson.setConfig(key, value);\n },\n del: (key: string) => {\n this.legacyScope.scopeJson.rmConfig(key);\n },\n write: async () => {\n await this.legacyScope.scopeJson.writeIfChanged();\n },\n invalidateCache: async () => {\n await this.legacyScope.reloadScopeJson();\n },\n getPath: () => this.legacyScope.scopeJson.scopeJsonPath,\n };\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 async hasObjects(hashes: string[]): Promise<string[]> {\n const refs = hashes.map((h) => Ref.from(h));\n const results = await this.legacyScope.objects.hasMultiple(refs);\n return results.map((r) => r.hash);\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 Slot.withType<OnCompAspectReCalc>(),\n Slot.withType<OnPreObjectPersist>(),\n Slot.withType<OnPostObjectRead>(),\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 ConfigStoreAspect,\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, configStore]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain,\n ConfigStoreMain,\n ],\n config: ScopeConfig,\n [\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n OnCompAspectReCalcSlot,\n preObjectPersistSlot,\n postObjectReadSlot,\n ]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot,\n OnCompAspectReCalcSlot,\n OnPreObjectPersistSlot,\n OnPostObjectReadSlot,\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const debugCommands = [new CatScopeCmd(), new CatComponentCmd(), new CatObjectCmd(), new CatLaneCmd()];\n const allCommands = [new ScopeCmd(), ...debugCommands, new RunActionCmd()];\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n cli.register(...allCommands);\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 OnCompAspectReCalcSlot,\n preObjectPersistSlot,\n postObjectReadSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver,\n configStore\n );\n configStore.addStore('scope', scope.getConfigStore());\n cli.register(...allCommands);\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\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: ComponentID[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const fns = postExportSlot.values();\n const data = {\n ids,\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 /**\n * Hook for transforming content before objects are persisted to the filesystem.\n * Note: This function cannot be async because it is used by synchronous code paths (e.g., Repository.loadSync)\n */\n const onPreObjectPersistHook = (content: Buffer): Buffer => {\n const fns = preObjectPersistSlot.values();\n return fns.reduce((acc, fn) => fn(acc), content);\n };\n\n /**\n * Hook for transforming content after objects are read from the filesystem.\n * Note: This function cannot be async because it is used by synchronous code paths (e.g., Repository.loadSync)\n */\n const onPostObjectReadHook = (content: Buffer): Buffer => {\n const fns = postObjectReadSlot.values();\n return fns.reduce((acc, fn) => fn(acc), content);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n Repository.onPreObjectPersist = onPreObjectPersistHook;\n Repository.onPostObjectRead = onPostObjectReadHook;\n // the hook above is installed whether or not anything registered a transformer, so it can't be\n // used to answer \"is content transformed?\". the slot is filled by other aspects' providers, so\n // this is a live check rather than a snapshot taken here.\n Repository.hasPostObjectReadTransformer = () => postObjectReadSlot.values().length > 0;\n ExternalActions.externalActions.push(new ClearCacheAction(scope));\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(() => scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n\n public getDependenciesGraphByComponentIds(\n componentIds: ComponentID[],\n options?: { ignoreFeatureToggle?: boolean }\n ): Promise<DependenciesGraph | undefined> {\n return this.legacyScope.getDependenciesGraphByComponentIds(componentIds, options);\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,13 @@ function _sidebar() {
32
32
  };
33
33
  return data;
34
34
  }
35
+ function _harmonyModules() {
36
+ const data = require("@teambit/harmony.modules.runtimes");
37
+ _harmonyModules = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
35
42
  function _ui() {
36
43
  const data = require("@teambit/ui");
37
44
  _ui = function () {
@@ -432,7 +439,7 @@ class ScopeUI {
432
439
  }
433
440
  exports.ScopeUI = ScopeUI;
434
441
  _defineProperty(ScopeUI, "dependencies", [_ui().UIAspect, _component().ComponentAspect, _sidebar().SidebarAspect, _commandBar().CommandBarAspect]);
435
- _defineProperty(ScopeUI, "runtime", _ui().UIRuntime);
442
+ _defineProperty(ScopeUI, "runtime", _harmonyModules().UIRuntime);
436
443
  _defineProperty(ScopeUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
437
444
  _defineProperty(ScopeUI, "defaultConfig", {
438
445
  showGallery: true
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_component","_harmony","_sidebar","_ui","_react","_interopRequireDefault","_designUiSurfacesMenu","_commandBar","_componentUi","_componentUiComponentFilters","_componentUiComponentFilters2","_componentModules","_componentUiComponentFilters3","_menu","_scope","_scope2","_scopeUi","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","contextSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","routes","register","menuItems","componentTreeNodes","map","componentTreeNode","links","drawer","registerDrawer","filters","widgets","components","updateComponents","category","title","keyChar","handler","run","registerBadge","badges","getScope","options","createElement","Scope","TargetScopeOverview","scopeClassName","TargetCorner","Corner","render","items","listSidebarLinks","overrideDrawerSlot","overrideDrawers","scopeUi","userUseScopeQuery","useScope","badgeSlot","overviewLineSlot","context","getContext","getComponentUrl","onSidebarTogglerChange","onSidebarToggle","setSidebarToggle","paneClassName","PaneWrapper","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","ScopeMenu","widgetSlot","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","componentUrlFn","contexts","values","ComponentUrlFuncProvider","children","ComponentUrlProvider","flatten","concat","registerDefaultDrawers","assumeScopeInUrl","overrideUseComponents","overrideUseLanes","getDefaultDrawer","scopeDrawer","treeWidgets","filtersSlot","uiRoot","setKeyBindHandler","addCommand","action","displayName","keybinding","sorted","sort","a","b","aWeight","weight","bWeight","compact","link","component","provider","ui","config","componentFiltersSlot","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","key","TreeToggleWidget","registerRoot","bind","registerMenuItem","ScopeUseBox","actionName","useBoxAction","actionIcon","useBoxIcon","showGallery","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","exports","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","_default","addRuntime"],"sources":["scope.ui.runtime.tsx"],"sourcesContent":["import type { ComponentUI, ComponentModel } from '@teambit/component';\nimport { compact, flatten } from 'lodash';\nimport { ComponentAspect } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { SidebarAspect } from '@teambit/sidebar';\nimport type { ComponentTreeNode } from '@teambit/component-tree';\nimport type { UIRootUI as UIRoot, UiUI } from '@teambit/ui';\nimport { UIAspect, UIRuntime } from '@teambit/ui';\nimport type { ComponentType, ReactNode } from 'react';\nimport React from 'react';\nimport type { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport type { RouteProps } from 'react-router-dom';\nimport type { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport type { CommandBarUI, CommandHandler } from '@teambit/command-bar';\nimport { CommandBarAspect } from '@teambit/command-bar';\nimport type { ScopeModel } from '@teambit/scope.models.scope-model';\nimport type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport type { DrawerWidgetSlot, ComponentFiltersSlot } from '@teambit/component.ui.component-drawer';\nimport { FilterWidget, TreeToggleWidget } from '@teambit/component.ui.component-drawer';\nimport type { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport type { ComponentUrlResolver } from '@teambit/component.modules.component-url';\nimport { ComponentUrlProvider } from '@teambit/component.modules.component-url';\nimport { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { scopeDrawer } from './scope.ui.drawer';\nimport type { GetScopeOptions } from './get-scope-options';\n\nexport type ScopeBadge = ComponentType;\n\nexport type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;\n\nexport type ContextSlot = SlotRegistry<ScopeContextType[]>;\n\nexport type ScopeContextType = ComponentType<{ scope: ScopeModel; children: ReactNode }>;\n\nexport type SidebarSlot = SlotRegistry<ComponentTreeNode>;\n\nexport type ScopeOverview = ComponentType;\n\nexport type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;\n\nexport type Corner = ComponentType;\n\nexport type CornerSlot = SlotRegistry<Corner>;\n\nexport type OverviewLine = ComponentType;\n\nexport type OverviewLineSlot = SlotRegistry<OverviewLine[]>;\n\nexport type ScopeUIConfig = {\n showGallery: boolean;\n useBoxAction?: string;\n useBoxIcon?: string;\n};\n\nexport class ScopeUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarSlot,\n\n private commandBarUI: CommandBarUI,\n\n private scopeBadgeSlot: ScopeBadgeSlot,\n\n private menuWidgetSlot: MenuWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n /**\n * main dropdown item slot\n */\n private menuItemSlot: MenuItemSlot,\n\n /**\n * corner slot\n */\n private cornerSlot: CornerSlot,\n\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: OverviewLineSlot,\n\n /**\n * add a new context to ui\n */\n private contextSlot: ContextSlot,\n private drawerWidgetSlot: DrawerWidgetSlot,\n private drawerComponentsFiltersSlot: ComponentFiltersSlot\n ) {}\n\n private setSidebarToggle: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a new badge into the scope overview.\n */\n registerBadge(...badges: ScopeBadge[]) {\n this.scopeBadgeSlot.register(badges);\n return this;\n }\n\n getScope(options: GetScopeOptions) {\n return (\n <Scope\n TargetScopeOverview={options.TargetScopeOverview}\n scopeClassName={options.scopeClassName}\n TargetCorner={options.Corner}\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} overrideDrawerSlot={options.overrideDrawers} />}\n scopeUi={this}\n userUseScopeQuery={options.useScope}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext(options.getComponentUrl)}\n onSidebarTogglerChange={options.onSidebarToggle || this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n paneClassName={options.paneClassName}\n PaneWrapper={options.PaneWrapper}\n />\n );\n }\n\n /**\n * register a new line beneath the scope overview section.\n */\n registerOverviewLine(...lines: OverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n /**\n * register a route to the scope.\n */\n registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n private applyMenuRoutes() {\n this.registerMenuRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n path: '/',\n element: this.getScopeMenu(),\n },\n ]);\n }\n\n getScopeMenu() {\n return <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />;\n }\n\n private registerExplicitRoutes() {\n this.applyMenuRoutes();\n this.registerRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getComponentUI(ScopeAspect.id),\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n registerCorner(corner: Corner) {\n this.cornerSlot.register(corner);\n }\n\n private componentUrlFunc: ComponentUrlResolver | undefined;\n registerComponentUrl(func: ComponentUrlResolver) {\n this.componentUrlFunc = func;\n }\n\n /**\n * register a scope overview.\n */\n replaceOverview() {}\n\n /**\n * register description.\n */\n replaceDescription() {}\n\n /**\n * register metadata section.\n */\n replaceMetadataSection() {}\n\n /**\n * register a metadata item.\n */\n registerMetadataItem() {}\n\n replaceComponentGrid() {}\n\n /**\n * register metadata.\n */\n registerMetadata() {}\n\n /**\n * add a new context to the scope.\n */\n addContext(...context: ScopeContextType[]) {\n this.contextSlot.register(context);\n return this;\n }\n\n private getContext(componentUrlFn?: ComponentUrlResolver) {\n const contexts = this.contextSlot.values();\n // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n // @ts-ignore TODO: fix this\n <ComponentUrlProvider value={componentUrlFn || this.componentUrlFunc}>{children}</ComponentUrlProvider>\n );\n\n return flatten(contexts).concat(ComponentUrlFuncProvider);\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n /**\n * register a sidebar Widget for the scope\n */\n registerSidebarWidget = (componentTreeNodes: ComponentTreeNode[]) => {\n componentTreeNodes.map((componentTreeNode) => this.sidebarSlot.register(componentTreeNode));\n return this;\n };\n\n /**\n * register a sidebar link to the section above the drawers\n */\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n registerDrawers = (...drawer: DrawerType[]) => {\n this.sidebar.registerDrawer(...drawer);\n return this;\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n registerDefaultDrawers(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n this.sidebar.registerDrawer(this.getDefaultDrawer(assumeScopeInUrl, overrideUseComponents, overrideUseLanes));\n }\n\n getDefaultDrawer(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n return scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n overrideUseComponents,\n overrideUseLanes,\n });\n }\n\n uiRoot(): UIRoot {\n this.registerDefaultDrawers();\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\n <Scope\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}\n scopeUi={this}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext()}\n onSidebarTogglerChange={this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n />\n ),\n },\n ],\n };\n }\n\n listSidebarLinks() {\n const links = flatten(this.sidebarItemSlot.values());\n const sorted = links.sort((a, b) => {\n const aWeight = a?.weight || 0;\n const bWeight = b?.weight || 0;\n return aWeight - bWeight;\n });\n\n return compact(\n sorted.map((link) => {\n return link.component;\n })\n );\n }\n\n /** registers available components */\n setComponents = (components: ComponentModel[]) => {\n this.componentUi.updateComponents(components);\n };\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, CommandBarAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<ScopeBadge>(),\n Slot.withType<ScopeOverview>(),\n Slot.withType<MenuWidget[]>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<CornerSlot>(),\n Slot.withType<OverviewLineSlot>(),\n Slot.withType<SidebarItemSlot>(),\n Slot.withType<ContextSlot>(),\n Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static defaultConfig = {\n showGallery: true,\n };\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI]: [UiUI, ComponentUI, SidebarUI, CommandBarUI],\n config: ScopeUIConfig,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot,\n ContextSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot,\n ]\n ) {\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot\n );\n scopeUi.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter, ShowMainFilter(false)]);\n scopeUi.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n if (ui) ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox actionName={config.useBoxAction} actionIcon={config.useBoxIcon} />);\n if (config.showGallery)\n scopeUi.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Overview\n </MenuLinkItem>\n );\n },\n });\n if (ui) scopeUi.registerExplicitRoutes();\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","_component","_harmony","_sidebar","_harmonyModules","_ui","_react","_interopRequireDefault","_designUiSurfacesMenu","_commandBar","_componentUi","_componentUiComponentFilters","_componentUiComponentFilters2","_componentModules","_componentUiComponentFilters3","_menu","_scope","_scope2","_scopeUi","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","contextSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","routes","register","menuItems","componentTreeNodes","map","componentTreeNode","links","drawer","registerDrawer","filters","widgets","components","updateComponents","category","title","keyChar","handler","run","registerBadge","badges","getScope","options","createElement","Scope","TargetScopeOverview","scopeClassName","TargetCorner","Corner","render","items","listSidebarLinks","overrideDrawerSlot","overrideDrawers","scopeUi","userUseScopeQuery","useScope","badgeSlot","overviewLineSlot","context","getContext","getComponentUrl","onSidebarTogglerChange","onSidebarToggle","setSidebarToggle","paneClassName","PaneWrapper","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","ScopeMenu","widgetSlot","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","componentUrlFn","contexts","values","ComponentUrlFuncProvider","children","ComponentUrlProvider","flatten","concat","registerDefaultDrawers","assumeScopeInUrl","overrideUseComponents","overrideUseLanes","getDefaultDrawer","scopeDrawer","treeWidgets","filtersSlot","uiRoot","setKeyBindHandler","addCommand","action","displayName","keybinding","sorted","sort","a","b","aWeight","weight","bWeight","compact","link","component","provider","ui","config","componentFiltersSlot","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","key","TreeToggleWidget","registerRoot","bind","registerMenuItem","ScopeUseBox","actionName","useBoxAction","actionIcon","useBoxIcon","showGallery","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","exports","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","_default","addRuntime"],"sources":["scope.ui.runtime.tsx"],"sourcesContent":["import type { ComponentUI, ComponentModel } from '@teambit/component';\nimport { compact, flatten } from 'lodash';\nimport { ComponentAspect } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { SidebarAspect } from '@teambit/sidebar';\nimport type { ComponentTreeNode } from '@teambit/component-tree';\nimport type { UIRootUI as UIRoot, UiUI } from '@teambit/ui';\nimport { UIRuntime } from '@teambit/harmony.modules.runtimes';\nimport { UIAspect } from '@teambit/ui';\nimport type { ComponentType, ReactNode } from 'react';\nimport React from 'react';\nimport type { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport type { RouteProps } from 'react-router-dom';\nimport type { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport type { CommandBarUI, CommandHandler } from '@teambit/command-bar';\nimport { CommandBarAspect } from '@teambit/command-bar';\nimport type { ScopeModel } from '@teambit/scope.models.scope-model';\nimport type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport type { DrawerWidgetSlot, ComponentFiltersSlot } from '@teambit/component.ui.component-drawer';\nimport { FilterWidget, TreeToggleWidget } from '@teambit/component.ui.component-drawer';\nimport type { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport type { ComponentUrlResolver } from '@teambit/component.modules.component-url';\nimport { ComponentUrlProvider } from '@teambit/component.modules.component-url';\nimport { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { scopeDrawer } from './scope.ui.drawer';\nimport type { GetScopeOptions } from './get-scope-options';\n\nexport type ScopeBadge = ComponentType;\n\nexport type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;\n\nexport type ContextSlot = SlotRegistry<ScopeContextType[]>;\n\nexport type ScopeContextType = ComponentType<{ scope: ScopeModel; children: ReactNode }>;\n\nexport type SidebarSlot = SlotRegistry<ComponentTreeNode>;\n\nexport type ScopeOverview = ComponentType;\n\nexport type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;\n\nexport type Corner = ComponentType;\n\nexport type CornerSlot = SlotRegistry<Corner>;\n\nexport type OverviewLine = ComponentType;\n\nexport type OverviewLineSlot = SlotRegistry<OverviewLine[]>;\n\nexport type ScopeUIConfig = {\n showGallery: boolean;\n useBoxAction?: string;\n useBoxIcon?: string;\n};\n\nexport class ScopeUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarSlot,\n\n private commandBarUI: CommandBarUI,\n\n private scopeBadgeSlot: ScopeBadgeSlot,\n\n private menuWidgetSlot: MenuWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n /**\n * main dropdown item slot\n */\n private menuItemSlot: MenuItemSlot,\n\n /**\n * corner slot\n */\n private cornerSlot: CornerSlot,\n\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: OverviewLineSlot,\n\n /**\n * add a new context to ui\n */\n private contextSlot: ContextSlot,\n private drawerWidgetSlot: DrawerWidgetSlot,\n private drawerComponentsFiltersSlot: ComponentFiltersSlot\n ) {}\n\n private setSidebarToggle: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a new badge into the scope overview.\n */\n registerBadge(...badges: ScopeBadge[]) {\n this.scopeBadgeSlot.register(badges);\n return this;\n }\n\n getScope(options: GetScopeOptions) {\n return (\n <Scope\n TargetScopeOverview={options.TargetScopeOverview}\n scopeClassName={options.scopeClassName}\n TargetCorner={options.Corner}\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} overrideDrawerSlot={options.overrideDrawers} />}\n scopeUi={this}\n userUseScopeQuery={options.useScope}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext(options.getComponentUrl)}\n onSidebarTogglerChange={options.onSidebarToggle || this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n paneClassName={options.paneClassName}\n PaneWrapper={options.PaneWrapper}\n />\n );\n }\n\n /**\n * register a new line beneath the scope overview section.\n */\n registerOverviewLine(...lines: OverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n /**\n * register a route to the scope.\n */\n registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n private applyMenuRoutes() {\n this.registerMenuRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n path: '/',\n element: this.getScopeMenu(),\n },\n ]);\n }\n\n getScopeMenu() {\n return <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />;\n }\n\n private registerExplicitRoutes() {\n this.applyMenuRoutes();\n this.registerRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getComponentUI(ScopeAspect.id),\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n registerCorner(corner: Corner) {\n this.cornerSlot.register(corner);\n }\n\n private componentUrlFunc: ComponentUrlResolver | undefined;\n registerComponentUrl(func: ComponentUrlResolver) {\n this.componentUrlFunc = func;\n }\n\n /**\n * register a scope overview.\n */\n replaceOverview() {}\n\n /**\n * register description.\n */\n replaceDescription() {}\n\n /**\n * register metadata section.\n */\n replaceMetadataSection() {}\n\n /**\n * register a metadata item.\n */\n registerMetadataItem() {}\n\n replaceComponentGrid() {}\n\n /**\n * register metadata.\n */\n registerMetadata() {}\n\n /**\n * add a new context to the scope.\n */\n addContext(...context: ScopeContextType[]) {\n this.contextSlot.register(context);\n return this;\n }\n\n private getContext(componentUrlFn?: ComponentUrlResolver) {\n const contexts = this.contextSlot.values();\n // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n // @ts-ignore TODO: fix this\n <ComponentUrlProvider value={componentUrlFn || this.componentUrlFunc}>{children}</ComponentUrlProvider>\n );\n\n return flatten(contexts).concat(ComponentUrlFuncProvider);\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n /**\n * register a sidebar Widget for the scope\n */\n registerSidebarWidget = (componentTreeNodes: ComponentTreeNode[]) => {\n componentTreeNodes.map((componentTreeNode) => this.sidebarSlot.register(componentTreeNode));\n return this;\n };\n\n /**\n * register a sidebar link to the section above the drawers\n */\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n registerDrawers = (...drawer: DrawerType[]) => {\n this.sidebar.registerDrawer(...drawer);\n return this;\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n registerDefaultDrawers(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n this.sidebar.registerDrawer(this.getDefaultDrawer(assumeScopeInUrl, overrideUseComponents, overrideUseLanes));\n }\n\n getDefaultDrawer(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n return scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n overrideUseComponents,\n overrideUseLanes,\n });\n }\n\n uiRoot(): UIRoot {\n this.registerDefaultDrawers();\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\n <Scope\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}\n scopeUi={this}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext()}\n onSidebarTogglerChange={this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n />\n ),\n },\n ],\n };\n }\n\n listSidebarLinks() {\n const links = flatten(this.sidebarItemSlot.values());\n const sorted = links.sort((a, b) => {\n const aWeight = a?.weight || 0;\n const bWeight = b?.weight || 0;\n return aWeight - bWeight;\n });\n\n return compact(\n sorted.map((link) => {\n return link.component;\n })\n );\n }\n\n /** registers available components */\n setComponents = (components: ComponentModel[]) => {\n this.componentUi.updateComponents(components);\n };\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, CommandBarAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<ScopeBadge>(),\n Slot.withType<ScopeOverview>(),\n Slot.withType<MenuWidget[]>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<CornerSlot>(),\n Slot.withType<OverviewLineSlot>(),\n Slot.withType<SidebarItemSlot>(),\n Slot.withType<ContextSlot>(),\n Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static defaultConfig = {\n showGallery: true,\n };\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI]: [UiUI, ComponentUI, SidebarUI, CommandBarUI],\n config: ScopeUIConfig,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot,\n ContextSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot,\n ]\n ) {\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot\n );\n scopeUi.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter, ShowMainFilter(false)]);\n scopeUi.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n if (ui) ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox actionName={config.useBoxAction} actionIcon={config.useBoxIcon} />);\n if (config.showGallery)\n scopeUi.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Overview\n </MenuLinkItem>\n );\n },\n });\n if (ui) scopeUi.registerExplicitRoutes();\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/scope",
3
- "version": "1.0.1186",
3
+ "version": "1.0.1188",
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": "1.0.1186"
9
+ "version": "1.0.1188"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -30,11 +30,20 @@
30
30
  "@teambit/bit-error": "0.0.404",
31
31
  "@teambit/harmony.modules.in-memory-cache": "0.0.51",
32
32
  "@teambit/harmony.modules.load-trace": "0.0.15",
33
+ "@teambit/legacy.consumer-component": "0.0.172",
33
34
  "@teambit/bit.get-bit-version": "0.0.29",
34
35
  "@teambit/legacy-component-log": "0.0.432",
36
+ "@teambit/legacy.scope-api": "0.0.226",
35
37
  "@teambit/component-id": "1.2.4",
38
+ "@teambit/component.snap-distance": "0.0.172",
36
39
  "@teambit/graph.cleargraph": "0.0.11",
37
40
  "@teambit/legacy-bit-id": "1.1.3",
41
+ "@teambit/legacy.extension-data": "0.0.173",
42
+ "@teambit/legacy.scope": "0.0.171",
43
+ "@teambit/pkg.modules.component-package-name": "0.0.178",
44
+ "@teambit/scope.network": "0.0.171",
45
+ "@teambit/scope.remote-actions": "0.0.171",
46
+ "@teambit/scope.remotes": "0.0.171",
38
47
  "@teambit/workspace.modules.match-pattern": "0.0.536",
39
48
  "@teambit/component.ui.component-drawer": "0.0.510",
40
49
  "@teambit/design.ui.tree": "0.0.16",
@@ -61,8 +70,6 @@
61
70
  "@teambit/ui-foundation.ui.full-loader": "0.0.500",
62
71
  "@teambit/ui-foundation.ui.hooks.use-is-mobile": "0.0.200",
63
72
  "@teambit/ui-foundation.ui.top-bar": "0.0.515",
64
- "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
65
- "@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.147",
66
73
  "@teambit/component-descriptor": "0.0.467",
67
74
  "@teambit/design.ui.tooltip": "0.0.388",
68
75
  "@teambit/explorer.ui.component-card": "0.0.52",
@@ -71,32 +78,26 @@
71
78
  "@teambit/scope.ui.empty-scope": "0.0.510",
72
79
  "@teambit/scope.ui.scope-details": "0.0.526",
73
80
  "@teambit/scopes.scope-id": "0.0.9",
74
- "@teambit/aspect-loader": "1.0.1186",
75
- "@teambit/cli": "0.0.1399",
76
- "@teambit/compiler": "1.0.1186",
77
- "@teambit/component": "1.0.1186",
78
- "@teambit/config-store": "0.0.280",
79
- "@teambit/dependency-resolver": "1.0.1186",
80
- "@teambit/envs": "1.0.1186",
81
- "@teambit/isolator": "1.0.1186",
82
- "@teambit/logger": "0.0.1492",
83
- "@teambit/objects": "0.0.693",
84
- "@teambit/legacy.consumer-component": "0.0.171",
85
- "@teambit/legacy.scope-api": "0.0.225",
86
- "@teambit/component.snap-distance": "0.0.171",
87
- "@teambit/express": "0.0.1498",
88
- "@teambit/graph": "1.0.1186",
89
- "@teambit/graphql": "1.0.1186",
90
- "@teambit/legacy.extension-data": "0.0.172",
91
- "@teambit/legacy.scope": "0.0.170",
92
- "@teambit/pkg.modules.component-package-name": "0.0.177",
93
- "@teambit/scope.network": "0.0.170",
94
- "@teambit/scope.remote-actions": "0.0.170",
95
- "@teambit/scope.remotes": "0.0.170",
96
- "@teambit/ui": "1.0.1186",
97
- "@teambit/command-bar": "1.0.1186",
98
- "@teambit/component-tree": "1.0.1186",
99
- "@teambit/sidebar": "1.0.1186"
81
+ "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
82
+ "@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.147",
83
+ "@teambit/aspect-loader": "1.0.1188",
84
+ "@teambit/compiler": "1.0.1188",
85
+ "@teambit/component": "1.0.1188",
86
+ "@teambit/config-store": "0.0.282",
87
+ "@teambit/dependency-resolver": "1.0.1188",
88
+ "@teambit/envs": "1.0.1188",
89
+ "@teambit/harmony.modules.runtimes": "0.0.1",
90
+ "@teambit/isolator": "1.0.1188",
91
+ "@teambit/logger": "0.0.1494",
92
+ "@teambit/objects": "0.0.695",
93
+ "@teambit/cli": "0.0.1401",
94
+ "@teambit/express": "0.0.1500",
95
+ "@teambit/graph": "1.0.1188",
96
+ "@teambit/graphql": "1.0.1188",
97
+ "@teambit/ui": "1.0.1188",
98
+ "@teambit/command-bar": "1.0.1188",
99
+ "@teambit/component-tree": "1.0.1188",
100
+ "@teambit/sidebar": "1.0.1188"
100
101
  },
101
102
  "devDependencies": {
102
103
  "@types/fs-extra": "9.0.7",
@@ -8,7 +8,8 @@ import type { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';
8
8
  import { SidebarAspect } from '@teambit/sidebar';
9
9
  import type { ComponentTreeNode } from '@teambit/component-tree';
10
10
  import type { UIRootUI as UIRoot, UiUI } from '@teambit/ui';
11
- import { UIAspect, UIRuntime } from '@teambit/ui';
11
+ import { UIRuntime } from '@teambit/harmony.modules.runtimes';
12
+ import { UIAspect } from '@teambit/ui';
12
13
  import type { ComponentType, ReactNode } from 'react';
13
14
  import React from 'react';
14
15
  import type { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';