@teambit/workspace.modules.node-modules-linker 0.0.284 → 0.0.286

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,15 @@
1
1
  import path from 'path';
2
- import { Workspace } from '@teambit/workspace';
3
- import { IssuesClasses, RelativeComponentsAuthoredEntry } from '@teambit/component-issues';
4
- import { Component } from '@teambit/component';
5
- import { ComponentID, ComponentIdList } from '@teambit/component-id';
2
+ import type { Workspace } from '@teambit/workspace';
3
+ import type { RelativeComponentsAuthoredEntry } from '@teambit/component-issues';
4
+ import { IssuesClasses } from '@teambit/component-issues';
5
+ import type { Component } from '@teambit/component';
6
+ import type { ComponentID } from '@teambit/component-id';
7
+ import { ComponentIdList } from '@teambit/component-id';
6
8
  import { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, replacePackageName } from '@teambit/legacy.utils';
7
9
  import { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';
8
- import { DataToPersist, SourceFile } from '@teambit/component.sources';
9
- import { ConsumerComponent } from '@teambit/legacy.consumer-component';
10
+ import type { SourceFile } from '@teambit/component.sources';
11
+ import { DataToPersist } from '@teambit/component.sources';
12
+ import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
10
13
 
11
14
  export type CodemodResult = {
12
15
  id: ComponentID;
@@ -1,5 +1,5 @@
1
- import { Workspace } from '@teambit/workspace';
2
- import { ComponentID } from '@teambit/component-id';
1
+ import type { Workspace } from '@teambit/workspace';
2
+ import type { ComponentID } from '@teambit/component-id';
3
3
  export type CodemodResult = {
4
4
  id: ComponentID;
5
5
  changedFiles: string[];
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentIssues","_componentId","_legacy","_pkgModules","_component","e","__esModule","default","changeCodeFromRelativeToModulePaths","workspace","bitIds","components","loadComponents","componentsWithRelativeIssues","filter","c","state","issues","getIssue","IssuesClasses","RelativeComponentsAuthored","dataToPersist","DataToPersist","codemodResults","Promise","all","map","component","files","warnings","codemodComponent","addManyFiles","id","changedFiles","f","relative","persistAllToFS","idsToReload","length","reloadComponents","compIds","clearAllComponentsCache","failedComps","toString","join","Error","componentsIds","ComponentIdList","fromArray","listIds","getMany","filesystem","file","relativeInstances","pathNormalizeToLinux","fileBefore","contents","newFileString","relativeEntry","componentId","requiredComponent","get","consumerComp","_consumer","packageName","componentIdToPackageName","cssFamily","isCss","includes","extname","packageNameSupportCss","stringToReplace","getNameWithoutInternalPath","replacePackageName","Buffer","from","push","importSource","componentMap","consumer","bitMap","getComponentIfExist","rootDir","mainFile","pathJoinLinux","filePathRelativeToWorkspace","relativePath","sourceRelativePath","internalPath","pathRelativeLinux","removeLastOccurrence","str","toRemove","replace","RegExp","endsWith","internalPathNoExt","path","internalPathNoIndex"],"sources":["codemod-components.ts"],"sourcesContent":["import path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport { IssuesClasses, RelativeComponentsAuthoredEntry } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, replacePackageName } from '@teambit/legacy.utils';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { DataToPersist, SourceFile } from '@teambit/component.sources';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type CodemodResult = {\n id: ComponentID;\n changedFiles: string[];\n warnings?: string[];\n};\n\nexport async function changeCodeFromRelativeToModulePaths(\n workspace: Workspace,\n bitIds: ComponentID[]\n): Promise<CodemodResult[]> {\n const components = await loadComponents(workspace, bitIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n const dataToPersist = new DataToPersist();\n const codemodResults = await Promise.all(\n componentsWithRelativeIssues.map(async (component) => {\n const { files, warnings } = await codemodComponent(workspace, component);\n dataToPersist.addManyFiles(files);\n return { id: component.id, changedFiles: files.map((f) => f.relative), warnings };\n })\n );\n await dataToPersist.persistAllToFS();\n const idsToReload = codemodResults.filter((c) => !c.warnings || c.warnings.length === 0).map((c) => c.id);\n await reloadComponents(workspace, idsToReload);\n\n return codemodResults.filter((c) => c.changedFiles.length || c.warnings);\n}\n\nasync function reloadComponents(workspace: Workspace, compIds: ComponentID[]) {\n workspace.clearAllComponentsCache();\n if (!compIds.length) return;\n const components = await loadComponents(workspace, compIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n if (componentsWithRelativeIssues.length) {\n const failedComps = componentsWithRelativeIssues.map((c) => c.id.toString()).join(', ');\n throw new Error(`failed rewiring the following components: ${failedComps}`);\n }\n}\n\nasync function loadComponents(workspace: Workspace, bitIds: ComponentID[]): Promise<Component[]> {\n const componentsIds = bitIds.length ? ComponentIdList.fromArray(bitIds) : await workspace.listIds();\n const components = await workspace.getMany(componentsIds);\n\n return components;\n}\n\nasync function codemodComponent(\n workspace: Workspace,\n component: Component\n): Promise<{ files: SourceFile[]; warnings?: string[] }> {\n const issues = component.state.issues;\n const files: SourceFile[] = [];\n if (!issues || !issues.getIssue(IssuesClasses.RelativeComponentsAuthored)) return { files };\n const warnings: string[] = [];\n await Promise.all(\n component.filesystem.files.map(async (file: SourceFile) => {\n const relativeInstances = issues.getIssue(IssuesClasses.RelativeComponentsAuthored)?.data[\n pathNormalizeToLinux(file.relative)\n ];\n if (!relativeInstances) return;\n // @ts-ignore\n const fileBefore = file.contents.toString() as string;\n let newFileString = fileBefore;\n await Promise.all(\n relativeInstances.map(async (relativeEntry: RelativeComponentsAuthoredEntry) => {\n const id = relativeEntry.componentId;\n const requiredComponent = await workspace.get(id);\n const consumerComp = requiredComponent.state._consumer as ConsumerComponent;\n const packageName = componentIdToPackageName({ ...consumerComp, id });\n const cssFamily = ['.css', '.scss', '.less', '.sass'];\n const isCss = cssFamily.includes(file.extname);\n const packageNameSupportCss = isCss ? `~${packageName}` : packageName;\n const stringToReplace = getNameWithoutInternalPath(workspace, relativeEntry);\n // @todo: the \"dist\" should be replaced by the compiler dist-dir.\n // newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss, 'dist');\n newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss);\n })\n );\n if (fileBefore !== newFileString) {\n // @ts-ignore\n file.contents = Buffer.from(newFileString);\n files.push(file);\n }\n })\n );\n return { files, warnings };\n}\n\n/**\n * e.g.\n * importSource: '../workspace/workspace.ui'\n * sourceRelativePath: 'extensions/workspace/workspace.ui.tsx'\n * rootDir in .bitmap: 'extensions/workspace'.\n *\n * expected to return \"../workspace\", as this is the path to the package root without the internal path.\n *\n * eventually, only this string is replaced by the new package-name and the internal-path part\n * remains intact. ('../workspace/workspace.ui' => '@bit/workspace/workspace.ui').\n */\nfunction getNameWithoutInternalPath(workspace: Workspace, relativeEntry: RelativeComponentsAuthoredEntry): string {\n const importSource = relativeEntry.importSource;\n const componentMap = workspace.consumer.bitMap.getComponentIfExist(relativeEntry.componentId);\n if (!componentMap) return importSource;\n const rootDir = componentMap.rootDir;\n if (!rootDir) return importSource;\n const mainFile = pathJoinLinux(rootDir, componentMap.mainFile);\n const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;\n if (filePathRelativeToWorkspace === mainFile) {\n return importSource;\n }\n // the importSource is not the main-file but an internal file, remove the internal part.\n const internalPath = pathRelativeLinux(rootDir, filePathRelativeToWorkspace);\n const removeLastOccurrence = (str, toRemove) => str.replace(new RegExp(`/${toRemove}$`), '');\n if (importSource.endsWith(internalPath)) {\n return removeLastOccurrence(importSource, internalPath);\n }\n const internalPathNoExt = internalPath.replace(path.extname(internalPath), '');\n if (importSource.endsWith(internalPathNoExt)) {\n return removeLastOccurrence(importSource, internalPathNoExt);\n }\n const internalPathNoIndex = removeLastOccurrence(internalPathNoExt, 'index');\n if (importSource.endsWith(internalPathNoIndex)) {\n return removeLastOccurrence(importSource, internalPathNoIndex);\n }\n\n // unable to find anything useful. just return the importSource.\n return importSource;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentIssues","_componentId","_legacy","_pkgModules","_component","e","__esModule","default","changeCodeFromRelativeToModulePaths","workspace","bitIds","components","loadComponents","componentsWithRelativeIssues","filter","c","state","issues","getIssue","IssuesClasses","RelativeComponentsAuthored","dataToPersist","DataToPersist","codemodResults","Promise","all","map","component","files","warnings","codemodComponent","addManyFiles","id","changedFiles","f","relative","persistAllToFS","idsToReload","length","reloadComponents","compIds","clearAllComponentsCache","failedComps","toString","join","Error","componentsIds","ComponentIdList","fromArray","listIds","getMany","filesystem","file","relativeInstances","pathNormalizeToLinux","fileBefore","contents","newFileString","relativeEntry","componentId","requiredComponent","get","consumerComp","_consumer","packageName","componentIdToPackageName","cssFamily","isCss","includes","extname","packageNameSupportCss","stringToReplace","getNameWithoutInternalPath","replacePackageName","Buffer","from","push","importSource","componentMap","consumer","bitMap","getComponentIfExist","rootDir","mainFile","pathJoinLinux","filePathRelativeToWorkspace","relativePath","sourceRelativePath","internalPath","pathRelativeLinux","removeLastOccurrence","str","toRemove","replace","RegExp","endsWith","internalPathNoExt","path","internalPathNoIndex"],"sources":["codemod-components.ts"],"sourcesContent":["import path from 'path';\nimport type { Workspace } from '@teambit/workspace';\nimport type { RelativeComponentsAuthoredEntry } from '@teambit/component-issues';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type { Component } from '@teambit/component';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, replacePackageName } from '@teambit/legacy.utils';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { SourceFile } from '@teambit/component.sources';\nimport { DataToPersist } from '@teambit/component.sources';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type CodemodResult = {\n id: ComponentID;\n changedFiles: string[];\n warnings?: string[];\n};\n\nexport async function changeCodeFromRelativeToModulePaths(\n workspace: Workspace,\n bitIds: ComponentID[]\n): Promise<CodemodResult[]> {\n const components = await loadComponents(workspace, bitIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n const dataToPersist = new DataToPersist();\n const codemodResults = await Promise.all(\n componentsWithRelativeIssues.map(async (component) => {\n const { files, warnings } = await codemodComponent(workspace, component);\n dataToPersist.addManyFiles(files);\n return { id: component.id, changedFiles: files.map((f) => f.relative), warnings };\n })\n );\n await dataToPersist.persistAllToFS();\n const idsToReload = codemodResults.filter((c) => !c.warnings || c.warnings.length === 0).map((c) => c.id);\n await reloadComponents(workspace, idsToReload);\n\n return codemodResults.filter((c) => c.changedFiles.length || c.warnings);\n}\n\nasync function reloadComponents(workspace: Workspace, compIds: ComponentID[]) {\n workspace.clearAllComponentsCache();\n if (!compIds.length) return;\n const components = await loadComponents(workspace, compIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n if (componentsWithRelativeIssues.length) {\n const failedComps = componentsWithRelativeIssues.map((c) => c.id.toString()).join(', ');\n throw new Error(`failed rewiring the following components: ${failedComps}`);\n }\n}\n\nasync function loadComponents(workspace: Workspace, bitIds: ComponentID[]): Promise<Component[]> {\n const componentsIds = bitIds.length ? ComponentIdList.fromArray(bitIds) : await workspace.listIds();\n const components = await workspace.getMany(componentsIds);\n\n return components;\n}\n\nasync function codemodComponent(\n workspace: Workspace,\n component: Component\n): Promise<{ files: SourceFile[]; warnings?: string[] }> {\n const issues = component.state.issues;\n const files: SourceFile[] = [];\n if (!issues || !issues.getIssue(IssuesClasses.RelativeComponentsAuthored)) return { files };\n const warnings: string[] = [];\n await Promise.all(\n component.filesystem.files.map(async (file: SourceFile) => {\n const relativeInstances = issues.getIssue(IssuesClasses.RelativeComponentsAuthored)?.data[\n pathNormalizeToLinux(file.relative)\n ];\n if (!relativeInstances) return;\n // @ts-ignore\n const fileBefore = file.contents.toString() as string;\n let newFileString = fileBefore;\n await Promise.all(\n relativeInstances.map(async (relativeEntry: RelativeComponentsAuthoredEntry) => {\n const id = relativeEntry.componentId;\n const requiredComponent = await workspace.get(id);\n const consumerComp = requiredComponent.state._consumer as ConsumerComponent;\n const packageName = componentIdToPackageName({ ...consumerComp, id });\n const cssFamily = ['.css', '.scss', '.less', '.sass'];\n const isCss = cssFamily.includes(file.extname);\n const packageNameSupportCss = isCss ? `~${packageName}` : packageName;\n const stringToReplace = getNameWithoutInternalPath(workspace, relativeEntry);\n // @todo: the \"dist\" should be replaced by the compiler dist-dir.\n // newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss, 'dist');\n newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss);\n })\n );\n if (fileBefore !== newFileString) {\n // @ts-ignore\n file.contents = Buffer.from(newFileString);\n files.push(file);\n }\n })\n );\n return { files, warnings };\n}\n\n/**\n * e.g.\n * importSource: '../workspace/workspace.ui'\n * sourceRelativePath: 'extensions/workspace/workspace.ui.tsx'\n * rootDir in .bitmap: 'extensions/workspace'.\n *\n * expected to return \"../workspace\", as this is the path to the package root without the internal path.\n *\n * eventually, only this string is replaced by the new package-name and the internal-path part\n * remains intact. ('../workspace/workspace.ui' => '@bit/workspace/workspace.ui').\n */\nfunction getNameWithoutInternalPath(workspace: Workspace, relativeEntry: RelativeComponentsAuthoredEntry): string {\n const importSource = relativeEntry.importSource;\n const componentMap = workspace.consumer.bitMap.getComponentIfExist(relativeEntry.componentId);\n if (!componentMap) return importSource;\n const rootDir = componentMap.rootDir;\n if (!rootDir) return importSource;\n const mainFile = pathJoinLinux(rootDir, componentMap.mainFile);\n const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;\n if (filePathRelativeToWorkspace === mainFile) {\n return importSource;\n }\n // the importSource is not the main-file but an internal file, remove the internal part.\n const internalPath = pathRelativeLinux(rootDir, filePathRelativeToWorkspace);\n const removeLastOccurrence = (str, toRemove) => str.replace(new RegExp(`/${toRemove}$`), '');\n if (importSource.endsWith(internalPath)) {\n return removeLastOccurrence(importSource, internalPath);\n }\n const internalPathNoExt = internalPath.replace(path.extname(internalPath), '');\n if (importSource.endsWith(internalPathNoExt)) {\n return removeLastOccurrence(importSource, internalPathNoExt);\n }\n const internalPathNoIndex = removeLastOccurrence(internalPathNoExt, 'index');\n if (importSource.endsWith(internalPathNoIndex)) {\n return removeLastOccurrence(importSource, internalPathNoIndex);\n }\n\n // unable to find anything useful. just return the importSource.\n return importSource;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,11 @@
1
- import { ComponentID } from '@teambit/component-id';
2
- import { BitMap } from '@teambit/legacy.bit-map';
3
- import { ConsumerComponent } from '@teambit/legacy.consumer-component';
1
+ import type { ComponentID } from '@teambit/component-id';
2
+ import type { BitMap } from '@teambit/legacy.bit-map';
3
+ import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
4
4
  import { PackageJsonFile, DataToPersist } from '@teambit/component.sources';
5
- import { Consumer } from '@teambit/legacy.consumer';
6
- import { PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
7
- import { Workspace } from '@teambit/workspace';
8
- import { Component } from '@teambit/component';
5
+ import type { Consumer } from '@teambit/legacy.consumer';
6
+ import type { PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
7
+ import type { Workspace } from '@teambit/workspace';
8
+ import type { Component } from '@teambit/component';
9
9
  type LinkDetail = {
10
10
  from: string;
11
11
  to: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_pMapSeries","path","_interopRequireWildcard","_workspace","_legacy","_component","_legacy2","_pkgModules","_componentPackageVersion","_packageJsonTransformer","_codemodComponents","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NodeModuleLinker","constructor","components","workspace","consumer","bitMap","dataToPersist","DataToPersist","existingLinks","packageJsonCreated","link","filter","component","getComponentIfExist","id","links","getLinks","linksResults","getLinksResults","length","workspacePath","addBasePath","persistAllToFS","Promise","all","map","componentFsCache","deleteDependenciesDataCache","toString","clearAllComponentsCache","linkPkgsToRootComponents","rootComponentsPath","comp","componentIdToPackageName","state","_consumer","pMapSeries","componentId","logger","debug","_populateComponentsLinks","addLinkResult","from","to","existsBefore","existingLinkResult","find","linkResult","isEqual","bound","push","symlinks","forEach","symlink","src","dest","_getDefaultScope","defaultScope","config","legacyComponent","linkPath","getNodeModulesPathOfComponent","symlinkComponentDir","_deleteExistingLinksRootIfSymlink","createPackageJson","componentMap","getComponent","filesToBind","getAllFilesPaths","file","fileWithRootDir","join","rootDir","stat","fs","lstat","isSymbolicLink","addSymlink","Symlink","makeInstance","IS_WINDOWS","SOURCE_DIR_SYMLINK_TO_NM","lstatSync","removePath","RemovePath","undefined","legacyComp","hasPackageJsonAsComponentFile","files","some","relative","PACKAGE_JSON","packageJsonExist","pathExists","packageJson","PackageJsonFile","createFromComponent","_applyTransformers","addOrUpdateProperty","mainFile","packageJsonObject","version","snapToSemver","_bit_local","source","envsData","aspects","isAspect","type","types","exports","defaultModule","addFile","toVinylFile","injectedDirs","getInjectedDirs","injectedDir","PackageJsonTransformer","applyTransformers","linkToNodeModulesWithCodemod","bitIds","changeRelativeToModulePaths","codemodResults","changeCodeFromRelativeToModulePaths","linkToNodeModulesByIds","componentsIds","loadFromScope","getComponents","scope","getMany","idsToNotLoadAsAspects","loadSeedersAsAspects","loadExtensions","nodeModuleLinker","linkToNodeModulesByComponents","removeLinksFromNodeModules","absoluteCompDir","componentDir","relativeFilesInsideCompDir","pkgDir","getComponentPackagePath","pathsToRemove","remove"],"sources":["node-modules-linker.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport * as path from 'path';\nimport { linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { IS_WINDOWS, PACKAGE_JSON, SOURCE_DIR_SYMLINK_TO_NM } from '@teambit/legacy.constants';\nimport { BitMap } from '@teambit/legacy.bit-map';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { PackageJsonFile, DataToPersist, RemovePath, Symlink } from '@teambit/component.sources';\nimport { Consumer } from '@teambit/legacy.consumer';\nimport { logger } from '@teambit/legacy.logger';\nimport { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/toolbox.path.path';\nimport { componentIdToPackageName, getNodeModulesPathOfComponent } from '@teambit/pkg.modules.component-package-name';\nimport { Workspace } from '@teambit/workspace';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { Component } from '@teambit/component';\nimport { PackageJsonTransformer } from './package-json-transformer';\nimport { changeCodeFromRelativeToModulePaths } from './codemod-components';\n\ntype LinkDetail = { from: string; to: string; existsBefore: boolean };\nexport type NodeModulesLinksResult = {\n id: ComponentID;\n bound: LinkDetail[];\n};\n\n/**\n * link given components to node_modules, so it's possible to use absolute link instead of relative\n * for example, require('@bit/remote-scope.bar.foo)\n */\nexport default class NodeModuleLinker {\n consumer: Consumer;\n bitMap: BitMap; // preparation for the capsule, which is going to have only BitMap with no Consumer\n dataToPersist: DataToPersist;\n existingLinks: NodeModulesLinksResult[];\n packageJsonCreated: boolean;\n\n constructor(\n private components: Component[],\n private workspace: Workspace\n ) {\n this.consumer = this.workspace.consumer;\n this.bitMap = this.consumer.bitMap;\n this.dataToPersist = new DataToPersist();\n this.existingLinks = [];\n this.packageJsonCreated = false;\n }\n async link(): Promise<NodeModulesLinksResult[]> {\n this.components = this.components.filter((component) => this.bitMap.getComponentIfExist(component.id));\n const links = await this.getLinks();\n\n const linksResults = this.getLinksResults();\n if (!linksResults.length) {\n // avoid clearing the cache if it ends up with no links. (e.g. happens when mistakenly generating links for a\n // component not in the workspace)\n // or when all links are already exist.\n return [];\n }\n const workspacePath = this.workspace.path;\n links.addBasePath(workspacePath);\n await links.persistAllToFS();\n // Only clear cache if new package.json of components were created\n if (this.packageJsonCreated) {\n await Promise.all(\n this.components.map((component) =>\n this.consumer?.componentFsCache.deleteDependenciesDataCache(component.id.toString())\n )\n );\n // if this cache is not cleared, then when asking workspace.get again to the same component, it returns it with\n // component-issues like \"MissingLinksFromNodeModulesToSrc\" incorrectly.\n this.workspace.clearAllComponentsCache();\n }\n\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath,\n },\n this.components.map((comp) => componentIdToPackageName(comp.state._consumer))\n );\n return linksResults;\n }\n async getLinks(): Promise<DataToPersist> {\n this.dataToPersist = new DataToPersist();\n await pMapSeries(this.components, async (component) => {\n const componentId = component.id.toString();\n logger.debug(`linking component to node_modules: ${componentId}`);\n await this._populateComponentsLinks(component);\n });\n\n return this.dataToPersist;\n }\n private addLinkResult(\n linksResults: NodeModulesLinksResult[],\n id: ComponentID | null | undefined,\n from: string,\n to: string,\n existsBefore: boolean\n ) {\n if (!id) return;\n const existingLinkResult = linksResults.find((linkResult) => linkResult.id.isEqual(id));\n if (existingLinkResult) {\n existingLinkResult.bound.push({ from, to, existsBefore });\n } else {\n linksResults.push({ id, bound: [{ from, to, existsBefore }] });\n }\n }\n\n getLinksResults(): NodeModulesLinksResult[] {\n const linksResults: NodeModulesLinksResult[] = [];\n this.dataToPersist.symlinks.forEach((symlink: Symlink) => {\n this.addLinkResult(linksResults, symlink.componentId, symlink.src, symlink.dest, false);\n });\n this.existingLinks.forEach((link: NodeModulesLinksResult) => {\n const componentId = link.id;\n link.bound.forEach((bound) => {\n this.addLinkResult(linksResults, componentId, bound.from, bound.to, true);\n });\n });\n this.components.forEach((component) => {\n const existingLinkResult = linksResults.find((linkResult) => linkResult.id.isEqual(component.id));\n if (!existingLinkResult) {\n linksResults.push({ id: component.id, bound: [] });\n }\n });\n return linksResults;\n }\n\n _getDefaultScope(component?: ConsumerComponent): string | undefined | null {\n if (component) {\n return component.defaultScope;\n }\n return this.consumer ? this.consumer.config.defaultScope : null;\n }\n\n /**\n * even when an authored component has rootDir, we can't just symlink that rootDir to\n * node_modules/rootDir. it could work only when the main-file is index.js, not for other cases.\n * node expects the module inside node_modules to have either package.json with valid \"main\"\n * property or an index.js file. this main property can't be relative.\n */\n async _populateComponentsLinks(component: Component): Promise<void> {\n const legacyComponent = component.state._consumer as ConsumerComponent;\n const linkPath: PathOsBasedRelative = getNodeModulesPathOfComponent(legacyComponent);\n\n await this.symlinkComponentDir(component, linkPath);\n this._deleteExistingLinksRootIfSymlink(linkPath);\n await this.createPackageJson(component);\n }\n\n private async symlinkComponentDir(component: Component, linkPath: PathOsBasedRelative) {\n const componentMap = this.bitMap.getComponent(component.id);\n\n const filesToBind = componentMap.getAllFilesPaths();\n await Promise.all(\n filesToBind.map(async (file) => {\n const fileWithRootDir = path.join(componentMap.rootDir as string, file);\n const dest = path.join(linkPath, file);\n let stat;\n try {\n stat = await fs.lstat(dest);\n } catch {\n // Ignore this error, it's probably because the file doesn't exist\n }\n if (stat && stat.isSymbolicLink()) {\n this.addLinkResult(this.existingLinks, component.id, fileWithRootDir, dest, true);\n } else {\n this.dataToPersist.addSymlink(Symlink.makeInstance(fileWithRootDir, dest, component.id, true));\n }\n })\n );\n\n if (IS_WINDOWS) {\n // symlink the entire source directory into \"_src\" in node-modules.\n this.dataToPersist.addSymlink(\n Symlink.makeInstance(\n componentMap.rootDir as string,\n path.join(linkPath, SOURCE_DIR_SYMLINK_TO_NM),\n component.id\n )\n );\n }\n }\n\n /**\n * Removing existing links root (the package path) - to handle cases it was linked by package manager for example\n * this makes sure we are not affecting other places (like package manager cache) we shouldn't touch\n * If you have a case when this deletes something created by the package manager and it's not the desired behavior,\n * do not delete this code, but make sure the package manger nest the installed version into it's dependent\n * @param component\n */\n _deleteExistingLinksRootIfSymlink(linkPath: string) {\n try {\n const stat = fs.lstatSync(linkPath);\n if (stat.isSymbolicLink()) {\n this.dataToPersist.removePath(new RemovePath(linkPath));\n }\n return undefined;\n } catch {\n return undefined; // probably file does not exist\n }\n }\n\n /**\n * create package.json on node_modules/@bit/component-name/package.json with a property 'main'\n * pointing to the component's main file.\n * It is needed for Authored components only.\n * Since an authored component doesn't have rootDir, it's impossible to symlink to the component directory.\n * It makes it easier for Author to use absolute syntax between their own components.\n */\n private async createPackageJson(component: Component) {\n const legacyComp = component.state._consumer as ConsumerComponent;\n const hasPackageJsonAsComponentFile = legacyComp.files.some((file) => file.relative === PACKAGE_JSON);\n if (hasPackageJsonAsComponentFile) return; // don't generate package.json on top of the user package.json\n const dest = path.join(\n getNodeModulesPathOfComponent({\n ...legacyComp,\n id: legacyComp.id,\n })\n );\n const packageJsonExist = await fs.pathExists(path.join(dest, 'package.json'));\n if (!packageJsonExist) {\n this.packageJsonCreated = true;\n }\n\n const packageJson = PackageJsonFile.createFromComponent(dest, legacyComp, true);\n await this._applyTransformers(component, packageJson);\n if (IS_WINDOWS) {\n // in the workspace, override the \"types\" and add the \"src\" prefix.\n // otherwise, the navigation and auto-complete won't work on the IDE.\n // this is for Windows only. For Linux, we use symlinks for the files.\n packageJson.addOrUpdateProperty('types', `${SOURCE_DIR_SYMLINK_TO_NM}/${legacyComp.mainFile}`);\n }\n if (packageJson.packageJsonObject.version === 'latest') {\n packageJson.packageJsonObject.version = '0.0.1-new';\n } else {\n packageJson.packageJsonObject.version = snapToSemver(packageJson.packageJsonObject.version);\n }\n\n // indicate that this component exists locally and it is symlinked into the workspace. not a normal package.\n packageJson.packageJsonObject._bit_local = true;\n packageJson.packageJsonObject.source = component.mainFile.relative;\n\n // This is a hack because we have in the workspace package.json types:index.ts\n // but also exports for core aspects\n // TS can't find the types\n // in order to solve it we copy the types to exports.types\n // this will be applied only to aspects to minimize how it affects users\n const envsData = component.state.aspects.get('teambit.envs/envs');\n const isAspect = envsData?.data.type === 'aspect';\n if (isAspect && packageJson.packageJsonObject.types && packageJson.packageJsonObject.exports) {\n const exports = packageJson.packageJsonObject.exports['.']\n ? packageJson.packageJsonObject.exports['.']\n : packageJson.packageJsonObject.exports;\n if (!exports.types) {\n const defaultModule = exports.default;\n if (defaultModule) delete exports.default;\n exports.types = `./${packageJson.packageJsonObject.types}`;\n exports.default = defaultModule;\n }\n }\n\n // packageJson.mergePropsFromExtensions(component);\n // TODO: we need to have an hook here to get the transformer from the pkg extension\n\n // don't delete the \"version\" prop, because in some scenarios, it's needed for the component to work properly.\n // an example is when developing a vscode extension, vscode expects to have a valid package.json during the development.\n\n this.dataToPersist.addFile(packageJson.toVinylFile());\n const injectedDirs = await this.workspace.getInjectedDirs(component);\n const src = path.join(dest, 'package.json');\n for (const injectedDir of injectedDirs) {\n this.dataToPersist.addSymlink(Symlink.makeInstance(src, path.join(injectedDir, 'package.json')));\n }\n }\n\n /**\n * these are changes made by aspects\n */\n async _applyTransformers(component: Component, packageJson: PackageJsonFile) {\n return PackageJsonTransformer.applyTransformers(component, packageJson);\n }\n}\n\nexport async function linkToNodeModulesWithCodemod(\n workspace: Workspace,\n bitIds: ComponentID[],\n changeRelativeToModulePaths: boolean\n) {\n let codemodResults;\n if (changeRelativeToModulePaths) {\n codemodResults = await changeCodeFromRelativeToModulePaths(workspace, bitIds);\n }\n const linksResults = await linkToNodeModulesByIds(workspace, bitIds);\n return { linksResults, codemodResults };\n}\n\nexport async function linkToNodeModulesByIds(\n workspace: Workspace,\n componentsIds: ComponentID[],\n loadFromScope = false\n): Promise<NodeModulesLinksResult[]> {\n if (!componentsIds.length) return [];\n const getComponents = async () => {\n if (loadFromScope) {\n return workspace.scope.getMany(componentsIds);\n }\n return workspace.getMany(componentsIds, {\n idsToNotLoadAsAspects: componentsIds.map((id) => id.toString()),\n loadSeedersAsAspects: false,\n loadExtensions: false,\n });\n };\n const components = await getComponents();\n const nodeModuleLinker = new NodeModuleLinker(components, workspace);\n return nodeModuleLinker.link();\n}\n\nexport async function linkToNodeModulesByComponents(components: Component[], workspace: Workspace) {\n const nodeModuleLinker = new NodeModuleLinker(components, workspace);\n return nodeModuleLinker.link();\n}\n\nexport async function removeLinksFromNodeModules(\n component: Component,\n workspace: Workspace,\n files: PathOsBasedAbsolute[]\n) {\n const absoluteCompDir = workspace.componentDir(component.id); // os format\n const relativeFilesInsideCompDir = files.map((file) => path.relative(absoluteCompDir, file));\n const pkgDir = await workspace.getComponentPackagePath(component);\n const pathsToRemove = relativeFilesInsideCompDir.map((file) => path.join(pkgDir, file));\n logger.debug(`removeLinksFromNodeModules, deleting the following files:\n${pathsToRemove.join('\\n')}`);\n await Promise.all(pathsToRemove.map((file) => fs.remove(file)));\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_pMapSeries","path","_interopRequireWildcard","_workspace","_legacy","_component","_legacy2","_pkgModules","_componentPackageVersion","_packageJsonTransformer","_codemodComponents","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NodeModuleLinker","constructor","components","workspace","consumer","bitMap","dataToPersist","DataToPersist","existingLinks","packageJsonCreated","link","filter","component","getComponentIfExist","id","links","getLinks","linksResults","getLinksResults","length","workspacePath","addBasePath","persistAllToFS","Promise","all","map","componentFsCache","deleteDependenciesDataCache","toString","clearAllComponentsCache","linkPkgsToRootComponents","rootComponentsPath","comp","componentIdToPackageName","state","_consumer","pMapSeries","componentId","logger","debug","_populateComponentsLinks","addLinkResult","from","to","existsBefore","existingLinkResult","find","linkResult","isEqual","bound","push","symlinks","forEach","symlink","src","dest","_getDefaultScope","defaultScope","config","legacyComponent","linkPath","getNodeModulesPathOfComponent","symlinkComponentDir","_deleteExistingLinksRootIfSymlink","createPackageJson","componentMap","getComponent","filesToBind","getAllFilesPaths","file","fileWithRootDir","join","rootDir","stat","fs","lstat","isSymbolicLink","addSymlink","Symlink","makeInstance","IS_WINDOWS","SOURCE_DIR_SYMLINK_TO_NM","lstatSync","removePath","RemovePath","undefined","legacyComp","hasPackageJsonAsComponentFile","files","some","relative","PACKAGE_JSON","packageJsonExist","pathExists","packageJson","PackageJsonFile","createFromComponent","_applyTransformers","addOrUpdateProperty","mainFile","packageJsonObject","version","snapToSemver","_bit_local","source","envsData","aspects","isAspect","type","types","exports","defaultModule","addFile","toVinylFile","injectedDirs","getInjectedDirs","injectedDir","PackageJsonTransformer","applyTransformers","linkToNodeModulesWithCodemod","bitIds","changeRelativeToModulePaths","codemodResults","changeCodeFromRelativeToModulePaths","linkToNodeModulesByIds","componentsIds","loadFromScope","getComponents","scope","getMany","idsToNotLoadAsAspects","loadSeedersAsAspects","loadExtensions","nodeModuleLinker","linkToNodeModulesByComponents","removeLinksFromNodeModules","absoluteCompDir","componentDir","relativeFilesInsideCompDir","pkgDir","getComponentPackagePath","pathsToRemove","remove"],"sources":["node-modules-linker.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport * as path from 'path';\nimport { linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport type { ComponentID } from '@teambit/component-id';\nimport { IS_WINDOWS, PACKAGE_JSON, SOURCE_DIR_SYMLINK_TO_NM } from '@teambit/legacy.constants';\nimport type { BitMap } from '@teambit/legacy.bit-map';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { PackageJsonFile, DataToPersist, RemovePath, Symlink } from '@teambit/component.sources';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { logger } from '@teambit/legacy.logger';\nimport type { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/toolbox.path.path';\nimport { componentIdToPackageName, getNodeModulesPathOfComponent } from '@teambit/pkg.modules.component-package-name';\nimport type { Workspace } from '@teambit/workspace';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { Component } from '@teambit/component';\nimport { PackageJsonTransformer } from './package-json-transformer';\nimport { changeCodeFromRelativeToModulePaths } from './codemod-components';\n\ntype LinkDetail = { from: string; to: string; existsBefore: boolean };\nexport type NodeModulesLinksResult = {\n id: ComponentID;\n bound: LinkDetail[];\n};\n\n/**\n * link given components to node_modules, so it's possible to use absolute link instead of relative\n * for example, require('@bit/remote-scope.bar.foo)\n */\nexport default class NodeModuleLinker {\n consumer: Consumer;\n bitMap: BitMap; // preparation for the capsule, which is going to have only BitMap with no Consumer\n dataToPersist: DataToPersist;\n existingLinks: NodeModulesLinksResult[];\n packageJsonCreated: boolean;\n\n constructor(\n private components: Component[],\n private workspace: Workspace\n ) {\n this.consumer = this.workspace.consumer;\n this.bitMap = this.consumer.bitMap;\n this.dataToPersist = new DataToPersist();\n this.existingLinks = [];\n this.packageJsonCreated = false;\n }\n async link(): Promise<NodeModulesLinksResult[]> {\n this.components = this.components.filter((component) => this.bitMap.getComponentIfExist(component.id));\n const links = await this.getLinks();\n\n const linksResults = this.getLinksResults();\n if (!linksResults.length) {\n // avoid clearing the cache if it ends up with no links. (e.g. happens when mistakenly generating links for a\n // component not in the workspace)\n // or when all links are already exist.\n return [];\n }\n const workspacePath = this.workspace.path;\n links.addBasePath(workspacePath);\n await links.persistAllToFS();\n // Only clear cache if new package.json of components were created\n if (this.packageJsonCreated) {\n await Promise.all(\n this.components.map((component) =>\n this.consumer?.componentFsCache.deleteDependenciesDataCache(component.id.toString())\n )\n );\n // if this cache is not cleared, then when asking workspace.get again to the same component, it returns it with\n // component-issues like \"MissingLinksFromNodeModulesToSrc\" incorrectly.\n this.workspace.clearAllComponentsCache();\n }\n\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath,\n },\n this.components.map((comp) => componentIdToPackageName(comp.state._consumer))\n );\n return linksResults;\n }\n async getLinks(): Promise<DataToPersist> {\n this.dataToPersist = new DataToPersist();\n await pMapSeries(this.components, async (component) => {\n const componentId = component.id.toString();\n logger.debug(`linking component to node_modules: ${componentId}`);\n await this._populateComponentsLinks(component);\n });\n\n return this.dataToPersist;\n }\n private addLinkResult(\n linksResults: NodeModulesLinksResult[],\n id: ComponentID | null | undefined,\n from: string,\n to: string,\n existsBefore: boolean\n ) {\n if (!id) return;\n const existingLinkResult = linksResults.find((linkResult) => linkResult.id.isEqual(id));\n if (existingLinkResult) {\n existingLinkResult.bound.push({ from, to, existsBefore });\n } else {\n linksResults.push({ id, bound: [{ from, to, existsBefore }] });\n }\n }\n\n getLinksResults(): NodeModulesLinksResult[] {\n const linksResults: NodeModulesLinksResult[] = [];\n this.dataToPersist.symlinks.forEach((symlink: Symlink) => {\n this.addLinkResult(linksResults, symlink.componentId, symlink.src, symlink.dest, false);\n });\n this.existingLinks.forEach((link: NodeModulesLinksResult) => {\n const componentId = link.id;\n link.bound.forEach((bound) => {\n this.addLinkResult(linksResults, componentId, bound.from, bound.to, true);\n });\n });\n this.components.forEach((component) => {\n const existingLinkResult = linksResults.find((linkResult) => linkResult.id.isEqual(component.id));\n if (!existingLinkResult) {\n linksResults.push({ id: component.id, bound: [] });\n }\n });\n return linksResults;\n }\n\n _getDefaultScope(component?: ConsumerComponent): string | undefined | null {\n if (component) {\n return component.defaultScope;\n }\n return this.consumer ? this.consumer.config.defaultScope : null;\n }\n\n /**\n * even when an authored component has rootDir, we can't just symlink that rootDir to\n * node_modules/rootDir. it could work only when the main-file is index.js, not for other cases.\n * node expects the module inside node_modules to have either package.json with valid \"main\"\n * property or an index.js file. this main property can't be relative.\n */\n async _populateComponentsLinks(component: Component): Promise<void> {\n const legacyComponent = component.state._consumer as ConsumerComponent;\n const linkPath: PathOsBasedRelative = getNodeModulesPathOfComponent(legacyComponent);\n\n await this.symlinkComponentDir(component, linkPath);\n this._deleteExistingLinksRootIfSymlink(linkPath);\n await this.createPackageJson(component);\n }\n\n private async symlinkComponentDir(component: Component, linkPath: PathOsBasedRelative) {\n const componentMap = this.bitMap.getComponent(component.id);\n\n const filesToBind = componentMap.getAllFilesPaths();\n await Promise.all(\n filesToBind.map(async (file) => {\n const fileWithRootDir = path.join(componentMap.rootDir as string, file);\n const dest = path.join(linkPath, file);\n let stat;\n try {\n stat = await fs.lstat(dest);\n } catch {\n // Ignore this error, it's probably because the file doesn't exist\n }\n if (stat && stat.isSymbolicLink()) {\n this.addLinkResult(this.existingLinks, component.id, fileWithRootDir, dest, true);\n } else {\n this.dataToPersist.addSymlink(Symlink.makeInstance(fileWithRootDir, dest, component.id, true));\n }\n })\n );\n\n if (IS_WINDOWS) {\n // symlink the entire source directory into \"_src\" in node-modules.\n this.dataToPersist.addSymlink(\n Symlink.makeInstance(\n componentMap.rootDir as string,\n path.join(linkPath, SOURCE_DIR_SYMLINK_TO_NM),\n component.id\n )\n );\n }\n }\n\n /**\n * Removing existing links root (the package path) - to handle cases it was linked by package manager for example\n * this makes sure we are not affecting other places (like package manager cache) we shouldn't touch\n * If you have a case when this deletes something created by the package manager and it's not the desired behavior,\n * do not delete this code, but make sure the package manger nest the installed version into it's dependent\n * @param component\n */\n _deleteExistingLinksRootIfSymlink(linkPath: string) {\n try {\n const stat = fs.lstatSync(linkPath);\n if (stat.isSymbolicLink()) {\n this.dataToPersist.removePath(new RemovePath(linkPath));\n }\n return undefined;\n } catch {\n return undefined; // probably file does not exist\n }\n }\n\n /**\n * create package.json on node_modules/@bit/component-name/package.json with a property 'main'\n * pointing to the component's main file.\n * It is needed for Authored components only.\n * Since an authored component doesn't have rootDir, it's impossible to symlink to the component directory.\n * It makes it easier for Author to use absolute syntax between their own components.\n */\n private async createPackageJson(component: Component) {\n const legacyComp = component.state._consumer as ConsumerComponent;\n const hasPackageJsonAsComponentFile = legacyComp.files.some((file) => file.relative === PACKAGE_JSON);\n if (hasPackageJsonAsComponentFile) return; // don't generate package.json on top of the user package.json\n const dest = path.join(\n getNodeModulesPathOfComponent({\n ...legacyComp,\n id: legacyComp.id,\n })\n );\n const packageJsonExist = await fs.pathExists(path.join(dest, 'package.json'));\n if (!packageJsonExist) {\n this.packageJsonCreated = true;\n }\n\n const packageJson = PackageJsonFile.createFromComponent(dest, legacyComp, true);\n await this._applyTransformers(component, packageJson);\n if (IS_WINDOWS) {\n // in the workspace, override the \"types\" and add the \"src\" prefix.\n // otherwise, the navigation and auto-complete won't work on the IDE.\n // this is for Windows only. For Linux, we use symlinks for the files.\n packageJson.addOrUpdateProperty('types', `${SOURCE_DIR_SYMLINK_TO_NM}/${legacyComp.mainFile}`);\n }\n if (packageJson.packageJsonObject.version === 'latest') {\n packageJson.packageJsonObject.version = '0.0.1-new';\n } else {\n packageJson.packageJsonObject.version = snapToSemver(packageJson.packageJsonObject.version);\n }\n\n // indicate that this component exists locally and it is symlinked into the workspace. not a normal package.\n packageJson.packageJsonObject._bit_local = true;\n packageJson.packageJsonObject.source = component.mainFile.relative;\n\n // This is a hack because we have in the workspace package.json types:index.ts\n // but also exports for core aspects\n // TS can't find the types\n // in order to solve it we copy the types to exports.types\n // this will be applied only to aspects to minimize how it affects users\n const envsData = component.state.aspects.get('teambit.envs/envs');\n const isAspect = envsData?.data.type === 'aspect';\n if (isAspect && packageJson.packageJsonObject.types && packageJson.packageJsonObject.exports) {\n const exports = packageJson.packageJsonObject.exports['.']\n ? packageJson.packageJsonObject.exports['.']\n : packageJson.packageJsonObject.exports;\n if (!exports.types) {\n const defaultModule = exports.default;\n if (defaultModule) delete exports.default;\n exports.types = `./${packageJson.packageJsonObject.types}`;\n exports.default = defaultModule;\n }\n }\n\n // packageJson.mergePropsFromExtensions(component);\n // TODO: we need to have an hook here to get the transformer from the pkg extension\n\n // don't delete the \"version\" prop, because in some scenarios, it's needed for the component to work properly.\n // an example is when developing a vscode extension, vscode expects to have a valid package.json during the development.\n\n this.dataToPersist.addFile(packageJson.toVinylFile());\n const injectedDirs = await this.workspace.getInjectedDirs(component);\n const src = path.join(dest, 'package.json');\n for (const injectedDir of injectedDirs) {\n this.dataToPersist.addSymlink(Symlink.makeInstance(src, path.join(injectedDir, 'package.json')));\n }\n }\n\n /**\n * these are changes made by aspects\n */\n async _applyTransformers(component: Component, packageJson: PackageJsonFile) {\n return PackageJsonTransformer.applyTransformers(component, packageJson);\n }\n}\n\nexport async function linkToNodeModulesWithCodemod(\n workspace: Workspace,\n bitIds: ComponentID[],\n changeRelativeToModulePaths: boolean\n) {\n let codemodResults;\n if (changeRelativeToModulePaths) {\n codemodResults = await changeCodeFromRelativeToModulePaths(workspace, bitIds);\n }\n const linksResults = await linkToNodeModulesByIds(workspace, bitIds);\n return { linksResults, codemodResults };\n}\n\nexport async function linkToNodeModulesByIds(\n workspace: Workspace,\n componentsIds: ComponentID[],\n loadFromScope = false\n): Promise<NodeModulesLinksResult[]> {\n if (!componentsIds.length) return [];\n const getComponents = async () => {\n if (loadFromScope) {\n return workspace.scope.getMany(componentsIds);\n }\n return workspace.getMany(componentsIds, {\n idsToNotLoadAsAspects: componentsIds.map((id) => id.toString()),\n loadSeedersAsAspects: false,\n loadExtensions: false,\n });\n };\n const components = await getComponents();\n const nodeModuleLinker = new NodeModuleLinker(components, workspace);\n return nodeModuleLinker.link();\n}\n\nexport async function linkToNodeModulesByComponents(components: Component[], workspace: Workspace) {\n const nodeModuleLinker = new NodeModuleLinker(components, workspace);\n return nodeModuleLinker.link();\n}\n\nexport async function removeLinksFromNodeModules(\n component: Component,\n workspace: Workspace,\n files: PathOsBasedAbsolute[]\n) {\n const absoluteCompDir = workspace.componentDir(component.id); // os format\n const relativeFilesInsideCompDir = files.map((file) => path.relative(absoluteCompDir, file));\n const pkgDir = await workspace.getComponentPackagePath(component);\n const pathsToRemove = relativeFilesInsideCompDir.map((file) => path.join(pkgDir, file));\n logger.debug(`removeLinksFromNodeModules, deleting the following files:\n${pathsToRemove.join('\\n')}`);\n await Promise.all(pathsToRemove.map((file) => fs.remove(file)));\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { PackageJsonFile } from '@teambit/component.sources';
2
- import { Component } from '@teambit/component';
1
+ import type { PackageJsonFile } from '@teambit/component.sources';
2
+ import type { Component } from '@teambit/component';
3
3
  type PackageJsonTransformers = Function[];
4
4
  export declare class PackageJsonTransformer {
5
5
  static packageJsonTransformersRegistry: PackageJsonTransformers;
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_pMapSeries","_interopRequireDefault","_legacy","e","__esModule","default","PackageJsonTransformer","packageJsonTransformersRegistry","registerPackageJsonTransformer","func","push","applyTransformers","component","packageJson","newPackageJsonObject","packageJsonObject","mapSeries","transformer","scopeId","id","scope","owner","parseScope","name","fullName","contextForReplace","mainFile","state","_consumer","replacePlaceHolders","exports","replacePlaceHoldersRecursive","mergePackageJsonObject","obj","Object","keys","forEach","key","value","replacePlaceHolderForPackageValue","isObject"],"sources":["package-json-transformer.ts"],"sourcesContent":["import { isObject } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { parseScope, replacePlaceHolderForPackageValue } from '@teambit/legacy.utils';\nimport { Component } from '@teambit/component';\n\ntype PackageJsonTransformers = Function[];\n\nexport class PackageJsonTransformer {\n static packageJsonTransformersRegistry: PackageJsonTransformers = [];\n static registerPackageJsonTransformer(\n func: (component: Component, packageJsonObject: Record<string, any>) => Promise<Record<string, any>>\n ) {\n this.packageJsonTransformersRegistry.push(func);\n }\n\n /**\n * these are changes made by aspects\n */\n static async applyTransformers(component: Component, packageJson: PackageJsonFile) {\n let newPackageJsonObject = packageJson.packageJsonObject;\n\n await mapSeries(PackageJsonTransformer.packageJsonTransformersRegistry, async (transformer) => {\n newPackageJsonObject = await transformer(component, newPackageJsonObject);\n });\n\n const scopeId = component.id.scope;\n const { scope, owner } = parseScope(scopeId);\n const name = component.id.fullName;\n\n const contextForReplace = {\n mainFile: component.state._consumer.mainFile,\n name,\n scope,\n scopeId,\n owner,\n };\n // TODO: Consider calling the replacePlaceHoldersRecursive instead\n replacePlaceHolders(newPackageJsonObject, contextForReplace);\n if (newPackageJsonObject.exports && typeof newPackageJsonObject.exports === 'object') {\n replacePlaceHoldersRecursive(newPackageJsonObject.exports, contextForReplace);\n }\n packageJson.mergePackageJsonObject(newPackageJsonObject);\n }\n}\n\nfunction replacePlaceHoldersRecursive(obj: Record<string, string>, contextForReplace): void {\n Object.keys(obj).forEach((key) => {\n let value = obj[key];\n if (typeof value === 'string') {\n value = replacePlaceHolderForPackageValue(contextForReplace, obj[key]);\n obj[key] = value;\n } else if (isObject(value)) {\n replacePlaceHoldersRecursive(value, contextForReplace);\n }\n }, {});\n}\n\nfunction replacePlaceHolders(obj: Record<string, string>, contextForReplace): void {\n Object.keys(obj).forEach((key) => {\n let value = obj[key];\n if (typeof value === 'string') {\n value = replacePlaceHolderForPackageValue(contextForReplace, obj[key]);\n }\n obj[key] = value;\n }, {});\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","_pMapSeries","_interopRequireDefault","_legacy","e","__esModule","default","PackageJsonTransformer","packageJsonTransformersRegistry","registerPackageJsonTransformer","func","push","applyTransformers","component","packageJson","newPackageJsonObject","packageJsonObject","mapSeries","transformer","scopeId","id","scope","owner","parseScope","name","fullName","contextForReplace","mainFile","state","_consumer","replacePlaceHolders","exports","replacePlaceHoldersRecursive","mergePackageJsonObject","obj","Object","keys","forEach","key","value","replacePlaceHolderForPackageValue","isObject"],"sources":["package-json-transformer.ts"],"sourcesContent":["import { isObject } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport type { PackageJsonFile } from '@teambit/component.sources';\nimport { parseScope, replacePlaceHolderForPackageValue } from '@teambit/legacy.utils';\nimport type { Component } from '@teambit/component';\n\ntype PackageJsonTransformers = Function[];\n\nexport class PackageJsonTransformer {\n static packageJsonTransformersRegistry: PackageJsonTransformers = [];\n static registerPackageJsonTransformer(\n func: (component: Component, packageJsonObject: Record<string, any>) => Promise<Record<string, any>>\n ) {\n this.packageJsonTransformersRegistry.push(func);\n }\n\n /**\n * these are changes made by aspects\n */\n static async applyTransformers(component: Component, packageJson: PackageJsonFile) {\n let newPackageJsonObject = packageJson.packageJsonObject;\n\n await mapSeries(PackageJsonTransformer.packageJsonTransformersRegistry, async (transformer) => {\n newPackageJsonObject = await transformer(component, newPackageJsonObject);\n });\n\n const scopeId = component.id.scope;\n const { scope, owner } = parseScope(scopeId);\n const name = component.id.fullName;\n\n const contextForReplace = {\n mainFile: component.state._consumer.mainFile,\n name,\n scope,\n scopeId,\n owner,\n };\n // TODO: Consider calling the replacePlaceHoldersRecursive instead\n replacePlaceHolders(newPackageJsonObject, contextForReplace);\n if (newPackageJsonObject.exports && typeof newPackageJsonObject.exports === 'object') {\n replacePlaceHoldersRecursive(newPackageJsonObject.exports, contextForReplace);\n }\n packageJson.mergePackageJsonObject(newPackageJsonObject);\n }\n}\n\nfunction replacePlaceHoldersRecursive(obj: Record<string, string>, contextForReplace): void {\n Object.keys(obj).forEach((key) => {\n let value = obj[key];\n if (typeof value === 'string') {\n value = replacePlaceHolderForPackageValue(contextForReplace, obj[key]);\n obj[key] = value;\n } else if (isObject(value)) {\n replacePlaceHoldersRecursive(value, contextForReplace);\n }\n }, {});\n}\n\nfunction replacePlaceHolders(obj: Record<string, string>, contextForReplace): void {\n Object.keys(obj).forEach((key) => {\n let value = obj[key];\n if (typeof value === 'string') {\n value = replacePlaceHolderForPackageValue(contextForReplace, obj[key]);\n }\n obj[key] = value;\n }, {});\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,18 +2,18 @@ import fs from 'fs-extra';
2
2
  import pMapSeries from 'p-map-series';
3
3
  import * as path from 'path';
4
4
  import { linkPkgsToRootComponents } from '@teambit/workspace.root-components';
5
- import { ComponentID } from '@teambit/component-id';
5
+ import type { ComponentID } from '@teambit/component-id';
6
6
  import { IS_WINDOWS, PACKAGE_JSON, SOURCE_DIR_SYMLINK_TO_NM } from '@teambit/legacy.constants';
7
- import { BitMap } from '@teambit/legacy.bit-map';
8
- import { ConsumerComponent } from '@teambit/legacy.consumer-component';
7
+ import type { BitMap } from '@teambit/legacy.bit-map';
8
+ import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
9
9
  import { PackageJsonFile, DataToPersist, RemovePath, Symlink } from '@teambit/component.sources';
10
- import { Consumer } from '@teambit/legacy.consumer';
10
+ import type { Consumer } from '@teambit/legacy.consumer';
11
11
  import { logger } from '@teambit/legacy.logger';
12
- import { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/toolbox.path.path';
12
+ import type { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/toolbox.path.path';
13
13
  import { componentIdToPackageName, getNodeModulesPathOfComponent } from '@teambit/pkg.modules.component-package-name';
14
- import { Workspace } from '@teambit/workspace';
14
+ import type { Workspace } from '@teambit/workspace';
15
15
  import { snapToSemver } from '@teambit/component-package-version';
16
- import { Component } from '@teambit/component';
16
+ import type { Component } from '@teambit/component';
17
17
  import { PackageJsonTransformer } from './package-json-transformer';
18
18
  import { changeCodeFromRelativeToModulePaths } from './codemod-components';
19
19
 
@@ -1,8 +1,8 @@
1
1
  import { isObject } from 'lodash';
2
2
  import mapSeries from 'p-map-series';
3
- import { PackageJsonFile } from '@teambit/component.sources';
3
+ import type { PackageJsonFile } from '@teambit/component.sources';
4
4
  import { parseScope, replacePlaceHolderForPackageValue } from '@teambit/legacy.utils';
5
- import { Component } from '@teambit/component';
5
+ import type { Component } from '@teambit/component';
6
6
 
7
7
  type PackageJsonTransformers = Function[];
8
8
 
package/package.json CHANGED
@@ -1,37 +1,37 @@
1
1
  {
2
2
  "name": "@teambit/workspace.modules.node-modules-linker",
3
- "version": "0.0.284",
3
+ "version": "0.0.286",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/modules/node-modules-linker",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "modules/node-modules-linker",
9
- "version": "0.0.284"
9
+ "version": "0.0.286"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
13
13
  "p-map-series": "2.1.0",
14
14
  "lodash": "4.17.21",
15
15
  "@teambit/component-id": "1.2.4",
16
- "@teambit/component-issues": "0.0.159",
17
- "@teambit/legacy.utils": "0.0.21",
18
- "@teambit/component-package-version": "0.0.438",
19
- "@teambit/legacy.constants": "0.0.12",
20
- "@teambit/legacy.logger": "0.0.21",
16
+ "@teambit/component-issues": "0.0.160",
17
+ "@teambit/legacy.utils": "0.0.22",
18
+ "@teambit/legacy.constants": "0.0.13",
19
+ "@teambit/legacy.logger": "0.0.22",
21
20
  "@teambit/toolbox.path.path": "0.0.8",
22
21
  "@teambit/workspace.root-components": "1.0.0",
23
- "@teambit/component.sources": "0.0.108",
24
- "@teambit/legacy.consumer-component": "0.0.57",
25
- "@teambit/pkg.modules.component-package-name": "0.0.63",
26
- "@teambit/legacy.bit-map": "0.0.113",
27
- "@teambit/legacy.consumer": "0.0.56"
22
+ "@teambit/component.sources": "0.0.110",
23
+ "@teambit/legacy.consumer-component": "0.0.59",
24
+ "@teambit/pkg.modules.component-package-name": "0.0.65",
25
+ "@teambit/component-package-version": "0.0.440",
26
+ "@teambit/legacy.bit-map": "0.0.115",
27
+ "@teambit/legacy.consumer": "0.0.58"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/fs-extra": "9.0.7",
31
31
  "@types/lodash": "4.14.165",
32
32
  "@types/mocha": "9.1.0",
33
33
  "chai": "4.3.0",
34
- "@teambit/node.envs.node-babel-mocha": "0.1.5"
34
+ "@teambit/node.envs.node-babel-mocha": "0.1.18"
35
35
  },
36
36
  "peerDependencies": {},
37
37
  "license": "Apache-2.0",