@teambit/aspect-loader 1.0.1097 → 1.0.1099

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.
@@ -39,6 +39,13 @@ function _harmonyModules() {
39
39
  };
40
40
  return data;
41
41
  }
42
+ function _recordLoadedEsmFile() {
43
+ const data = require("./record-loaded-esm-file");
44
+ _recordLoadedEsmFile = function () {
45
+ return data;
46
+ };
47
+ return data;
48
+ }
42
49
  function _componentId() {
43
50
  const data = require("@teambit/component-id");
44
51
  _componentId = function () {
@@ -541,7 +548,10 @@ class AspectLoaderMain {
541
548
  return (0, _isEsmModule().isEsmModule)(path);
542
549
  }
543
550
  async loadEsm(path) {
544
- return (0, _nodeUtils().default)(path);
551
+ const module = await (0, _nodeUtils().default)(path);
552
+ // only a load that succeeded leaves something in memory that needs its files kept around
553
+ (0, _recordLoadedEsmFile().recordLoadedEsmFile)(path);
554
+ return module;
545
555
  }
546
556
  getPluginsFromDefs(component, componentPath, defs) {
547
557
  return _plugins().Plugins.from(component, defs, this.triggerOnAspectLoadError.bind(this), this.logger, this.pluginFileResolver.call(this, component, componentPath));
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_nodeUtils","_interopRequireDefault","_fsExtra","_graph","_harmonyModules","_componentId","_legacy","_cli","_harmony","_bitError","_logger","_compilationModules","_envs","_graphql","_pMapSeries","_lodash","_aspectDefinition","_aspectLoader","_constants","_isEsmModule","_exceptions","_coreAspects","_plugins","_aspectLoader2","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectLoaderMain","constructor","logger","envs","harmony","onAspectLoadErrorSlot","onLoadRequireableExtensionSlot","pluginSlot","Set","getCoreAspectsPackagesAndIds","allCoreAspectsIds","getCoreAspectIds","coreAspectsPackagesAndIds","id","packageName","getCoreAspectPackageName","getCompiler","component","env","getEnv","registerOnAspectLoadErrorSlot","onAspectLoadError","register","registerOnLoadRequireableExtensionSlot","onLoadRequireableExtension","triggerOnAspectLoadError","err","entries","toArray","isFixed","mapSeries","onAspectFailFunc","result","getRuntimePath","modulePath","runtime","runtimeFile","filesystem","files","find","file","relative","includes","compiler","join","dist","getDistPathBySrcPath","info","distPath","DEFAULT_DIST_DIRNAME","replaceFileExtToJs","getAspectFilePath","aspectFile","isAspectLoaded","failedAspects","get","getDescriptor","instance","iconFn","icon","undefined","addInMemoryConfiguredAspect","aspectId","inMemoryConfiguredAspects","getConfiguredAspects","configuredAspects","Array","from","config","raw","iMemoryConfiguredAspects","concat","getNotLoadedConfiguredExtensions","harmonyExtensions","extensionsIds","loadedExtensions","extId","extensions","loaded","extensionsToLoad","difference","loadDefinition","props","AspectDefinition","coreAspects","isCoreAspect","ids","setCoreAspects","aspects","setNonCoreAspects","_nonCoreAspects","map","aspect","_reserved","getNonCoreAspectIds","getCoreEnvsIds","envsIds","allIds","intersection","isCoreEnv","getUserAspects","coreAspectIds","nonCoreAspectIds","nonUserAspectIds","getCoreAspectDefs","runtimeName","defs","Promise","all","rawDef","getAspectDef","def","runtimePath","resolveAspects","components","resolver","promises","resolvedAspect","aspectPath","aspectFilePath","aspectDefs","compact","mainAspect","_mainAspect","setMainAspect","failedLoadAspect","resetFailedLoadAspects","addFailure","cloneManifest","manifest","cloned","assign","create","getPrototypeOf","provider","addRuntime","getRuntime","doRequire","requireableExtension","runSubscribers","idStr","toString","runOnLoadRequireableExtensionSubscribers","loadRequireableExtensions","requireableExtensions","throwOnError","manifests","getManifestsFromRequireableExtensions","loadExtensionsByManifests","manifestsP","firstErr","warn","errAfterReLoad","error","handleExtensionLoadingError","addFailedToLoadExt","errorMsg","message","split","msg","UNABLE_TO_LOAD_EXTENSION","console","CannotLoadExtension","reportLoadFailure","failedId","phase","printWarningIfFirstTime","isLoaderStarted","envId","showAsFailure","alreadyShownWarning","has","add","consoleFailure","consoleWarning","updatedManifest","onLoadRequireableExtensionFunc","getPluginDefs","flatten","values","getPlugins","componentPath","getPluginsFromDefs","isEsmModule","path","loadEsm","esmLoader","Plugins","bind","pluginFileResolver","getPluginFiles","hasPluginFiles","isEmpty","searchDistFile","rootDir","relativePath","replaceNotFound","defaultDistDir","fileExtension","extname","fileNames","ext","replace","RegExp","defaultDistPath","fileName","found","existsSync","jsFileName","finalPath","endsWith","distFile","isAspect","isValidAspect","isAspectComponent","isUsingAspectEnv","filterAspectDefs","allDefs","componentIds","filterOpts","coreIds","stringIds","toStringWithoutVersion","afterExclusion","excludeCore","isCore","getId","ComponentID","fromString","isTarget","uniqDefs","uniqBy","filterByRuntime","requestedOnly","componentIdsString","getAspectIdFromAspectFile","module","isObject","prepareManifests","MainRuntime","Error","Aspect","registerPlugins","pluginDefs","extensionsManifests","context","seeders","options","hideMissingModuleError","ignoreErrors","unifyErrorsByExtId","neededFor","defaultLoadExtByManifestOptions","mergedOptions","isValid","preparedManifests","getOnlyDeclaredDependenciesManifests","manifestGraph","generateManifestGraph","nodes","seeder","successors","flat","seederNodes","node","allNodes","nodesUniq","n","attr","relevantManifests","load","needToPrint","some","failedToLoadExt","parsedId","tryFromString","fullName","code","ignoreErrorFunc","warning","UNABLE_TO_LOAD_EXTENSION_FROM_LIST","BitError","graph","Graph","setNode","Node","deps","dependencies","dep","setEdge","Edge","loadAspectFromPath","localAspects","res","dirPaths","parseLocalAspect","dirPath","localAspect","scopeRuntime","findRuntime","mainRuntime","mainRuntimeModule","mainRuntimeManifest","resolve","nonExistsDirPaths","existsDirPaths","readdirSync","resolveLocalAspects","dirs","dir","srcRuntimeManifest","srcAspectFilePath","findAspectFile","runtimeManifest","loggerExt","graphql","createLogger","AspectLoaderAspect","aspectLoader","aspectLoaderSchema","getEnvPlugin","exports","LoggerAspect","EnvsAspect","GraphqlAspect","Slot","withType","_default"],"sources":["aspect-loader.main.runtime.ts"],"sourcesContent":["import { join, resolve, extname } from 'path';\nimport esmLoader from '@teambit/node.utils.esm-loader';\n// import findRoot from 'find-root';\nimport { readdirSync, existsSync } from 'fs-extra';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { reportLoadFailure } from '@teambit/harmony.modules.load-trace';\nimport { ComponentID } from '@teambit/component-id';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy.constants';\nimport { MainRuntime } from '@teambit/cli';\nimport type { ExtensionManifest, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Aspect, Slot } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport type { Component, FilterAspectsOptions } from '@teambit/component';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { replaceFileExtToJs } from '@teambit/compilation.modules.babel-compiler';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport mapSeries from 'p-map-series';\nimport { difference, compact, flatten, intersection, uniqBy, some, isEmpty, isObject } from 'lodash';\nimport type { AspectDefinitionProps } from './aspect-definition';\nimport { AspectDefinition } from './aspect-definition';\nimport type { PluginDefinition } from './plugin-definition';\nimport { AspectLoaderAspect } from './aspect-loader.aspect';\nimport { UNABLE_TO_LOAD_EXTENSION, UNABLE_TO_LOAD_EXTENSION_FROM_LIST } from './constants';\nimport { isEsmModule } from './is-esm-module';\nimport { CannotLoadExtension } from './exceptions';\nimport { getAspectDef, getCoreAspectPackageName } from './core-aspects';\nimport { Plugins } from './plugins';\nimport { aspectLoaderSchema } from './aspect-loader.graphql';\n\nexport type PluginDefinitionSlot = SlotRegistry<PluginDefinition[]>;\n\nexport type AspectDescriptor = {\n /**\n * name of the extension.\n */\n id: string;\n\n /**\n * icon of the extension.\n */\n icon?: string;\n};\n\nexport type AspectResolver = (component: Component) => Promise<ResolvedAspect | undefined>;\n\nexport type ResolvedAspect = {\n aspectPath: string;\n runtimePath: string | null;\n aspectFilePath: string | null;\n};\n\nexport type LoadExtByManifestContext = {\n seeders?: string[];\n neededFor?: string;\n};\n\nexport type LoadExtByManifestOptions = {\n throwOnError?: boolean;\n hideMissingModuleError?: boolean;\n ignoreErrorFunc?: (err: Error) => boolean;\n ignoreErrors?: boolean;\n /**\n * If this is enabled then we will show loading error only once for a given extension\n * (even if it was actually try to load it few times by different components for example)\n */\n unifyErrorsByExtId?: boolean;\n};\n\ntype OnAspectLoadError = (err: Error, component: Component) => Promise<boolean>;\nexport type OnAspectLoadErrorSlot = SlotRegistry<OnAspectLoadError>;\n\nexport type OnAspectLoadErrorHandler = (err: Error, component: Component) => Promise<boolean>;\n\nexport type OnLoadRequireableExtension = (\n requireableExtension: RequireableComponent,\n manifest: ExtensionManifest | Aspect\n) => Promise<ExtensionManifest | Aspect>;\n/**\n * A slot which run during loading the requirable extension (after first manifest calculation)\n */\nexport type OnLoadRequireableExtensionSlot = SlotRegistry<OnLoadRequireableExtension>;\n\nexport type MainAspect = {\n /**\n * path to the main aspect.\n */\n path: string;\n\n /**\n * version of the aspect.\n */\n version: string | undefined;\n\n /**\n * package name of the aspect\n */\n packageName: string | undefined;\n\n /**\n * reference to aspect manifest.\n */\n aspect: Aspect;\n\n /**\n * The name of the aspect (without the scope prefix)\n */\n name: string;\n\n /**\n * The name of the aspect\n */\n id: string;\n};\n\nexport class AspectLoaderMain {\n private inMemoryConfiguredAspects: string[] = [];\n private failedToLoadExt = new Set<string>();\n private alreadyShownWarning = new Set<string>();\n\n constructor(\n private logger: Logger,\n private envs: EnvsMain,\n private harmony: Harmony,\n private onAspectLoadErrorSlot: OnAspectLoadErrorSlot,\n private onLoadRequireableExtensionSlot: OnLoadRequireableExtensionSlot,\n private pluginSlot: PluginDefinitionSlot\n ) {}\n\n getCoreAspectsPackagesAndIds(): Record<string, string> {\n const allCoreAspectsIds = this.getCoreAspectIds();\n const coreAspectsPackagesAndIds = {};\n\n allCoreAspectsIds.forEach((id) => {\n const packageName = getCoreAspectPackageName(id);\n coreAspectsPackagesAndIds[packageName] = id;\n });\n\n return coreAspectsPackagesAndIds;\n }\n\n private getCompiler(component: Component) {\n const env = this.envs.getEnv(component)?.env;\n return env?.getCompiler();\n }\n\n registerOnAspectLoadErrorSlot(onAspectLoadError: OnAspectLoadError) {\n this.onAspectLoadErrorSlot.register(onAspectLoadError);\n }\n\n registerOnLoadRequireableExtensionSlot(onLoadRequireableExtension: OnLoadRequireableExtension) {\n this.onLoadRequireableExtensionSlot.register(onLoadRequireableExtension);\n }\n\n /**\n * returns whether the aspect-load issue has been fixed.\n */\n async triggerOnAspectLoadError(err: Error, component: Component): Promise<boolean> {\n const entries = this.onAspectLoadErrorSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onAspectLoadError] ] ]\n let isFixed = false;\n await mapSeries(entries, async ([, onAspectFailFunc]) => {\n const result = await onAspectFailFunc(err, component);\n if (result) isFixed = true;\n });\n\n return isFixed;\n }\n\n async getRuntimePath(component: Component, modulePath: string, runtime: string): Promise<string | null> {\n const runtimeFile = component.filesystem.files.find((file: any) => {\n return file.relative.includes(`.${runtime}.runtime`);\n });\n\n // @david we should add a compiler api for this.\n if (!runtimeFile) return null;\n try {\n const compiler = this.getCompiler(component);\n\n if (!compiler) {\n return join(modulePath, runtimeFile.relative);\n }\n\n const dist = compiler.getDistPathBySrcPath(runtimeFile.relative);\n return join(modulePath, dist);\n } catch (e) {\n this.logger.info(`got an error during get runtime path, probably the env is not loaded yet ${e}`);\n // TODO: we are manually adding the dist here and replace the file name to handle case when\n // we load aspects from scope, and their env in the same iteration, but we get into the aspect before its\n // env, so it's env doesn't exist yet\n // we should make sure to first load the env correctly before loading the aspect\n const distPath = join(modulePath, DEFAULT_DIST_DIRNAME, replaceFileExtToJs(runtimeFile.relative));\n return distPath;\n }\n }\n\n async getAspectFilePath(component: Component, modulePath: string): Promise<string | null> {\n const aspectFile = component.filesystem.files.find((file: any) => {\n return file.relative.includes(`.aspect.ts`) || file.relative.includes(`.aspect.js`);\n });\n\n // @david we should add a compiler api for this.\n if (!aspectFile) return null;\n try {\n const compiler = this.getCompiler(component);\n\n if (!compiler) {\n return join(modulePath, aspectFile.relative);\n }\n\n const dist = compiler.getDistPathBySrcPath(aspectFile.relative);\n return join(modulePath, dist);\n } catch (e) {\n this.logger.info(`got an error during get runtime path, probably the env is not loaded yet ${e}`);\n // TODO: we are manually adding the dist here and replace the file name to handle case when\n // we load aspects from scope, and their env in the same iteration, but we get into the aspect before its\n // env, so it's env doesn't exist yet\n // we should make sure to first load the env correctly before loading the aspect\n const distPath = join(modulePath, DEFAULT_DIST_DIRNAME, replaceFileExtToJs(aspectFile.relative));\n return distPath;\n }\n }\n\n isAspectLoaded(id: string) {\n if (this.failedAspects.includes(id)) return true;\n try {\n return this.harmony.get(id);\n } catch {\n return false;\n }\n }\n\n getDescriptor(id: string): AspectDescriptor | undefined {\n try {\n const instance = this.harmony.get<any>(id);\n const iconFn = instance.icon;\n\n const icon = iconFn ? iconFn.apply(instance) : undefined;\n\n return {\n id,\n icon,\n };\n } catch {\n return undefined;\n }\n }\n\n /**\n * This is used when adding aspects to workspace.jsonc during the process (like in bit use command)\n * and we want to make sure that follow operation (like bit install) will recognize those aspects\n * but the harmony config is already in memory.\n * Probably a better to do it is to make sure we can re-load the config somehow\n * ideally by adding the config class in harmony a reload API\n * @param aspectId\n */\n addInMemoryConfiguredAspect(aspectId: string): void {\n this.inMemoryConfiguredAspects.push(aspectId);\n }\n\n /**\n * get all the configured aspects in the config file (workspace.jsonc / scope.jsonc)\n */\n getConfiguredAspects(): string[] {\n const configuredAspects = Array.from(this.harmony.config.raw.keys());\n const iMemoryConfiguredAspects = this.inMemoryConfiguredAspects;\n return configuredAspects.concat(iMemoryConfiguredAspects);\n }\n getNotLoadedConfiguredExtensions() {\n const configuredAspects = this.getConfiguredAspects();\n const harmonyExtensions = this.harmony.extensionsIds;\n const loadedExtensions = harmonyExtensions.filter((extId) => {\n return this.harmony.extensions.get(extId)?.loaded;\n });\n const extensionsToLoad = difference(configuredAspects, loadedExtensions);\n return extensionsToLoad;\n }\n\n loadDefinition(props: AspectDefinitionProps): AspectDefinition {\n return AspectDefinition.from(props);\n }\n\n private _coreAspects: Aspect[] = [];\n private _nonCoreAspects: Aspect[] = [];\n\n get coreAspects() {\n return this._coreAspects;\n }\n\n isCoreAspect(id: string) {\n const ids = this.getCoreAspectIds();\n return ids.includes(id);\n }\n\n setCoreAspects(aspects: Aspect[]) {\n this._coreAspects = aspects;\n return this;\n }\n\n setNonCoreAspects(aspects: Aspect[]) {\n this._nonCoreAspects = aspects;\n return this;\n }\n\n getCoreAspectIds(): string[] {\n const ids = this.coreAspects.map((aspect) => aspect.id);\n return ids.concat(this._reserved);\n }\n\n /**\n * bit aspects that are not core aspects\n * normally coming from a composition over teambit.harmony/bit and are passed to loadBit as \"additionalAspects\".\n * these are *not* user aspects. they're not in workspaces created by users. they're part of bit installation.\n */\n getNonCoreAspectIds(): string[] {\n return this._nonCoreAspects.map((aspect) => aspect.id);\n }\n\n /**\n * Get all the core envs ids which is still register in the bit manifest as core aspect\n */\n getCoreEnvsIds(): string[] {\n const envsIds = this.envs.getCoreEnvsIds();\n const allIds = this.getCoreAspectIds();\n return intersection(allIds, envsIds);\n }\n\n isCoreEnv(id: string): boolean {\n const ids = this.getCoreEnvsIds();\n return ids.includes(id);\n }\n\n private _reserved = ['teambit.harmony/bit', 'teambit.harmony/config'];\n\n getUserAspects(): string[] {\n const coreAspectIds = this.getCoreAspectIds();\n const nonCoreAspectIds = this.getNonCoreAspectIds();\n const nonUserAspectIds = [...coreAspectIds, ...nonCoreAspectIds];\n return difference(this.harmony.extensionsIds, nonUserAspectIds);\n }\n\n async getCoreAspectDefs(runtimeName?: string) {\n const defs = await Promise.all(\n this.coreAspects.map(async (aspect) => {\n const id = aspect.id;\n const rawDef = await getAspectDef(id, runtimeName);\n return this.loadDefinition(rawDef);\n })\n );\n\n return defs.filter((def) => def.runtimePath);\n }\n\n async resolveAspects(components: Component[], resolver: AspectResolver): Promise<AspectDefinition[]> {\n const promises = components.map(async (component) => {\n const resolvedAspect = await resolver(component);\n if (!resolvedAspect) return undefined;\n return new AspectDefinition(\n resolvedAspect.aspectPath,\n resolvedAspect.aspectFilePath,\n resolvedAspect.runtimePath,\n component\n );\n });\n\n const aspectDefs = await Promise.all(promises);\n // return aspectDefs.filter((def) => def.runtimePath);\n return compact(aspectDefs);\n }\n\n private _mainAspect: MainAspect;\n\n get mainAspect() {\n return this._mainAspect;\n }\n\n setMainAspect(mainAspect: MainAspect) {\n this._mainAspect = mainAspect;\n return this;\n }\n\n private failedLoadAspect: string[] = [];\n\n get failedAspects() {\n return this.failedLoadAspect;\n }\n\n public resetFailedLoadAspects() {\n this.failedLoadAspect = [];\n }\n\n private addFailure(id: string): void {\n if (this.failedAspects.includes(id)) return;\n this.failedLoadAspect.push(id);\n }\n\n cloneManifest(manifest: any) {\n const cloned = Object.assign(Object.create(Object.getPrototypeOf(manifest)), manifest);\n cloned.provider = manifest.provider;\n cloned.addRuntime = manifest.addRuntime;\n cloned.getRuntime = manifest.getRuntime;\n return cloned;\n }\n\n /**\n * run \"require\" of the component code to get the manifest\n */\n async doRequire(\n requireableExtension: RequireableComponent,\n runSubscribers = true\n ): Promise<ExtensionManifest | Aspect> {\n const idStr = requireableExtension.component.id.toString();\n const aspect = await requireableExtension.require();\n const manifest = aspect.default || aspect;\n manifest.id = idStr;\n // It's important to clone deep the manifest here to prevent mutate dependencies of other manifests as they point to the same location in memory\n const cloned = this.cloneManifest(manifest);\n if (runSubscribers) return this.runOnLoadRequireableExtensionSubscribers(requireableExtension, cloned);\n return cloned;\n }\n\n /**\n * in case the extension failed to load, prefer to throw an error, unless `throwOnError` param\n * passed as `false`.\n * there are cases when throwing an error blocks the user from doing anything else. for example,\n * when a user develops an extension and deletes the node-modules, the extension on the workspace\n * cannot be loaded anymore until \"bit compile\" is running. however, if this function throws an\n * error, it'll throw for \"bit compile\" as well, which blocks the user.\n * for the CI, it is important to throw an error because errors on console can be ignored.\n * for now, when loading the extension from the workspace the throwOnError is passed as false.\n * when loading from the scope (CI) it should be true.\n *\n * the console printing here is done directly by \"console.error\" and not by the logger. the reason\n * is that the logger.console only prints when the loader started (which, btw, happens after\n * entering this function, so it can't work) and here we want it to be printed regardless of the\n * rules of starting the loader. e.g. if by mistake the CI got it as throwOnError=false, it's ok\n * to break the output by the console.error.\n *\n * @todo: this is not the final word however about throwing/non throwing errors here.\n * in some cases, such as \"bit tag\", it's better not to tag if an extension changes the model.\n */\n async loadRequireableExtensions(requireableExtensions: RequireableComponent[], throwOnError = false): Promise<void> {\n const manifests = await this.getManifestsFromRequireableExtensions(requireableExtensions, throwOnError);\n return this.loadExtensionsByManifests(manifests, undefined, { throwOnError });\n }\n\n async getManifestsFromRequireableExtensions(\n requireableExtensions: RequireableComponent[],\n throwOnError = false,\n runSubscribers = true\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const manifestsP = mapSeries(requireableExtensions, async (requireableExtension) => {\n if (!requireableExtensions) return undefined;\n const idStr = requireableExtension.component.id.toString();\n try {\n return await this.doRequire(requireableExtension, runSubscribers);\n } catch (firstErr: any) {\n this.addFailure(idStr);\n this.logger.warn(`failed loading an aspect \"${idStr}\", will try to fix and reload`, firstErr);\n const isFixed = await this.triggerOnAspectLoadError(firstErr, requireableExtension.component);\n let errAfterReLoad;\n if (isFixed) {\n this.logger.info(`the loading issue might be fixed now, re-loading ${idStr}`);\n try {\n return await this.doRequire(requireableExtension);\n } catch (err: any) {\n this.logger.warn(`re-load of the aspect \"${idStr}\" failed as well`, err);\n errAfterReLoad = err;\n }\n }\n const error = errAfterReLoad || firstErr;\n this.handleExtensionLoadingError(error, idStr, throwOnError);\n }\n return undefined;\n });\n const manifests = await manifestsP;\n\n // Remove empty manifests as a result of loading issue\n return compact(manifests);\n }\n\n handleExtensionLoadingError(error: Error, idStr: string, throwOnError: boolean) {\n this.envs.addFailedToLoadExt(idStr);\n const errorMsg = error.message.split('\\n')[0]; // show only the first line if the error is long (e.g. happens with MODULE_NOT_FOUND errors)\n const msg = UNABLE_TO_LOAD_EXTENSION(idStr, errorMsg);\n if (throwOnError) {\n // @ts-ignore\n this.logger.console(error);\n throw new CannotLoadExtension(idStr, error);\n }\n // the failure is swallowed (best-effort loading). record it on the active load-trace so the\n // component loader surfaces it as a component issue, visible in \"bit status\".\n reportLoadFailure({ failedId: idStr, phase: 'require-aspects', error: errorMsg });\n this.logger.error(msg, error);\n this.printWarningIfFirstTime(idStr, msg, this.logger.isLoaderStarted);\n }\n\n private printWarningIfFirstTime(envId: string, msg: string, showAsFailure: boolean) {\n if (!this.alreadyShownWarning.has(envId)) {\n this.alreadyShownWarning.add(envId);\n if (showAsFailure) {\n this.logger.consoleFailure(msg);\n } else {\n this.logger.consoleWarning(msg);\n }\n }\n }\n\n async runOnLoadRequireableExtensionSubscribers(\n requireableExtension: RequireableComponent,\n manifest: ExtensionManifest | Aspect\n ): Promise<ExtensionManifest | Aspect> {\n let updatedManifest = manifest;\n const entries = this.onLoadRequireableExtensionSlot.toArray();\n await mapSeries(entries, async ([, onLoadRequireableExtensionFunc]) => {\n updatedManifest = await onLoadRequireableExtensionFunc(requireableExtension, updatedManifest);\n });\n return updatedManifest;\n }\n\n getPluginDefs() {\n return flatten(this.pluginSlot.values());\n }\n\n getPlugins(component: Component, componentPath: string): Plugins {\n const defs = this.getPluginDefs();\n return this.getPluginsFromDefs(component, componentPath, defs);\n }\n\n async isEsmModule(path: string) {\n return isEsmModule(path);\n }\n\n async loadEsm(path: string) {\n return esmLoader(path);\n }\n\n getPluginsFromDefs(component: Component, componentPath: string, defs: PluginDefinition[]): Plugins {\n return Plugins.from(\n component,\n defs,\n this.triggerOnAspectLoadError.bind(this),\n this.logger,\n this.pluginFileResolver.call(this, component, componentPath)\n );\n }\n\n getPluginFiles(component: Component, componentPath: string): string[] {\n const defs = this.getPluginDefs();\n return Plugins.files(component, defs, this.pluginFileResolver.call(this, component, componentPath));\n }\n\n hasPluginFiles(component: Component): boolean {\n const defs = this.getPluginDefs();\n const files = Plugins.files(component, defs);\n return !isEmpty(files);\n }\n\n private searchDistFile(rootDir: string, relativePath: string, replaceNotFound = false) {\n const defaultDistDir = join(rootDir, 'dist');\n const fileExtension = extname(relativePath);\n const fileNames = ['ts', 'js', 'tsx', 'jsx'].map((ext) =>\n relativePath.replace(new RegExp(`${fileExtension}$`), `.${ext}`)\n );\n const defaultDistPath = fileNames.map((fileName) => join(defaultDistDir, fileName));\n const found = defaultDistPath.find((distPath) => existsSync(distPath));\n if (found) return found;\n if (!replaceNotFound) return null;\n const jsFileName = relativePath.replace(new RegExp(`${fileExtension}$`), `.js`);\n const finalPath = join(defaultDistDir, jsFileName);\n return finalPath;\n }\n\n pluginFileResolver(component: Component, rootDir: string) {\n return (relativePath: string) => {\n const replaceNotFound = relativePath.endsWith('.ts') || relativePath.endsWith('.tsx');\n\n try {\n const compiler = this.getCompiler(component);\n if (!compiler) {\n const distFile = this.searchDistFile(rootDir, relativePath, replaceNotFound);\n return distFile || join(rootDir, relativePath);\n }\n\n const dist = compiler.getDistPathBySrcPath(relativePath);\n return join(rootDir, dist);\n } catch (err) {\n // This might happen for example when loading an env from the global scope, and the env of the env / aspect is not a core one\n this.logger.info(\n `pluginFileResolver: got an error during get compiler for component ${component.id.toString()}, probably the env is not loaded yet ${err}`\n );\n const distFile = this.searchDistFile(rootDir, relativePath, replaceNotFound);\n return distFile || join(rootDir, relativePath);\n }\n };\n }\n\n isAspect(manifest: any) {\n return !!(manifest.addRuntime && manifest.getRuntime);\n }\n\n isValidAspect(manifest: any): boolean {\n return this.isAspect(manifest) || manifest.provider;\n }\n\n isAspectComponent(component: Component): boolean {\n return this.envs.isUsingAspectEnv(component);\n }\n\n filterAspectDefs(\n allDefs: AspectDefinition[],\n componentIds: ComponentID[],\n runtimeName: string | undefined,\n filterOpts: FilterAspectsOptions = {}\n ) {\n const coreIds = this.getCoreAspectIds();\n const stringIds = componentIds.map((id) => id.toStringWithoutVersion());\n const afterExclusion = filterOpts.excludeCore\n ? allDefs.filter((def) => {\n const isCore = coreIds.includes(def.getId || '');\n const id = ComponentID.fromString(def.getId || '');\n const isTarget = stringIds.includes(id.toStringWithoutVersion());\n if (isTarget) return true;\n return !isCore;\n })\n : allDefs;\n\n const uniqDefs = uniqBy(afterExclusion, (def) => `${def.aspectPath}-${def.runtimePath}`);\n let defs = uniqDefs;\n if (runtimeName && filterOpts.filterByRuntime) {\n defs = defs.filter((def) => def.runtimePath);\n }\n\n if (componentIds && componentIds.length && filterOpts.requestedOnly) {\n const componentIdsString = componentIds.map((id) => id.toString());\n defs = defs.filter((def) => {\n return (\n (def.id && componentIdsString.includes(def.id)) ||\n (def.component && componentIdsString.includes(def.component?.id.toString()))\n );\n });\n }\n\n return defs;\n }\n\n getAspectIdFromAspectFile(aspectFilePath: string): string | undefined {\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = aspectFilePath ? require(aspectFilePath) : undefined;\n let manifest = module.default || module;\n if (this.isAspect(manifest)) {\n return manifest.id;\n }\n if (isObject(manifest)) {\n if (isEmpty(manifest)) {\n this.logger.warn(\n `getAspectIdFromAspectFile - aspect at ${aspectFilePath} missing exports. couldn't calculate the manifest`\n );\n return undefined;\n }\n if (Object.keys(manifest).length > 1) {\n this.logger.warn(\n `getAspectIdFromAspectFile - aspect at ${aspectFilePath} exports too many keys. couldn't calculate the manifest`\n );\n return undefined;\n }\n manifest = Object.values(manifest)[0];\n if (this.isAspect(manifest)) {\n return manifest.id;\n }\n }\n this.logger.warn(`getAspectIdFromAspectFile - aspect at ${aspectFilePath} is not a valid aspect`);\n return undefined;\n } catch (err) {\n this.logger.warn(`getAspectIdFromAspectFile - couldn't require the aspect file ${aspectFilePath}. err: ${err}`);\n return undefined;\n }\n }\n\n private prepareManifests(manifests: Array<ExtensionManifest | Aspect>): Aspect[] {\n return manifests.map((manifest: any) => {\n if (this.isAspect(manifest)) return manifest as Aspect;\n manifest.runtime = MainRuntime;\n if (!manifest.id) throw new Error('manifest must have static id');\n const aspect = Aspect.create({\n id: manifest.id,\n });\n aspect.addRuntime(manifest);\n return aspect;\n });\n }\n\n /**\n * register a plugin.\n */\n registerPlugins(pluginDefs: PluginDefinition[]) {\n this.pluginSlot.register(pluginDefs);\n }\n\n async loadExtensionsByManifests(\n extensionsManifests: Array<ExtensionManifest | Aspect>,\n context: LoadExtByManifestContext = {\n seeders: [],\n },\n options: LoadExtByManifestOptions = {\n throwOnError: true,\n hideMissingModuleError: false,\n ignoreErrors: false,\n unifyErrorsByExtId: true,\n }\n ) {\n const neededFor = context.neededFor;\n const seeders = context.seeders || [];\n const defaultLoadExtByManifestOptions = {\n throwOnError: true,\n hideMissingModuleError: false,\n ignoreErrors: false,\n unifyErrorsByExtId: true,\n };\n const mergedOptions = { ...defaultLoadExtByManifestOptions, ...options };\n try {\n const manifests = extensionsManifests.filter((manifest) => {\n const isValid = this.isValidAspect(manifest);\n if (!isValid) this.logger.warn(`${manifest.id} is invalid. please make sure the extension is valid.`);\n return isValid;\n });\n const preparedManifests = this.prepareManifests(manifests);\n // don't let harmony load all aspects. if seeders were sent, find their manifests, check for their static\n // dependencies, and load only them.\n const getOnlyDeclaredDependenciesManifests = () => {\n if (!seeders.length || seeders.length === preparedManifests.length) {\n return preparedManifests;\n }\n const manifestGraph = this.generateManifestGraph(preparedManifests);\n const nodes = seeders.map((seeder) => manifestGraph.successors(seeder)).flat();\n const seederNodes = compact(seeders.map((seeder) => manifestGraph.node(seeder)));\n const allNodes = [...nodes, ...seederNodes];\n const nodesUniq = uniqBy(allNodes, 'id');\n return nodesUniq.map((n) => n.attr);\n };\n const relevantManifests = getOnlyDeclaredDependenciesManifests();\n // @ts-ignore TODO: fix this\n await this.harmony.load(relevantManifests);\n } catch (e: any) {\n const ids = extensionsManifests.map((manifest) => manifest.id || 'unknown');\n if (mergedOptions.unifyErrorsByExtId) {\n const needToPrint = some(ids, (id) => !this.failedToLoadExt.has(id));\n if (!needToPrint) return;\n ids.forEach((id) => {\n this.failedToLoadExt.add(id);\n this.envs.addFailedToLoadExt(id);\n const parsedId = ComponentID.tryFromString(id);\n if (parsedId) {\n this.failedToLoadExt.add(parsedId.fullName);\n this.envs.addFailedToLoadExt(parsedId.fullName);\n }\n });\n }\n if (mergedOptions.ignoreErrors) return;\n if ((e.code === 'MODULE_NOT_FOUND' || e.code === 'ERR_MODULE_NOT_FOUND') && mergedOptions.hideMissingModuleError)\n return;\n\n if (mergedOptions.ignoreErrorFunc && mergedOptions.ignoreErrorFunc(e)) return;\n // TODO: improve texts\n const errorMsg = e.message.split('\\n')[0];\n const warning = UNABLE_TO_LOAD_EXTENSION_FROM_LIST(ids, errorMsg, neededFor);\n this.logger.error(warning, e);\n if (this.logger.isLoaderStarted) {\n if (mergedOptions.throwOnError) throw new BitError(warning);\n this.logger.consoleFailure(warning);\n } else {\n this.logger.consoleWarning(warning);\n this.logger.consoleWarning(e);\n }\n if (mergedOptions.throwOnError) {\n throw e;\n }\n }\n }\n\n private generateManifestGraph(manifests: Aspect[]) {\n const graph = new Graph<Aspect, string>();\n manifests.forEach((manifest) => graph.setNode(new Node(manifest.id, manifest)));\n manifests.forEach((manifest) => {\n const deps = manifest.getRuntime(MainRuntime)?.dependencies?.map((dep) => dep.id);\n deps?.forEach((dep) => {\n if (graph.node(dep)) {\n graph.setEdge(new Edge(manifest.id, dep, 'dep'));\n }\n });\n });\n return graph;\n }\n\n public async loadAspectFromPath(localAspects: string[]): Promise<Record<string, string>> {\n const res = {};\n const dirPaths = this.parseLocalAspect(localAspects);\n const manifests = dirPaths.map(([dirPath, localAspect]) => {\n const scopeRuntime = this.findRuntime(dirPath, 'scope');\n if (scopeRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(join(dirPath, 'dist', scopeRuntime));\n const manifest = module.default || module;\n res[manifest.id] = localAspect;\n return manifest;\n }\n const module = require(dirPath);\n const manifest = module.default || module;\n const mainRuntime = this.findRuntime(dirPath, 'main');\n if (mainRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const mainRuntimeModule = require(join(dirPath, 'dist', mainRuntime));\n const mainRuntimeManifest = mainRuntimeModule.default || mainRuntimeModule;\n // manifest has the \"id\" prop. the mainRuntimeManifest doesn't have it normally.\n mainRuntimeManifest.id = manifest.id;\n res[mainRuntimeManifest.id] = localAspect;\n return mainRuntimeManifest;\n }\n res[manifest.id] = localAspect;\n return manifest;\n });\n\n await this.loadExtensionsByManifests(manifests, undefined, { throwOnError: true });\n return res;\n }\n\n private parseLocalAspect(localAspects: string[]) {\n const dirPaths = localAspects.map((localAspect) => [resolve(localAspect.replace('file://', '')), localAspect]);\n const nonExistsDirPaths = dirPaths.filter(([path]) => !existsSync(path));\n nonExistsDirPaths.forEach((path) => this.logger.warn(`no such file or directory: ${path}`));\n const existsDirPaths = dirPaths.filter(([path]) => existsSync(path));\n return existsDirPaths;\n }\n\n private findRuntime(dirPath: string, runtime: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`${runtime}.runtime.js`));\n }\n\n public async resolveLocalAspects(ids: string[], runtime?: string): Promise<AspectDefinition[]> {\n const dirs = this.parseLocalAspect(ids).map(([dir]) => dir);\n return dirs.map((dir) => {\n const srcRuntimeManifest = runtime ? this.findRuntime(dir, runtime) : undefined;\n const srcAspectFilePath = runtime ? this.findAspectFile(dir) : undefined;\n const aspectFilePath = srcAspectFilePath ? join(dir, 'dist', srcAspectFilePath) : null;\n const runtimeManifest = srcRuntimeManifest ? join(dir, 'dist', srcRuntimeManifest) : null;\n const aspectId = aspectFilePath ? this.getAspectIdFromAspectFile(aspectFilePath) : undefined;\n\n return new AspectDefinition(dir, aspectFilePath, runtimeManifest, undefined, aspectId, true);\n });\n }\n\n private findAspectFile(dirPath: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`.aspect.js`));\n }\n\n static runtime = MainRuntime;\n static dependencies = [LoggerAspect, EnvsAspect, GraphqlAspect];\n static slots = [\n Slot.withType<OnAspectLoadError>(),\n Slot.withType<OnLoadRequireableExtension>(),\n Slot.withType<PluginDefinition[]>(),\n ];\n\n static async provider(\n [loggerExt, envs, graphql]: [LoggerMain, EnvsMain, GraphqlMain],\n config,\n [onAspectLoadErrorSlot, onLoadRequireableExtensionSlot, pluginSlot]: [\n OnAspectLoadErrorSlot,\n OnLoadRequireableExtensionSlot,\n PluginDefinitionSlot,\n ],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(AspectLoaderAspect.id);\n const aspectLoader = new AspectLoaderMain(\n logger,\n envs,\n harmony,\n onAspectLoadErrorSlot,\n onLoadRequireableExtensionSlot,\n pluginSlot\n );\n\n graphql.register(() => aspectLoaderSchema(aspectLoader));\n aspectLoader.registerPlugins([envs.getEnvPlugin()]);\n\n return aspectLoader;\n }\n}\n\nAspectLoaderAspect.addRuntime(AspectLoaderMain);\n\nexport default AspectLoaderMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_nodeUtils","_interopRequireDefault","_fsExtra","_graph","_harmonyModules","_recordLoadedEsmFile","_componentId","_legacy","_cli","_harmony","_bitError","_logger","_compilationModules","_envs","_graphql","_pMapSeries","_lodash","_aspectDefinition","_aspectLoader","_constants","_isEsmModule","_exceptions","_coreAspects","_plugins","_aspectLoader2","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectLoaderMain","constructor","logger","envs","harmony","onAspectLoadErrorSlot","onLoadRequireableExtensionSlot","pluginSlot","Set","getCoreAspectsPackagesAndIds","allCoreAspectsIds","getCoreAspectIds","coreAspectsPackagesAndIds","id","packageName","getCoreAspectPackageName","getCompiler","component","env","getEnv","registerOnAspectLoadErrorSlot","onAspectLoadError","register","registerOnLoadRequireableExtensionSlot","onLoadRequireableExtension","triggerOnAspectLoadError","err","entries","toArray","isFixed","mapSeries","onAspectFailFunc","result","getRuntimePath","modulePath","runtime","runtimeFile","filesystem","files","find","file","relative","includes","compiler","join","dist","getDistPathBySrcPath","info","distPath","DEFAULT_DIST_DIRNAME","replaceFileExtToJs","getAspectFilePath","aspectFile","isAspectLoaded","failedAspects","get","getDescriptor","instance","iconFn","icon","undefined","addInMemoryConfiguredAspect","aspectId","inMemoryConfiguredAspects","getConfiguredAspects","configuredAspects","Array","from","config","raw","iMemoryConfiguredAspects","concat","getNotLoadedConfiguredExtensions","harmonyExtensions","extensionsIds","loadedExtensions","extId","extensions","loaded","extensionsToLoad","difference","loadDefinition","props","AspectDefinition","coreAspects","isCoreAspect","ids","setCoreAspects","aspects","setNonCoreAspects","_nonCoreAspects","map","aspect","_reserved","getNonCoreAspectIds","getCoreEnvsIds","envsIds","allIds","intersection","isCoreEnv","getUserAspects","coreAspectIds","nonCoreAspectIds","nonUserAspectIds","getCoreAspectDefs","runtimeName","defs","Promise","all","rawDef","getAspectDef","def","runtimePath","resolveAspects","components","resolver","promises","resolvedAspect","aspectPath","aspectFilePath","aspectDefs","compact","mainAspect","_mainAspect","setMainAspect","failedLoadAspect","resetFailedLoadAspects","addFailure","cloneManifest","manifest","cloned","assign","create","getPrototypeOf","provider","addRuntime","getRuntime","doRequire","requireableExtension","runSubscribers","idStr","toString","runOnLoadRequireableExtensionSubscribers","loadRequireableExtensions","requireableExtensions","throwOnError","manifests","getManifestsFromRequireableExtensions","loadExtensionsByManifests","manifestsP","firstErr","warn","errAfterReLoad","error","handleExtensionLoadingError","addFailedToLoadExt","errorMsg","message","split","msg","UNABLE_TO_LOAD_EXTENSION","console","CannotLoadExtension","reportLoadFailure","failedId","phase","printWarningIfFirstTime","isLoaderStarted","envId","showAsFailure","alreadyShownWarning","has","add","consoleFailure","consoleWarning","updatedManifest","onLoadRequireableExtensionFunc","getPluginDefs","flatten","values","getPlugins","componentPath","getPluginsFromDefs","isEsmModule","path","loadEsm","module","esmLoader","recordLoadedEsmFile","Plugins","bind","pluginFileResolver","getPluginFiles","hasPluginFiles","isEmpty","searchDistFile","rootDir","relativePath","replaceNotFound","defaultDistDir","fileExtension","extname","fileNames","ext","replace","RegExp","defaultDistPath","fileName","found","existsSync","jsFileName","finalPath","endsWith","distFile","isAspect","isValidAspect","isAspectComponent","isUsingAspectEnv","filterAspectDefs","allDefs","componentIds","filterOpts","coreIds","stringIds","toStringWithoutVersion","afterExclusion","excludeCore","isCore","getId","ComponentID","fromString","isTarget","uniqDefs","uniqBy","filterByRuntime","requestedOnly","componentIdsString","getAspectIdFromAspectFile","isObject","prepareManifests","MainRuntime","Error","Aspect","registerPlugins","pluginDefs","extensionsManifests","context","seeders","options","hideMissingModuleError","ignoreErrors","unifyErrorsByExtId","neededFor","defaultLoadExtByManifestOptions","mergedOptions","isValid","preparedManifests","getOnlyDeclaredDependenciesManifests","manifestGraph","generateManifestGraph","nodes","seeder","successors","flat","seederNodes","node","allNodes","nodesUniq","n","attr","relevantManifests","load","needToPrint","some","failedToLoadExt","parsedId","tryFromString","fullName","code","ignoreErrorFunc","warning","UNABLE_TO_LOAD_EXTENSION_FROM_LIST","BitError","graph","Graph","setNode","Node","deps","dependencies","dep","setEdge","Edge","loadAspectFromPath","localAspects","res","dirPaths","parseLocalAspect","dirPath","localAspect","scopeRuntime","findRuntime","mainRuntime","mainRuntimeModule","mainRuntimeManifest","resolve","nonExistsDirPaths","existsDirPaths","readdirSync","resolveLocalAspects","dirs","dir","srcRuntimeManifest","srcAspectFilePath","findAspectFile","runtimeManifest","loggerExt","graphql","createLogger","AspectLoaderAspect","aspectLoader","aspectLoaderSchema","getEnvPlugin","exports","LoggerAspect","EnvsAspect","GraphqlAspect","Slot","withType","_default"],"sources":["aspect-loader.main.runtime.ts"],"sourcesContent":["import { join, resolve, extname } from 'path';\nimport esmLoader from '@teambit/node.utils.esm-loader';\n// import findRoot from 'find-root';\nimport { readdirSync, existsSync } from 'fs-extra';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { reportLoadFailure } from '@teambit/harmony.modules.load-trace';\nimport { recordLoadedEsmFile } from './record-loaded-esm-file';\nimport { ComponentID } from '@teambit/component-id';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy.constants';\nimport { MainRuntime } from '@teambit/cli';\nimport type { ExtensionManifest, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Aspect, Slot } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport type { Component, FilterAspectsOptions } from '@teambit/component';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { replaceFileExtToJs } from '@teambit/compilation.modules.babel-compiler';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport mapSeries from 'p-map-series';\nimport { difference, compact, flatten, intersection, uniqBy, some, isEmpty, isObject } from 'lodash';\nimport type { AspectDefinitionProps } from './aspect-definition';\nimport { AspectDefinition } from './aspect-definition';\nimport type { PluginDefinition } from './plugin-definition';\nimport { AspectLoaderAspect } from './aspect-loader.aspect';\nimport { UNABLE_TO_LOAD_EXTENSION, UNABLE_TO_LOAD_EXTENSION_FROM_LIST } from './constants';\nimport { isEsmModule } from './is-esm-module';\nimport { CannotLoadExtension } from './exceptions';\nimport { getAspectDef, getCoreAspectPackageName } from './core-aspects';\nimport { Plugins } from './plugins';\nimport { aspectLoaderSchema } from './aspect-loader.graphql';\n\nexport type PluginDefinitionSlot = SlotRegistry<PluginDefinition[]>;\n\nexport type AspectDescriptor = {\n /**\n * name of the extension.\n */\n id: string;\n\n /**\n * icon of the extension.\n */\n icon?: string;\n};\n\nexport type AspectResolver = (component: Component) => Promise<ResolvedAspect | undefined>;\n\nexport type ResolvedAspect = {\n aspectPath: string;\n runtimePath: string | null;\n aspectFilePath: string | null;\n};\n\nexport type LoadExtByManifestContext = {\n seeders?: string[];\n neededFor?: string;\n};\n\nexport type LoadExtByManifestOptions = {\n throwOnError?: boolean;\n hideMissingModuleError?: boolean;\n ignoreErrorFunc?: (err: Error) => boolean;\n ignoreErrors?: boolean;\n /**\n * If this is enabled then we will show loading error only once for a given extension\n * (even if it was actually try to load it few times by different components for example)\n */\n unifyErrorsByExtId?: boolean;\n};\n\ntype OnAspectLoadError = (err: Error, component: Component) => Promise<boolean>;\nexport type OnAspectLoadErrorSlot = SlotRegistry<OnAspectLoadError>;\n\nexport type OnAspectLoadErrorHandler = (err: Error, component: Component) => Promise<boolean>;\n\nexport type OnLoadRequireableExtension = (\n requireableExtension: RequireableComponent,\n manifest: ExtensionManifest | Aspect\n) => Promise<ExtensionManifest | Aspect>;\n/**\n * A slot which run during loading the requirable extension (after first manifest calculation)\n */\nexport type OnLoadRequireableExtensionSlot = SlotRegistry<OnLoadRequireableExtension>;\n\nexport type MainAspect = {\n /**\n * path to the main aspect.\n */\n path: string;\n\n /**\n * version of the aspect.\n */\n version: string | undefined;\n\n /**\n * package name of the aspect\n */\n packageName: string | undefined;\n\n /**\n * reference to aspect manifest.\n */\n aspect: Aspect;\n\n /**\n * The name of the aspect (without the scope prefix)\n */\n name: string;\n\n /**\n * The name of the aspect\n */\n id: string;\n};\n\nexport class AspectLoaderMain {\n private inMemoryConfiguredAspects: string[] = [];\n private failedToLoadExt = new Set<string>();\n private alreadyShownWarning = new Set<string>();\n\n constructor(\n private logger: Logger,\n private envs: EnvsMain,\n private harmony: Harmony,\n private onAspectLoadErrorSlot: OnAspectLoadErrorSlot,\n private onLoadRequireableExtensionSlot: OnLoadRequireableExtensionSlot,\n private pluginSlot: PluginDefinitionSlot\n ) {}\n\n getCoreAspectsPackagesAndIds(): Record<string, string> {\n const allCoreAspectsIds = this.getCoreAspectIds();\n const coreAspectsPackagesAndIds = {};\n\n allCoreAspectsIds.forEach((id) => {\n const packageName = getCoreAspectPackageName(id);\n coreAspectsPackagesAndIds[packageName] = id;\n });\n\n return coreAspectsPackagesAndIds;\n }\n\n private getCompiler(component: Component) {\n const env = this.envs.getEnv(component)?.env;\n return env?.getCompiler();\n }\n\n registerOnAspectLoadErrorSlot(onAspectLoadError: OnAspectLoadError) {\n this.onAspectLoadErrorSlot.register(onAspectLoadError);\n }\n\n registerOnLoadRequireableExtensionSlot(onLoadRequireableExtension: OnLoadRequireableExtension) {\n this.onLoadRequireableExtensionSlot.register(onLoadRequireableExtension);\n }\n\n /**\n * returns whether the aspect-load issue has been fixed.\n */\n async triggerOnAspectLoadError(err: Error, component: Component): Promise<boolean> {\n const entries = this.onAspectLoadErrorSlot.toArray(); // e.g. [ [ 'teambit.bit/compiler', [Function: bound onAspectLoadError] ] ]\n let isFixed = false;\n await mapSeries(entries, async ([, onAspectFailFunc]) => {\n const result = await onAspectFailFunc(err, component);\n if (result) isFixed = true;\n });\n\n return isFixed;\n }\n\n async getRuntimePath(component: Component, modulePath: string, runtime: string): Promise<string | null> {\n const runtimeFile = component.filesystem.files.find((file: any) => {\n return file.relative.includes(`.${runtime}.runtime`);\n });\n\n // @david we should add a compiler api for this.\n if (!runtimeFile) return null;\n try {\n const compiler = this.getCompiler(component);\n\n if (!compiler) {\n return join(modulePath, runtimeFile.relative);\n }\n\n const dist = compiler.getDistPathBySrcPath(runtimeFile.relative);\n return join(modulePath, dist);\n } catch (e) {\n this.logger.info(`got an error during get runtime path, probably the env is not loaded yet ${e}`);\n // TODO: we are manually adding the dist here and replace the file name to handle case when\n // we load aspects from scope, and their env in the same iteration, but we get into the aspect before its\n // env, so it's env doesn't exist yet\n // we should make sure to first load the env correctly before loading the aspect\n const distPath = join(modulePath, DEFAULT_DIST_DIRNAME, replaceFileExtToJs(runtimeFile.relative));\n return distPath;\n }\n }\n\n async getAspectFilePath(component: Component, modulePath: string): Promise<string | null> {\n const aspectFile = component.filesystem.files.find((file: any) => {\n return file.relative.includes(`.aspect.ts`) || file.relative.includes(`.aspect.js`);\n });\n\n // @david we should add a compiler api for this.\n if (!aspectFile) return null;\n try {\n const compiler = this.getCompiler(component);\n\n if (!compiler) {\n return join(modulePath, aspectFile.relative);\n }\n\n const dist = compiler.getDistPathBySrcPath(aspectFile.relative);\n return join(modulePath, dist);\n } catch (e) {\n this.logger.info(`got an error during get runtime path, probably the env is not loaded yet ${e}`);\n // TODO: we are manually adding the dist here and replace the file name to handle case when\n // we load aspects from scope, and their env in the same iteration, but we get into the aspect before its\n // env, so it's env doesn't exist yet\n // we should make sure to first load the env correctly before loading the aspect\n const distPath = join(modulePath, DEFAULT_DIST_DIRNAME, replaceFileExtToJs(aspectFile.relative));\n return distPath;\n }\n }\n\n isAspectLoaded(id: string) {\n if (this.failedAspects.includes(id)) return true;\n try {\n return this.harmony.get(id);\n } catch {\n return false;\n }\n }\n\n getDescriptor(id: string): AspectDescriptor | undefined {\n try {\n const instance = this.harmony.get<any>(id);\n const iconFn = instance.icon;\n\n const icon = iconFn ? iconFn.apply(instance) : undefined;\n\n return {\n id,\n icon,\n };\n } catch {\n return undefined;\n }\n }\n\n /**\n * This is used when adding aspects to workspace.jsonc during the process (like in bit use command)\n * and we want to make sure that follow operation (like bit install) will recognize those aspects\n * but the harmony config is already in memory.\n * Probably a better to do it is to make sure we can re-load the config somehow\n * ideally by adding the config class in harmony a reload API\n * @param aspectId\n */\n addInMemoryConfiguredAspect(aspectId: string): void {\n this.inMemoryConfiguredAspects.push(aspectId);\n }\n\n /**\n * get all the configured aspects in the config file (workspace.jsonc / scope.jsonc)\n */\n getConfiguredAspects(): string[] {\n const configuredAspects = Array.from(this.harmony.config.raw.keys());\n const iMemoryConfiguredAspects = this.inMemoryConfiguredAspects;\n return configuredAspects.concat(iMemoryConfiguredAspects);\n }\n getNotLoadedConfiguredExtensions() {\n const configuredAspects = this.getConfiguredAspects();\n const harmonyExtensions = this.harmony.extensionsIds;\n const loadedExtensions = harmonyExtensions.filter((extId) => {\n return this.harmony.extensions.get(extId)?.loaded;\n });\n const extensionsToLoad = difference(configuredAspects, loadedExtensions);\n return extensionsToLoad;\n }\n\n loadDefinition(props: AspectDefinitionProps): AspectDefinition {\n return AspectDefinition.from(props);\n }\n\n private _coreAspects: Aspect[] = [];\n private _nonCoreAspects: Aspect[] = [];\n\n get coreAspects() {\n return this._coreAspects;\n }\n\n isCoreAspect(id: string) {\n const ids = this.getCoreAspectIds();\n return ids.includes(id);\n }\n\n setCoreAspects(aspects: Aspect[]) {\n this._coreAspects = aspects;\n return this;\n }\n\n setNonCoreAspects(aspects: Aspect[]) {\n this._nonCoreAspects = aspects;\n return this;\n }\n\n getCoreAspectIds(): string[] {\n const ids = this.coreAspects.map((aspect) => aspect.id);\n return ids.concat(this._reserved);\n }\n\n /**\n * bit aspects that are not core aspects\n * normally coming from a composition over teambit.harmony/bit and are passed to loadBit as \"additionalAspects\".\n * these are *not* user aspects. they're not in workspaces created by users. they're part of bit installation.\n */\n getNonCoreAspectIds(): string[] {\n return this._nonCoreAspects.map((aspect) => aspect.id);\n }\n\n /**\n * Get all the core envs ids which is still register in the bit manifest as core aspect\n */\n getCoreEnvsIds(): string[] {\n const envsIds = this.envs.getCoreEnvsIds();\n const allIds = this.getCoreAspectIds();\n return intersection(allIds, envsIds);\n }\n\n isCoreEnv(id: string): boolean {\n const ids = this.getCoreEnvsIds();\n return ids.includes(id);\n }\n\n private _reserved = ['teambit.harmony/bit', 'teambit.harmony/config'];\n\n getUserAspects(): string[] {\n const coreAspectIds = this.getCoreAspectIds();\n const nonCoreAspectIds = this.getNonCoreAspectIds();\n const nonUserAspectIds = [...coreAspectIds, ...nonCoreAspectIds];\n return difference(this.harmony.extensionsIds, nonUserAspectIds);\n }\n\n async getCoreAspectDefs(runtimeName?: string) {\n const defs = await Promise.all(\n this.coreAspects.map(async (aspect) => {\n const id = aspect.id;\n const rawDef = await getAspectDef(id, runtimeName);\n return this.loadDefinition(rawDef);\n })\n );\n\n return defs.filter((def) => def.runtimePath);\n }\n\n async resolveAspects(components: Component[], resolver: AspectResolver): Promise<AspectDefinition[]> {\n const promises = components.map(async (component) => {\n const resolvedAspect = await resolver(component);\n if (!resolvedAspect) return undefined;\n return new AspectDefinition(\n resolvedAspect.aspectPath,\n resolvedAspect.aspectFilePath,\n resolvedAspect.runtimePath,\n component\n );\n });\n\n const aspectDefs = await Promise.all(promises);\n // return aspectDefs.filter((def) => def.runtimePath);\n return compact(aspectDefs);\n }\n\n private _mainAspect: MainAspect;\n\n get mainAspect() {\n return this._mainAspect;\n }\n\n setMainAspect(mainAspect: MainAspect) {\n this._mainAspect = mainAspect;\n return this;\n }\n\n private failedLoadAspect: string[] = [];\n\n get failedAspects() {\n return this.failedLoadAspect;\n }\n\n public resetFailedLoadAspects() {\n this.failedLoadAspect = [];\n }\n\n private addFailure(id: string): void {\n if (this.failedAspects.includes(id)) return;\n this.failedLoadAspect.push(id);\n }\n\n cloneManifest(manifest: any) {\n const cloned = Object.assign(Object.create(Object.getPrototypeOf(manifest)), manifest);\n cloned.provider = manifest.provider;\n cloned.addRuntime = manifest.addRuntime;\n cloned.getRuntime = manifest.getRuntime;\n return cloned;\n }\n\n /**\n * run \"require\" of the component code to get the manifest\n */\n async doRequire(\n requireableExtension: RequireableComponent,\n runSubscribers = true\n ): Promise<ExtensionManifest | Aspect> {\n const idStr = requireableExtension.component.id.toString();\n const aspect = await requireableExtension.require();\n const manifest = aspect.default || aspect;\n manifest.id = idStr;\n // It's important to clone deep the manifest here to prevent mutate dependencies of other manifests as they point to the same location in memory\n const cloned = this.cloneManifest(manifest);\n if (runSubscribers) return this.runOnLoadRequireableExtensionSubscribers(requireableExtension, cloned);\n return cloned;\n }\n\n /**\n * in case the extension failed to load, prefer to throw an error, unless `throwOnError` param\n * passed as `false`.\n * there are cases when throwing an error blocks the user from doing anything else. for example,\n * when a user develops an extension and deletes the node-modules, the extension on the workspace\n * cannot be loaded anymore until \"bit compile\" is running. however, if this function throws an\n * error, it'll throw for \"bit compile\" as well, which blocks the user.\n * for the CI, it is important to throw an error because errors on console can be ignored.\n * for now, when loading the extension from the workspace the throwOnError is passed as false.\n * when loading from the scope (CI) it should be true.\n *\n * the console printing here is done directly by \"console.error\" and not by the logger. the reason\n * is that the logger.console only prints when the loader started (which, btw, happens after\n * entering this function, so it can't work) and here we want it to be printed regardless of the\n * rules of starting the loader. e.g. if by mistake the CI got it as throwOnError=false, it's ok\n * to break the output by the console.error.\n *\n * @todo: this is not the final word however about throwing/non throwing errors here.\n * in some cases, such as \"bit tag\", it's better not to tag if an extension changes the model.\n */\n async loadRequireableExtensions(requireableExtensions: RequireableComponent[], throwOnError = false): Promise<void> {\n const manifests = await this.getManifestsFromRequireableExtensions(requireableExtensions, throwOnError);\n return this.loadExtensionsByManifests(manifests, undefined, { throwOnError });\n }\n\n async getManifestsFromRequireableExtensions(\n requireableExtensions: RequireableComponent[],\n throwOnError = false,\n runSubscribers = true\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const manifestsP = mapSeries(requireableExtensions, async (requireableExtension) => {\n if (!requireableExtensions) return undefined;\n const idStr = requireableExtension.component.id.toString();\n try {\n return await this.doRequire(requireableExtension, runSubscribers);\n } catch (firstErr: any) {\n this.addFailure(idStr);\n this.logger.warn(`failed loading an aspect \"${idStr}\", will try to fix and reload`, firstErr);\n const isFixed = await this.triggerOnAspectLoadError(firstErr, requireableExtension.component);\n let errAfterReLoad;\n if (isFixed) {\n this.logger.info(`the loading issue might be fixed now, re-loading ${idStr}`);\n try {\n return await this.doRequire(requireableExtension);\n } catch (err: any) {\n this.logger.warn(`re-load of the aspect \"${idStr}\" failed as well`, err);\n errAfterReLoad = err;\n }\n }\n const error = errAfterReLoad || firstErr;\n this.handleExtensionLoadingError(error, idStr, throwOnError);\n }\n return undefined;\n });\n const manifests = await manifestsP;\n\n // Remove empty manifests as a result of loading issue\n return compact(manifests);\n }\n\n handleExtensionLoadingError(error: Error, idStr: string, throwOnError: boolean) {\n this.envs.addFailedToLoadExt(idStr);\n const errorMsg = error.message.split('\\n')[0]; // show only the first line if the error is long (e.g. happens with MODULE_NOT_FOUND errors)\n const msg = UNABLE_TO_LOAD_EXTENSION(idStr, errorMsg);\n if (throwOnError) {\n // @ts-ignore\n this.logger.console(error);\n throw new CannotLoadExtension(idStr, error);\n }\n // the failure is swallowed (best-effort loading). record it on the active load-trace so the\n // component loader surfaces it as a component issue, visible in \"bit status\".\n reportLoadFailure({ failedId: idStr, phase: 'require-aspects', error: errorMsg });\n this.logger.error(msg, error);\n this.printWarningIfFirstTime(idStr, msg, this.logger.isLoaderStarted);\n }\n\n private printWarningIfFirstTime(envId: string, msg: string, showAsFailure: boolean) {\n if (!this.alreadyShownWarning.has(envId)) {\n this.alreadyShownWarning.add(envId);\n if (showAsFailure) {\n this.logger.consoleFailure(msg);\n } else {\n this.logger.consoleWarning(msg);\n }\n }\n }\n\n async runOnLoadRequireableExtensionSubscribers(\n requireableExtension: RequireableComponent,\n manifest: ExtensionManifest | Aspect\n ): Promise<ExtensionManifest | Aspect> {\n let updatedManifest = manifest;\n const entries = this.onLoadRequireableExtensionSlot.toArray();\n await mapSeries(entries, async ([, onLoadRequireableExtensionFunc]) => {\n updatedManifest = await onLoadRequireableExtensionFunc(requireableExtension, updatedManifest);\n });\n return updatedManifest;\n }\n\n getPluginDefs() {\n return flatten(this.pluginSlot.values());\n }\n\n getPlugins(component: Component, componentPath: string): Plugins {\n const defs = this.getPluginDefs();\n return this.getPluginsFromDefs(component, componentPath, defs);\n }\n\n async isEsmModule(path: string) {\n return isEsmModule(path);\n }\n\n async loadEsm(path: string) {\n const module = await esmLoader(path);\n // only a load that succeeded leaves something in memory that needs its files kept around\n recordLoadedEsmFile(path);\n return module;\n }\n\n getPluginsFromDefs(component: Component, componentPath: string, defs: PluginDefinition[]): Plugins {\n return Plugins.from(\n component,\n defs,\n this.triggerOnAspectLoadError.bind(this),\n this.logger,\n this.pluginFileResolver.call(this, component, componentPath)\n );\n }\n\n getPluginFiles(component: Component, componentPath: string): string[] {\n const defs = this.getPluginDefs();\n return Plugins.files(component, defs, this.pluginFileResolver.call(this, component, componentPath));\n }\n\n hasPluginFiles(component: Component): boolean {\n const defs = this.getPluginDefs();\n const files = Plugins.files(component, defs);\n return !isEmpty(files);\n }\n\n private searchDistFile(rootDir: string, relativePath: string, replaceNotFound = false) {\n const defaultDistDir = join(rootDir, 'dist');\n const fileExtension = extname(relativePath);\n const fileNames = ['ts', 'js', 'tsx', 'jsx'].map((ext) =>\n relativePath.replace(new RegExp(`${fileExtension}$`), `.${ext}`)\n );\n const defaultDistPath = fileNames.map((fileName) => join(defaultDistDir, fileName));\n const found = defaultDistPath.find((distPath) => existsSync(distPath));\n if (found) return found;\n if (!replaceNotFound) return null;\n const jsFileName = relativePath.replace(new RegExp(`${fileExtension}$`), `.js`);\n const finalPath = join(defaultDistDir, jsFileName);\n return finalPath;\n }\n\n pluginFileResolver(component: Component, rootDir: string) {\n return (relativePath: string) => {\n const replaceNotFound = relativePath.endsWith('.ts') || relativePath.endsWith('.tsx');\n\n try {\n const compiler = this.getCompiler(component);\n if (!compiler) {\n const distFile = this.searchDistFile(rootDir, relativePath, replaceNotFound);\n return distFile || join(rootDir, relativePath);\n }\n\n const dist = compiler.getDistPathBySrcPath(relativePath);\n return join(rootDir, dist);\n } catch (err) {\n // This might happen for example when loading an env from the global scope, and the env of the env / aspect is not a core one\n this.logger.info(\n `pluginFileResolver: got an error during get compiler for component ${component.id.toString()}, probably the env is not loaded yet ${err}`\n );\n const distFile = this.searchDistFile(rootDir, relativePath, replaceNotFound);\n return distFile || join(rootDir, relativePath);\n }\n };\n }\n\n isAspect(manifest: any) {\n return !!(manifest.addRuntime && manifest.getRuntime);\n }\n\n isValidAspect(manifest: any): boolean {\n return this.isAspect(manifest) || manifest.provider;\n }\n\n isAspectComponent(component: Component): boolean {\n return this.envs.isUsingAspectEnv(component);\n }\n\n filterAspectDefs(\n allDefs: AspectDefinition[],\n componentIds: ComponentID[],\n runtimeName: string | undefined,\n filterOpts: FilterAspectsOptions = {}\n ) {\n const coreIds = this.getCoreAspectIds();\n const stringIds = componentIds.map((id) => id.toStringWithoutVersion());\n const afterExclusion = filterOpts.excludeCore\n ? allDefs.filter((def) => {\n const isCore = coreIds.includes(def.getId || '');\n const id = ComponentID.fromString(def.getId || '');\n const isTarget = stringIds.includes(id.toStringWithoutVersion());\n if (isTarget) return true;\n return !isCore;\n })\n : allDefs;\n\n const uniqDefs = uniqBy(afterExclusion, (def) => `${def.aspectPath}-${def.runtimePath}`);\n let defs = uniqDefs;\n if (runtimeName && filterOpts.filterByRuntime) {\n defs = defs.filter((def) => def.runtimePath);\n }\n\n if (componentIds && componentIds.length && filterOpts.requestedOnly) {\n const componentIdsString = componentIds.map((id) => id.toString());\n defs = defs.filter((def) => {\n return (\n (def.id && componentIdsString.includes(def.id)) ||\n (def.component && componentIdsString.includes(def.component?.id.toString()))\n );\n });\n }\n\n return defs;\n }\n\n getAspectIdFromAspectFile(aspectFilePath: string): string | undefined {\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = aspectFilePath ? require(aspectFilePath) : undefined;\n let manifest = module.default || module;\n if (this.isAspect(manifest)) {\n return manifest.id;\n }\n if (isObject(manifest)) {\n if (isEmpty(manifest)) {\n this.logger.warn(\n `getAspectIdFromAspectFile - aspect at ${aspectFilePath} missing exports. couldn't calculate the manifest`\n );\n return undefined;\n }\n if (Object.keys(manifest).length > 1) {\n this.logger.warn(\n `getAspectIdFromAspectFile - aspect at ${aspectFilePath} exports too many keys. couldn't calculate the manifest`\n );\n return undefined;\n }\n manifest = Object.values(manifest)[0];\n if (this.isAspect(manifest)) {\n return manifest.id;\n }\n }\n this.logger.warn(`getAspectIdFromAspectFile - aspect at ${aspectFilePath} is not a valid aspect`);\n return undefined;\n } catch (err) {\n this.logger.warn(`getAspectIdFromAspectFile - couldn't require the aspect file ${aspectFilePath}. err: ${err}`);\n return undefined;\n }\n }\n\n private prepareManifests(manifests: Array<ExtensionManifest | Aspect>): Aspect[] {\n return manifests.map((manifest: any) => {\n if (this.isAspect(manifest)) return manifest as Aspect;\n manifest.runtime = MainRuntime;\n if (!manifest.id) throw new Error('manifest must have static id');\n const aspect = Aspect.create({\n id: manifest.id,\n });\n aspect.addRuntime(manifest);\n return aspect;\n });\n }\n\n /**\n * register a plugin.\n */\n registerPlugins(pluginDefs: PluginDefinition[]) {\n this.pluginSlot.register(pluginDefs);\n }\n\n async loadExtensionsByManifests(\n extensionsManifests: Array<ExtensionManifest | Aspect>,\n context: LoadExtByManifestContext = {\n seeders: [],\n },\n options: LoadExtByManifestOptions = {\n throwOnError: true,\n hideMissingModuleError: false,\n ignoreErrors: false,\n unifyErrorsByExtId: true,\n }\n ) {\n const neededFor = context.neededFor;\n const seeders = context.seeders || [];\n const defaultLoadExtByManifestOptions = {\n throwOnError: true,\n hideMissingModuleError: false,\n ignoreErrors: false,\n unifyErrorsByExtId: true,\n };\n const mergedOptions = { ...defaultLoadExtByManifestOptions, ...options };\n try {\n const manifests = extensionsManifests.filter((manifest) => {\n const isValid = this.isValidAspect(manifest);\n if (!isValid) this.logger.warn(`${manifest.id} is invalid. please make sure the extension is valid.`);\n return isValid;\n });\n const preparedManifests = this.prepareManifests(manifests);\n // don't let harmony load all aspects. if seeders were sent, find their manifests, check for their static\n // dependencies, and load only them.\n const getOnlyDeclaredDependenciesManifests = () => {\n if (!seeders.length || seeders.length === preparedManifests.length) {\n return preparedManifests;\n }\n const manifestGraph = this.generateManifestGraph(preparedManifests);\n const nodes = seeders.map((seeder) => manifestGraph.successors(seeder)).flat();\n const seederNodes = compact(seeders.map((seeder) => manifestGraph.node(seeder)));\n const allNodes = [...nodes, ...seederNodes];\n const nodesUniq = uniqBy(allNodes, 'id');\n return nodesUniq.map((n) => n.attr);\n };\n const relevantManifests = getOnlyDeclaredDependenciesManifests();\n // @ts-ignore TODO: fix this\n await this.harmony.load(relevantManifests);\n } catch (e: any) {\n const ids = extensionsManifests.map((manifest) => manifest.id || 'unknown');\n if (mergedOptions.unifyErrorsByExtId) {\n const needToPrint = some(ids, (id) => !this.failedToLoadExt.has(id));\n if (!needToPrint) return;\n ids.forEach((id) => {\n this.failedToLoadExt.add(id);\n this.envs.addFailedToLoadExt(id);\n const parsedId = ComponentID.tryFromString(id);\n if (parsedId) {\n this.failedToLoadExt.add(parsedId.fullName);\n this.envs.addFailedToLoadExt(parsedId.fullName);\n }\n });\n }\n if (mergedOptions.ignoreErrors) return;\n if ((e.code === 'MODULE_NOT_FOUND' || e.code === 'ERR_MODULE_NOT_FOUND') && mergedOptions.hideMissingModuleError)\n return;\n\n if (mergedOptions.ignoreErrorFunc && mergedOptions.ignoreErrorFunc(e)) return;\n // TODO: improve texts\n const errorMsg = e.message.split('\\n')[0];\n const warning = UNABLE_TO_LOAD_EXTENSION_FROM_LIST(ids, errorMsg, neededFor);\n this.logger.error(warning, e);\n if (this.logger.isLoaderStarted) {\n if (mergedOptions.throwOnError) throw new BitError(warning);\n this.logger.consoleFailure(warning);\n } else {\n this.logger.consoleWarning(warning);\n this.logger.consoleWarning(e);\n }\n if (mergedOptions.throwOnError) {\n throw e;\n }\n }\n }\n\n private generateManifestGraph(manifests: Aspect[]) {\n const graph = new Graph<Aspect, string>();\n manifests.forEach((manifest) => graph.setNode(new Node(manifest.id, manifest)));\n manifests.forEach((manifest) => {\n const deps = manifest.getRuntime(MainRuntime)?.dependencies?.map((dep) => dep.id);\n deps?.forEach((dep) => {\n if (graph.node(dep)) {\n graph.setEdge(new Edge(manifest.id, dep, 'dep'));\n }\n });\n });\n return graph;\n }\n\n public async loadAspectFromPath(localAspects: string[]): Promise<Record<string, string>> {\n const res = {};\n const dirPaths = this.parseLocalAspect(localAspects);\n const manifests = dirPaths.map(([dirPath, localAspect]) => {\n const scopeRuntime = this.findRuntime(dirPath, 'scope');\n if (scopeRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(join(dirPath, 'dist', scopeRuntime));\n const manifest = module.default || module;\n res[manifest.id] = localAspect;\n return manifest;\n }\n const module = require(dirPath);\n const manifest = module.default || module;\n const mainRuntime = this.findRuntime(dirPath, 'main');\n if (mainRuntime) {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const mainRuntimeModule = require(join(dirPath, 'dist', mainRuntime));\n const mainRuntimeManifest = mainRuntimeModule.default || mainRuntimeModule;\n // manifest has the \"id\" prop. the mainRuntimeManifest doesn't have it normally.\n mainRuntimeManifest.id = manifest.id;\n res[mainRuntimeManifest.id] = localAspect;\n return mainRuntimeManifest;\n }\n res[manifest.id] = localAspect;\n return manifest;\n });\n\n await this.loadExtensionsByManifests(manifests, undefined, { throwOnError: true });\n return res;\n }\n\n private parseLocalAspect(localAspects: string[]) {\n const dirPaths = localAspects.map((localAspect) => [resolve(localAspect.replace('file://', '')), localAspect]);\n const nonExistsDirPaths = dirPaths.filter(([path]) => !existsSync(path));\n nonExistsDirPaths.forEach((path) => this.logger.warn(`no such file or directory: ${path}`));\n const existsDirPaths = dirPaths.filter(([path]) => existsSync(path));\n return existsDirPaths;\n }\n\n private findRuntime(dirPath: string, runtime: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`${runtime}.runtime.js`));\n }\n\n public async resolveLocalAspects(ids: string[], runtime?: string): Promise<AspectDefinition[]> {\n const dirs = this.parseLocalAspect(ids).map(([dir]) => dir);\n return dirs.map((dir) => {\n const srcRuntimeManifest = runtime ? this.findRuntime(dir, runtime) : undefined;\n const srcAspectFilePath = runtime ? this.findAspectFile(dir) : undefined;\n const aspectFilePath = srcAspectFilePath ? join(dir, 'dist', srcAspectFilePath) : null;\n const runtimeManifest = srcRuntimeManifest ? join(dir, 'dist', srcRuntimeManifest) : null;\n const aspectId = aspectFilePath ? this.getAspectIdFromAspectFile(aspectFilePath) : undefined;\n\n return new AspectDefinition(dir, aspectFilePath, runtimeManifest, undefined, aspectId, true);\n });\n }\n\n private findAspectFile(dirPath: string) {\n const files = readdirSync(join(dirPath, 'dist'));\n return files.find((path) => path.includes(`.aspect.js`));\n }\n\n static runtime = MainRuntime;\n static dependencies = [LoggerAspect, EnvsAspect, GraphqlAspect];\n static slots = [\n Slot.withType<OnAspectLoadError>(),\n Slot.withType<OnLoadRequireableExtension>(),\n Slot.withType<PluginDefinition[]>(),\n ];\n\n static async provider(\n [loggerExt, envs, graphql]: [LoggerMain, EnvsMain, GraphqlMain],\n config,\n [onAspectLoadErrorSlot, onLoadRequireableExtensionSlot, pluginSlot]: [\n OnAspectLoadErrorSlot,\n OnLoadRequireableExtensionSlot,\n PluginDefinitionSlot,\n ],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(AspectLoaderAspect.id);\n const aspectLoader = new AspectLoaderMain(\n logger,\n envs,\n harmony,\n onAspectLoadErrorSlot,\n onLoadRequireableExtensionSlot,\n pluginSlot\n );\n\n graphql.register(() => aspectLoaderSchema(aspectLoader));\n aspectLoader.registerPlugins([envs.getEnvPlugin()]);\n\n return aspectLoader;\n }\n}\n\nAspectLoaderAspect.addRuntime(AspectLoaderMain);\n\nexport default AspectLoaderMain;\n"],"mappings":"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","ignoreList":[]}
package/dist/plugins.js CHANGED
@@ -46,6 +46,13 @@ function _isEsmModule() {
46
46
  };
47
47
  return data;
48
48
  }
49
+ function _recordLoadedEsmFile() {
50
+ const data = require("./record-loaded-esm-file");
51
+ _recordLoadedEsmFile = function () {
52
+ return data;
53
+ };
54
+ return data;
55
+ }
49
56
  function _plugin() {
50
57
  const data = require("./plugin");
51
58
  _plugin = function () {
@@ -102,6 +109,8 @@ class Plugins {
102
109
  const realPath = exists ? (0, _fs().realpathSync)(path) : path;
103
110
  const resolvedPathFromRealPath = require.resolve(realPath);
104
111
  const module = await (0, _nodeUtils().default)(realPath, true);
112
+ // only a load that succeeded leaves something in memory that needs its files kept around
113
+ (0, _recordLoadedEsmFile().recordLoadedEsmFile)(resolvedPathFromRealPath);
105
114
  const defaultModule = module.default;
106
115
  if (!defaultModule) {
107
116
  throw new Error(`Failed to load plugin. Ensure you use "export default" in your index.ts file.\nPath: ${path}`);
@@ -1 +1 @@
1
- {"version":3,"names":["_fs","data","require","_nodeUtils","_interopRequireDefault","_pMapSeries","_cli","_harmony","_isEsmModule","_plugin","e","__esModule","default","Plugins","constructor","component","plugins","triggerOnAspectLoadError","logger","getByRuntime","runtime","filter","plugin","supportsRuntime","load","aspect","Aspect","create","id","toString","addRuntime","provider","pMapSeries","registerPluginWithTryCatch","dependencies","loadModule","path","exists","existsSync","realPath","realpathSync","resolvedPathFromRealPath","resolve","module","esmLoader","defaultModule","Error","__path","__resolvedPath","setExitOnUnhandledRejection","isModule","isEsmModule","undefined","consoleFailure","register","firstErr","warn","def","pattern","isFixed","errAfterReLoad","info","err","error","has","Boolean","length","from","defs","resolvePath","flatMap","pluginDef","files","filesystem","byGlob","byRegex","map","file","resolvedPath","relative","Plugin","matches","exports"],"sources":["plugins.ts"],"sourcesContent":["import { realpathSync, existsSync } from 'fs';\nimport type { Component } from '@teambit/component';\nimport esmLoader from '@teambit/node.utils.esm-loader';\nimport type { Logger } from '@teambit/logger';\nimport pMapSeries from 'p-map-series';\nimport { setExitOnUnhandledRejection } from '@teambit/cli';\nimport { Aspect } from '@teambit/harmony';\nimport type { PluginDefinition } from './plugin-definition';\nimport { isEsmModule } from './is-esm-module';\nimport { Plugin } from './plugin';\nimport type { OnAspectLoadErrorHandler } from './aspect-loader.main.runtime';\n\nexport type PluginMap = { [filePath: string]: PluginDefinition };\n\nexport class Plugins {\n constructor(\n readonly component: Component,\n readonly plugins: Plugin[],\n private triggerOnAspectLoadError: OnAspectLoadErrorHandler,\n private logger: Logger\n ) {}\n\n // computeDependencies(runtime: string): Aspect[] {\n // const inRuntime = this.getByRuntime(runtime);\n // return inRuntime.flatMap((plugin) => {\n // return plugin.def.dependencies;\n // });\n // }\n\n getByRuntime(runtime: string) {\n return this.plugins.filter((plugin) => {\n return plugin.supportsRuntime(runtime);\n });\n }\n\n async load(runtime: string) {\n const plugins = this.getByRuntime(runtime);\n const aspect = Aspect.create({\n id: this.component.id.toString(),\n });\n aspect.addRuntime({\n provider: async () => {\n // await Promise.all(plugins.map(async (plugin) => this.registerPluginWithTryCatch(plugin, aspect)));\n await pMapSeries(plugins, async (plugin) => this.registerPluginWithTryCatch(plugin, aspect));\n // Return an empty object so haromny will have something in the extension instance\n // otherwise it will throw an error when trying to access the extension instance (harmony.get)\n return {};\n },\n runtime,\n // dependencies: this.computeDependencies(runtime)\n dependencies: [],\n });\n\n return aspect;\n }\n\n async loadModule(path: string) {\n const exists = existsSync(path);\n // We manually resolve the path to avoid issues with symlinks\n // the require.resolve and import inside the esmLoader will sometime uses cached resolved paths\n // which lead to errors about file not found as it's trying to load the file from the wrong path\n // In case the path not exists we don't need to resolve it (it will throw an error)\n const realPath = exists ? realpathSync(path) : path;\n const resolvedPathFromRealPath = require.resolve(realPath);\n const module = await esmLoader(realPath, true);\n const defaultModule = module.default;\n if (!defaultModule) {\n throw new Error(`Failed to load plugin. Ensure you use \"export default\" in your index.ts file.\\nPath: ${path}`);\n }\n defaultModule.__path = path;\n defaultModule.__resolvedPath = resolvedPathFromRealPath;\n return defaultModule;\n }\n\n async registerPluginWithTryCatch(plugin: Plugin, aspect: Aspect) {\n try {\n setExitOnUnhandledRejection(false);\n const isModule = isEsmModule(plugin.path);\n const module = isModule ? await this.loadModule(plugin.path) : undefined;\n if (isModule && !module) {\n this.logger.consoleFailure(\n `failed to load plugin ${plugin.path}, make sure to use 'export default' to expose your plugin`\n );\n return undefined;\n }\n plugin.register(aspect, module);\n setExitOnUnhandledRejection(true);\n } catch (firstErr: any) {\n this.logger.warn(\n `failed loading plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()}, will try to fix and reload`,\n firstErr\n );\n const isFixed = await this.triggerOnAspectLoadError(firstErr, this.component);\n let errAfterReLoad;\n if (isFixed) {\n try {\n const isModule = isEsmModule(plugin.path);\n const module = isModule ? await this.loadModule(plugin.path) : undefined;\n this.logger.info(\n `the loading issue might be fixed now, re-loading plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()}`\n );\n return plugin.register(aspect, module);\n } catch (err: any) {\n setExitOnUnhandledRejection(true);\n this.logger.warn(\n `re-load of the plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()} failed as well`,\n err\n );\n errAfterReLoad = err;\n }\n }\n setExitOnUnhandledRejection(true);\n const error = errAfterReLoad || firstErr;\n throw error;\n }\n }\n\n has() {\n return Boolean(this.plugins.length);\n }\n\n static from(\n component: Component,\n defs: PluginDefinition[],\n triggerOnAspectLoadError: OnAspectLoadErrorHandler,\n logger: Logger,\n resolvePath?: (path: string) => string\n ) {\n const plugins = defs.flatMap((pluginDef) => {\n const files =\n typeof pluginDef.pattern === 'string'\n ? component.filesystem.byGlob([pluginDef.pattern])\n : component.filesystem.byRegex(pluginDef.pattern);\n\n return files.map((file) => {\n const resolvedPath = resolvePath ? resolvePath(file.relative) : file.path;\n return new Plugin(pluginDef, resolvedPath);\n });\n });\n\n return new Plugins(component, plugins, triggerOnAspectLoadError, logger);\n }\n\n /**\n * Get the plugin files from the component.\n */\n static files(component: Component, defs: PluginDefinition[], resolvePath?: (path: string) => string): string[] {\n const files = defs.flatMap((pluginDef) => {\n const matches =\n typeof pluginDef.pattern === 'string'\n ? component.filesystem.byGlob([pluginDef.pattern])\n : component.filesystem.byRegex(pluginDef.pattern);\n\n return matches.map((file) => {\n return resolvePath ? resolvePath(file.relative) : file.path;\n });\n });\n return files;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fs","data","require","_nodeUtils","_interopRequireDefault","_pMapSeries","_cli","_harmony","_isEsmModule","_recordLoadedEsmFile","_plugin","e","__esModule","default","Plugins","constructor","component","plugins","triggerOnAspectLoadError","logger","getByRuntime","runtime","filter","plugin","supportsRuntime","load","aspect","Aspect","create","id","toString","addRuntime","provider","pMapSeries","registerPluginWithTryCatch","dependencies","loadModule","path","exists","existsSync","realPath","realpathSync","resolvedPathFromRealPath","resolve","module","esmLoader","recordLoadedEsmFile","defaultModule","Error","__path","__resolvedPath","setExitOnUnhandledRejection","isModule","isEsmModule","undefined","consoleFailure","register","firstErr","warn","def","pattern","isFixed","errAfterReLoad","info","err","error","has","Boolean","length","from","defs","resolvePath","flatMap","pluginDef","files","filesystem","byGlob","byRegex","map","file","resolvedPath","relative","Plugin","matches","exports"],"sources":["plugins.ts"],"sourcesContent":["import { realpathSync, existsSync } from 'fs';\nimport type { Component } from '@teambit/component';\nimport esmLoader from '@teambit/node.utils.esm-loader';\nimport type { Logger } from '@teambit/logger';\nimport pMapSeries from 'p-map-series';\nimport { setExitOnUnhandledRejection } from '@teambit/cli';\nimport { Aspect } from '@teambit/harmony';\nimport type { PluginDefinition } from './plugin-definition';\nimport { isEsmModule } from './is-esm-module';\nimport { recordLoadedEsmFile } from './record-loaded-esm-file';\nimport { Plugin } from './plugin';\nimport type { OnAspectLoadErrorHandler } from './aspect-loader.main.runtime';\n\nexport type PluginMap = { [filePath: string]: PluginDefinition };\n\nexport class Plugins {\n constructor(\n readonly component: Component,\n readonly plugins: Plugin[],\n private triggerOnAspectLoadError: OnAspectLoadErrorHandler,\n private logger: Logger\n ) {}\n\n // computeDependencies(runtime: string): Aspect[] {\n // const inRuntime = this.getByRuntime(runtime);\n // return inRuntime.flatMap((plugin) => {\n // return plugin.def.dependencies;\n // });\n // }\n\n getByRuntime(runtime: string) {\n return this.plugins.filter((plugin) => {\n return plugin.supportsRuntime(runtime);\n });\n }\n\n async load(runtime: string) {\n const plugins = this.getByRuntime(runtime);\n const aspect = Aspect.create({\n id: this.component.id.toString(),\n });\n aspect.addRuntime({\n provider: async () => {\n // await Promise.all(plugins.map(async (plugin) => this.registerPluginWithTryCatch(plugin, aspect)));\n await pMapSeries(plugins, async (plugin) => this.registerPluginWithTryCatch(plugin, aspect));\n // Return an empty object so haromny will have something in the extension instance\n // otherwise it will throw an error when trying to access the extension instance (harmony.get)\n return {};\n },\n runtime,\n // dependencies: this.computeDependencies(runtime)\n dependencies: [],\n });\n\n return aspect;\n }\n\n async loadModule(path: string) {\n const exists = existsSync(path);\n // We manually resolve the path to avoid issues with symlinks\n // the require.resolve and import inside the esmLoader will sometime uses cached resolved paths\n // which lead to errors about file not found as it's trying to load the file from the wrong path\n // In case the path not exists we don't need to resolve it (it will throw an error)\n const realPath = exists ? realpathSync(path) : path;\n const resolvedPathFromRealPath = require.resolve(realPath);\n const module = await esmLoader(realPath, true);\n // only a load that succeeded leaves something in memory that needs its files kept around\n recordLoadedEsmFile(resolvedPathFromRealPath);\n const defaultModule = module.default;\n if (!defaultModule) {\n throw new Error(`Failed to load plugin. Ensure you use \"export default\" in your index.ts file.\\nPath: ${path}`);\n }\n defaultModule.__path = path;\n defaultModule.__resolvedPath = resolvedPathFromRealPath;\n return defaultModule;\n }\n\n async registerPluginWithTryCatch(plugin: Plugin, aspect: Aspect) {\n try {\n setExitOnUnhandledRejection(false);\n const isModule = isEsmModule(plugin.path);\n const module = isModule ? await this.loadModule(plugin.path) : undefined;\n if (isModule && !module) {\n this.logger.consoleFailure(\n `failed to load plugin ${plugin.path}, make sure to use 'export default' to expose your plugin`\n );\n return undefined;\n }\n plugin.register(aspect, module);\n setExitOnUnhandledRejection(true);\n } catch (firstErr: any) {\n this.logger.warn(\n `failed loading plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()}, will try to fix and reload`,\n firstErr\n );\n const isFixed = await this.triggerOnAspectLoadError(firstErr, this.component);\n let errAfterReLoad;\n if (isFixed) {\n try {\n const isModule = isEsmModule(plugin.path);\n const module = isModule ? await this.loadModule(plugin.path) : undefined;\n this.logger.info(\n `the loading issue might be fixed now, re-loading plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()}`\n );\n return plugin.register(aspect, module);\n } catch (err: any) {\n setExitOnUnhandledRejection(true);\n this.logger.warn(\n `re-load of the plugin with pattern \"${\n plugin.def.pattern\n }\", in component ${this.component.id.toString()} failed as well`,\n err\n );\n errAfterReLoad = err;\n }\n }\n setExitOnUnhandledRejection(true);\n const error = errAfterReLoad || firstErr;\n throw error;\n }\n }\n\n has() {\n return Boolean(this.plugins.length);\n }\n\n static from(\n component: Component,\n defs: PluginDefinition[],\n triggerOnAspectLoadError: OnAspectLoadErrorHandler,\n logger: Logger,\n resolvePath?: (path: string) => string\n ) {\n const plugins = defs.flatMap((pluginDef) => {\n const files =\n typeof pluginDef.pattern === 'string'\n ? component.filesystem.byGlob([pluginDef.pattern])\n : component.filesystem.byRegex(pluginDef.pattern);\n\n return files.map((file) => {\n const resolvedPath = resolvePath ? resolvePath(file.relative) : file.path;\n return new Plugin(pluginDef, resolvedPath);\n });\n });\n\n return new Plugins(component, plugins, triggerOnAspectLoadError, logger);\n }\n\n /**\n * Get the plugin files from the component.\n */\n static files(component: Component, defs: PluginDefinition[], resolvePath?: (path: string) => string): string[] {\n const files = defs.flatMap((pluginDef) => {\n const matches =\n typeof pluginDef.pattern === 'string'\n ? component.filesystem.byGlob([pluginDef.pattern])\n : component.filesystem.byRegex(pluginDef.pattern);\n\n return matches.map((file) => {\n return resolvePath ? resolvePath(file.relative) : file.path;\n });\n });\n return files;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_aspect-loader@1.0.1097/dist/aspect-loader.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_aspect-loader@1.0.1097/dist/aspect-loader.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_aspect-loader@1.0.1099/dist/aspect-loader.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.harmony_aspect-loader@1.0.1099/dist/aspect-loader.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -0,0 +1 @@
1
+ export declare function recordLoadedEsmFile(filePath: string): void;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.recordLoadedEsmFile = recordLoadedEsmFile;
7
+ function _fs() {
8
+ const data = require("fs");
9
+ _fs = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ /**
15
+ * Records files loaded through dynamic `import()` so the dependency code that protects loaded
16
+ * packages across installs can see them.
17
+ *
18
+ * CJS modules land in `require.cache`, which `preserve-loaded-virtual-store-dirs.ts` (in the pnpm
19
+ * package manager) scans to keep virtual-store directories the running process loaded from
20
+ * requireable when an install re-keys them to a new peer hash. ESM modules live in node's ESM
21
+ * module map, which has no enumeration API - so the loaders record them here instead.
22
+ *
23
+ * The registry is a `Set<string>` of absolute file paths on `globalThis`, keyed with `Symbol.for`
24
+ * rather than shared through an import: the reader lives in the pnpm package manager, which
25
+ * aspect-loader must not depend on (the dependency runs the other way), and `Symbol.for` resolves
26
+ * to the same key even when this module is duplicated in node_modules. The reader in
27
+ * preserve-loaded-virtual-store-dirs.ts mirrors this contract - keep the two in sync.
28
+ *
29
+ * Callers record after their `import()` resolves: a load that failed leaves nothing in memory whose
30
+ * files have to stay around, and recording it would keep a prune off a directory nothing is using
31
+ * for the rest of the process's life.
32
+ *
33
+ * Only entry files are recorded, not their transitive static imports. That restores the entry's
34
+ * own package directory - where an env's deferred imports and config-file reads point - but not
35
+ * directories only ever reached through static imports of other packages; those are already fully
36
+ * loaded into memory and are not re-read.
37
+ */
38
+ const LOADED_ESM_FILES = Symbol.for('bit.loaded-esm-module-files');
39
+ function recordLoadedEsmFile(filePath) {
40
+ try {
41
+ const globalRecord = globalThis;
42
+ // a global under a well-known symbol can be occupied by anything; replace a value that is not
43
+ // a set rather than letting every later add() throw and lose the recording for good
44
+ let files = globalRecord[LOADED_ESM_FILES];
45
+ if (!(files instanceof Set)) {
46
+ files = new Set();
47
+ globalRecord[LOADED_ESM_FILES] = files;
48
+ }
49
+ files.add(filePath);
50
+ // record the realpath as well: virtual-store attribution needs the path inside .pnpm, and
51
+ // callers may pass a path that reaches it through a node_modules symlink
52
+ const real = (0, _fs().realpathSync)(filePath);
53
+ if (real !== filePath) files.add(real);
54
+ } catch {
55
+ // recording is best-effort; a missing file will fail at the import itself
56
+ }
57
+ }
58
+
59
+ //# sourceMappingURL=record-loaded-esm-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fs","data","require","LOADED_ESM_FILES","Symbol","for","recordLoadedEsmFile","filePath","globalRecord","globalThis","files","Set","add","real","realpathSync"],"sources":["record-loaded-esm-file.ts"],"sourcesContent":["import { realpathSync } from 'fs';\n\n/**\n * Records files loaded through dynamic `import()` so the dependency code that protects loaded\n * packages across installs can see them.\n *\n * CJS modules land in `require.cache`, which `preserve-loaded-virtual-store-dirs.ts` (in the pnpm\n * package manager) scans to keep virtual-store directories the running process loaded from\n * requireable when an install re-keys them to a new peer hash. ESM modules live in node's ESM\n * module map, which has no enumeration API - so the loaders record them here instead.\n *\n * The registry is a `Set<string>` of absolute file paths on `globalThis`, keyed with `Symbol.for`\n * rather than shared through an import: the reader lives in the pnpm package manager, which\n * aspect-loader must not depend on (the dependency runs the other way), and `Symbol.for` resolves\n * to the same key even when this module is duplicated in node_modules. The reader in\n * preserve-loaded-virtual-store-dirs.ts mirrors this contract - keep the two in sync.\n *\n * Callers record after their `import()` resolves: a load that failed leaves nothing in memory whose\n * files have to stay around, and recording it would keep a prune off a directory nothing is using\n * for the rest of the process's life.\n *\n * Only entry files are recorded, not their transitive static imports. That restores the entry's\n * own package directory - where an env's deferred imports and config-file reads point - but not\n * directories only ever reached through static imports of other packages; those are already fully\n * loaded into memory and are not re-read.\n */\nconst LOADED_ESM_FILES = Symbol.for('bit.loaded-esm-module-files');\n\nexport function recordLoadedEsmFile(filePath: string): void {\n try {\n const globalRecord = globalThis as { [LOADED_ESM_FILES]?: Set<string> };\n // a global under a well-known symbol can be occupied by anything; replace a value that is not\n // a set rather than letting every later add() throw and lose the recording for good\n let files = globalRecord[LOADED_ESM_FILES];\n if (!(files instanceof Set)) {\n files = new Set<string>();\n globalRecord[LOADED_ESM_FILES] = files;\n }\n files.add(filePath);\n // record the realpath as well: virtual-store attribution needs the path inside .pnpm, and\n // callers may pass a path that reaches it through a node_modules symlink\n const real = realpathSync(filePath);\n if (real !== filePath) files.add(real);\n } catch {\n // recording is best-effort; a missing file will fail at the import itself\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,6BAA6B,CAAC;AAE3D,SAASC,mBAAmBA,CAACC,QAAgB,EAAQ;EAC1D,IAAI;IACF,MAAMC,YAAY,GAAGC,UAAkD;IACvE;IACA;IACA,IAAIC,KAAK,GAAGF,YAAY,CAACL,gBAAgB,CAAC;IAC1C,IAAI,EAAEO,KAAK,YAAYC,GAAG,CAAC,EAAE;MAC3BD,KAAK,GAAG,IAAIC,GAAG,CAAS,CAAC;MACzBH,YAAY,CAACL,gBAAgB,CAAC,GAAGO,KAAK;IACxC;IACAA,KAAK,CAACE,GAAG,CAACL,QAAQ,CAAC;IACnB;IACA;IACA,MAAMM,IAAI,GAAG,IAAAC,kBAAY,EAACP,QAAQ,CAAC;IACnC,IAAIM,IAAI,KAAKN,QAAQ,EAAEG,KAAK,CAACE,GAAG,CAACC,IAAI,CAAC;EACxC,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ function _chai() {
4
+ const data = require("chai");
5
+ _chai = function () {
6
+ return data;
7
+ };
8
+ return data;
9
+ }
10
+ function _recordLoadedEsmFile() {
11
+ const data = require("./record-loaded-esm-file");
12
+ _recordLoadedEsmFile = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ // the same global-set contract preserve-loaded-virtual-store-dirs.ts (pnpm) reads from
18
+ const LOADED_ESM_FILES = Symbol.for('bit.loaded-esm-module-files');
19
+ const globalRecord = globalThis;
20
+ describe('recordLoadedEsmFile()', () => {
21
+ let previousSet;
22
+ before(() => {
23
+ previousSet = globalRecord[LOADED_ESM_FILES];
24
+ delete globalRecord[LOADED_ESM_FILES];
25
+ });
26
+ after(() => {
27
+ if (previousSet) globalRecord[LOADED_ESM_FILES] = previousSet;else delete globalRecord[LOADED_ESM_FILES];
28
+ });
29
+ it('should replace a record of the wrong type instead of losing every later recording', () => {
30
+ globalRecord[LOADED_ESM_FILES] = {
31
+ not: 'a set'
32
+ };
33
+ (0, _recordLoadedEsmFile().recordLoadedEsmFile)('/some/store/dir/node_modules/pkg/index.mjs');
34
+ (0, _chai().expect)(globalRecord[LOADED_ESM_FILES]).to.be.instanceOf(Set);
35
+ (0, _chai().expect)([...globalRecord[LOADED_ESM_FILES]]).to.include('/some/store/dir/node_modules/pkg/index.mjs');
36
+ delete globalRecord[LOADED_ESM_FILES];
37
+ });
38
+ it('should create the global set on first use and record the file', () => {
39
+ (0, _recordLoadedEsmFile().recordLoadedEsmFile)('/some/store/dir/node_modules/pkg/index.mjs');
40
+ (0, _chai().expect)([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include('/some/store/dir/node_modules/pkg/index.mjs');
41
+ });
42
+ it('should record the realpath of an existing file alongside the given spelling', () => {
43
+ (0, _recordLoadedEsmFile().recordLoadedEsmFile)(__filename);
44
+ // __filename is already a realpath here, so at minimum the given spelling must be present
45
+ (0, _chai().expect)([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include(__filename);
46
+ });
47
+ it('should not throw for a path that does not exist', () => {
48
+ (0, _chai().expect)(() => (0, _recordLoadedEsmFile().recordLoadedEsmFile)('/no/such/file.mjs')).to.not.throw();
49
+ (0, _chai().expect)([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include('/no/such/file.mjs');
50
+ });
51
+ });
52
+
53
+ //# sourceMappingURL=record-loaded-esm-file.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_chai","data","require","_recordLoadedEsmFile","LOADED_ESM_FILES","Symbol","for","globalRecord","globalThis","describe","previousSet","before","after","it","not","recordLoadedEsmFile","expect","to","be","instanceOf","Set","include","__filename","throw"],"sources":["record-loaded-esm-file.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { recordLoadedEsmFile } from './record-loaded-esm-file';\n\n// the same global-set contract preserve-loaded-virtual-store-dirs.ts (pnpm) reads from\nconst LOADED_ESM_FILES = Symbol.for('bit.loaded-esm-module-files');\nconst globalRecord = globalThis as { [LOADED_ESM_FILES]?: Set<string> };\n\ndescribe('recordLoadedEsmFile()', () => {\n let previousSet: Set<string> | undefined;\n before(() => {\n previousSet = globalRecord[LOADED_ESM_FILES];\n delete globalRecord[LOADED_ESM_FILES];\n });\n after(() => {\n if (previousSet) globalRecord[LOADED_ESM_FILES] = previousSet;\n else delete globalRecord[LOADED_ESM_FILES];\n });\n\n it('should replace a record of the wrong type instead of losing every later recording', () => {\n (globalRecord as { [LOADED_ESM_FILES]?: unknown })[LOADED_ESM_FILES] = { not: 'a set' };\n recordLoadedEsmFile('/some/store/dir/node_modules/pkg/index.mjs');\n expect(globalRecord[LOADED_ESM_FILES]).to.be.instanceOf(Set);\n expect([...globalRecord[LOADED_ESM_FILES]!]).to.include('/some/store/dir/node_modules/pkg/index.mjs');\n delete globalRecord[LOADED_ESM_FILES];\n });\n\n it('should create the global set on first use and record the file', () => {\n recordLoadedEsmFile('/some/store/dir/node_modules/pkg/index.mjs');\n expect([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include('/some/store/dir/node_modules/pkg/index.mjs');\n });\n it('should record the realpath of an existing file alongside the given spelling', () => {\n recordLoadedEsmFile(__filename);\n // __filename is already a realpath here, so at minimum the given spelling must be present\n expect([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include(__filename);\n });\n it('should not throw for a path that does not exist', () => {\n expect(() => recordLoadedEsmFile('/no/such/file.mjs')).to.not.throw();\n expect([...(globalRecord[LOADED_ESM_FILES] ?? [])]).to.include('/no/such/file.mjs');\n });\n});\n"],"mappings":";;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,qBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA,MAAMG,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,6BAA6B,CAAC;AAClE,MAAMC,YAAY,GAAGC,UAAkD;AAEvEC,QAAQ,CAAC,uBAAuB,EAAE,MAAM;EACtC,IAAIC,WAAoC;EACxCC,MAAM,CAAC,MAAM;IACXD,WAAW,GAAGH,YAAY,CAACH,gBAAgB,CAAC;IAC5C,OAAOG,YAAY,CAACH,gBAAgB,CAAC;EACvC,CAAC,CAAC;EACFQ,KAAK,CAAC,MAAM;IACV,IAAIF,WAAW,EAAEH,YAAY,CAACH,gBAAgB,CAAC,GAAGM,WAAW,CAAC,KACzD,OAAOH,YAAY,CAACH,gBAAgB,CAAC;EAC5C,CAAC,CAAC;EAEFS,EAAE,CAAC,mFAAmF,EAAE,MAAM;IAC3FN,YAAY,CAAsCH,gBAAgB,CAAC,GAAG;MAAEU,GAAG,EAAE;IAAQ,CAAC;IACvF,IAAAC,0CAAmB,EAAC,4CAA4C,CAAC;IACjE,IAAAC,cAAM,EAACT,YAAY,CAACH,gBAAgB,CAAC,CAAC,CAACa,EAAE,CAACC,EAAE,CAACC,UAAU,CAACC,GAAG,CAAC;IAC5D,IAAAJ,cAAM,EAAC,CAAC,GAAGT,YAAY,CAACH,gBAAgB,CAAE,CAAC,CAAC,CAACa,EAAE,CAACI,OAAO,CAAC,4CAA4C,CAAC;IACrG,OAAOd,YAAY,CAACH,gBAAgB,CAAC;EACvC,CAAC,CAAC;EAEFS,EAAE,CAAC,+DAA+D,EAAE,MAAM;IACxE,IAAAE,0CAAmB,EAAC,4CAA4C,CAAC;IACjE,IAAAC,cAAM,EAAC,CAAC,IAAIT,YAAY,CAACH,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAACa,EAAE,CAACI,OAAO,CAAC,4CAA4C,CAAC;EAC9G,CAAC,CAAC;EACFR,EAAE,CAAC,6EAA6E,EAAE,MAAM;IACtF,IAAAE,0CAAmB,EAACO,UAAU,CAAC;IAC/B;IACA,IAAAN,cAAM,EAAC,CAAC,IAAIT,YAAY,CAACH,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAACa,EAAE,CAACI,OAAO,CAACC,UAAU,CAAC;EAC5E,CAAC,CAAC;EACFT,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,IAAAG,cAAM,EAAC,MAAM,IAAAD,0CAAmB,EAAC,mBAAmB,CAAC,CAAC,CAACE,EAAE,CAACH,GAAG,CAACS,KAAK,CAAC,CAAC;IACrE,IAAAP,cAAM,EAAC,CAAC,IAAIT,YAAY,CAACH,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAACa,EAAE,CAACI,OAAO,CAAC,mBAAmB,CAAC;EACrF,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/aspect-loader",
3
- "version": "1.0.1097",
3
+ "version": "1.0.1099",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/aspect-loader",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "aspect-loader",
9
- "version": "1.0.1097"
9
+ "version": "1.0.1099"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -17,20 +17,20 @@
17
17
  "find-root": "1.1.0",
18
18
  "@teambit/harmony": "0.4.12",
19
19
  "@teambit/bit-error": "0.0.404",
20
+ "@teambit/cli": "0.0.1364",
20
21
  "@teambit/compilation.modules.babel-compiler": "0.0.152",
21
22
  "@teambit/component-id": "1.2.4",
22
23
  "@teambit/graph.cleargraph": "0.0.11",
23
24
  "@teambit/harmony.modules.load-trace": "0.0.12",
24
25
  "@teambit/harmony.modules.requireable-component": "0.0.524",
26
+ "@teambit/legacy.constants": "0.0.41",
27
+ "@teambit/logger": "0.0.1457",
25
28
  "@teambit/node.utils.esm-loader": "0.0.7",
26
29
  "@teambit/bvm.config": "1.0.2",
27
30
  "@teambit/bvm.path": "1.0.0",
28
- "@teambit/component": "1.0.1097",
29
- "@teambit/graphql": "1.0.1097",
30
- "@teambit/cli": "0.0.1364",
31
- "@teambit/envs": "1.0.1097",
32
- "@teambit/legacy.constants": "0.0.41",
33
- "@teambit/logger": "0.0.1457"
31
+ "@teambit/component": "1.0.1099",
32
+ "@teambit/graphql": "1.0.1099",
33
+ "@teambit/envs": "1.0.1099"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/fs-extra": "9.0.7",