@teambit/scope 1.0.107 → 1.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/clear-cache-action.ts +11 -0
  2. package/dist/get-scope-options.d.ts +1 -1
  3. package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
  4. package/dist/scope-aspects-loader.d.ts +4 -4
  5. package/dist/scope-aspects-loader.js +8 -9
  6. package/dist/scope-aspects-loader.js.map +1 -1
  7. package/dist/scope-cmd.d.ts +1 -1
  8. package/dist/scope-component-loader.js +2 -2
  9. package/dist/scope-component-loader.js.map +1 -1
  10. package/dist/scope.composition.d.ts +2 -2
  11. package/dist/scope.graphql.d.ts +4 -4
  12. package/dist/scope.main.runtime.d.ts +30 -22
  13. package/dist/scope.main.runtime.js +37 -15
  14. package/dist/scope.main.runtime.js.map +1 -1
  15. package/dist/scope.ui-root.d.ts +2 -2
  16. package/dist/scope.ui.drawer.d.ts +1 -1
  17. package/dist/scope.ui.drawer.js +6 -8
  18. package/dist/scope.ui.drawer.js.map +1 -1
  19. package/dist/scope.ui.runtime.d.ts +14 -14
  20. package/dist/scope.ui.runtime.js +8 -11
  21. package/dist/scope.ui.runtime.js.map +1 -1
  22. package/dist/staged-config.d.ts +3 -3
  23. package/dist/staged-config.js +2 -3
  24. package/dist/staged-config.js.map +1 -1
  25. package/dist/types.d.ts +3 -3
  26. package/dist/ui/menu/menu.d.ts +4 -4
  27. package/dist/ui/scope-overview/scope-overview.d.ts +5 -5
  28. package/dist/ui/scope-overview/scope-overview.js +2 -4
  29. package/dist/ui/scope-overview/scope-overview.js.map +1 -1
  30. package/dist/ui/scope.d.ts +3 -3
  31. package/dist/ui/scope.js +1 -1
  32. package/dist/ui/scope.js.map +1 -1
  33. package/get-scope-options.ts +16 -0
  34. package/index.ts +11 -0
  35. package/package.json +35 -42
  36. package/scope-aspects-loader.ts +493 -0
  37. package/scope-cmd.ts +17 -0
  38. package/scope-component-loader.ts +208 -0
  39. package/scope.aspect.ts +7 -0
  40. package/scope.graphql.ts +115 -0
  41. package/scope.main.runtime.ts +1263 -0
  42. package/scope.ui-root.ts +43 -0
  43. package/scope.ui.runtime.tsx +1 -0
  44. package/staged-config.ts +79 -0
  45. package/tsconfig.json +16 -21
  46. package/types/asset.d.ts +15 -3
  47. package/types.ts +12 -0
