@teambit/dependency-resolver 1.0.187 → 1.0.189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/artifacts/__bit_junit.xml +37 -37
  2. package/artifacts/preview/teambit_dependencies_dependency_resolver-preview.js +1 -1
  3. package/artifacts/schema.json +1214 -373
  4. package/dist/apply-updates.js.map +1 -1
  5. package/dist/apply-updates.spec.js.map +1 -1
  6. package/dist/dependencies/base-dependency.js.map +1 -1
  7. package/dist/dependencies/component-dependency/component-dependency-factory.js.map +1 -1
  8. package/dist/dependencies/component-dependency/component-dependency.js.map +1 -1
  9. package/dist/dependencies/component-dependency/index.js.map +1 -1
  10. package/dist/dependencies/constants.js.map +1 -1
  11. package/dist/dependencies/dependency-factory.js.map +1 -1
  12. package/dist/dependencies/dependency-list-factory.js.map +1 -1
  13. package/dist/dependencies/dependency-list.js.map +1 -1
  14. package/dist/dependencies/dependency.js.map +1 -1
  15. package/dist/dependencies/exceptions/index.js.map +1 -1
  16. package/dist/dependencies/exceptions/unknown-dep-type.js.map +1 -1
  17. package/dist/dependencies/index.js.map +1 -1
  18. package/dist/dependencies.service.js.map +1 -1
  19. package/dist/dependency-detector.js.map +1 -1
  20. package/dist/dependency-env.js.map +1 -1
  21. package/dist/dependency-installer.js.map +1 -1
  22. package/dist/dependency-linker.js.map +1 -1
  23. package/dist/dependency-resolver-workspace-config.js.map +1 -1
  24. package/dist/dependency-resolver.aspect.js.map +1 -1
  25. package/dist/dependency-resolver.composition.js.map +1 -1
  26. package/dist/dependency-resolver.graphql.js +2 -3
  27. package/dist/dependency-resolver.graphql.js.map +1 -1
  28. package/dist/dependency-resolver.main.runtime.js.map +1 -1
  29. package/dist/dependency-resolver.main.runtime.spec.js.map +1 -1
  30. package/dist/dependency-version-resolver.js.map +1 -1
  31. package/dist/exceptions/core-aspect-link-error.js.map +1 -1
  32. package/dist/exceptions/index.js.map +1 -1
  33. package/dist/exceptions/invalid-version-with-prefix.js.map +1 -1
  34. package/dist/exceptions/main-aspect-not-installable.js.map +1 -1
  35. package/dist/exceptions/main-aspect-not-linkable.js.map +1 -1
  36. package/dist/exceptions/non-aspect-core-package-link-error.js.map +1 -1
  37. package/dist/exceptions/package-manager-not-found.js.map +1 -1
  38. package/dist/exceptions/root-dir-not-defined.js.map +1 -1
  39. package/dist/extend-with-components-from-dir.js.map +1 -1
  40. package/dist/get-all-policy-pkgs.js.map +1 -1
  41. package/dist/get-all-policy-pkgs.spec.js.map +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/manifest/component-manifest.js.map +1 -1
  44. package/dist/manifest/deduping/dedupe-dependencies.js.map +1 -1
  45. package/dist/manifest/deduping/hoist-dependencies.js.map +1 -1
  46. package/dist/manifest/deduping/hoist-dependencies.spec.js.map +1 -1
  47. package/dist/manifest/deduping/index-by-dep-id.js.map +1 -1
  48. package/dist/manifest/deduping/index.js.map +1 -1
  49. package/dist/manifest/deduping/merge-with-root.js.map +1 -1
  50. package/dist/manifest/index.js.map +1 -1
  51. package/dist/manifest/manifest.js.map +1 -1
  52. package/dist/manifest/update-dependency-version.js.map +1 -1
  53. package/dist/manifest/update-dependency-version.spec.js.map +1 -1
  54. package/dist/manifest/workspace-manifest-factory.js.map +1 -1
  55. package/dist/manifest/workspace-manifest.js.map +1 -1
  56. package/dist/package-manager-legacy.js.map +1 -1
  57. package/dist/package-manager.js.map +1 -1
  58. package/dist/policy/env-policy/env-policy.js.map +1 -1
  59. package/dist/policy/env-policy/index.js.map +1 -1
  60. package/dist/policy/env-policy/validate-env-policy.js.map +1 -1
  61. package/dist/policy/env-policy/validate-env-policy.spec.js.map +1 -1
  62. package/dist/policy/index.js.map +1 -1
  63. package/dist/policy/policy.js.map +1 -1
  64. package/dist/policy/variant-policy/index.js.map +1 -1
  65. package/dist/policy/variant-policy/variant-policy.js.map +1 -1
  66. package/dist/policy/workspace-policy/exceptions/entry-already-exist.js.map +1 -1
  67. package/dist/policy/workspace-policy/exceptions/index.js.map +1 -1
  68. package/dist/policy/workspace-policy/index.js.map +1 -1
  69. package/dist/policy/workspace-policy/workspace-policy-factory.js.map +1 -1
  70. package/dist/policy/workspace-policy/workspace-policy.js +5 -5
  71. package/dist/policy/workspace-policy/workspace-policy.js.map +1 -1
  72. package/dist/preview-1710224484125.js +7 -0
  73. package/dist/registry/index.js.map +1 -1
  74. package/dist/registry/registries.js.map +1 -1
  75. package/dist/registry/registry.js.map +1 -1
  76. package/dist/show-fragments/dependencies.fragment.js.map +1 -1
  77. package/dist/show-fragments/dev-dependencies.fragment.js.map +1 -1
  78. package/dist/show-fragments/index.js.map +1 -1
  79. package/dist/show-fragments/peer-dependencies.fragment.js.map +1 -1
  80. package/dist/show-fragments/serialize-by-lifecycle.js.map +1 -1
  81. package/dist/types.js.map +1 -1
  82. package/package.json +16 -15
  83. package/policy/workspace-policy/workspace-policy.ts +3 -3
  84. package/dist/preview-1709867881461.js +0 -7
@@ -1 +1 @@
1
- {"version":3,"names":["_isBuiltinModule","data","_interopRequireDefault","require","_path","_lodash","_fsExtra","_resolveFrom","_bvm","_bitError","_componentIdToPackageName","_aspectLoader","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","DEFAULT_LINKING_OPTIONS","rewire","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","DependencyLinker","constructor","dependencyResolver","aspectLoader","componentAspect","envs","logger","rootDir","linkingOptions","linkingContext","_currentBitDir","findCurrentBvmDir","calculateLinkedDeps","componentDirectoryMap","options","linkResults","_calculateLinks","localLinks","teambitBitLink","linkDetailToLocalDepEntry","linkDetail","coreAspectsLinks","link","harmonyLink","teambitLegacyLink","resolvedFromEnvLinks","linksDetail","linkToDirResults","linkedRootDeps","fromEntries","map","packageName","from","outputMessage","inCapsule","setStatusLine","debug","omit","startTime","process","hrtime","result","finalRootDir","linkingOpts","assign","RootDirNotDefined","linkToDir","components","toArray","component","includePeers","_getLinksToPeers","nestedDepsInNmLinks","addSymlinkFromComponentDirNMToWorkspaceDirNM","componentIds","_dir","comp","id","undefined","linkCoreAspectsAndLegacy","consoleSuccess","peers","Set","Promise","all","depList","getDependencies","peerList","byLifecycle","dependency","getPackageName","add","fromDir","path","join","toDir","Array","componentId","to","componentIdsWithoutVersions","toString","ignoreVersion","isBitRepoWorkspace","bitLink","linkBitAspectIfNotExist","mainAspectPath","mainAspect","MainAspectNotLinkable","hasLocalInstallation","linkNonExistingCoreAspects","targetModulesDir","linkNonAspectCorePackages","targetDir","results","componentPackageName","componentIdToPackageName","state","_consumer","rootNodeModules","getPackagesFoldersToLink","dir","parent","folders","fs","readdirSync","withFileTypes","dirent","name","startsWith","isDirectory","isSymbolicLink","dirPath","moduleName","moduleNameToResolve","isBuiltinModule","resolvedModuleFrom","resolveModuleFromDir","origPath","resolveModuleDirFromFile","flatten","linksOfAllComponents","compDirNM","existsSync","innerNMofComponentInNM","isPathSymlink","packagesFoldersToLink","ensureDirSync","oneComponentLinks","folderEntry","linkTarget","linkSrc","info","filteredLinks","compact","componentsNeedLinks","componentsNeedLinksP","policy","getPolicy","resolvedFromEnv","getResolvedFromEnv","env","getEnv","componentNeedLink","envsStringIds","uniqEnvIds","uniq","host","getHost","resolvedEnvIds","resolveMultipleComponentIds","resolvedAspects","resolveAspects","resolvedAspectsIndex","reduce","acc","curr","getId","allLinksP","entry","oneComponentLinksP","entries","depEntry","dependencyId","envDir","aspectPath","resolvedModule","console","depsLinkedToEnvResult","mainAspectId","existing","find","linkBit","aspectId","target","shouldSymlink","removeSymlinkTarget","src","_getPkgPathFromCurrentBitDir","ensureDir","dirname","opts","coreAspectsIds","getCoreAspectIds","filtered","getCoreAspectName","linkCoreAspect","getCoreAspectPackageName","aspectDir","isAspectDirExist","pathExistsSync","getAspectDir","module","resolve","err","CoreAspectLinkError","targetPath","targetStat","lstatSync","distDir","isDistDirExist","newDir","getDistDirForDevEnv","resolvedPath","NonAspectCorePackageLinkError","exports","moduleDirectory","includes","nmDir","__dirname","substring","indexOf","paths","BitError","moduleId","silent","resolveFrom","resolvedModulePath","NM","slice","lastIndexOf","start","end","split","basename","versionStr","head","folderPath","stat"],"sources":["dependency-linker.ts"],"sourcesContent":["import isBuiltinModule from 'is-builtin-module';\nimport path from 'path';\nimport { uniq, compact, flatten, head, omit } from 'lodash';\nimport { Stats } from 'fs';\nimport fs from 'fs-extra';\nimport resolveFrom from 'resolve-from';\nimport { findCurrentBvmDir } from '@teambit/bvm.path';\nimport { ComponentMap, Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { EnvsMain } from '@teambit/envs';\nimport { AspectLoaderMain, getCoreAspectName, getCoreAspectPackageName, getAspectDir } from '@teambit/aspect-loader';\nimport {\n MainAspectNotLinkable,\n RootDirNotDefined,\n CoreAspectLinkError,\n NonAspectCorePackageLinkError,\n} from './exceptions';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\n\n/**\n * context of the linking process.\n */\nexport type DepLinkerContext = {\n inCapsule?: boolean;\n};\n\nexport type LinkingOptions = {\n rewire?: boolean;\n /**\n * Whether to create link to @teambit/bit in the root node modules\n */\n linkTeambitBit?: boolean;\n /**\n * Whether to create links in the root dir node modules to all core aspects\n */\n linkCoreAspects?: boolean;\n\n linkNestedDepsInNM?: boolean;\n\n /**\n * link to another project, so that project could use components from this workspace.\n * similar to npm/yarn link\n */\n linkToDir?: string;\n\n /**\n * Link peer dependencies of the components to the target project.\n * Peer dependencies should be singletons, so the project should use the same\n * version of the peer dependency as the linked in components.\n */\n includePeers?: boolean;\n\n /**\n * whether link should import objects before linking\n */\n fetchObject?: boolean;\n\n /**\n * Link deps which should be linked to the env\n */\n linkDepsResolvedFromEnv?: boolean;\n};\n\nconst DEFAULT_LINKING_OPTIONS: LinkingOptions = {\n rewire: false,\n linkTeambitBit: true,\n linkCoreAspects: true,\n linkDepsResolvedFromEnv: true,\n linkNestedDepsInNM: true,\n};\n\nexport type LinkDetail = { packageName: string; from: string; to: string };\n\nexport type CoreAspectLinkResult = {\n aspectId: string;\n linkDetail: LinkDetail;\n};\n\nexport type DepsLinkedToEnvResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type NestedNMDepsLinksResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type LinkToDirResult = {\n componentId: string;\n linksDetail: LinkDetail;\n};\n\nexport type LinkResults = {\n teambitBitLink?: CoreAspectLinkResult;\n coreAspectsLinks?: CoreAspectLinkResult[];\n harmonyLink?: LinkDetail;\n teambitLegacyLink?: LinkDetail;\n resolvedFromEnvLinks?: DepsLinkedToEnvResult[];\n nestedDepsInNmLinks?: NestedNMDepsLinksResult[];\n linkToDirResults?: LinkToDirResult[];\n};\n\ntype NestedModuleFolderEntry = {\n moduleName: string;\n path: string;\n origPath?: string;\n};\n\nexport class DependencyLinker {\n private _currentBitDir: string | null;\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private componentAspect: ComponentMain,\n\n private envs: EnvsMain,\n\n private logger: Logger,\n\n private rootDir?: string | PathAbsolute,\n\n private linkingOptions?: LinkingOptions,\n\n private linkingContext: DepLinkerContext = {}\n ) {\n this._currentBitDir = findCurrentBvmDir();\n }\n\n async calculateLinkedDeps(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<{ linkedRootDeps: Record<string, string>; linkResults: LinkResults }> {\n const linkResults = await this._calculateLinks(rootDir, componentDirectoryMap, options);\n const localLinks: Array<[string, string]> = [];\n if (linkResults.teambitBitLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitBitLink.linkDetail));\n }\n if (linkResults.coreAspectsLinks) {\n linkResults.coreAspectsLinks.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linkDetail));\n });\n }\n if (linkResults.harmonyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.harmonyLink));\n }\n if (linkResults.teambitLegacyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitLegacyLink));\n }\n if (linkResults.resolvedFromEnvLinks) {\n linkResults.resolvedFromEnvLinks.forEach((link) => {\n link.linksDetail.forEach((linkDetail) => {\n localLinks.push(this.linkDetailToLocalDepEntry(linkDetail));\n });\n });\n }\n if (linkResults.linkToDirResults) {\n linkResults.linkToDirResults.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linksDetail));\n });\n }\n return {\n linkedRootDeps: Object.fromEntries(localLinks.map(([key, value]) => [key, `link:${value}`])),\n linkResults,\n };\n }\n\n private linkDetailToLocalDepEntry(linkDetail: LinkDetail): [string, string] {\n return [linkDetail.packageName, linkDetail.from];\n }\n\n private async _calculateLinks(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<LinkResults> {\n const outputMessage = this.linkingContext?.inCapsule\n ? `(capsule) linking components in root dir: ${rootDir || this.rootDir}`\n : 'linking components';\n if (!this.linkingContext?.inCapsule) {\n this.logger.setStatusLine(outputMessage);\n }\n this.logger.debug('linking components with options', omit(options, ['consumer']));\n const startTime = process.hrtime();\n\n let result: LinkResults = {};\n const finalRootDir = rootDir || this.rootDir;\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkToDir) {\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const linkToDirResults = await this.linkToDir(finalRootDir, options.linkToDir, components);\n result.linkToDirResults = linkToDirResults;\n if (options.includePeers) {\n result.linkToDirResults.push(\n ...(await this._getLinksToPeers(componentDirectoryMap, { finalRootDir, linkToDir: options.linkToDir }))\n );\n }\n return result;\n }\n\n // Link deps which should be linked to the env\n if (linkingOpts.linkDepsResolvedFromEnv) {\n result.resolvedFromEnvLinks = await this.linkDepsResolvedFromEnv(componentDirectoryMap);\n }\n if (linkingOpts.linkNestedDepsInNM) {\n result.nestedDepsInNmLinks = this.addSymlinkFromComponentDirNMToWorkspaceDirNM(\n finalRootDir,\n componentDirectoryMap\n );\n }\n\n // We remove the version since it used in order to check if it's core aspects, and the core aspects arrived from aspect loader without versions\n const componentIds: ComponentID[] = [];\n componentDirectoryMap.map((_dir, comp) => {\n componentIds.push(comp.id);\n return undefined;\n });\n result = {\n ...result,\n ...(await this.linkCoreAspectsAndLegacy(finalRootDir, componentIds, linkingOpts)),\n };\n if (!this.linkingContext?.inCapsule) {\n this.logger.consoleSuccess(outputMessage, startTime);\n }\n return result;\n }\n\n async _getLinksToPeers(\n componentDirectoryMap: ComponentMap<string>,\n options: {\n finalRootDir: string;\n linkToDir: string;\n }\n ): Promise<LinkToDirResult[]> {\n const peers = new Set<string>();\n await Promise.all(\n componentDirectoryMap.toArray().map(async ([component]) => {\n const depList = this.dependencyResolver.getDependencies(component);\n const peerList = depList.byLifecycle('peer');\n peerList.forEach((dependency) => {\n if (dependency.getPackageName) {\n peers.add(dependency.getPackageName());\n }\n });\n })\n );\n const fromDir = path.join(options.finalRootDir, 'node_modules');\n const toDir = path.join(options.linkToDir, 'node_modules');\n return Array.from(peers).map((packageName) => ({\n componentId: packageName,\n linksDetail: {\n packageName,\n from: path.join(fromDir, packageName),\n to: path.join(toDir, packageName),\n },\n }));\n }\n\n async linkCoreAspectsAndLegacy(\n rootDir: string,\n componentIds: ComponentID[] = [],\n options: Pick<LinkingOptions, 'linkTeambitBit' | 'linkCoreAspects'> = {}\n ) {\n const result: LinkResults = {};\n const componentIdsWithoutVersions: string[] = [];\n componentIds.map((id) => {\n componentIdsWithoutVersions.push(id.toString({ ignoreVersion: true }));\n return undefined;\n });\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (linkingOpts.linkTeambitBit && !this.isBitRepoWorkspace(rootDir)) {\n const bitLink = await this.linkBitAspectIfNotExist(\n path.join(rootDir, 'node_modules'),\n componentIdsWithoutVersions\n );\n result.teambitBitLink = bitLink;\n }\n\n let mainAspectPath = result.teambitBitLink?.linkDetail.from;\n if (!mainAspectPath && this.aspectLoader.mainAspect) {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n mainAspectPath = path.join(rootDir, 'node_modules', this.aspectLoader.mainAspect.packageName);\n }\n if (linkingOpts.linkCoreAspects && !this.isBitRepoWorkspace(rootDir)) {\n const hasLocalInstallation = !linkingOpts.linkTeambitBit;\n if (mainAspectPath) {\n result.coreAspectsLinks = await this.linkNonExistingCoreAspects(componentIdsWithoutVersions, {\n targetModulesDir: path.join(rootDir, 'node_modules'),\n mainAspectPath,\n hasLocalInstallation,\n });\n } else {\n result.coreAspectsLinks = [];\n }\n }\n\n if (mainAspectPath) {\n result.teambitLegacyLink = this.linkNonAspectCorePackages(rootDir, 'legacy', mainAspectPath);\n result.harmonyLink = this.linkNonAspectCorePackages(rootDir, 'harmony', mainAspectPath);\n }\n return result;\n }\n\n private async linkToDir(rootDir: string, targetDir: string, components: Component[]): Promise<LinkToDirResult[]> {\n const results: LinkToDirResult[] = components.map((component) => {\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n return {\n componentId: component.id.toString(),\n linksDetail: {\n packageName: componentPackageName,\n from: path.join(rootDir, 'node_modules', componentPackageName),\n to: path.join(targetDir, 'node_modules', componentPackageName),\n },\n };\n });\n return results;\n }\n\n /**\n * Add symlinks from the node_modules in the component's root-dir to the workspace node_modules\n * of the component. e.g.\n * <ws-root>/node_modules/comp1/node_modules/<dep> -> <ws-root>/components/comp1/node_modules/<dep>\n * This is needed because the component is compiled into the dist folder at <ws-root>/node_modules/comp1/dist,\n * so the files in the dist folder need to find the right dependencies of comp1.\n */\n private addSymlinkFromComponentDirNMToWorkspaceDirNM(\n rootDir: string,\n componentDirectoryMap: ComponentMap<string>\n ): NestedNMDepsLinksResult[] {\n const rootNodeModules = path.join(rootDir, 'node_modules');\n const getPackagesFoldersToLink = (dir: string, parent?: string): NestedModuleFolderEntry[] => {\n const folders = fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((dirent) => {\n if (dirent.name.startsWith('.')) {\n return false;\n }\n return dirent.isDirectory() || dirent.isSymbolicLink();\n })\n .map((dirent) => {\n const dirPath = path.join(dir, dirent.name);\n const moduleName = parent ? `${parent}/${dirent.name}` : dirent.name;\n // If we have a folder with a name of built in module (like events)\n // the resolve from will resolve it from the core, so it will return something like 'events'\n // instead of the path.\n // adding a '/' at the end solve this\n const moduleNameToResolve = isBuiltinModule(moduleName) ? `${moduleName}/` : moduleName;\n // This is a scoped package, need to go inside\n if (dirent.name.startsWith('@')) {\n return getPackagesFoldersToLink(dirPath, dirent.name);\n }\n\n if (dirent.isSymbolicLink()) {\n const resolvedModuleFrom = resolveModuleFromDir(dir, moduleNameToResolve);\n if (!resolvedModuleFrom) {\n return {\n moduleName,\n path: dirPath,\n };\n }\n return {\n origPath: dirPath,\n moduleName,\n path: resolveModuleDirFromFile(resolvedModuleFrom, moduleName),\n };\n }\n return {\n moduleName,\n path: dirPath,\n };\n });\n return flatten(folders);\n };\n const linksOfAllComponents = componentDirectoryMap.toArray().map(([component, dir]) => {\n const compDirNM = path.join(dir, 'node_modules');\n if (!fs.existsSync(compDirNM)) return undefined;\n // TODO: support modules with scoped packages (start with @) - we need to make this logic 2 levels\n\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n const innerNMofComponentInNM = path.join(rootNodeModules, componentPackageName);\n // If the folder itself is a symlink, do not try to symlink inside it\n if (isPathSymlink(innerNMofComponentInNM)) {\n return undefined;\n }\n const packagesFoldersToLink: NestedModuleFolderEntry[] = getPackagesFoldersToLink(compDirNM);\n fs.ensureDirSync(innerNMofComponentInNM);\n\n const oneComponentLinks: LinkDetail[] = packagesFoldersToLink.map((folderEntry: NestedModuleFolderEntry) => {\n const linkTarget = path.join(innerNMofComponentInNM, 'node_modules', folderEntry?.moduleName);\n const linkSrc = folderEntry.path;\n // This works as well, consider using it instead\n // const linkSrc = folderEntry.origPath || folderEntry.path;\n const origPath = folderEntry.origPath ? `(${folderEntry.origPath})` : '';\n const linkDetail: LinkDetail = {\n packageName: folderEntry.moduleName,\n from: `${linkSrc} ${origPath}`,\n to: linkTarget,\n };\n this.logger.info(\n `linking nested dependency ${folderEntry.moduleName} for component ${component}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n return linkDetail;\n });\n\n const filteredLinks = compact(oneComponentLinks);\n return {\n componentId: component.id.toString(),\n linksDetail: filteredLinks,\n };\n });\n const filteredLinks = compact(linksOfAllComponents);\n return filteredLinks;\n }\n\n private async linkDepsResolvedFromEnv(\n componentDirectoryMap: ComponentMap<string>\n ): Promise<Array<DepsLinkedToEnvResult>> {\n const componentsNeedLinks: {\n component: Component;\n dir: string;\n env;\n resolvedFromEnv;\n envId?: string;\n envDir?: string;\n }[] = [];\n\n const componentsNeedLinksP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const policy = await this.dependencyResolver.getPolicy(component);\n const resolvedFromEnv = policy.getResolvedFromEnv();\n // Nothing should be resolved from env, do nothing\n if (!resolvedFromEnv.length) {\n return;\n }\n const env = this.envs.getEnv(component);\n const componentNeedLink = {\n component,\n dir,\n env,\n resolvedFromEnv,\n };\n componentsNeedLinks.push(componentNeedLink);\n });\n\n await Promise.all(componentsNeedLinksP);\n // Stop if there are not components needs to be linked\n if (!componentsNeedLinks || !componentsNeedLinks.length) return [];\n const envsStringIds = componentsNeedLinks.map((obj) => obj.env.id);\n const uniqEnvIds = uniq(envsStringIds);\n const host = this.componentAspect.getHost();\n const resolvedEnvIds = await host.resolveMultipleComponentIds(uniqEnvIds);\n const resolvedAspects = await host.resolveAspects(undefined, resolvedEnvIds);\n const resolvedAspectsIndex = resolvedAspects.reduce((acc, curr) => {\n if (curr.getId) {\n acc[curr.getId] = curr;\n }\n return acc;\n }, {});\n const allLinksP = componentsNeedLinks.map(async (entry) => {\n const oneComponentLinksP: Array<LinkDetail | undefined> = entry.resolvedFromEnv.entries.map(async (depEntry) => {\n const linkTarget = path.join(entry.dir, 'node_modules', depEntry.dependencyId);\n const envDir = resolvedAspectsIndex[entry.env.id].aspectPath;\n const resolvedModule = resolveModuleFromDir(envDir, depEntry.dependencyId);\n if (!resolvedModule) {\n this.logger.console(`could not resolve ${depEntry.dependencyId} from env directory ${envDir}`);\n return undefined;\n }\n const linkSrc = resolveModuleDirFromFile(resolvedModule, depEntry.dependencyId);\n const linkDetail: LinkDetail = {\n packageName: depEntry.dependencyId,\n from: linkSrc,\n to: linkTarget,\n };\n this.logger.info(\n `linking dependency ${depEntry.dependencyId} from env directory ${envDir}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n\n return linkDetail;\n });\n const oneComponentLinks = await Promise.all(oneComponentLinksP);\n const filteredLinks = compact(oneComponentLinks);\n const depsLinkedToEnvResult: DepsLinkedToEnvResult = {\n componentId: entry.component.id.toString(),\n linksDetail: filteredLinks,\n };\n return depsLinkedToEnvResult;\n });\n return Promise.all(allLinksP);\n }\n\n private async linkBitAspectIfNotExist(\n dir: string,\n componentIds: string[]\n ): Promise<CoreAspectLinkResult | undefined> {\n if (!this.aspectLoader.mainAspect) return undefined;\n const mainAspectId = this.aspectLoader.mainAspect.id;\n const existing = componentIds.find((id) => {\n return id === mainAspectId;\n });\n\n if (existing) {\n return undefined;\n }\n const linkDetail = await this.linkBit(dir);\n if (!linkDetail) return undefined;\n return {\n aspectId: mainAspectId,\n linkDetail,\n };\n }\n\n async linkBit(dir: string): Promise<LinkDetail | undefined> {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n const target = path.join(dir, this.aspectLoader.mainAspect.packageName);\n const shouldSymlink = this.removeSymlinkTarget(target);\n if (!shouldSymlink) return undefined;\n const src =\n this._getPkgPathFromCurrentBitDir(this.aspectLoader.mainAspect.packageName) ?? this.aspectLoader.mainAspect.path;\n await fs.ensureDir(path.dirname(target));\n return { packageName: this.aspectLoader.mainAspect.packageName, from: src, to: target };\n }\n\n private async linkNonExistingCoreAspects(\n componentIds: string[],\n opts: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): Promise<CoreAspectLinkResult[]> {\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const filtered = coreAspectsIds.filter((aspectId) => {\n // Remove bit aspect\n if (aspectId === this.aspectLoader.mainAspect?.id) {\n return false;\n }\n // TODO: use the aspect id once default scope is resolved and the component dir map has the id with scope\n const name = getCoreAspectName(aspectId);\n const existing = componentIds.find((componentId) => {\n return componentId === name || componentId === aspectId;\n });\n if (existing) {\n return false;\n }\n return true;\n });\n\n this.logger.debug(`linkNonExistingCoreAspects: linking the following core aspects ${filtered.join()}`);\n\n const results = filtered.map((id) => this.linkCoreAspect(id, opts));\n return compact(results);\n }\n\n private isBitRepoWorkspace(dir: string) {\n // A special condition to not link core aspects in bit workspace itself\n if (this.aspectLoader.mainAspect?.path.startsWith(dir)) {\n return true;\n }\n return false;\n }\n\n private linkCoreAspect(\n id: string,\n {\n targetModulesDir,\n mainAspectPath,\n hasLocalInstallation,\n }: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): CoreAspectLinkResult | undefined {\n const name = getCoreAspectName(id);\n const packageName = getCoreAspectPackageName(id);\n let aspectDir = path.join(mainAspectPath, 'dist', name);\n const target = path.join(targetModulesDir, packageName);\n const fromDir = this._getPkgPathFromCurrentBitDir(packageName);\n if (fromDir) {\n return { aspectId: id, linkDetail: { packageName, from: fromDir, to: target } };\n }\n const shouldSymlink = this.removeSymlinkTarget(target, hasLocalInstallation);\n if (!shouldSymlink) return undefined;\n const isAspectDirExist = fs.pathExistsSync(aspectDir);\n if (!isAspectDirExist) {\n this.logger.debug(`linkCoreAspect: aspectDir ${aspectDir} does not exist, linking it to ${target}`);\n aspectDir = getAspectDir(id);\n return { aspectId: id, linkDetail: { packageName, from: aspectDir, to: target } };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(aspectDir);\n const aspectPath = path.resolve(path.join(module.path, '..', '..'));\n this.logger.debug(`linkCoreAspect: linking aspectPath ${aspectPath} to ${target}`);\n return { aspectId: id, linkDetail: { packageName, from: aspectPath, to: target } };\n } catch (err: any) {\n throw new CoreAspectLinkError(id, err);\n }\n }\n\n /**\n * returns true if it's safe to symlink it later.\n */\n private removeSymlinkTarget(targetPath: string, hasLocalInstallation = false): boolean {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false});\n // TODO: this requires to upgrade node to v15.3.0 to have the throwIfNoEntry property (maybe upgrade fs-extra will work as well)\n // TODO: we don't use fs.pathExistsSync since it will return false in case the dest is a symlink which will result error on write\n let targetStat: Stats | undefined;\n try {\n targetStat = fs.lstatSync(targetPath);\n // eslint-disable-next-line no-empty\n } catch (e: any) {}\n if (targetStat && !hasLocalInstallation) {\n // Do not override links created by other means\n if (!targetStat.isSymbolicLink()) {\n this.logger.debug(`removing link target, target ${targetPath} already exist. skipping it`);\n return false;\n }\n return true;\n }\n return true;\n }\n\n private _getPkgPathFromCurrentBitDir(packageName: string): string | undefined {\n if (!this._currentBitDir) return undefined;\n return path.join(this._currentBitDir, 'node_modules', packageName);\n }\n\n private linkNonAspectCorePackages(rootDir: string, name: string, mainAspectPath: string): LinkDetail | undefined {\n const distDir = path.join(mainAspectPath, 'dist', name);\n\n const packageName = `@teambit/${name}`;\n const target = path.join(rootDir, 'node_modules', packageName);\n const fromDir = this._getPkgPathFromCurrentBitDir(packageName);\n if (fromDir) {\n return { packageName, from: fromDir, to: target };\n }\n const isDistDirExist = fs.pathExistsSync(distDir);\n if (!isDistDirExist) {\n const newDir = getDistDirForDevEnv(packageName);\n return { packageName, from: newDir, to: target };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(distDir);\n const resolvedPath = path.resolve(path.join(module.path, '..', '..'));\n return { packageName, from: resolvedPath, to: target };\n } catch (err: any) {\n throw new NonAspectCorePackageLinkError(err, packageName);\n }\n }\n}\n\n/**\n * When running dev env (bd) we need to get the harmony/legacy folder from the node_modules of the clone\n */\nfunction getDistDirForDevEnv(packageName: string): string {\n let moduleDirectory = require.resolve(packageName);\n let dirPath;\n if (moduleDirectory.includes(packageName)) {\n dirPath = path.join(moduleDirectory, '../..'); // to remove the \"index.js\" at the end\n } else {\n // This is usually required for the @teambit/legacy, as we re inside the nm so we can't find it in the other way\n const nmDir = __dirname.substring(0, __dirname.indexOf('@teambit'));\n dirPath = path.join(nmDir, packageName);\n moduleDirectory = require.resolve(packageName, { paths: [nmDir] });\n }\n if (!fs.existsSync(dirPath)) {\n throw new BitError(`unable to find ${packageName} in ${dirPath}`);\n }\n\n return dirPath;\n}\n\n// TODO: extract to new component\nfunction resolveModuleFromDir(fromDir: string, moduleId: string, silent = true): string | undefined {\n if (silent) {\n return resolveFrom.silent(fromDir, moduleId);\n }\n return resolveFrom(fromDir, moduleId);\n}\n\n// TODO: extract to new component\nfunction resolveModuleDirFromFile(resolvedModulePath: string, moduleId: string): string {\n const NM = 'node_modules';\n if (resolvedModulePath.includes(NM)) {\n return path.join(resolvedModulePath.slice(0, resolvedModulePath.lastIndexOf(NM) + NM.length), moduleId);\n }\n\n const [start, end] = resolvedModulePath.split('@');\n if (!end) return path.basename(resolvedModulePath);\n const versionStr = head(end.split('/'));\n return `${start}@${versionStr}`;\n}\n\nfunction isPathSymlink(folderPath: string): boolean | undefined {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false}); once upgrade fs-extra\n try {\n const stat = fs.lstatSync(folderPath);\n return stat.isSymbolicLink();\n } catch (e: any) {\n return undefined;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_isBuiltinModule","data","_interopRequireDefault","require","_path","_lodash","_fsExtra","_resolveFrom","_bvm","_bitError","_componentIdToPackageName","_aspectLoader","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","DEFAULT_LINKING_OPTIONS","rewire","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","DependencyLinker","constructor","dependencyResolver","aspectLoader","componentAspect","envs","logger","rootDir","linkingOptions","linkingContext","_currentBitDir","findCurrentBvmDir","calculateLinkedDeps","componentDirectoryMap","options","linkResults","_calculateLinks","localLinks","teambitBitLink","linkDetailToLocalDepEntry","linkDetail","coreAspectsLinks","link","harmonyLink","teambitLegacyLink","resolvedFromEnvLinks","linksDetail","linkToDirResults","linkedRootDeps","fromEntries","map","packageName","from","outputMessage","inCapsule","setStatusLine","debug","omit","startTime","process","hrtime","result","finalRootDir","linkingOpts","assign","RootDirNotDefined","linkToDir","components","toArray","component","includePeers","_getLinksToPeers","nestedDepsInNmLinks","addSymlinkFromComponentDirNMToWorkspaceDirNM","componentIds","_dir","comp","id","undefined","linkCoreAspectsAndLegacy","consoleSuccess","peers","Set","Promise","all","depList","getDependencies","peerList","byLifecycle","dependency","getPackageName","add","fromDir","path","join","toDir","Array","componentId","to","componentIdsWithoutVersions","toString","ignoreVersion","isBitRepoWorkspace","bitLink","linkBitAspectIfNotExist","mainAspectPath","mainAspect","MainAspectNotLinkable","hasLocalInstallation","linkNonExistingCoreAspects","targetModulesDir","linkNonAspectCorePackages","targetDir","results","componentPackageName","componentIdToPackageName","state","_consumer","rootNodeModules","getPackagesFoldersToLink","dir","parent","folders","fs","readdirSync","withFileTypes","dirent","name","startsWith","isDirectory","isSymbolicLink","dirPath","moduleName","moduleNameToResolve","isBuiltinModule","resolvedModuleFrom","resolveModuleFromDir","origPath","resolveModuleDirFromFile","flatten","linksOfAllComponents","compDirNM","existsSync","innerNMofComponentInNM","isPathSymlink","packagesFoldersToLink","ensureDirSync","oneComponentLinks","folderEntry","linkTarget","linkSrc","info","filteredLinks","compact","componentsNeedLinks","componentsNeedLinksP","policy","getPolicy","resolvedFromEnv","getResolvedFromEnv","env","getEnv","componentNeedLink","envsStringIds","uniqEnvIds","uniq","host","getHost","resolvedEnvIds","resolveMultipleComponentIds","resolvedAspects","resolveAspects","resolvedAspectsIndex","reduce","acc","curr","getId","allLinksP","entry","oneComponentLinksP","entries","depEntry","dependencyId","envDir","aspectPath","resolvedModule","console","depsLinkedToEnvResult","mainAspectId","existing","find","linkBit","aspectId","target","shouldSymlink","removeSymlinkTarget","src","_getPkgPathFromCurrentBitDir","ensureDir","dirname","opts","coreAspectsIds","getCoreAspectIds","filtered","getCoreAspectName","linkCoreAspect","getCoreAspectPackageName","aspectDir","isAspectDirExist","pathExistsSync","getAspectDir","module","resolve","err","CoreAspectLinkError","targetPath","targetStat","lstatSync","distDir","isDistDirExist","newDir","getDistDirForDevEnv","resolvedPath","NonAspectCorePackageLinkError","exports","moduleDirectory","includes","nmDir","__dirname","substring","indexOf","paths","BitError","moduleId","silent","resolveFrom","resolvedModulePath","NM","slice","lastIndexOf","start","end","split","basename","versionStr","head","folderPath","stat"],"sources":["dependency-linker.ts"],"sourcesContent":["import isBuiltinModule from 'is-builtin-module';\nimport path from 'path';\nimport { uniq, compact, flatten, head, omit } from 'lodash';\nimport { Stats } from 'fs';\nimport fs from 'fs-extra';\nimport resolveFrom from 'resolve-from';\nimport { findCurrentBvmDir } from '@teambit/bvm.path';\nimport { ComponentMap, Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { EnvsMain } from '@teambit/envs';\nimport { AspectLoaderMain, getCoreAspectName, getCoreAspectPackageName, getAspectDir } from '@teambit/aspect-loader';\nimport {\n MainAspectNotLinkable,\n RootDirNotDefined,\n CoreAspectLinkError,\n NonAspectCorePackageLinkError,\n} from './exceptions';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\n\n/**\n * context of the linking process.\n */\nexport type DepLinkerContext = {\n inCapsule?: boolean;\n};\n\nexport type LinkingOptions = {\n rewire?: boolean;\n /**\n * Whether to create link to @teambit/bit in the root node modules\n */\n linkTeambitBit?: boolean;\n /**\n * Whether to create links in the root dir node modules to all core aspects\n */\n linkCoreAspects?: boolean;\n\n linkNestedDepsInNM?: boolean;\n\n /**\n * link to another project, so that project could use components from this workspace.\n * similar to npm/yarn link\n */\n linkToDir?: string;\n\n /**\n * Link peer dependencies of the components to the target project.\n * Peer dependencies should be singletons, so the project should use the same\n * version of the peer dependency as the linked in components.\n */\n includePeers?: boolean;\n\n /**\n * whether link should import objects before linking\n */\n fetchObject?: boolean;\n\n /**\n * Link deps which should be linked to the env\n */\n linkDepsResolvedFromEnv?: boolean;\n};\n\nconst DEFAULT_LINKING_OPTIONS: LinkingOptions = {\n rewire: false,\n linkTeambitBit: true,\n linkCoreAspects: true,\n linkDepsResolvedFromEnv: true,\n linkNestedDepsInNM: true,\n};\n\nexport type LinkDetail = { packageName: string; from: string; to: string };\n\nexport type CoreAspectLinkResult = {\n aspectId: string;\n linkDetail: LinkDetail;\n};\n\nexport type DepsLinkedToEnvResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type NestedNMDepsLinksResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type LinkToDirResult = {\n componentId: string;\n linksDetail: LinkDetail;\n};\n\nexport type LinkResults = {\n teambitBitLink?: CoreAspectLinkResult;\n coreAspectsLinks?: CoreAspectLinkResult[];\n harmonyLink?: LinkDetail;\n teambitLegacyLink?: LinkDetail;\n resolvedFromEnvLinks?: DepsLinkedToEnvResult[];\n nestedDepsInNmLinks?: NestedNMDepsLinksResult[];\n linkToDirResults?: LinkToDirResult[];\n};\n\ntype NestedModuleFolderEntry = {\n moduleName: string;\n path: string;\n origPath?: string;\n};\n\nexport class DependencyLinker {\n private _currentBitDir: string | null;\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private componentAspect: ComponentMain,\n\n private envs: EnvsMain,\n\n private logger: Logger,\n\n private rootDir?: string | PathAbsolute,\n\n private linkingOptions?: LinkingOptions,\n\n private linkingContext: DepLinkerContext = {}\n ) {\n this._currentBitDir = findCurrentBvmDir();\n }\n\n async calculateLinkedDeps(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<{ linkedRootDeps: Record<string, string>; linkResults: LinkResults }> {\n const linkResults = await this._calculateLinks(rootDir, componentDirectoryMap, options);\n const localLinks: Array<[string, string]> = [];\n if (linkResults.teambitBitLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitBitLink.linkDetail));\n }\n if (linkResults.coreAspectsLinks) {\n linkResults.coreAspectsLinks.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linkDetail));\n });\n }\n if (linkResults.harmonyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.harmonyLink));\n }\n if (linkResults.teambitLegacyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitLegacyLink));\n }\n if (linkResults.resolvedFromEnvLinks) {\n linkResults.resolvedFromEnvLinks.forEach((link) => {\n link.linksDetail.forEach((linkDetail) => {\n localLinks.push(this.linkDetailToLocalDepEntry(linkDetail));\n });\n });\n }\n if (linkResults.linkToDirResults) {\n linkResults.linkToDirResults.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linksDetail));\n });\n }\n return {\n linkedRootDeps: Object.fromEntries(localLinks.map(([key, value]) => [key, `link:${value}`])),\n linkResults,\n };\n }\n\n private linkDetailToLocalDepEntry(linkDetail: LinkDetail): [string, string] {\n return [linkDetail.packageName, linkDetail.from];\n }\n\n private async _calculateLinks(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<LinkResults> {\n const outputMessage = this.linkingContext?.inCapsule\n ? `(capsule) linking components in root dir: ${rootDir || this.rootDir}`\n : 'linking components';\n if (!this.linkingContext?.inCapsule) {\n this.logger.setStatusLine(outputMessage);\n }\n this.logger.debug('linking components with options', omit(options, ['consumer']));\n const startTime = process.hrtime();\n\n let result: LinkResults = {};\n const finalRootDir = rootDir || this.rootDir;\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkToDir) {\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const linkToDirResults = await this.linkToDir(finalRootDir, options.linkToDir, components);\n result.linkToDirResults = linkToDirResults;\n if (options.includePeers) {\n result.linkToDirResults.push(\n ...(await this._getLinksToPeers(componentDirectoryMap, { finalRootDir, linkToDir: options.linkToDir }))\n );\n }\n return result;\n }\n\n // Link deps which should be linked to the env\n if (linkingOpts.linkDepsResolvedFromEnv) {\n result.resolvedFromEnvLinks = await this.linkDepsResolvedFromEnv(componentDirectoryMap);\n }\n if (linkingOpts.linkNestedDepsInNM) {\n result.nestedDepsInNmLinks = this.addSymlinkFromComponentDirNMToWorkspaceDirNM(\n finalRootDir,\n componentDirectoryMap\n );\n }\n\n // We remove the version since it used in order to check if it's core aspects, and the core aspects arrived from aspect loader without versions\n const componentIds: ComponentID[] = [];\n componentDirectoryMap.map((_dir, comp) => {\n componentIds.push(comp.id);\n return undefined;\n });\n result = {\n ...result,\n ...(await this.linkCoreAspectsAndLegacy(finalRootDir, componentIds, linkingOpts)),\n };\n if (!this.linkingContext?.inCapsule) {\n this.logger.consoleSuccess(outputMessage, startTime);\n }\n return result;\n }\n\n async _getLinksToPeers(\n componentDirectoryMap: ComponentMap<string>,\n options: {\n finalRootDir: string;\n linkToDir: string;\n }\n ): Promise<LinkToDirResult[]> {\n const peers = new Set<string>();\n await Promise.all(\n componentDirectoryMap.toArray().map(async ([component]) => {\n const depList = this.dependencyResolver.getDependencies(component);\n const peerList = depList.byLifecycle('peer');\n peerList.forEach((dependency) => {\n if (dependency.getPackageName) {\n peers.add(dependency.getPackageName());\n }\n });\n })\n );\n const fromDir = path.join(options.finalRootDir, 'node_modules');\n const toDir = path.join(options.linkToDir, 'node_modules');\n return Array.from(peers).map((packageName) => ({\n componentId: packageName,\n linksDetail: {\n packageName,\n from: path.join(fromDir, packageName),\n to: path.join(toDir, packageName),\n },\n }));\n }\n\n async linkCoreAspectsAndLegacy(\n rootDir: string,\n componentIds: ComponentID[] = [],\n options: Pick<LinkingOptions, 'linkTeambitBit' | 'linkCoreAspects'> = {}\n ) {\n const result: LinkResults = {};\n const componentIdsWithoutVersions: string[] = [];\n componentIds.map((id) => {\n componentIdsWithoutVersions.push(id.toString({ ignoreVersion: true }));\n return undefined;\n });\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (linkingOpts.linkTeambitBit && !this.isBitRepoWorkspace(rootDir)) {\n const bitLink = await this.linkBitAspectIfNotExist(\n path.join(rootDir, 'node_modules'),\n componentIdsWithoutVersions\n );\n result.teambitBitLink = bitLink;\n }\n\n let mainAspectPath = result.teambitBitLink?.linkDetail.from;\n if (!mainAspectPath && this.aspectLoader.mainAspect) {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n mainAspectPath = path.join(rootDir, 'node_modules', this.aspectLoader.mainAspect.packageName);\n }\n if (linkingOpts.linkCoreAspects && !this.isBitRepoWorkspace(rootDir)) {\n const hasLocalInstallation = !linkingOpts.linkTeambitBit;\n if (mainAspectPath) {\n result.coreAspectsLinks = await this.linkNonExistingCoreAspects(componentIdsWithoutVersions, {\n targetModulesDir: path.join(rootDir, 'node_modules'),\n mainAspectPath,\n hasLocalInstallation,\n });\n } else {\n result.coreAspectsLinks = [];\n }\n }\n\n if (mainAspectPath) {\n result.teambitLegacyLink = this.linkNonAspectCorePackages(rootDir, 'legacy', mainAspectPath);\n result.harmonyLink = this.linkNonAspectCorePackages(rootDir, 'harmony', mainAspectPath);\n }\n return result;\n }\n\n private async linkToDir(rootDir: string, targetDir: string, components: Component[]): Promise<LinkToDirResult[]> {\n const results: LinkToDirResult[] = components.map((component) => {\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n return {\n componentId: component.id.toString(),\n linksDetail: {\n packageName: componentPackageName,\n from: path.join(rootDir, 'node_modules', componentPackageName),\n to: path.join(targetDir, 'node_modules', componentPackageName),\n },\n };\n });\n return results;\n }\n\n /**\n * Add symlinks from the node_modules in the component's root-dir to the workspace node_modules\n * of the component. e.g.\n * <ws-root>/node_modules/comp1/node_modules/<dep> -> <ws-root>/components/comp1/node_modules/<dep>\n * This is needed because the component is compiled into the dist folder at <ws-root>/node_modules/comp1/dist,\n * so the files in the dist folder need to find the right dependencies of comp1.\n */\n private addSymlinkFromComponentDirNMToWorkspaceDirNM(\n rootDir: string,\n componentDirectoryMap: ComponentMap<string>\n ): NestedNMDepsLinksResult[] {\n const rootNodeModules = path.join(rootDir, 'node_modules');\n const getPackagesFoldersToLink = (dir: string, parent?: string): NestedModuleFolderEntry[] => {\n const folders = fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((dirent) => {\n if (dirent.name.startsWith('.')) {\n return false;\n }\n return dirent.isDirectory() || dirent.isSymbolicLink();\n })\n .map((dirent) => {\n const dirPath = path.join(dir, dirent.name);\n const moduleName = parent ? `${parent}/${dirent.name}` : dirent.name;\n // If we have a folder with a name of built in module (like events)\n // the resolve from will resolve it from the core, so it will return something like 'events'\n // instead of the path.\n // adding a '/' at the end solve this\n const moduleNameToResolve = isBuiltinModule(moduleName) ? `${moduleName}/` : moduleName;\n // This is a scoped package, need to go inside\n if (dirent.name.startsWith('@')) {\n return getPackagesFoldersToLink(dirPath, dirent.name);\n }\n\n if (dirent.isSymbolicLink()) {\n const resolvedModuleFrom = resolveModuleFromDir(dir, moduleNameToResolve);\n if (!resolvedModuleFrom) {\n return {\n moduleName,\n path: dirPath,\n };\n }\n return {\n origPath: dirPath,\n moduleName,\n path: resolveModuleDirFromFile(resolvedModuleFrom, moduleName),\n };\n }\n return {\n moduleName,\n path: dirPath,\n };\n });\n return flatten(folders);\n };\n const linksOfAllComponents = componentDirectoryMap.toArray().map(([component, dir]) => {\n const compDirNM = path.join(dir, 'node_modules');\n if (!fs.existsSync(compDirNM)) return undefined;\n // TODO: support modules with scoped packages (start with @) - we need to make this logic 2 levels\n\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n const innerNMofComponentInNM = path.join(rootNodeModules, componentPackageName);\n // If the folder itself is a symlink, do not try to symlink inside it\n if (isPathSymlink(innerNMofComponentInNM)) {\n return undefined;\n }\n const packagesFoldersToLink: NestedModuleFolderEntry[] = getPackagesFoldersToLink(compDirNM);\n fs.ensureDirSync(innerNMofComponentInNM);\n\n const oneComponentLinks: LinkDetail[] = packagesFoldersToLink.map((folderEntry: NestedModuleFolderEntry) => {\n const linkTarget = path.join(innerNMofComponentInNM, 'node_modules', folderEntry?.moduleName);\n const linkSrc = folderEntry.path;\n // This works as well, consider using it instead\n // const linkSrc = folderEntry.origPath || folderEntry.path;\n const origPath = folderEntry.origPath ? `(${folderEntry.origPath})` : '';\n const linkDetail: LinkDetail = {\n packageName: folderEntry.moduleName,\n from: `${linkSrc} ${origPath}`,\n to: linkTarget,\n };\n this.logger.info(\n `linking nested dependency ${folderEntry.moduleName} for component ${component}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n return linkDetail;\n });\n\n const filteredLinks = compact(oneComponentLinks);\n return {\n componentId: component.id.toString(),\n linksDetail: filteredLinks,\n };\n });\n const filteredLinks = compact(linksOfAllComponents);\n return filteredLinks;\n }\n\n private async linkDepsResolvedFromEnv(\n componentDirectoryMap: ComponentMap<string>\n ): Promise<Array<DepsLinkedToEnvResult>> {\n const componentsNeedLinks: {\n component: Component;\n dir: string;\n env;\n resolvedFromEnv;\n envId?: string;\n envDir?: string;\n }[] = [];\n\n const componentsNeedLinksP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const policy = await this.dependencyResolver.getPolicy(component);\n const resolvedFromEnv = policy.getResolvedFromEnv();\n // Nothing should be resolved from env, do nothing\n if (!resolvedFromEnv.length) {\n return;\n }\n const env = this.envs.getEnv(component);\n const componentNeedLink = {\n component,\n dir,\n env,\n resolvedFromEnv,\n };\n componentsNeedLinks.push(componentNeedLink);\n });\n\n await Promise.all(componentsNeedLinksP);\n // Stop if there are not components needs to be linked\n if (!componentsNeedLinks || !componentsNeedLinks.length) return [];\n const envsStringIds = componentsNeedLinks.map((obj) => obj.env.id);\n const uniqEnvIds = uniq(envsStringIds);\n const host = this.componentAspect.getHost();\n const resolvedEnvIds = await host.resolveMultipleComponentIds(uniqEnvIds);\n const resolvedAspects = await host.resolveAspects(undefined, resolvedEnvIds);\n const resolvedAspectsIndex = resolvedAspects.reduce((acc, curr) => {\n if (curr.getId) {\n acc[curr.getId] = curr;\n }\n return acc;\n }, {});\n const allLinksP = componentsNeedLinks.map(async (entry) => {\n const oneComponentLinksP: Array<LinkDetail | undefined> = entry.resolvedFromEnv.entries.map(async (depEntry) => {\n const linkTarget = path.join(entry.dir, 'node_modules', depEntry.dependencyId);\n const envDir = resolvedAspectsIndex[entry.env.id].aspectPath;\n const resolvedModule = resolveModuleFromDir(envDir, depEntry.dependencyId);\n if (!resolvedModule) {\n this.logger.console(`could not resolve ${depEntry.dependencyId} from env directory ${envDir}`);\n return undefined;\n }\n const linkSrc = resolveModuleDirFromFile(resolvedModule, depEntry.dependencyId);\n const linkDetail: LinkDetail = {\n packageName: depEntry.dependencyId,\n from: linkSrc,\n to: linkTarget,\n };\n this.logger.info(\n `linking dependency ${depEntry.dependencyId} from env directory ${envDir}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n\n return linkDetail;\n });\n const oneComponentLinks = await Promise.all(oneComponentLinksP);\n const filteredLinks = compact(oneComponentLinks);\n const depsLinkedToEnvResult: DepsLinkedToEnvResult = {\n componentId: entry.component.id.toString(),\n linksDetail: filteredLinks,\n };\n return depsLinkedToEnvResult;\n });\n return Promise.all(allLinksP);\n }\n\n private async linkBitAspectIfNotExist(\n dir: string,\n componentIds: string[]\n ): Promise<CoreAspectLinkResult | undefined> {\n if (!this.aspectLoader.mainAspect) return undefined;\n const mainAspectId = this.aspectLoader.mainAspect.id;\n const existing = componentIds.find((id) => {\n return id === mainAspectId;\n });\n\n if (existing) {\n return undefined;\n }\n const linkDetail = await this.linkBit(dir);\n if (!linkDetail) return undefined;\n return {\n aspectId: mainAspectId,\n linkDetail,\n };\n }\n\n async linkBit(dir: string): Promise<LinkDetail | undefined> {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n const target = path.join(dir, this.aspectLoader.mainAspect.packageName);\n const shouldSymlink = this.removeSymlinkTarget(target);\n if (!shouldSymlink) return undefined;\n const src =\n this._getPkgPathFromCurrentBitDir(this.aspectLoader.mainAspect.packageName) ?? this.aspectLoader.mainAspect.path;\n await fs.ensureDir(path.dirname(target));\n return { packageName: this.aspectLoader.mainAspect.packageName, from: src, to: target };\n }\n\n private async linkNonExistingCoreAspects(\n componentIds: string[],\n opts: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): Promise<CoreAspectLinkResult[]> {\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const filtered = coreAspectsIds.filter((aspectId) => {\n // Remove bit aspect\n if (aspectId === this.aspectLoader.mainAspect?.id) {\n return false;\n }\n // TODO: use the aspect id once default scope is resolved and the component dir map has the id with scope\n const name = getCoreAspectName(aspectId);\n const existing = componentIds.find((componentId) => {\n return componentId === name || componentId === aspectId;\n });\n if (existing) {\n return false;\n }\n return true;\n });\n\n this.logger.debug(`linkNonExistingCoreAspects: linking the following core aspects ${filtered.join()}`);\n\n const results = filtered.map((id) => this.linkCoreAspect(id, opts));\n return compact(results);\n }\n\n private isBitRepoWorkspace(dir: string) {\n // A special condition to not link core aspects in bit workspace itself\n if (this.aspectLoader.mainAspect?.path.startsWith(dir)) {\n return true;\n }\n return false;\n }\n\n private linkCoreAspect(\n id: string,\n {\n targetModulesDir,\n mainAspectPath,\n hasLocalInstallation,\n }: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): CoreAspectLinkResult | undefined {\n const name = getCoreAspectName(id);\n const packageName = getCoreAspectPackageName(id);\n let aspectDir = path.join(mainAspectPath, 'dist', name);\n const target = path.join(targetModulesDir, packageName);\n const fromDir = this._getPkgPathFromCurrentBitDir(packageName);\n if (fromDir) {\n return { aspectId: id, linkDetail: { packageName, from: fromDir, to: target } };\n }\n const shouldSymlink = this.removeSymlinkTarget(target, hasLocalInstallation);\n if (!shouldSymlink) return undefined;\n const isAspectDirExist = fs.pathExistsSync(aspectDir);\n if (!isAspectDirExist) {\n this.logger.debug(`linkCoreAspect: aspectDir ${aspectDir} does not exist, linking it to ${target}`);\n aspectDir = getAspectDir(id);\n return { aspectId: id, linkDetail: { packageName, from: aspectDir, to: target } };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(aspectDir);\n const aspectPath = path.resolve(path.join(module.path, '..', '..'));\n this.logger.debug(`linkCoreAspect: linking aspectPath ${aspectPath} to ${target}`);\n return { aspectId: id, linkDetail: { packageName, from: aspectPath, to: target } };\n } catch (err: any) {\n throw new CoreAspectLinkError(id, err);\n }\n }\n\n /**\n * returns true if it's safe to symlink it later.\n */\n private removeSymlinkTarget(targetPath: string, hasLocalInstallation = false): boolean {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false});\n // TODO: this requires to upgrade node to v15.3.0 to have the throwIfNoEntry property (maybe upgrade fs-extra will work as well)\n // TODO: we don't use fs.pathExistsSync since it will return false in case the dest is a symlink which will result error on write\n let targetStat: Stats | undefined;\n try {\n targetStat = fs.lstatSync(targetPath);\n // eslint-disable-next-line no-empty\n } catch (e: any) {}\n if (targetStat && !hasLocalInstallation) {\n // Do not override links created by other means\n if (!targetStat.isSymbolicLink()) {\n this.logger.debug(`removing link target, target ${targetPath} already exist. skipping it`);\n return false;\n }\n return true;\n }\n return true;\n }\n\n private _getPkgPathFromCurrentBitDir(packageName: string): string | undefined {\n if (!this._currentBitDir) return undefined;\n return path.join(this._currentBitDir, 'node_modules', packageName);\n }\n\n private linkNonAspectCorePackages(rootDir: string, name: string, mainAspectPath: string): LinkDetail | undefined {\n const distDir = path.join(mainAspectPath, 'dist', name);\n\n const packageName = `@teambit/${name}`;\n const target = path.join(rootDir, 'node_modules', packageName);\n const fromDir = this._getPkgPathFromCurrentBitDir(packageName);\n if (fromDir) {\n return { packageName, from: fromDir, to: target };\n }\n const isDistDirExist = fs.pathExistsSync(distDir);\n if (!isDistDirExist) {\n const newDir = getDistDirForDevEnv(packageName);\n return { packageName, from: newDir, to: target };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(distDir);\n const resolvedPath = path.resolve(path.join(module.path, '..', '..'));\n return { packageName, from: resolvedPath, to: target };\n } catch (err: any) {\n throw new NonAspectCorePackageLinkError(err, packageName);\n }\n }\n}\n\n/**\n * When running dev env (bd) we need to get the harmony/legacy folder from the node_modules of the clone\n */\nfunction getDistDirForDevEnv(packageName: string): string {\n let moduleDirectory = require.resolve(packageName);\n let dirPath;\n if (moduleDirectory.includes(packageName)) {\n dirPath = path.join(moduleDirectory, '../..'); // to remove the \"index.js\" at the end\n } else {\n // This is usually required for the @teambit/legacy, as we re inside the nm so we can't find it in the other way\n const nmDir = __dirname.substring(0, __dirname.indexOf('@teambit'));\n dirPath = path.join(nmDir, packageName);\n moduleDirectory = require.resolve(packageName, { paths: [nmDir] });\n }\n if (!fs.existsSync(dirPath)) {\n throw new BitError(`unable to find ${packageName} in ${dirPath}`);\n }\n\n return dirPath;\n}\n\n// TODO: extract to new component\nfunction resolveModuleFromDir(fromDir: string, moduleId: string, silent = true): string | undefined {\n if (silent) {\n return resolveFrom.silent(fromDir, moduleId);\n }\n return resolveFrom(fromDir, moduleId);\n}\n\n// TODO: extract to new component\nfunction resolveModuleDirFromFile(resolvedModulePath: string, moduleId: string): string {\n const NM = 'node_modules';\n if (resolvedModulePath.includes(NM)) {\n return path.join(resolvedModulePath.slice(0, resolvedModulePath.lastIndexOf(NM) + NM.length), moduleId);\n }\n\n const [start, end] = resolvedModulePath.split('@');\n if (!end) return path.basename(resolvedModulePath);\n const versionStr = head(end.split('/'));\n return `${start}@${versionStr}`;\n}\n\nfunction isPathSymlink(folderPath: string): boolean | undefined {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false}); once upgrade fs-extra\n try {\n const stat = fs.lstatSync(folderPath);\n return stat.isSymbolicLink();\n } catch (e: any) {\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["dependency-resolver-workspace-config.ts"],"sourcesContent":["import { PeerDependencyRules } from '@pnpm/types';\nimport { WorkspacePolicyConfigObject } from './policy';\nimport { PackageImportMethod } from './package-manager';\n\nexport type NodeLinker = 'hoisted' | 'isolated';\n\nexport interface DependencyResolverWorkspaceConfig {\n policy: WorkspacePolicyConfigObject;\n /**\n * choose the package manager for Bit to use. you can choose between 'npm', 'yarn', 'pnpm'\n * and 'librarian'. our recommendation is use 'librarian' which reduces package duplicates\n * and totally removes the need of a 'node_modules' directory in your project.\n */\n packageManager: string;\n\n /**\n * A proxy server for out going network requests by the package manager\n * Used for both http and https requests (unless the httpsProxy is defined)\n */\n proxy?: string;\n\n /**\n * A proxy server for outgoing https requests by the package manager (fallback to proxy server if not defined)\n * Use this in case you want different proxy for http and https requests.\n */\n httpsProxy?: string;\n\n /**\n * A path to a file containing one or multiple Certificate Authority signing certificates.\n * allows for multiple CA's, as well as for the CA information to be stored in a file on disk.\n */\n ca?: string;\n\n /**\n * Whether or not to do SSL key validation when making requests to the registry via https\n */\n strictSsl?: string;\n\n /**\n * A client certificate to pass when accessing the registry. Values should be in PEM format (Windows calls it \"Base-64 encoded X.509 (.CER)\") with newlines replaced by the string \"\\n\". For example:\n * cert=\"-----BEGIN CERTIFICATE-----\\nXXXX\\nXXXX\\n-----END CERTIFICATE-----\"\n * It is not the path to a certificate file (and there is no \"certfile\" option).\n */\n cert?: string;\n\n /**\n * A client key to pass when accessing the registry. Values should be in PEM format with newlines replaced by the string \"\\n\". For example:\n * key=\"-----BEGIN PRIVATE KEY-----\\nXXXX\\nXXXX\\n-----END PRIVATE KEY-----\"\n * It is not the path to a key file (and there is no \"keyfile\" option).\n */\n key?: string;\n\n /**\n * A comma-separated string of domain extensions that a proxy should not be used for.\n */\n noProxy?: string;\n\n /**\n * The IP address of the local interface to use when making connections to the npm registry.\n */\n localAddress?: string;\n\n /**\n * How many times to retry if Bit fails to fetch from the registry.\n */\n fetchRetries?: number;\n\n /*\n * The exponential factor for retry backoff.\n */\n fetchRetryFactor?: number;\n\n /*\n * The minimum (base) timeout for retrying requests.\n */\n fetchRetryMintimeout?: number;\n\n /*\n * The maximum fallback timeout to ensure the retry factor does not make requests too long.\n */\n fetchRetryMaxtimeout?: number;\n\n /*\n * The maximum amount of time (in milliseconds) to wait for HTTP requests to complete.\n */\n fetchTimeout?: number;\n\n /*\n * The maximum number of connections to use per origin (protocol/host/port combination).\n */\n maxSockets?: number;\n\n /*\n * Controls the maximum number of HTTP(S) requests to process simultaneously.\n */\n networkConcurrency?: number;\n\n /*\n * Set the prefix to use when adding dependency to workspace.jsonc via bit install\n * to lock version to exact version you can use empty string (default)\n */\n savePrefix?: string;\n\n /*\n * in case you want to disable this proxy set this config to false\n *\n */\n installFromBitDevRegistry?: boolean;\n\n /*\n * map of extra arguments to pass to the configured package manager upon the installation\n * of dependencies.\n */\n packageManagerArgs?: string[];\n\n /*\n * This field allows to instruct the package manager to override any dependency in the dependency graph.\n * This is useful to enforce all your packages to use a single version of a dependency, backport a fix,\n * or replace a dependency with a fork.\n */\n overrides?: Record<string, string>;\n\n /**\n * This is similar to overrides, but will only affect installation in capsules.\n * In case overrides is configured and this not, the regular overrides will affect capsules as well.\n * in case both configured, capsulesOverrides will be used for capsules, and overrides will affect the workspace.\n */\n capsulesOverrides?: Record<string, string>;\n\n /*\n * Defines what linker should be used for installing Node.js packages.\n * Supported values are hoisted and isolated.\n */\n nodeLinker?: NodeLinker;\n\n /*\n * Controls the way packages are imported from the store.\n */\n packageImportMethod?: PackageImportMethod;\n\n /*\n * Use and cache the results of (pre/post)install hooks.\n */\n sideEffectsCache?: boolean;\n\n /*\n * The list of components that should be installed in isolation from the workspace.\n * The component's package names should be used in this list, not their component IDs.\n */\n rootComponents?: boolean;\n\n /*\n * The node version to use when checking a package's engines setting.\n */\n nodeVersion?: string;\n\n /*\n * Refuse to install any package that claims to not be compatible with the current Node.js version.\n */\n engineStrict?: boolean;\n\n /*\n * Rules to mute specific peer dependeny warnings.\n */\n peerDependencyRules?: PeerDependencyRules;\n\n /*\n * This setting is \"true\" by default and tells bit to link core aspects to the node_modules of the workspace.\n * It only makes sense to set this to \"false\" in a workspace in which core aspects are actually developed.\n */\n linkCoreAspects?: boolean;\n\n /**\n * When false, Bit will create a shared node_modules directory for all components in a capsule.\n */\n isolatedCapsules?: boolean;\n\n /*\n * Ignore the builds of specific dependencies. The \"preinstall\", \"install\", and \"postinstall\" scripts\n * of the listed packages will not be executed during installation.\n */\n neverBuiltDependencies?: string[];\n\n /**\n * If true, staleness checks for cached data will be bypassed, but missing data will be requested from the server.\n */\n preferOffline?: boolean;\n\n /**\n * When true, components in capsules are symlinked into their own node_modules.\n */\n capsuleSelfReference?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["dependency-resolver-workspace-config.ts"],"sourcesContent":["import { PeerDependencyRules } from '@pnpm/types';\nimport { WorkspacePolicyConfigObject } from './policy';\nimport { PackageImportMethod } from './package-manager';\n\nexport type NodeLinker = 'hoisted' | 'isolated';\n\nexport interface DependencyResolverWorkspaceConfig {\n policy: WorkspacePolicyConfigObject;\n /**\n * choose the package manager for Bit to use. you can choose between 'npm', 'yarn', 'pnpm'\n * and 'librarian'. our recommendation is use 'librarian' which reduces package duplicates\n * and totally removes the need of a 'node_modules' directory in your project.\n */\n packageManager: string;\n\n /**\n * A proxy server for out going network requests by the package manager\n * Used for both http and https requests (unless the httpsProxy is defined)\n */\n proxy?: string;\n\n /**\n * A proxy server for outgoing https requests by the package manager (fallback to proxy server if not defined)\n * Use this in case you want different proxy for http and https requests.\n */\n httpsProxy?: string;\n\n /**\n * A path to a file containing one or multiple Certificate Authority signing certificates.\n * allows for multiple CA's, as well as for the CA information to be stored in a file on disk.\n */\n ca?: string;\n\n /**\n * Whether or not to do SSL key validation when making requests to the registry via https\n */\n strictSsl?: string;\n\n /**\n * A client certificate to pass when accessing the registry. Values should be in PEM format (Windows calls it \"Base-64 encoded X.509 (.CER)\") with newlines replaced by the string \"\\n\". For example:\n * cert=\"-----BEGIN CERTIFICATE-----\\nXXXX\\nXXXX\\n-----END CERTIFICATE-----\"\n * It is not the path to a certificate file (and there is no \"certfile\" option).\n */\n cert?: string;\n\n /**\n * A client key to pass when accessing the registry. Values should be in PEM format with newlines replaced by the string \"\\n\". For example:\n * key=\"-----BEGIN PRIVATE KEY-----\\nXXXX\\nXXXX\\n-----END PRIVATE KEY-----\"\n * It is not the path to a key file (and there is no \"keyfile\" option).\n */\n key?: string;\n\n /**\n * A comma-separated string of domain extensions that a proxy should not be used for.\n */\n noProxy?: string;\n\n /**\n * The IP address of the local interface to use when making connections to the npm registry.\n */\n localAddress?: string;\n\n /**\n * How many times to retry if Bit fails to fetch from the registry.\n */\n fetchRetries?: number;\n\n /*\n * The exponential factor for retry backoff.\n */\n fetchRetryFactor?: number;\n\n /*\n * The minimum (base) timeout for retrying requests.\n */\n fetchRetryMintimeout?: number;\n\n /*\n * The maximum fallback timeout to ensure the retry factor does not make requests too long.\n */\n fetchRetryMaxtimeout?: number;\n\n /*\n * The maximum amount of time (in milliseconds) to wait for HTTP requests to complete.\n */\n fetchTimeout?: number;\n\n /*\n * The maximum number of connections to use per origin (protocol/host/port combination).\n */\n maxSockets?: number;\n\n /*\n * Controls the maximum number of HTTP(S) requests to process simultaneously.\n */\n networkConcurrency?: number;\n\n /*\n * Set the prefix to use when adding dependency to workspace.jsonc via bit install\n * to lock version to exact version you can use empty string (default)\n */\n savePrefix?: string;\n\n /*\n * in case you want to disable this proxy set this config to false\n *\n */\n installFromBitDevRegistry?: boolean;\n\n /*\n * map of extra arguments to pass to the configured package manager upon the installation\n * of dependencies.\n */\n packageManagerArgs?: string[];\n\n /*\n * This field allows to instruct the package manager to override any dependency in the dependency graph.\n * This is useful to enforce all your packages to use a single version of a dependency, backport a fix,\n * or replace a dependency with a fork.\n */\n overrides?: Record<string, string>;\n\n /**\n * This is similar to overrides, but will only affect installation in capsules.\n * In case overrides is configured and this not, the regular overrides will affect capsules as well.\n * in case both configured, capsulesOverrides will be used for capsules, and overrides will affect the workspace.\n */\n capsulesOverrides?: Record<string, string>;\n\n /*\n * Defines what linker should be used for installing Node.js packages.\n * Supported values are hoisted and isolated.\n */\n nodeLinker?: NodeLinker;\n\n /*\n * Controls the way packages are imported from the store.\n */\n packageImportMethod?: PackageImportMethod;\n\n /*\n * Use and cache the results of (pre/post)install hooks.\n */\n sideEffectsCache?: boolean;\n\n /*\n * The list of components that should be installed in isolation from the workspace.\n * The component's package names should be used in this list, not their component IDs.\n */\n rootComponents?: boolean;\n\n /*\n * The node version to use when checking a package's engines setting.\n */\n nodeVersion?: string;\n\n /*\n * Refuse to install any package that claims to not be compatible with the current Node.js version.\n */\n engineStrict?: boolean;\n\n /*\n * Rules to mute specific peer dependeny warnings.\n */\n peerDependencyRules?: PeerDependencyRules;\n\n /*\n * This setting is \"true\" by default and tells bit to link core aspects to the node_modules of the workspace.\n * It only makes sense to set this to \"false\" in a workspace in which core aspects are actually developed.\n */\n linkCoreAspects?: boolean;\n\n /**\n * When false, Bit will create a shared node_modules directory for all components in a capsule.\n */\n isolatedCapsules?: boolean;\n\n /*\n * Ignore the builds of specific dependencies. The \"preinstall\", \"install\", and \"postinstall\" scripts\n * of the listed packages will not be executed during installation.\n */\n neverBuiltDependencies?: string[];\n\n /**\n * If true, staleness checks for cached data will be bypassed, but missing data will be requested from the server.\n */\n preferOffline?: boolean;\n\n /**\n * When true, components in capsules are symlinked into their own node_modules.\n */\n capsuleSelfReference?: boolean;\n\n /**\n * Tells pnpm which packages should be hoisted to node_modules/.pnpm/node_modules.\n * By default, all packages are hoisted - however, if you know that only some flawed packages have phantom dependencies,\n * you can use this option to exclusively hoist the phantom dependencies (recommended).\n */\n hoistPatterns?: string[];\n\n /**\n * Tells pnpm to automatically install peer dependencies. It is true by default.\n */\n autoInstallPeers?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","DependencyResolverAspect","exports","Aspect","create","id","dependencies","defaultConfig"],"sources":["dependency-resolver.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const DependencyResolverAspect = Aspect.create({\n id: 'teambit.dependencies/dependency-resolver',\n dependencies: [],\n defaultConfig: {},\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EACpDC,EAAE,EAAE,0CAA0C;EAC9CC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"names":["_harmony","data","require","DependencyResolverAspect","exports","Aspect","create","id","dependencies","defaultConfig"],"sources":["dependency-resolver.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const DependencyResolverAspect = Aspect.create({\n id: 'teambit.dependencies/dependency-resolver',\n dependencies: [],\n defaultConfig: {},\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EACpDC,EAAE,EAAE,0CAA0C;EAC9CC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","obj","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["dependency-resolver.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/dependencies.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAA0D,CAAE,CACxF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","obj","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["dependency-resolver.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/dependencies.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAA0D,CAAE,CACxF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.dependencyResolverSchema = dependencyResolverSchema;
7
7
  function _graphqlTag() {
8
- const data = _interopRequireDefault(require("graphql-tag"));
8
+ const data = require("graphql-tag");
9
9
  _graphqlTag = function () {
10
10
  return data;
11
11
  };
12
12
  return data;
13
13
  }
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -24,7 +23,7 @@ var DependencyTypes = /*#__PURE__*/function (DependencyTypes) {
24
23
  }(DependencyTypes || {});
25
24
  function dependencyResolverSchema(dependencyResolver) {
26
25
  return {
27
- typeDefs: (0, _graphqlTag().default)`
26
+ typeDefs: (0, _graphqlTag().gql)`
28
27
  interface Dependency {
29
28
  id: String!
30
29
  version: String!
@@ -1 +1 @@
1
- {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","DependencyTypes","dependencyResolverSchema","dependencyResolver","typeDefs","gql","resolvers","Component","componentPolicy","component","variantPolicy","getPolicy","serialize","dependencies","dependenciesList","getDependencies","serialized","map","type","__type","__typename","sort","serializedDepA","serializedDepB","propToCompareA","packageName","id","propToCompareB","localeCompare","Dependency","__resolveType","dependency"],"sources":["dependency-resolver.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\n\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\nimport { Dependency } from './dependencies';\n\nenum DependencyTypes {\n component = 'ComponentDependency',\n package = 'PackageDependency',\n}\n\nexport function dependencyResolverSchema(dependencyResolver: DependencyResolverMain): Schema {\n return {\n typeDefs: gql`\n interface Dependency {\n id: String!\n version: String!\n lifecycle: String!\n type: String!\n packageName: String # TODO - remove this after resolving the issue with apollo client when packages dont get packageName\n }\n # union Dependency = PackageDependency | ComponentDependency\n\n type ComponentIdObject {\n scope: String!\n name: String!\n version: String!\n }\n\n type PackageDependency implements Dependency {\n id: String!\n version: String!\n lifecycle: String!\n type: String!\n packageName: String # TODO - remove this after resolving the issue with apollo client when packages dont get packageName\n }\n\n type ComponentDependency implements Dependency {\n id: String!\n version: String!\n lifecycle: String!\n isExtension: Boolean!\n packageName: String!\n type: String!\n }\n\n type PolicyValue {\n version: String!\n resolveFromEnv: Boolean\n }\n\n type Policy {\n dependencyId: String!\n lifecycleType: String!\n value: PolicyValue!\n }\n\n extend type Component {\n dependencies: [Dependency]\n componentPolicy: [Policy]\n }\n `,\n resolvers: {\n Component: {\n componentPolicy: async (component: Component) => {\n const variantPolicy = await dependencyResolver.getPolicy(component);\n return variantPolicy.serialize();\n },\n dependencies: async (component: Component) => {\n const dependenciesList = await dependencyResolver.getDependencies(component);\n const serialized = dependenciesList.serialize();\n return serialized\n .map((serialize) => {\n const type = DependencyTypes[serialize.__type];\n // @ts-ignore\n serialize.type = serialize.__type;\n // @ts-ignore\n delete serialize.__type;\n return {\n __typename: type,\n ...serialize,\n };\n })\n .sort((serializedDepA, serializedDepB) => {\n const propToCompareA = serializedDepA.packageName || serializedDepA.id;\n const propToCompareB = serializedDepB.packageName || serializedDepB.id;\n return propToCompareA.localeCompare(propToCompareB);\n });\n },\n Dependency: {\n __resolveType: (dependency: Dependency) => {\n return DependencyTypes[dependency.type];\n },\n },\n },\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_graphqlTag","data","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","DependencyTypes","dependencyResolverSchema","dependencyResolver","typeDefs","gql","resolvers","Component","componentPolicy","component","variantPolicy","getPolicy","serialize","dependencies","dependenciesList","getDependencies","serialized","map","type","__type","__typename","sort","serializedDepA","serializedDepB","propToCompareA","packageName","id","propToCompareB","localeCompare","Dependency","__resolveType","dependency"],"sources":["dependency-resolver.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport { gql } from 'graphql-tag';\n\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\nimport { Dependency } from './dependencies';\n\nenum DependencyTypes {\n component = 'ComponentDependency',\n package = 'PackageDependency',\n}\n\nexport function dependencyResolverSchema(dependencyResolver: DependencyResolverMain): Schema {\n return {\n typeDefs: gql`\n interface Dependency {\n id: String!\n version: String!\n lifecycle: String!\n type: String!\n packageName: String # TODO - remove this after resolving the issue with apollo client when packages dont get packageName\n }\n # union Dependency = PackageDependency | ComponentDependency\n\n type ComponentIdObject {\n scope: String!\n name: String!\n version: String!\n }\n\n type PackageDependency implements Dependency {\n id: String!\n version: String!\n lifecycle: String!\n type: String!\n packageName: String # TODO - remove this after resolving the issue with apollo client when packages dont get packageName\n }\n\n type ComponentDependency implements Dependency {\n id: String!\n version: String!\n lifecycle: String!\n isExtension: Boolean!\n packageName: String!\n type: String!\n }\n\n type PolicyValue {\n version: String!\n resolveFromEnv: Boolean\n }\n\n type Policy {\n dependencyId: String!\n lifecycleType: String!\n value: PolicyValue!\n }\n\n extend type Component {\n dependencies: [Dependency]\n componentPolicy: [Policy]\n }\n `,\n resolvers: {\n Component: {\n componentPolicy: async (component: Component) => {\n const variantPolicy = await dependencyResolver.getPolicy(component);\n return variantPolicy.serialize();\n },\n dependencies: async (component: Component) => {\n const dependenciesList = await dependencyResolver.getDependencies(component);\n const serialized = dependenciesList.serialize();\n return serialized\n .map((serialize) => {\n const type = DependencyTypes[serialize.__type];\n // @ts-ignore\n serialize.type = serialize.__type;\n // @ts-ignore\n delete serialize.__type;\n return {\n __typename: type,\n ...serialize,\n };\n })\n .sort((serializedDepA, serializedDepB) => {\n const propToCompareA = serializedDepA.packageName || serializedDepA.id;\n const propToCompareB = serializedDepB.packageName || serializedDepB.id;\n return propToCompareA.localeCompare(propToCompareB);\n });\n },\n Dependency: {\n __resolveType: (dependency: Dependency) => {\n return DependencyTypes[dependency.type];\n },\n },\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}