@@ -0,0 +1,11 @@
1
+ import { ScopeMain } from './scope.main.runtime';
2
+
3
+ export class ClearCacheAction {
4
+ name = ClearCacheAction.name;
5
+ constructor(private scope: ScopeMain) {}
6
+ async execute() {
7
+ if (!this.scope) return false;
8
+ await this.scope.clearCache();
9
+ return true;
10
+ }
11
+ }
@@ -2,7 +2,7 @@ import { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
2
2
  import { ComponentType, ReactNode } from 'react';
3
3
  import { ComponentUrlResolver } from '@teambit/component.modules.component-url';
4
4
  import { ScopeModel } from '.';
5
- export declare type GetScopeOptions = {
5
+ export type GetScopeOptions = {
6
6
  useScope?: () => {
7
7
  scope: ScopeModel | undefined;
8
8
  };
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.107/dist/scope.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.107/dist/scope.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.108/dist/scope.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.108/dist/scope.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -9,8 +9,8 @@ import { ScopeMain } from '@teambit/scope';
9
9
  import { Logger } from '@teambit/logger';
10
10
  import { EnvsMain } from '@teambit/envs';
11
11
  import { NodeLinker } from '@teambit/dependency-resolver';
12
- declare type ManifestOrAspect = ExtensionManifest | Aspect;
13
- export declare type ScopeLoadAspectsOptions = LoadAspectsOptions & {
12
+ type ManifestOrAspect = ExtensionManifest | Aspect;
13
+ export type ScopeLoadAspectsOptions = LoadAspectsOptions & {
14
14
  useScopeAspectsCapsule?: boolean;
15
15
  packageManagerConfigRootDir?: string;
16
16
  workspaceName?: string;
@@ -69,8 +69,8 @@ export declare class ScopeAspectsLoader {
69
69
  datedDirId: string;
70
70
  baseDir: string;
71
71
  useHash: boolean;
72
- packageManager: string | undefined;
73
- nodeLinker: NodeLinker | undefined;
72
+ packageManager: string;
73
+ nodeLinker: NodeLinker;
74
74
  useDatedDirs: boolean;
75
75
  cacheLockFileOnly: boolean;
76
76
  skipIfExists: boolean;
@@ -69,7 +69,6 @@ class ScopeAspectsLoader {
69
69
  this.globalConfig = globalConfig;
70
70
  }
71
71
  async loadAspects(ids, throwOnError = false, neededFor, lane, opts) {
72
- var _grouped$envs, _grouped$other;
73
72
  if (!ids.length) return [];
74
73
  // generate a random callId to be able to identify the call from the logs
75
74
  const callId = Math.floor(Math.random() * 1000);
@@ -78,9 +77,9 @@ class ScopeAspectsLoader {
78
77
  ids: ${ids.join(', ')}
79
78
  needed-for: ${neededFor || '<unknown>'}`);
80
79
  const grouped = await this.groupAspectIdsByEnvOfTheList(ids, lane);
81
- this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${((_grouped$envs = grouped.envs) === null || _grouped$envs === void 0 ? void 0 : _grouped$envs.length) || 0}`);
80
+ this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${grouped.envs?.length || 0}`);
82
81
  const envsManifestsIds = await this.getManifestsAndLoadAspects(grouped.envs, throwOnError, lane, opts);
83
- this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${((_grouped$other = grouped.other) === null || _grouped$other === void 0 ? void 0 : _grouped$other.length) || 0}`);
82
+ this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${grouped.other?.length || 0}`);
84
83
  const otherManifestsIds = await this.getManifestsAndLoadAspects(grouped.other, throwOnError, lane, opts);
85
84
  this.logger.debug(`${loggerPrefix} finish loading aspects`);
86
85
  return envsManifestsIds.concat(otherManifestsIds);
@@ -204,7 +203,7 @@ needed-for: ${neededFor || '<unknown>'}`);
204
203
  async compileIfNoDist(capsule, component) {
205
204
  const env = this.envs.getEnv(component);
206
205
  const compiler = env.env.getCompiler();
207
- const distDir = (compiler === null || compiler === void 0 ? void 0 : compiler.distDir) || _constants().DEFAULT_DIST_DIRNAME;
206
+ const distDir = compiler?.distDir || _constants().DEFAULT_DIST_DIRNAME;
208
207
  const distExists = (0, _fsExtra().existsSync)((0, _path().join)(capsule.path, distDir));
209
208
  if (distExists) return;
210
209
  const compiledCode = (await Promise.all(component.filesystem.files.flatMap(async file => {
@@ -224,7 +223,7 @@ needed-for: ${neededFor || '<unknown>'}`);
224
223
  }))).flat();
225
224
  await Promise.all((0, _lodash().compact)(compiledCode).map(compiledFile => {
226
225
  const path = compiler.getDistPathBySrcPath(compiledFile.outputPath);
227
- return capsule === null || capsule === void 0 ? void 0 : capsule.outputFile(path, compiledFile.outputText);
226
+ return capsule?.outputFile(path, compiledFile.outputText);
228
227
  }));
229
228
  }
230
229
  async tryCompile(requirableAspect) {
@@ -333,7 +332,7 @@ needed-for: ${neededFor || '<unknown>'}`);
333
332
  return aspectDefs;
334
333
  }
335
334
  async resolveAspects(runtimeName, componentIds, opts) {
336
- const originalStringIds = componentIds === null || componentIds === void 0 ? void 0 : componentIds.map(id => id.toString());
335
+ const originalStringIds = componentIds?.map(id => id.toString());
337
336
  this.logger.debug(`scope resolveAspects, runtimeName: ${runtimeName}, componentIds: ${originalStringIds}`);
338
337
  const defaultOpts = {
339
338
  excludeCore: false,
@@ -367,12 +366,12 @@ needed-for: ${neededFor || '<unknown>'}`);
367
366
  }
368
367
  getIsolateOpts(opts) {
369
368
  const overrideOpts = {
370
- skipIfExists: (opts === null || opts === void 0 ? void 0 : opts.skipIfExists) ?? true,
369
+ skipIfExists: opts?.skipIfExists ?? true,
371
370
  installOptions: {
372
- packageManagerConfigRootDir: opts === null || opts === void 0 ? void 0 : opts.packageManagerConfigRootDir
371
+ packageManagerConfigRootDir: opts?.packageManagerConfigRootDir
373
372
  },
374
373
  context: {
375
- workspaceName: opts === null || opts === void 0 ? void 0 : opts.workspaceName
374
+ workspaceName: opts?.workspaceName
376
375
  }
377
376
  };
378
377
  const isolateOpts = (0, _lodash().defaultsDeep)(overrideOpts, this.getDefaultIsolateOpts());
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_constants","_lodash","_cli","_harmonyModules","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","globalConfig","loadAspects","ids","throwOnError","neededFor","lane","opts","_grouped$envs","_grouped$other","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","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","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","env","getEnv","compiler","getCompiler","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","err","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","getSync","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 { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\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/dist/constants';\nimport { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { 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 { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\nimport { NodeLinker } from '@teambit/dependency-resolver';\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 globalConfig: GlobalConfigMain\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 } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, opts);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = 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 // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n const env = this.envs.getEnv(component);\n const compiler: Compiler = env.env.getCompiler();\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n\n const compiledCode = (\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\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 (err) {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n shouldUseDatedCapsules(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.globalConfig.getSync(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.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n 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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"}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_constants","_lodash","_cli","_harmonyModules","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","globalConfig","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","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","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","env","getEnv","compiler","getCompiler","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","err","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","getSync","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 { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\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/dist/constants';\nimport { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { 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 { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\nimport { NodeLinker } from '@teambit/dependency-resolver';\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 globalConfig: GlobalConfigMain\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 } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, opts);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = 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 // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n const env = this.envs.getEnv(component);\n const compiler: Compiler = env.env.getCompiler();\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n\n const compiledCode = (\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\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 (err) {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n shouldUseDatedCapsules(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.globalConfig.getSync(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.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n 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":";;;;;;AACA,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,WAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,UAAA,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,KAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,gBAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,eAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAC,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAApB,GAAA,EAAAwB,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAxB,GAAA,IAAAO,MAAA,CAAAgB,cAAA,CAAAvB,GAAA,EAAAwB,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAZ,UAAA,QAAAc,YAAA,QAAAC,QAAA,oBAAA5B,GAAA,CAAAwB,GAAA,IAAAC,KAAA,WAAAzB,GAAA;AAAA,SAAA0B,eAAApB,CAAA,QAAAuB,CAAA,GAAAC,YAAA,CAAAxB,CAAA,uCAAAuB,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAxB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAA0B,MAAA,CAAAC,WAAA,kBAAA7B,CAAA,QAAAyB,CAAA,GAAAzB,CAAA,CAAA8B,IAAA,CAAA5B,CAAA,EAAAD,CAAA,uCAAAwB,CAAA,SAAAA,CAAA,YAAAM,SAAA,yEAAA9B,CAAA,GAAA0B,MAAA,GAAAK,MAAA,EAAA9B,CAAA;AAgB/E,MAAM+B,kBAAkB,CAAC;EAC9BC,WAAWA,CACDC,KAAgB,EAChBC,YAA8B,EAC9BC,IAAc,EACdC,QAAsB,EACtBC,MAAc,EACdC,YAA8B,EACtC;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,YAA8B,GAA9BA,YAA8B;EACrC;EAEH,MAAMC,WAAWA,CACfC,GAAa,EACbC,YAAY,GAAG,KAAK,EACpBC,SAAkB,EAClBC,IAAW,EACXC,IAA8B,EACX;IACnB,IAAI,CAACJ,GAAG,CAAC5B,MAAM,EAAE,OAAO,EAAE;IAC1B;IACA,MAAMiC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAMC,YAAY,GAAI,IAAGJ,MAAO,gBAAe;IAC/C,IAAI,CAACR,MAAM,CAACa,IAAI,CAAE,GAAED,YAAa,YAAWT,GAAG,CAAC5B,MAAO;AAC3D,OAAO4B,GAAG,CAACW,IAAI,CAAC,IAAI,CAAE;AACtB,cAAcT,SAAS,IAAI,WAAY,EAAC,CAAC;IACrC,MAAMU,OAAO,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAACb,GAAG,EAAEG,IAAI,CAAC;IAClE,IAAI,CAACN,MAAM,CAACa,IAAI,CAAE,GAAED,YAAa,uDAAsDG,OAAO,CAACjB,IAAI,EAAEvB,MAAM,IAAI,CAAE,EAAC,CAAC;IACnH,MAAM0C,gBAAgB,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACH,OAAO,CAACjB,IAAI,EAAEM,YAAY,EAAEE,IAAI,EAAEC,IAAI,CAAC;IACtG,IAAI,CAACP,MAAM,CAACa,IAAI,CACb,GAAED,YAAa,wDAAuDG,OAAO,CAACI,KAAK,EAAE5C,MAAM,IAAI,CAAE,EACpG,CAAC;IACD,MAAM6C,iBAAiB,GAAG,MAAM,IAAI,CAACF,0BAA0B,CAACH,OAAO,CAACI,KAAK,EAAEf,YAAY,EAAEE,IAAI,EAAEC,IAAI,CAAC;IACxG,IAAI,CAACP,MAAM,CAACqB,KAAK,CAAE,GAAET,YAAa,yBAAwB,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,CACjD5D,MAAM,CAAE8D,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,IAGC,GAAG,CAAC,CAAC,EACqE;IAC3EJ,GAAG,GAAG,IAAAuB,cAAI,EAACvB,GAAG,CAAC;IACf,IAAI,CAACH,MAAM,CAACqB,KAAK,CAAE,uCAAsClB,GAAG,CAACW,IAAI,CAAC,IAAI,CAAE,EAAC,CAAC;IAC1E,MAAM+B,YAAY,GAAG1C,GAAG,CAACnC,MAAM,CAAEiE,EAAE,IAAK,CAACW,OAAO,CAACV,QAAQ,CAACD,EAAE,CAAC,CAAC;IAC9D,IAAI,CAACY,YAAY,CAACtE,MAAM,EAAE;MACxB,OAAO;QAAE4D,SAAS,EAAE,EAAE;QAAEE,mBAAmB,EAAE;MAAG,CAAC;IACnD;IACA,MAAMd,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACqB,YAAY,EAAEvC,IAAI,CAAC;IACrE;IACA,MAAMwC,aAAa,GAAGvB,UAAU,CAC7BI,GAAG,CAAEC,SAAS,IAAK,IAAI,CAAC9B,IAAI,CAAC+B,QAAQ,CAACD,SAAS,CAAC,CAAC,CACjD5D,MAAM,CAAE8D,KAAK,IAAK,CAAC,IAAI,CAACjC,YAAY,CAACkC,SAAS,CAACD,KAAK,CAAC,CAAC;IACzD;IACA,MAAM,IAAI,CAACZ,0BAA0B,CAAC4B,aAAa,EAAEC,SAAS,EAAEzC,IAAI,CAAC;IACrEsC,OAAO,CAACzE,IAAI,CAAC,GAAG0E,YAAY,CAAC;IAC7B,MAAMV,SAAS,GAAG,MAAM,IAAI,CAACa,cAAc,CAACzB,UAAU,EAAEnB,YAAY,EAAEG,IAAI,CAAC;IAC3E,MAAM8B,mBAAmB,GAAG,IAAAK,iBAAO,EACjCP,SAAS,CAACR,GAAG,CAAC,CAACgB,QAAQ,EAAEM,KAAK,KAAK;MACjC,IAAI,IAAI,CAACpD,YAAY,CAACqD,aAAa,CAACP,QAAQ,CAAC,EAAE,OAAOI,SAAS;MAC/D;MACA,OAAOxB,UAAU,CAAC0B,KAAK,CAAC,CAAChB,EAAE,CAACkB,QAAQ,CAAC,CAAC;IACxC,CAAC,CACH,CAAC;IAED,MAAMC,UAA6C,GAAG,EAAE;IACxD,MAAM,IAAAC,qBAAS,EAAClB,SAAS,EAAE,MAAOQ,QAAQ,IAAK;MAC7CS,UAAU,CAACjF,IAAI,CAAC,IAAIwE,QAAQ,CAACW,YAAY,IAAI,EAAE,CAAC,CAAC;MACjD;MACA,CAACX,QAAQ,CAACY,SAAS,IAAI,EAAE,EAAE/E,OAAO,CAAEgF,OAAO,IAAK;QAC9CJ,UAAU,CAACjF,IAAI,CAAC,IAAIqF,OAAO,CAACF,YAAY,IAAI,EAAE,CAAC,CAAC;MAClD,CAAC,CAAC;MACF,MAAMG,MAAM,GAAGL,UAAU,CAACzB,GAAG,CAAE+B,CAAC,IAAKA,CAAC,CAACzB,EAAE,CAAC,CAACjE,MAAM,CAAEiE,EAAE,IAAKA,EAAE,CAAa;MACzE,IAAI,CAACjC,MAAM,CAACqB,KAAK,CACd,qCAAoCsB,QAAQ,CAACV,EAAE,IAAI,WAAY,WAAUwB,MAAM,CAAClF,MAAO,KAAIkF,MAAM,CAAC3C,IAAI,CAAC,IAAI,CAAE,EAChH,CAAC;MACD,MAAM;QAAEqB,SAAS,EAAEwB;MAAO,CAAC,GAAG,MAAM,IAAI,CAACrB,4BAA4B,CAACmB,MAAM,EAAEb,OAAO,EAAExC,YAAY,EAAEE,IAAI,CAAC;MAC1G6B,SAAS,CAAChE,IAAI,CAAC,GAAGwF,MAAM,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;MAAExB,SAAS;MAAEE;IAAoB,CAAC;EAC3C;EAEA,MAAcb,mBAAmBA,CAACrB,GAAa,EAAEG,IAAW,EAAwB;IAClF,MAAMsD,YAAY,GAAGzD,GAAG,CAACnC,MAAM,CAAEiE,EAAE,IAAK,CAAC,IAAI,CAACpC,YAAY,CAACgE,cAAc,CAAC5B,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC2B,YAAY,CAACrF,MAAM,EAAE,OAAO,EAAE;IACnC,MAAMuF,oBAAoB,GAAG,IAAI,CAACjE,YAAY,CAACkE,gBAAgB,CAAC,CAAC;IACjE,MAAMC,cAAwB,GAAG,IAAAC,oBAAU,EAAC9D,GAAG,EAAE2D,oBAAoB,CAAC;IACtE,MAAMI,SAAS,GAAGF,cAAc,CAAChG,MAAM,CAAEiE,EAAE,IAAK,CAACA,EAAE,CAACkC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC1E;IACA,MAAMC,YAAY,GAAGjE,GAAG,CAACnC,MAAM,CAAEiE,EAAE,IAAKA,EAAE,CAACkC,UAAU,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,CAACvE,KAAK,CAACwE,YAAY,GAAG,IAAA1C,cAAI,EAAC,IAAI,CAAC9B,KAAK,CAACwE,YAAY,CAAC9C,MAAM,CAAC8C,YAAY,CAAC,CAAC;IAC5E;IACA,MAAM,IAAI,CAACvE,YAAY,CAACwE,kBAAkB,CAACD,YAAY,CAAC;IACxD,MAAME,YAAY,GAAG,MAAM,IAAI,CAAC1E,KAAK,CAAC2E,2BAA2B,CAACL,SAAS,CAAC;IAC5E,IAAI,CAACI,YAAY,IAAI,CAACA,YAAY,CAAC/F,MAAM,EAAE,OAAO,EAAE;IACpD,MAAM,IAAI,CAACqB,KAAK,CAAC4E,MAAM,CAACF,YAAY,EAAE;MACpCG,qBAAqB,EAAE,KAAK;MAC5BnE,IAAI;MACJoE,MAAM,EAAE;IACV,CAAC,CAAC;IACF,MAAMnD,UAAU,GAAG,MAAM,IAAI,CAAC3B,KAAK,CAAC+E,OAAO,CAACL,YAAY,CAAC;IAEzD,OAAO/C,UAAU;EACnB;EAEA,MAAMqD,kBAAkBA,CACtBrD,UAAuB,EACvBhB,IAA+F,EAC9D;IACjC,IAAI,CAACgB,UAAU,IAAI,CAACA,UAAU,CAAChD,MAAM,EAAE,OAAO,EAAE;IAChD,MAAMsG,WAAW,GAAG,IAAI,CAACC,cAAc,CAACvE,IAAI,CAAC;IAC7C,MAAMwE,OAAO,GAAG,MAAM,IAAI,CAAChF,QAAQ,CAACiF,iBAAiB,CACnDzD,UAAU,CAACI,GAAG,CAAEsD,CAAC,IAAKA,CAAC,CAAChD,EAAE,CAAC;IAC3B;IACA4C,WAAW,EACX,IAAI,CAACjF,KAAK,CAACsF,WACb,CAAC;IAED,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,eAAe;IAExC,OAAOD,QAAQ,CAACxD,GAAG,CAAE0D,OAAO,IAAK;MAC/B,OAAO,KAAIC,sCAAoB,EAC7BD,OAAO,CAACzD,SAAS,EACjB,YAAY;QACV;QACA,MAAM2D,OAAO,GAAG,IAAI,CAAC1F,YAAY,CAAC2F,UAAU,CAACH,OAAO,CAACzD,SAAS,EAAEyD,OAAO,CAACI,IAAI,CAAC;QAC7E,IAAIF,OAAO,CAACG,GAAG,CAAC,CAAC,EAAE;UACjB,MAAM,IAAI,CAACC,eAAe,CAACN,OAAO,EAAEA,OAAO,CAACzD,SAAS,CAAC;UACtD,OAAO2D,OAAO,CAACK,IAAI,CAACC,kBAAW,CAACC,IAAI,CAAC;QACvC;QACA;QACA,MAAMC,MAAM,GAAGjJ,OAAO,CAACuI,OAAO,CAACI,IAAI,CAAC;QACpC,MAAMO,YAAY,GAAG,MAAM,IAAI,CAACnG,YAAY,CAACoG,cAAc,CAACZ,OAAO,CAACzD,SAAS,EAAEyD,OAAO,CAACI,IAAI,EAAE,OAAO,CAAC;QACrG,MAAMS,WAAW,GAAG,MAAM,IAAI,CAACrG,YAAY,CAACoG,cAAc,CAACZ,OAAO,CAACzD,SAAS,EAAEyD,OAAO,CAACI,IAAI,EAAEI,kBAAW,CAACC,IAAI,CAAC;QAC7G,MAAMK,WAAW,GAAGH,YAAY,IAAIE,WAAW;QAC/C;QACA,IAAIC,WAAW,EAAErJ,OAAO,CAACqJ,WAAW,CAAC;QACrC;QACA,OAAOJ,MAAM;MACf,CAAC,EACDV,OACF,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,MAAcM,eAAeA,CAACN,OAAgB,EAAEzD,SAAoB,EAAE;IACpE,MAAMwE,GAAG,GAAG,IAAI,CAACtG,IAAI,CAACuG,MAAM,CAACzE,SAAS,CAAC;IACvC,MAAM0E,QAAkB,GAAGF,GAAG,CAACA,GAAG,CAACG,WAAW,CAAC,CAAC;IAChD,MAAMC,OAAO,GAAGF,QAAQ,EAAEE,OAAO,IAAIC,iCAAoB;IACzD,MAAMC,UAAU,GAAG,IAAAC,qBAAU,EAAC,IAAA7F,YAAI,EAACuE,OAAO,CAACI,IAAI,EAAEe,OAAO,CAAC,CAAC;IAC1D,IAAIE,UAAU,EAAE;IAEhB,MAAME,YAAY,GAAG,CACnB,MAAMC,OAAO,CAACC,GAAG,CACflF,SAAS,CAACmF,UAAU,CAACC,KAAK,CAACC,OAAO,CAAC,MAAOC,IAAI,IAAK;MACjD,IAAI,CAACZ,QAAQ,CAACa,eAAe,CAACD,IAAI,CAACzB,IAAI,CAAC,EAAE;QACxC,OAAO,CACL;UACE2B,UAAU,EAAEF,IAAI,CAACG,QAAQ,CAAClE,QAAQ,CAAC,MAAM,CAAC;UAC1CmE,UAAU,EAAEJ,IAAI,CAACzB;QACnB,CAAC,CACF;MACH;MAEA,IAAIa,QAAQ,CAACiB,aAAa,EAAE;QAC1B,OAAOjB,QAAQ,CAACiB,aAAa,CAACL,IAAI,CAACG,QAAQ,CAAClE,QAAQ,CAAC,MAAM,CAAC,EAAE;UAC5DqE,QAAQ,EAAEN,IAAI,CAACzB,IAAI;UACnBgC,YAAY,EAAEpC,OAAO,CAACI;QACxB,CAAC,CAAC;MACJ;MAEA,OAAO,EAAE;IACX,CAAC,CACH,CAAC,EACDiC,IAAI,CAAC,CAAC;IAER,MAAMb,OAAO,CAACC,GAAG,CACf,IAAApE,iBAAO,EAACkE,YAAY,CAAC,CAACjF,GAAG,CAAEgG,YAAY,IAAK;MAC1C,MAAMlC,IAAI,GAAGa,QAAQ,CAACsB,oBAAoB,CAACD,YAAY,CAACL,UAAU,CAAC;MACnE,OAAOjC,OAAO,EAAEwC,UAAU,CAACpC,IAAI,EAAEkC,YAAY,CAACP,UAAU,CAAC;IAC3D,CAAC,CACH,CAAC;EACH;EAEA,MAAcU,UAAUA,CAACC,gBAAsC,EAAE;IAC/D,IAAIA,gBAAgB,CAAC1C,OAAO,EAAE,OAAO,IAAI,CAACM,eAAe,CAACoC,gBAAgB,CAAC1C,OAAO,EAAE0C,gBAAgB,CAACnG,SAAS,CAAC;IAC/G,OAAOmB,SAAS;EAClB;EAEA,MAAMC,cAAcA,CAClBzB,UAAuB,EACvBnB,YAAY,GAAG,KAAK,EACpBG,IAAsE,GAAG,CAAC,CAAC,EAC/B;IAC5C,MAAMyH,qBAAqB,GAAG,MAAM,IAAI,CAACpD,kBAAkB,CAACrD,UAAU,EAAEhB,IAAI,CAAC;IAC7E,IAAI,CAACyH,qBAAqB,EAAE;MAC1B,OAAO,EAAE;IACX;IACA,IAAIC,KAAU;IACd,IAAIC,SAAS,GAAG,EAAE;IAClB,MAAMC,gBAAgB,GAAG,MAAOC,kBAA0C,IAAK;MAC7EH,KAAK,GAAGlF,SAAS;MACjB,IAAI;QACF,MAAMZ,SAAS,GAAG,MAAM,IAAAkB,qBAAS,EAAC+E,kBAAkB,EAAE,MAAOC,oBAAoB,IAAK;UACpF,IAAI;YACF,OAAO,MAAM,IAAI,CAACxI,YAAY,CAACyI,SAAS,CAACD,oBAAoB,CAAC;UAChE,CAAC,CAAC,OAAOE,GAAQ,EAAE;YACjBL,SAAS,GAAGG,oBAAoB,CAACzG,SAAS,CAACK,EAAE,CAACkB,QAAQ,CAAC,CAAC;YACxD,IAAIoF,GAAG,CAACC,IAAI,KAAK,kBAAkB,EAAE;cACnC,IAAI;gBACF,MAAM,IAAI,CAACV,UAAU,CAACO,oBAAoB,CAAC;gBAC3C,OAAO,MAAM,IAAI,CAACxI,YAAY,CAACyI,SAAS,CAACD,oBAAoB,CAAC;cAChE,CAAC,CAAC,OAAOI,MAAW,EAAE;gBACpBR,KAAK,GAAGQ,MAAM;gBACd,MAAMA,MAAM;cACd;YACF;YACAR,KAAK,GAAGM,GAAG;YACX,MAAMA,GAAG;UACX;QACF,CAAC,CAAC;QACF,OAAOpG,SAAS;MAClB,CAAC,CAAC,OAAOoG,GAAG,EAAE;QACZ,OAAO,IAAI;MACb;IACF,CAAC;IACD,MAAMpG,SAAS,GAAG,MAAMgG,gBAAgB,CAACH,qBAAqB,CAAC;IAC/D,IAAI,CAACC,KAAK,EAAE;MACV,OAAO,IAAAvF,iBAAO,EAACP,SAAS,CAAC;IAC3B;IACA,IAAI8F,KAAK,CAACO,IAAI,KAAK,kBAAkB,EAAE;MACrC,IAAI,CAACxI,MAAM,CAAC0I,IAAI,CACb,+GACH,CAAC;MACD,MAAMC,oBAAoB,GAAG,MAAM,IAAI,CAAC/D,kBAAkB,CAACrD,UAAU,EAAAlD,aAAA,CAAAA,aAAA,KAChEkC,IAAI;QACPqI,YAAY,EAAE;MAAK,EACpB,CAAC;MACF,MAAMC,aAAa,GAAG,MAAMV,gBAAgB,CAACQ,oBAAoB,CAAC;MAClE,IAAI,CAACV,KAAK,EAAE;QACV,OAAO,IAAAvF,iBAAO,EAACmG,aAAa,CAAC;MAC/B;IACF;IAEA,IAAI,CAAChJ,YAAY,CAACiJ,2BAA2B,CAACb,KAAK,EAAEC,SAAS,EAAE9H,YAAY,CAAC;IAC7E,OAAO,EAAE;EACX;EAEA2I,sBAAsBA,CAAA,EAAY;IAChC,MAAM9I,YAAY,GAAG,IAAI,CAACA,YAAY,CAAC+I,OAAO,CAACC,mCAAsB,CAAC;IACtE;IACA,OAAOhJ,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;EACzD;EAEAiJ,uBAAuBA,CAAA,EAAY;IACjC,MAAMjJ,YAAY,GAAG,IAAI,CAACA,YAAY,CAAC+I,OAAO,CAACG,yCAA4B,CAAC;IAC5E;IACA,OAAOlJ,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;EACzD;EAEAmJ,oBAAoBA,CAAA,EAAG;IACrB,MAAMC,WAAW,GAAI,GAAE,IAAI,CAACzJ,KAAK,CAAC6F,IAAK,UAAS;IAChD,IAAI,IAAI,CAAC7F,KAAK,CAAC0J,aAAa,EAAE;MAC5B,OAAO,IAAI,CAACrJ,YAAY,CAAC+I,OAAO,CAACO,uDAA0C,CAAC,IAAIF,WAAW;IAC7F;IACA,OAAO,IAAI,CAACpJ,YAAY,CAAC+I,OAAO,CAACQ,iDAAoC,CAAC,IAAIH,WAAW;EACvF;EAEAI,wBAAwBA,CAAA,EAAY;IAClC,IAAI,IAAI,CAAC7J,KAAK,CAAC0J,aAAa,EAAE;MAC5B,OAAO,CAAC,IAAI,CAACrJ,YAAY,CAAC+I,OAAO,CAACO,uDAA0C,CAAC;IAC/E;IACA,OAAO,CAAC,IAAI,CAACtJ,YAAY,CAAC+I,OAAO,CAACQ,iDAAoC,CAAC;EACzE;EAEAE,wBAAwBA,CAAA,EAAuB;IAC7C,OAAO,IAAI,CAAC9J,KAAK,CAAC+J,qBAAqB;EACzC;EAEAC,oBAAoBA,CAAA,EAA2B;IAC7C,OAAO,IAAI,CAAChK,KAAK,CAACiK,iBAAiB;EACrC;EAEA,MAAcC,kBAAkBA,CAC9BC,WAAoB,EACpBC,cAA8B,EAC9BzJ,IAA4B,EACC;IAC7B,IAAI,CAACyJ,cAAc,IAAI,CAACA,cAAc,CAACzL,MAAM,EAAE,OAAO,EAAE;IACxD,MAAMgD,UAAU,GAAG,MAAM,IAAI,CAAC3B,KAAK,CAAC+E,OAAO,CAACqF,cAAc,CAAC;IAC3D,MAAMnF,WAAW,GAAG,IAAI,CAACC,cAAc,CAACvE,IAAI,CAAC;IAC7C,MAAMwE,OAAO,GAAG,MAAM,IAAI,CAAChF,QAAQ,CAACiF,iBAAiB,CAACgF,cAAc,EAAEnF,WAAW,EAAE,IAAI,CAACjF,KAAK,CAACsF,WAAW,CAAC;IAE1G,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,eAAe;IACxC,MAAM6E,UAAU,GAAG,MAAM,IAAI,CAACpK,YAAY,CAACqK,cAAc,CAAC3I,UAAU,EAAE,MAAOK,SAAS,IAAK;MACzF,MAAMyD,OAAO,GAAGF,QAAQ,CAACgF,UAAU,CAACvI,SAAS,CAACK,EAAE,CAAC;MACjD,IAAI,CAACoD,OAAO,EAAE,MAAM,IAAI+E,KAAK,CAAE,0BAAyBxI,SAAS,CAACK,EAAE,CAACkB,QAAQ,CAAC,CAAE,EAAC,CAAC;MAClF,MAAMkH,SAAS,GAAGhF,OAAO,CAACI,IAAI;MAC9B,MAAMU,WAAW,GAAG4D,WAAW,GAC3B,MAAM,IAAI,CAAClK,YAAY,CAACoG,cAAc,CAACrE,SAAS,EAAEyI,SAAS,EAAEN,WAAW,CAAC,GACzE,IAAI;MACR,MAAMO,cAAc,GAAG,MAAM,IAAI,CAACzK,YAAY,CAAC0K,iBAAiB,CAAC3I,SAAS,EAAEyI,SAAS,CAAC;MAEtF,IAAI,CAACrK,MAAM,CAACqB,KAAK,CACd,2CAA0CO,SAAS,CAACK,EAAE,CAACkB,QAAQ,CAAC,CAAE,gBAAekH,SAAU,kBAAiBlE,WAAY,EAC3H,CAAC;MAED,OAAO;QACLlE,EAAE,EAAEoD,OAAO,CAACzD,SAAS,CAACK,EAAE;QACxBuI,UAAU,EAAEH,SAAS;QACrBC,cAAc;QACdnE;MACF,CAAC;IACH,CAAC,CAAC;IACF,OAAO8D,UAAU;EACnB;EAEA,MAAMC,cAAcA,CAClBH,WAAoB,EACpBzF,YAA4B,EAC5B/D,IAA4B,EACC;IAC7B,MAAMkK,iBAAiB,GAAGnG,YAAY,EAAE3C,GAAG,CAAEM,EAAE,IAAKA,EAAE,CAACkB,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,CAACnD,MAAM,CAACqB,KAAK,CAAE,sCAAqC0I,WAAY,mBAAkBU,iBAAkB,EAAC,CAAC;IAE1G,MAAMC,WAAkC,GAAG;MACzCC,WAAW,EAAE,KAAK;MAClBC,aAAa,EAAE,KAAK;MACpBC,eAAe,EAAE;IACnB,CAAC;IACD,MAAMC,UAAU,GAAAzM,aAAA,CAAAA,aAAA,KAAQqM,WAAW,GAAKnK,IAAI,CAAE;IAC9C,MAAMwK,cAAc,GAAG,IAAI,CAAClL,YAAY,CAACkE,gBAAgB,CAAC,CAAC;IAC3D,IAAIiG,cAA6B;IACjC;IACA,IAAI1F,YAAY,IAAIA,YAAY,CAAC/F,MAAM,EAAE;MACvC,MAAMyM,eAAe,GAAG,IAAAhJ,iBAAO,EAACsC,YAAY,EAAGrC,EAAE,IAAK8I,cAAc,CAAC7I,QAAQ,CAACD,EAAE,CAACkB,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC7F6G,cAAc,GAAGgB,eAAe,CAACC,KAAK,IAAI,EAAE;MAC5C;IACF,CAAC,MAAM;MACLjB,cAAc,GAAG,MAAM,IAAI,CAACpK,KAAK,CAAC2E,2BAA2B,CAAC,IAAI,CAAC1E,YAAY,CAACqL,cAAc,CAAC,CAAC,CAAC;IACnG;IACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACtL,YAAY,CAACuL,mBAAmB,CAAC,IAAI,CAACxL,KAAK,CAACwE,YAAY,EAAE2F,WAAW,CAAC;IAEvG,MAAMsB,mBAAmB,GAAGrB,cAAc,CAAChM,MAAM,CAAEsN,QAAQ,IAAK;MAC9D,OAAO,CAACH,aAAa,CAACI,IAAI,CAAEC,WAAW,IAAK;QAC1C,OAAOA,WAAW,CAACvJ,EAAE,KAAKqJ,QAAQ,CAACG,sBAAsB,CAAC,CAAC;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMC,eAAe,GAAG,MAAM,IAAI,CAAC5B,kBAAkB,CAACC,WAAW,EAAEsB,mBAAmB,EAAE9K,IAAI,CAAC;IAC7F,MAAMoL,eAAe,GAAG,MAAM,IAAI,CAAC9L,YAAY,CAAC+L,iBAAiB,CAAC7B,WAAW,CAAC;IAE9E,MAAM8B,OAAO,GAAGH,eAAe,CAACpK,MAAM,CAACqK,eAAe,CAAC,CAACrK,MAAM,CAAC6J,aAAa,CAAC;IAC7E;IACA;IACA,MAAMW,YAAY,GAAG,IAAI,CAACjM,YAAY,CAACkM,gBAAgB,CACrDF,OAAO,EACPvH,YAAY,IAAI0F,cAAc,EAC9BD,WAAW,EACXe,UACF,CAAC;IACD,OAAOgB,YAAY;EACrB;EAEAhH,cAAcA,CAACvE,IAId,EAA4B;IAC3B,MAAMyL,YAAY,GAAG;MACnBpD,YAAY,EAAErI,IAAI,EAAEqI,YAAY,IAAI,IAAI;MACxCqD,cAAc,EAAE;QACdC,2BAA2B,EAAE3L,IAAI,EAAE2L;MACrC,CAAC;MACDC,OAAO,EAAE;QACPC,aAAa,EAAE7L,IAAI,EAAE6L;MACvB;IACF,CAAC;IACD,MAAMvH,WAAW,GAAG,IAAAwH,sBAAY,EAACL,YAAY,EAAE,IAAI,CAACM,qBAAqB,CAAC,CAAC,CAAC;IAC5E,OAAOzH,WAAW;EACpB;EAEAyH,qBAAqBA,CAAA,EAAG;IACtB,MAAMC,OAAO,GAAG,IAAI,CAAC9C,wBAAwB,CAAC,CAAC;IAC/C,MAAM+C,YAAY,GAAG,IAAI,CAACzD,sBAAsB,CAAC,CAAC;IAClD,MAAM0D,iBAAiB,GAAG,IAAI,CAACvD,uBAAuB,CAAC,CAAC;IACxD,MAAMwD,UAAU,GAAG,IAAI,CAAC9C,oBAAoB,CAAC,CAAC;IAE9C,MAAMrJ,IAAI,GAAG;MACXoM,UAAU,EAAE,IAAI,CAAC/M,KAAK,CAACkG,IAAI;MAC3B8G,OAAO,EAAE,IAAI,CAACxD,oBAAoB,CAAC,CAAC;MACpCmD,OAAO;MACPM,cAAc,EAAE,IAAI,CAACnD,wBAAwB,CAAC,CAAC;MAC/CgD,UAAU;MACVF,YAAY;MACZC,iBAAiB;MACjB7D,YAAY,EAAE,IAAI;MAClBkE,WAAW,EAAE,IAAI;MACjBC,sBAAsB,EAAE,IAAI;MAC5BC,IAAI,EAAE,IAAI,CAACpN,KAAK;MAChBqM,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,OAAO9M,IAAI;EACb;AACF;AAAC+M,OAAA,CAAA5N,kBAAA,GAAAA,kBAAA"}
@@ -3,7 +3,7 @@ export declare class ScopeCmd implements Command {
3
3
  name: string;
4
4
  alias: string;
5
5
  description: string;
6
- options: never[];
6
+ options: any[];
7
7
  group: string;
8
8
  commands: Command[];
9
9
  report([unrecognizedSubcommand]: [string]): Promise<string>;
@@ -125,7 +125,7 @@ class ScopeComponentLoader {
125
125
  const objectList = await compImport.getRemoteComponent(id);
126
126
  // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks
127
127
  // for the consumerComponent from the legacyScope, it won't work.
128
- objectList === null || objectList === void 0 || objectList.getAll().forEach(obj => this.scope.legacyScope.objects.setCache(obj));
128
+ objectList?.getAll().forEach(obj => this.scope.legacyScope.objects.setCache(obj));
129
129
  const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);
130
130
  return this.getFromConsumerComponent(consumerComponent);
131
131
  }
@@ -139,7 +139,7 @@ class ScopeComponentLoader {
139
139
  const objectList = await compImport.getManyRemoteComponents(legacyIds);
140
140
  // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks
141
141
  // for the consumerComponent from the legacyScope, it won't work.
142
- objectList === null || objectList === void 0 || objectList.getAll().forEach(obj => this.scope.legacyScope.objects.setCache(obj));
142
+ objectList?.getAll().forEach(obj => this.scope.legacyScope.objects.setCache(obj));
143
143
  return (0, _pMapSeries().default)(legacyIds, async legacyId => {
144
144
  const consumerComponent = await this.scope.legacyScope.getConsumerComponent(legacyId);
145
145
  return this.getFromConsumerComponent(consumerComponent);
@@ -1 +1 @@
1
- {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_objects","_modelComponent","_inMemoryCache","_cacheFactory","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ScopeComponentLoader","constructor","scope","logger","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","importedComponentsCache","maxAge","get","id","importIfMissing","useCache","fromCache","getFromCache","idStr","toString","debug","legacyId","modelComponent","legacyScope","getModelComponentIfExist","isExported","import","reason","set","changeScope","name","undefined","versionStr","hasVersion","version","getHeadRegardlessOfLaneAsTagOrHash","VERSION_ZERO","newId","changeVersion","loadVersion","objects","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","resolveComponentId","pendingVersion","getRemoteComponent","compImport","scopeImporter","objectList","getAll","forEach","setCache","getConsumerComponent","getManyRemoteComponents","ids","legacyIds","map","pMapSeries","getState","hash","load","Ref","getSnap","getVersionObject","err","code","errMsg","error","Error","createSnapFromVersion","clearCache","deleteAll","isEqual","TagMap","allVersions","versionsIncludeOrphaned","keys","tag","Tag","SemVer","head","getHeadRegardlessOfLane","Snap","Date","parseInt","log","date","parents","p","displayName","username","email","message","State","Config","componentExtension","createAspectListFromLegacy","extensions","ComponentFS","fromVinyls","files","dependencies","exports"],"sources":["scope-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, Snap, State, Tag, TagMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { SemVer } from 'semver';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { VERSION_ZERO } from '@teambit/legacy/dist/scope/models/model-component';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport type { ScopeMain } from './scope.main.runtime';\n\nexport class ScopeComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private importedComponentsCache: InMemoryCache<boolean>;\n constructor(private scope: ScopeMain, private logger: Logger) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.importedComponentsCache = createInMemoryCache({ maxAge: 1000 * 60 * 30 }); // 30 min\n }\n\n async get(id: ComponentID, importIfMissing = true, useCache = true): Promise<Component | undefined> {\n const fromCache = this.getFromCache(id);\n if (fromCache && useCache) {\n return fromCache;\n }\n const idStr = id.toString();\n this.logger.debug(`ScopeComponentLoader.get, loading ${idStr}`);\n const legacyId = id;\n let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n // import if missing\n if (\n !modelComponent &&\n importIfMissing &&\n this.scope.isExported(id) &&\n !this.importedComponentsCache.get(id.toString())\n ) {\n await this.scope.import([id], { reason: `${id.toString()} because it's missing from the local scope` });\n this.importedComponentsCache.set(id.toString(), true);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n // Search with scope name for bare scopes\n if (!modelComponent && !legacyId.scope) {\n id = id.changeScope(this.scope.name);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n if (!modelComponent) return undefined;\n\n const versionStr = id.hasVersion()\n ? (id.version as string)\n : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n\n if (versionStr === VERSION_ZERO) return undefined;\n const newId = id.changeVersion(versionStr);\n const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n const component = new Component(newId, snap, state, tagMap, this.scope);\n this.componentsCache.set(idStr, component);\n return component;\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n const legacyId = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(legacyId);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const id = await this.scope.resolveComponentId(legacyId);\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(legacyId.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version, consumerComponent);\n const tagMap = this.getTagMap(modelComponent);\n\n return new Component(id, snap, state, tagMap, this.scope);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const objectList = await compImport.getRemoteComponent(id);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);\n return this.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get components from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const legacyIds = ids.map((id) => id);\n const objectList = await compImport.getManyRemoteComponents(legacyIds);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n return pMapSeries(legacyIds, async (legacyId) => {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(legacyId);\n return this.getFromConsumerComponent(consumerComponent);\n });\n }\n\n async getState(id: ComponentID, hash: string): Promise<State> {\n const version = (await this.scope.legacyScope.objects.load(new Ref(hash))) as Version;\n return this.createStateFromVersion(id, version);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const getVersionObject = async (): Promise<Version> => {\n try {\n const snap = await this.scope.legacyScope.objects.load(new Ref(hash), true);\n return snap as Version;\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n const errMsg = `fatal: snap \"${hash}\" file for component \"${id.toString()}\" was not found in the filesystem`;\n this.logger.error(errMsg, err);\n throw new Error(errMsg);\n } else {\n throw err;\n }\n }\n };\n const version = await getVersionObject();\n return this.createSnapFromVersion(version);\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID): Component | undefined {\n const idStr = id.toString();\n const fromCache = this.componentsCache.get(idStr);\n if (fromCache && fromCache.id.isEqual(id)) {\n return fromCache;\n }\n return undefined;\n }\n\n private getTagMap(modelComponent: ModelComponent): TagMap {\n const tagMap = new TagMap();\n const allVersions = modelComponent.versionsIncludeOrphaned;\n Object.keys(allVersions).forEach((versionStr: string) => {\n const tag = new Tag(allVersions[versionStr].toString(), new SemVer(versionStr));\n tagMap.set(tag.version, tag);\n });\n return tagMap;\n }\n\n private async getHeadSnap(modelComponent: ModelComponent): Promise<Snap | null> {\n const head = modelComponent.getHeadRegardlessOfLane();\n if (!head) {\n // happens for example when on main and merging a lane.\n return null;\n }\n const version = await modelComponent.loadVersion(head.toString(), this.scope.legacyScope.objects, false);\n if (!version) {\n // might happen when the component is just a dependency and a previous version was needed.\n return null;\n }\n return this.createSnapFromVersion(version);\n }\n\n private createSnapFromVersion(version: Version): Snap {\n return new Snap(\n version.hash().toString(),\n new Date(parseInt(version.log.date)),\n version.parents.map((p) => p.toString()),\n {\n displayName: version.log.username || 'unknown',\n email: version.log.email || 'unknown@anywhere',\n },\n version.log.message\n );\n }\n\n private async createStateFromVersion(\n id: ComponentID,\n version: Version,\n consumerComponent?: ConsumerComponent\n ): Promise<State> {\n consumerComponent = consumerComponent || (await this.scope.legacyScope.getConsumerComponent(id));\n const state = new State(\n // We use here the consumerComponent.extensions instead of version.extensions\n // because as part of the conversion to consumer component the artifacts are initialized as Artifact instances\n new Config(consumerComponent),\n // todo: see the comment of this \"createAspectListFromLegacy\" method. the aspect ids may be incorrect.\n // find a better way to get the ids correctly.\n this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions),\n ComponentFS.fromVinyls(consumerComponent.files),\n version.dependencies,\n consumerComponent\n );\n return state;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_objects","_modelComponent","_inMemoryCache","_cacheFactory","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ScopeComponentLoader","constructor","scope","logger","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","importedComponentsCache","maxAge","get","id","importIfMissing","useCache","fromCache","getFromCache","idStr","toString","debug","legacyId","modelComponent","legacyScope","getModelComponentIfExist","isExported","import","reason","set","changeScope","name","undefined","versionStr","hasVersion","version","getHeadRegardlessOfLaneAsTagOrHash","VERSION_ZERO","newId","changeVersion","loadVersion","objects","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","resolveComponentId","pendingVersion","getRemoteComponent","compImport","scopeImporter","objectList","getAll","forEach","setCache","getConsumerComponent","getManyRemoteComponents","ids","legacyIds","map","pMapSeries","getState","hash","load","Ref","getSnap","getVersionObject","err","code","errMsg","error","Error","createSnapFromVersion","clearCache","deleteAll","isEqual","TagMap","allVersions","versionsIncludeOrphaned","keys","tag","Tag","SemVer","head","getHeadRegardlessOfLane","Snap","Date","parseInt","log","date","parents","p","displayName","username","email","message","State","Config","componentExtension","createAspectListFromLegacy","extensions","ComponentFS","fromVinyls","files","dependencies","exports"],"sources":["scope-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, Snap, State, Tag, TagMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { SemVer } from 'semver';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { VERSION_ZERO } from '@teambit/legacy/dist/scope/models/model-component';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport type { ScopeMain } from './scope.main.runtime';\n\nexport class ScopeComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private importedComponentsCache: InMemoryCache<boolean>;\n constructor(private scope: ScopeMain, private logger: Logger) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.importedComponentsCache = createInMemoryCache({ maxAge: 1000 * 60 * 30 }); // 30 min\n }\n\n async get(id: ComponentID, importIfMissing = true, useCache = true): Promise<Component | undefined> {\n const fromCache = this.getFromCache(id);\n if (fromCache && useCache) {\n return fromCache;\n }\n const idStr = id.toString();\n this.logger.debug(`ScopeComponentLoader.get, loading ${idStr}`);\n const legacyId = id;\n let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n // import if missing\n if (\n !modelComponent &&\n importIfMissing &&\n this.scope.isExported(id) &&\n !this.importedComponentsCache.get(id.toString())\n ) {\n await this.scope.import([id], { reason: `${id.toString()} because it's missing from the local scope` });\n this.importedComponentsCache.set(id.toString(), true);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n // Search with scope name for bare scopes\n if (!modelComponent && !legacyId.scope) {\n id = id.changeScope(this.scope.name);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n if (!modelComponent) return undefined;\n\n const versionStr = id.hasVersion()\n ? (id.version as string)\n : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n\n if (versionStr === VERSION_ZERO) return undefined;\n const newId = id.changeVersion(versionStr);\n const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n const component = new Component(newId, snap, state, tagMap, this.scope);\n this.componentsCache.set(idStr, component);\n return component;\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n const legacyId = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(legacyId);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const id = await this.scope.resolveComponentId(legacyId);\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(legacyId.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version, consumerComponent);\n const tagMap = this.getTagMap(modelComponent);\n\n return new Component(id, snap, state, tagMap, this.scope);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const objectList = await compImport.getRemoteComponent(id);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);\n return this.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get components from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const legacyIds = ids.map((id) => id);\n const objectList = await compImport.getManyRemoteComponents(legacyIds);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n return pMapSeries(legacyIds, async (legacyId) => {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(legacyId);\n return this.getFromConsumerComponent(consumerComponent);\n });\n }\n\n async getState(id: ComponentID, hash: string): Promise<State> {\n const version = (await this.scope.legacyScope.objects.load(new Ref(hash))) as Version;\n return this.createStateFromVersion(id, version);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const getVersionObject = async (): Promise<Version> => {\n try {\n const snap = await this.scope.legacyScope.objects.load(new Ref(hash), true);\n return snap as Version;\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n const errMsg = `fatal: snap \"${hash}\" file for component \"${id.toString()}\" was not found in the filesystem`;\n this.logger.error(errMsg, err);\n throw new Error(errMsg);\n } else {\n throw err;\n }\n }\n };\n const version = await getVersionObject();\n return this.createSnapFromVersion(version);\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID): Component | undefined {\n const idStr = id.toString();\n const fromCache = this.componentsCache.get(idStr);\n if (fromCache && fromCache.id.isEqual(id)) {\n return fromCache;\n }\n return undefined;\n }\n\n private getTagMap(modelComponent: ModelComponent): TagMap {\n const tagMap = new TagMap();\n const allVersions = modelComponent.versionsIncludeOrphaned;\n Object.keys(allVersions).forEach((versionStr: string) => {\n const tag = new Tag(allVersions[versionStr].toString(), new SemVer(versionStr));\n tagMap.set(tag.version, tag);\n });\n return tagMap;\n }\n\n private async getHeadSnap(modelComponent: ModelComponent): Promise<Snap | null> {\n const head = modelComponent.getHeadRegardlessOfLane();\n if (!head) {\n // happens for example when on main and merging a lane.\n return null;\n }\n const version = await modelComponent.loadVersion(head.toString(), this.scope.legacyScope.objects, false);\n if (!version) {\n // might happen when the component is just a dependency and a previous version was needed.\n return null;\n }\n return this.createSnapFromVersion(version);\n }\n\n private createSnapFromVersion(version: Version): Snap {\n return new Snap(\n version.hash().toString(),\n new Date(parseInt(version.log.date)),\n version.parents.map((p) => p.toString()),\n {\n displayName: version.log.username || 'unknown',\n email: version.log.email || 'unknown@anywhere',\n },\n version.log.message\n );\n }\n\n private async createStateFromVersion(\n id: ComponentID,\n version: Version,\n consumerComponent?: ConsumerComponent\n ): Promise<State> {\n consumerComponent = consumerComponent || (await this.scope.legacyScope.getConsumerComponent(id));\n const state = new State(\n // We use here the consumerComponent.extensions instead of version.extensions\n // because as part of the conversion to consumer component the artifacts are initialized as Artifact instances\n new Config(consumerComponent),\n // todo: see the comment of this \"createAspectListFromLegacy\" method. the aspect ids may be incorrect.\n // find a better way to get the ids correctly.\n this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions),\n ComponentFS.fromVinyls(consumerComponent.files),\n version.dependencies,\n consumerComponent\n );\n return state;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -4,9 +4,9 @@ export declare function scopeSchema(scopeMain: ScopeMain): {
4
4
  resolvers: {
5
5
  Scope: {
6
6
  name: (scope: ScopeMain) => string;
7
- description: (scope: ScopeMain) => string | undefined;
8
- icon: (scope: ScopeMain) => string | undefined;
9
- backgroundIconColor: (scope: ScopeMain) => string | undefined;
7
+ description: (scope: ScopeMain) => string;
8
+ icon: (scope: ScopeMain) => string;
9
+ backgroundIconColor: (scope: ScopeMain) => string;
10
10
  components: (scope: ScopeMain, props?: {
11
11
  offset: number;
12
12
  limit: number;
@@ -15,7 +15,7 @@ export declare function scopeSchema(scopeMain: ScopeMain): {
15
15
  }) => Promise<import("@teambit/component").Component[]>;
16
16
  get: (scope: ScopeMain, { id }: {
17
17
  id: string;
18
- }) => Promise<import("@teambit/component").Component | undefined>;
18
+ }) => Promise<import("@teambit/component").Component>;
19
19
  _getLegacy: (scope: ScopeMain, { id }: {
20
20
  id: string;
21
21
  }) => Promise<any>;
@@ -33,35 +33,35 @@ import { EnvsMain } from '@teambit/envs';
33
33
  import { ScopeComponentLoader } from './scope-component-loader';
34
34
  import { StagedConfig } from './staged-config';
35
35
  import { ScopeAspectsLoader, ScopeLoadAspectsOptions } from './scope-aspects-loader';
36
- declare type RemoteEventMetadata = {
36
+ type RemoteEventMetadata = {
37
37
  auth?: AuthData;
38
38
  headers?: {};
39
39
  };
40
- declare type RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;
41
- declare type OnPostPutData = {
40
+ type RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;
41
+ type OnPostPutData = {
42
42
  ids: ComponentID[];
43
43
  lanes: Lane[];
44
44
  };
45
- declare type OnPostDeleteData = {
45
+ type OnPostDeleteData = {
46
46
  ids: ComponentID[];
47
47
  };
48
- declare type OnPreFetchObjectData = {
48
+ type OnPreFetchObjectData = {
49
49
  ids: string[];
50
50
  fetchOptions: FETCH_OPTIONS;
51
51
  };
52
- declare type OnPostPut = RemoteEvent<OnPostPutData>;
53
- declare type OnPostExport = RemoteEvent<OnPostPutData>;
54
- declare type OnPostDelete = RemoteEvent<OnPostDeleteData>;
55
- declare type OnPostObjectsPersist = RemoteEvent<undefined>;
56
- declare type OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;
57
- declare type OnCompAspectReCalc = (component: Component) => Promise<AspectData | undefined>;
58
- export declare type OnPostPutSlot = SlotRegistry<OnPostPut>;
59
- export declare type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;
60
- export declare type OnPostExportSlot = SlotRegistry<OnPostExport>;
61
- export declare type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;
62
- export declare type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;
63
- export declare type OnCompAspectReCalcSlot = SlotRegistry<OnCompAspectReCalc>;
64
- export declare type LoadOptions = {
52
+ type OnPostPut = RemoteEvent<OnPostPutData>;
53
+ type OnPostExport = RemoteEvent<OnPostPutData>;
54
+ type OnPostDelete = RemoteEvent<OnPostDeleteData>;
55
+ type OnPostObjectsPersist = RemoteEvent<undefined>;
56
+ type OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;
57
+ type OnCompAspectReCalc = (component: Component) => Promise<AspectData | undefined>;
58
+ export type OnPostPutSlot = SlotRegistry<OnPostPut>;
59
+ export type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;
60
+ export type OnPostExportSlot = SlotRegistry<OnPostExport>;
61
+ export type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;
62
+ export type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;
63
+ export type OnCompAspectReCalcSlot = SlotRegistry<OnCompAspectReCalc>;
64
+ export type LoadOptions = {
65
65
  /**
66
66
  * In case the component we are loading is app, whether to load it as app (in a scope aspects capsule)
67
67
  */
@@ -71,7 +71,7 @@ export declare type LoadOptions = {
71
71
  */
72
72
  loadEnvs?: boolean;
73
73
  };
74
- export declare type ScopeConfig = {
74
+ export type ScopeConfig = {
75
75
  httpTimeOut: number;
76
76
  description?: string;
77
77
  icon?: string;
@@ -264,7 +264,7 @@ export declare class ScopeMain implements ComponentFactory {
264
264
  * in the future, this can return components that failed to load in the scope due to objects file
265
265
  * corruption or similar issues.
266
266
  */
267
- listInvalid(): Promise<never[]>;
267
+ listInvalid(): Promise<any[]>;
268
268
  /**
269
269
  * get ids of all scope components.
270
270
  * @param includeCache whether or not include components that their scope-name is different than the current scope-name
@@ -328,6 +328,14 @@ export declare class ScopeMain implements ComponentFactory {
328
328
  idsByPattern(pattern: string, throwForNoMatch?: boolean): Promise<ComponentID[]>;
329
329
  filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch?: boolean, filterByStateFunc?: (state: any, poolIds: ComponentID[]) => Promise<ComponentID[]>): Promise<ComponentID[]>;
330
330
  getSnapDistance(id: ComponentID, throws?: boolean): Promise<SnapsDistance>;
331
+ /**
332
+ * get the distance for a component between two lanes. for example, lane-b forked from lane-a and lane-b added some new snaps
333
+ * @param componentId
334
+ * @param sourceHead head on the source lane. leave empty if the source is main
335
+ * @param targetHead head on the target lane. leave empty if the target is main
336
+ * @returns
337
+ */
338
+ getSnapsDistanceBetweenTwoSnaps(componentId: ComponentID, sourceHead?: string, targetHead?: string, throws?: boolean): Promise<SnapsDistance>;
331
339
  getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined>;
332
340
  resumeExport(exportId: string, remotes: string[]): Promise<string[]>;
333
341
  /**
@@ -364,7 +372,7 @@ export declare class ScopeMain implements ComponentFactory {
364
372
  /**
365
373
  * declare the slots of scope extension.
366
374
  */
367
- static slots: (((registerFn: () => string) => SlotRegistry<OnPostPut>) | ((registerFn: () => string) => SlotRegistry<OnPostObjectsPersist>) | ((registerFn: () => string) => SlotRegistry<OnPreFetchObjects>) | ((registerFn: () => string) => SlotRegistry<OnCompAspectReCalc>))[];
375
+ static slots: (((registerFn: () => string) => SlotRegistry<OnPostPut>) | ((registerFn: () => string) => SlotRegistry<OnCompAspectReCalc>))[];
368
376
  static runtime: import("@teambit/harmony").RuntimeDefinition;
369
377
  static dependencies: import("@teambit/harmony").Aspect[];
370
378
  static defaultConfig: ScopeConfig;
@@ -387,6 +395,6 @@ export declare class ScopeMain implements ComponentFactory {
387
395
  OnPostObjectsPersistSlot,
388
396
  OnPreFetchObjectsSlot,
389
397
  OnCompAspectReCalcSlot
390
- ], harmony: Harmony): Promise<ScopeMain | undefined>;
398
+ ], harmony: Harmony): Promise<ScopeMain>;
391
399
  }
392
400
  export {};