@teambit/yarn 0.0.666 → 0.0.669

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.
@@ -142,7 +142,10 @@ class YarnPackageManager {
142
142
  const rootDirPath = _fslib().npath.toPortablePath(rootDir);
143
143
 
144
144
  const cacheDir = this.getCacheFolder(installOptions.cacheRootDir);
145
- const config = await this.computeConfiguration(rootDirPath, cacheDir, installOptions.nodeLinker);
145
+ const config = await this.computeConfiguration(rootDirPath, cacheDir, {
146
+ nodeLinker: installOptions.nodeLinker,
147
+ packageManagerConfigRootDir: installOptions.packageManagerConfigRootDir
148
+ });
146
149
  const project = new (_core().Project)(rootDirPath, {
147
150
  configuration: config
148
151
  });
@@ -360,16 +363,24 @@ class YarnPackageManager {
360
363
  } // TODO: implement this to automate configuration.
361
364
 
362
365
 
363
- async computeConfiguration(rootDirPath, cacheFolder, nodeLinker) {
366
+ async computeConfiguration(rootDirPath, cacheFolder, options) {
364
367
  const registries = await this.depResolver.getRegistries();
365
368
  const proxyConfig = await this.depResolver.getProxyConfig();
366
369
  const pluginConfig = (0, _cli().getPluginConfiguration)();
367
- const config = await _core().Configuration.find(rootDirPath, pluginConfig);
370
+ let startingCwd;
371
+
372
+ if (options.packageManagerConfigRootDir) {
373
+ startingCwd = _fslib().npath.toPortablePath(options.packageManagerConfigRootDir);
374
+ } else {
375
+ startingCwd = rootDirPath;
376
+ }
377
+
378
+ const config = await _core().Configuration.find(startingCwd, pluginConfig);
368
379
  const scopedRegistries = await this.getScopedRegistries(registries);
369
380
  const defaultRegistry = registries.defaultRegistry;
370
381
  const defaultAuthProp = this.getAuthProp(defaultRegistry);
371
382
  const data = {
372
- nodeLinker: nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',
383
+ nodeLinker: options.nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',
373
384
  installStatePath: `${rootDirPath}/.yarn/install-state.gz`,
374
385
  cacheFolder,
375
386
  pnpDataPath: `${rootDirPath}/.pnp.meta.json`,
@@ -456,7 +467,9 @@ class YarnPackageManager {
456
467
  const rootDirPath = _fslib().npath.toPortablePath(options.rootDir);
457
468
 
458
469
  const cacheDir = this.getCacheFolder(options.cacheRootDir);
459
- const config = await this.computeConfiguration(rootDirPath, cacheDir);
470
+ const config = await this.computeConfiguration(rootDirPath, cacheDir, {
471
+ packageManagerConfigRootDir: options.packageManagerConfigRootDir
472
+ });
460
473
  const project = new (_core().Project)(rootDirPath, {
461
474
  configuration: config
462
475
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["yarn.package-manager.ts"],"names":["YarnPackageManager","constructor","depResolver","pkg","logger","install","rootDir","rootPolicy","componentDirectoryMap","installOptions","setStatusLine","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","dependencyFilterFn","components","workspaceManifest","getWorkspaceManifest","undefined","rootDirPath","npath","toPortablePath","cacheDir","getCacheFolder","cacheRootDir","config","computeConfiguration","nodeLinker","project","Project","configuration","rootManifest","toJsonWithDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","installPeersFromEnvs","manifest","setupResolutions","rootWs","createWorkspace","overrides","manifests","computeComponents","componentsManifestsMap","copyPeerToRuntimeOnComponents","debug","workspacesIdents","workspacesP","Object","keys","map","path","workspace","workspaceIdentHash","locator","identHash","cwd","overrideInternalWorkspaceParams","workspaces","Promise","all","setupWorkspaces","concat","cache","Cache","find","installReport","StreamReport","start","stdout","process","report","persistProject","persistLockfile","hasErrors","exit","exitCode","consoleSuccess","getPackageJsonPath","dir","packageJsonPath","backupPackageJsons","result","rootPackageJsonPath","getFileToBackup","componentsBackupsP","toArray","component","file","getComponentPackageJsonToBackup","restorePackageJsons","backupJsons","promises","entries","exists","fs","pathExists","remove","writeFile","existingFile","readFile","wsPath","name","ws","Workspace","setup","identity","structUtils","parseIdent","version","dependencies","computeDeps","devDependencies","peerDependencies","resolutions","convertOverridesToResolutions","ident","makeIdent","scope","makeLocator","reference","anchoredDescriptor","makeDescriptor","WorkspaceResolver","protocol","relativeCwd","anchoredLocator","workspacesByCwd","Map","workspacesByIdent","forEach","dup","get","Error","push","set","getScopedRegistries","registries","scopedRegistries","scopes","reduce","acc","scopeName","regDef","authProp","getAuthProp","npmRegistryServer","uri","npmAlwaysAuth","alwaysAuth","keyName","value","registry","token","baseToken","baseDir","userHome","cacheFolder","getRegistries","proxyConfig","getProxyConfig","pluginConfig","Configuration","defaultRegistry","defaultAuthProp","data","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","use","componentManifests","componentsDirMap","copyPeer","packageName","getPackageName","has","toJson","rawDeps","resolveRemoteVersion","parsedPackage","parsedVersion","versionType","type","isSemver","npmPlugin","resolvers","_NpmRemapResolver","NpmSemverResolver","NpmTagResolver","resolver","range","LightReport","descriptor","resolveOptions","candidates","getCandidates","parsedRange","parseRange","selector","parsedOverrides","override","pattern","from","parentPkg","toYarnResolutionSelector","targetPkg","newPref","pref","fullName","description"],"mappings":"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","sourcesContent":["import parsePackageName from 'parse-package-name';\nimport {\n extendWithComponentsFromDir,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n Registries,\n Registry,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n} from '@teambit/dependency-resolver';\nimport { ComponentMap, Component } from '@teambit/component';\nimport fs from 'fs-extra';\nimport { join, resolve } from 'path';\nimport {\n Workspace,\n Project,\n Configuration,\n structUtils,\n IdentHash,\n Descriptor,\n Cache,\n StreamReport,\n ResolveOptions,\n LightReport,\n WorkspaceResolver,\n} from '@yarnpkg/core';\nimport { getPluginConfiguration } from '@yarnpkg/cli';\nimport { npath, PortablePath } from '@yarnpkg/fslib';\nimport { Resolution } from '@yarnpkg/parsers';\nimport npmPlugin from '@yarnpkg/plugin-npm';\nimport parseOverrides from '@pnpm/parse-overrides';\nimport { PkgMain } from '@teambit/pkg';\nimport userHome from 'user-home';\nimport { Logger } from '@teambit/logger';\nimport versionSelectorType from 'version-selector-type';\n\ntype BackupJsons = {\n [path: string]: Buffer | undefined;\n};\n\nexport class YarnPackageManager implements PackageManager {\n constructor(private depResolver: DependencyResolverMain, private pkg: PkgMain, private logger: Logger) {}\n\n async install(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<void> {\n this.logger.setStatusLine('installing dependencies');\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const components = componentDirectoryMap.components;\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n\n const rootDirPath = npath.toPortablePath(rootDir);\n const cacheDir = this.getCacheFolder(installOptions.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, installOptions.nodeLinker);\n\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJsonWithDir({\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n installPeersFromEnvs: installOptions.installPeersFromEnvs,\n }).manifest;\n\n // @ts-ignore\n project.setupResolutions();\n const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides);\n\n // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());\n const manifests = this.computeComponents(\n workspaceManifest.componentsManifestsMap,\n componentDirectoryMap,\n installOptions.copyPeerToRuntimeOnComponents\n );\n await extendWithComponentsFromDir(rootDir, manifests);\n\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', manifests);\n\n const workspacesIdents = {};\n\n const workspacesP = Object.keys(manifests).map(async (path) => {\n const manifest = manifests[path];\n const workspace = await this.createWorkspace(path, project, manifest);\n const workspaceIdentHash = workspace.locator.identHash;\n //\n if (workspacesIdents[workspaceIdentHash]) {\n this.logger.debug(\n `overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`\n );\n this.overrideInternalWorkspaceParams(workspace);\n }\n workspacesIdents[workspace.locator.identHash] = true;\n return workspace;\n });\n\n const workspaces = await Promise.all(workspacesP);\n\n this.setupWorkspaces(project, workspaces.concat(rootWs));\n\n const cache = await Cache.find(config);\n // const existingPackageJsons = await this.backupPackageJsons(rootDir, componentDirectoryMap);\n\n const installReport = await StreamReport.start(\n {\n stdout: process.stdout,\n configuration: config,\n },\n async (report) => {\n await project.install({\n persistProject: false,\n cache,\n report,\n });\n await project.persistLockfile();\n }\n );\n\n // TODO: check if package.json and link files generation can be prevented through the yarn API or\n // mock the files by hooking to `xfs`.\n // see the persistProject: false above\n // await this.restorePackageJsons(existingPackageJsons);\n\n if (installReport.hasErrors()) process.exit(installReport.exitCode());\n\n this.logger.consoleSuccess('installing dependencies');\n }\n\n private getPackageJsonPath(dir: string): string {\n const packageJsonPath = join(dir, 'package.json');\n return packageJsonPath;\n }\n\n private async backupPackageJsons(rootDir: string, componentDirectoryMap: ComponentMap<string>): Promise<BackupJsons> {\n const result: BackupJsons = {};\n const rootPackageJsonPath = this.getPackageJsonPath(rootDir);\n result[rootPackageJsonPath] = await this.getFileToBackup(rootPackageJsonPath);\n const componentsBackupsP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const { packageJsonPath, file } = await this.getComponentPackageJsonToBackup(component, dir);\n result[packageJsonPath] = file;\n });\n await Promise.all(componentsBackupsP);\n return result;\n }\n\n private async restorePackageJsons(backupJsons: BackupJsons): Promise<void | undefined> {\n const promises = Object.entries(backupJsons).map(async ([packageJsonPath, file]) => {\n const exists = await fs.pathExists(packageJsonPath);\n // if there is no backup it means it wasn't there before and should be deleted\n if (!file) {\n if (exists) {\n return fs.remove(packageJsonPath);\n }\n return undefined;\n }\n return fs.writeFile(packageJsonPath, file);\n });\n await Promise.all(promises);\n }\n\n private async getFileToBackup(packageJsonPath: string): Promise<Buffer | undefined> {\n const exists = await fs.pathExists(packageJsonPath);\n if (!exists) {\n return undefined;\n }\n const existingFile = await fs.readFile(packageJsonPath);\n return existingFile;\n }\n\n private async getComponentPackageJsonToBackup(\n component: Component,\n dir: string\n ): Promise<{ packageJsonPath: string; file: Buffer | undefined }> {\n const packageJsonPath = resolve(join(dir, 'package.json'));\n const result = {\n packageJsonPath,\n file: await this.getFileToBackup(packageJsonPath),\n };\n return result;\n }\n\n private async createWorkspace(rootDir: string, project: Project, manifest: any, overrides?: Record<string, string>) {\n const wsPath = npath.toPortablePath(rootDir);\n const name = manifest.name || 'workspace';\n\n const ws = new Workspace(wsPath, { project });\n await ws.setup();\n const identity = structUtils.parseIdent(name);\n // const needOverrideInternal = !!ws.manifest.name && !!manifest.name;\n ws.manifest.name = identity;\n ws.manifest.version = manifest.version;\n ws.manifest.dependencies = this.computeDeps(manifest.dependencies);\n ws.manifest.devDependencies = this.computeDeps(manifest.devDependencies);\n ws.manifest.peerDependencies = this.computeDeps(manifest.peerDependencies);\n if (overrides) {\n ws.manifest.resolutions = convertOverridesToResolutions(overrides);\n }\n\n // if (needOverrideInternal) this.overrideInternalWorkspaceParams(ws);\n\n return ws;\n }\n\n /**\n * This is used to handle cases where in the capsules dirs we have the same component with different versions\n * The yarn ident is calculated by the manifest (package.json) name if exist\n * in our case for the same component with different versions we will get the same ident which will result errors later.\n * This is make sense in the original case of yarn workspace (it make sense you don't have 2 workspace with same name)\n * However in our case it doesn't make sense.\n * This function will make sure the ident will use the version as well\n * @param ws\n */\n private overrideInternalWorkspaceParams(ws: Workspace) {\n const ident = structUtils.makeIdent(\n ws.manifest.name?.scope || null,\n `${ws.manifest.name?.name}-${ws.manifest.version}`\n );\n\n ws.manifest.name = ident;\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.locator = structUtils.makeLocator(ident, ws.reference);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredDescriptor = structUtils.makeDescriptor(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredLocator = structUtils.makeLocator(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n }\n\n private setupWorkspaces(project: Project, workspaces: Workspace[]) {\n project.workspaces = [];\n project.workspacesByCwd = new Map();\n project.workspacesByIdent = new Map();\n\n workspaces.forEach((workspace) => {\n const dup = project.workspacesByIdent.get(workspace.locator.identHash);\n if (typeof dup !== `undefined`) {\n throw new Error(`Duplicate workspace name: ${workspace.cwd} conflicts with ${dup.cwd}`);\n }\n\n project.workspaces.push(workspace);\n project.workspacesByCwd.set(workspace.cwd, workspace);\n project.workspacesByIdent.set(workspace.locator.identHash, workspace);\n });\n }\n\n private async getScopedRegistries(registries: Registries) {\n const scopedRegistries = Object.keys(registries.scopes).reduce((acc, scopeName) => {\n const regDef = registries.scopes[scopeName];\n const authProp = this.getAuthProp(regDef);\n acc[scopeName] = {\n npmRegistryServer: regDef.uri,\n npmAlwaysAuth: regDef.alwaysAuth,\n };\n if (authProp) {\n acc[scopeName][authProp.keyName] = authProp.value;\n }\n\n return acc;\n }, {});\n return scopedRegistries;\n }\n\n private getAuthProp(registry: Registry) {\n if (registry.token) {\n return {\n keyName: 'npmAuthToken',\n value: registry.token,\n };\n }\n if (registry.baseToken) {\n return {\n keyName: 'npmAuthIdent',\n value: registry.baseToken,\n };\n }\n return undefined;\n }\n\n private getCacheFolder(baseDir: string = userHome) {\n return `${baseDir}/.yarn/cache`;\n }\n\n // TODO: implement this to automate configuration.\n private async computeConfiguration(\n rootDirPath: PortablePath,\n cacheFolder: string,\n nodeLinker?: 'hoisted' | 'isolated'\n ): Promise<Configuration> {\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const pluginConfig = getPluginConfiguration();\n const config = await Configuration.find(rootDirPath, pluginConfig);\n const scopedRegistries = await this.getScopedRegistries(registries);\n const defaultRegistry = registries.defaultRegistry;\n const defaultAuthProp = this.getAuthProp(defaultRegistry);\n\n const data = {\n nodeLinker: nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',\n installStatePath: `${rootDirPath}/.yarn/install-state.gz`,\n cacheFolder,\n pnpDataPath: `${rootDirPath}/.pnp.meta.json`,\n npmScopes: scopedRegistries,\n virtualFolder: `${rootDirPath}/.yarn/__virtual__`,\n npmRegistryServer: defaultRegistry.uri || 'https://registry.yarnpkg.com',\n npmAlwaysAuth: defaultRegistry.alwaysAuth,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n enableStrictSsl: proxyConfig.strictSSL,\n // enableInlineBuilds: true,\n globalFolder: `${userHome}/.yarn/global`,\n\n // TODO: check about support for the following: (see more here - https://github.com/yarnpkg/berry/issues/1434#issuecomment-801449010)\n // ca?: string;\n // cert?: string;\n // key?: string;\n // noProxy?: boolean | string;\n };\n\n if (defaultAuthProp) {\n data[defaultAuthProp.keyName] = defaultAuthProp.value;\n }\n // TODO: node-modules is hardcoded now until adding support for pnp.\n config.use('<bit>', data, rootDirPath, {});\n\n return config;\n }\n\n private computeComponents(\n componentManifests: ComponentsManifestsMap,\n componentsDirMap: ComponentMap<string>,\n copyPeer = false\n ): { [key: string]: any } {\n return componentsDirMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentManifests.has(packageName)) {\n acc[dir] = componentManifests.get(packageName)?.toJson({ copyPeerToRuntime: copyPeer });\n }\n\n return acc;\n }, {});\n }\n\n private computeDeps(rawDeps?: { [key: string]: string }): Map<IdentHash, Descriptor> {\n const map = new Map<IdentHash, Descriptor>();\n if (!rawDeps) return map;\n\n Object.keys(rawDeps).forEach((packageName) => {\n const ident = structUtils.parseIdent(packageName);\n map.set(ident.identHash, structUtils.makeDescriptor(ident, rawDeps[packageName]));\n });\n\n return map;\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n const parsedPackage = parsePackageName(packageName);\n const parsedVersion = parsedPackage.version;\n const versionType = parsedVersion && versionSelectorType(parsedVersion)?.type;\n if (versionType === 'version') {\n return {\n packageName: parsedPackage.name,\n version: parsedVersion,\n isSemver: true,\n };\n }\n if (!npmPlugin.resolvers) {\n throw new Error('npm resolvers for yarn API not found');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_NpmRemapResolver, NpmSemverResolver, NpmTagResolver] = npmPlugin.resolvers;\n let resolver = new NpmSemverResolver();\n const ident = structUtils.parseIdent(parsedPackage.name);\n let range = 'npm:*';\n const rootDirPath = npath.toPortablePath(options.rootDir);\n const cacheDir = this.getCacheFolder(options.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir);\n\n const project = new Project(rootDirPath, { configuration: config });\n const report = new LightReport({ configuration: config, stdout: process.stdout });\n\n // Handle cases when the version is a dist tag like dev / latest for example bit install lodash@latest\n if (versionType === 'tag') {\n resolver = new NpmTagResolver();\n range = `npm:${parsedPackage.version}`;\n }\n const descriptor = structUtils.makeDescriptor(ident, range);\n\n // @ts-ignore\n project.setupResolutions();\n const resolveOptions: ResolveOptions = {\n project,\n resolver,\n report,\n };\n // const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const parsedRange = structUtils.parseRange(candidates[0].reference);\n const version = parsedRange.selector;\n return {\n packageName: parsedPackage.name,\n version,\n isSemver: true,\n };\n }\n}\n\nfunction convertOverridesToResolutions(\n overrides: Record<string, string>\n): Array<{ pattern: Resolution; reference: string }> {\n const parsedOverrides = parseOverrides(overrides);\n return parsedOverrides.map((override) => ({\n pattern: {\n from: override.parentPkg ? toYarnResolutionSelector(override.parentPkg) : undefined,\n descriptor: toYarnResolutionSelector(override.targetPkg),\n },\n reference: override.newPref,\n }));\n}\n\nfunction toYarnResolutionSelector({ name, pref }: { name: string; pref?: string }) {\n return {\n fullName: name,\n description: pref,\n };\n}\n"]}
1
+ {"version":3,"sources":["yarn.package-manager.ts"],"names":["YarnPackageManager","constructor","depResolver","pkg","logger","install","rootDir","rootPolicy","componentDirectoryMap","installOptions","setStatusLine","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","dependencyFilterFn","components","workspaceManifest","getWorkspaceManifest","undefined","rootDirPath","npath","toPortablePath","cacheDir","getCacheFolder","cacheRootDir","config","computeConfiguration","nodeLinker","packageManagerConfigRootDir","project","Project","configuration","rootManifest","toJsonWithDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","installPeersFromEnvs","manifest","setupResolutions","rootWs","createWorkspace","overrides","manifests","computeComponents","componentsManifestsMap","copyPeerToRuntimeOnComponents","debug","workspacesIdents","workspacesP","Object","keys","map","path","workspace","workspaceIdentHash","locator","identHash","cwd","overrideInternalWorkspaceParams","workspaces","Promise","all","setupWorkspaces","concat","cache","Cache","find","installReport","StreamReport","start","stdout","process","report","persistProject","persistLockfile","hasErrors","exit","exitCode","consoleSuccess","getPackageJsonPath","dir","packageJsonPath","backupPackageJsons","result","rootPackageJsonPath","getFileToBackup","componentsBackupsP","toArray","component","file","getComponentPackageJsonToBackup","restorePackageJsons","backupJsons","promises","entries","exists","fs","pathExists","remove","writeFile","existingFile","readFile","wsPath","name","ws","Workspace","setup","identity","structUtils","parseIdent","version","dependencies","computeDeps","devDependencies","peerDependencies","resolutions","convertOverridesToResolutions","ident","makeIdent","scope","makeLocator","reference","anchoredDescriptor","makeDescriptor","WorkspaceResolver","protocol","relativeCwd","anchoredLocator","workspacesByCwd","Map","workspacesByIdent","forEach","dup","get","Error","push","set","getScopedRegistries","registries","scopedRegistries","scopes","reduce","acc","scopeName","regDef","authProp","getAuthProp","npmRegistryServer","uri","npmAlwaysAuth","alwaysAuth","keyName","value","registry","token","baseToken","baseDir","userHome","cacheFolder","getRegistries","proxyConfig","getProxyConfig","pluginConfig","startingCwd","Configuration","defaultRegistry","defaultAuthProp","data","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","use","componentManifests","componentsDirMap","copyPeer","packageName","getPackageName","has","toJson","rawDeps","resolveRemoteVersion","parsedPackage","parsedVersion","versionType","type","isSemver","npmPlugin","resolvers","_NpmRemapResolver","NpmSemverResolver","NpmTagResolver","resolver","range","LightReport","descriptor","resolveOptions","candidates","getCandidates","parsedRange","parseRange","selector","parsedOverrides","override","pattern","from","parentPkg","toYarnResolutionSelector","targetPkg","newPref","pref","fullName","description"],"mappings":"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","sourcesContent":["import parsePackageName from 'parse-package-name';\nimport {\n extendWithComponentsFromDir,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n Registries,\n Registry,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n} from '@teambit/dependency-resolver';\nimport { ComponentMap, Component } from '@teambit/component';\nimport fs from 'fs-extra';\nimport { join, resolve } from 'path';\nimport {\n Workspace,\n Project,\n Configuration,\n structUtils,\n IdentHash,\n Descriptor,\n Cache,\n StreamReport,\n ResolveOptions,\n LightReport,\n WorkspaceResolver,\n} from '@yarnpkg/core';\nimport { getPluginConfiguration } from '@yarnpkg/cli';\nimport { npath, PortablePath } from '@yarnpkg/fslib';\nimport { Resolution } from '@yarnpkg/parsers';\nimport npmPlugin from '@yarnpkg/plugin-npm';\nimport parseOverrides from '@pnpm/parse-overrides';\nimport { PkgMain } from '@teambit/pkg';\nimport userHome from 'user-home';\nimport { Logger } from '@teambit/logger';\nimport versionSelectorType from 'version-selector-type';\n\ntype BackupJsons = {\n [path: string]: Buffer | undefined;\n};\n\nexport class YarnPackageManager implements PackageManager {\n constructor(private depResolver: DependencyResolverMain, private pkg: PkgMain, private logger: Logger) {}\n\n async install(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<void> {\n this.logger.setStatusLine('installing dependencies');\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const components = componentDirectoryMap.components;\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n\n const rootDirPath = npath.toPortablePath(rootDir);\n const cacheDir = this.getCacheFolder(installOptions.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n nodeLinker: installOptions.nodeLinker,\n packageManagerConfigRootDir: installOptions.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJsonWithDir({\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n installPeersFromEnvs: installOptions.installPeersFromEnvs,\n }).manifest;\n\n // @ts-ignore\n project.setupResolutions();\n const rootWs = await this.createWorkspace(rootDir, project, rootManifest, installOptions.overrides);\n\n // const manifests = Array.from(workspaceManifest.componentsManifestsMap.entries());\n const manifests = this.computeComponents(\n workspaceManifest.componentsManifestsMap,\n componentDirectoryMap,\n installOptions.copyPeerToRuntimeOnComponents\n );\n await extendWithComponentsFromDir(rootDir, manifests);\n\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', manifests);\n\n const workspacesIdents = {};\n\n const workspacesP = Object.keys(manifests).map(async (path) => {\n const manifest = manifests[path];\n const workspace = await this.createWorkspace(path, project, manifest);\n const workspaceIdentHash = workspace.locator.identHash;\n //\n if (workspacesIdents[workspaceIdentHash]) {\n this.logger.debug(\n `overriding internal workspace fields to prevent duplications for workspace ${workspace.cwd}`\n );\n this.overrideInternalWorkspaceParams(workspace);\n }\n workspacesIdents[workspace.locator.identHash] = true;\n return workspace;\n });\n\n const workspaces = await Promise.all(workspacesP);\n\n this.setupWorkspaces(project, workspaces.concat(rootWs));\n\n const cache = await Cache.find(config);\n // const existingPackageJsons = await this.backupPackageJsons(rootDir, componentDirectoryMap);\n\n const installReport = await StreamReport.start(\n {\n stdout: process.stdout,\n configuration: config,\n },\n async (report) => {\n await project.install({\n persistProject: false,\n cache,\n report,\n });\n await project.persistLockfile();\n }\n );\n\n // TODO: check if package.json and link files generation can be prevented through the yarn API or\n // mock the files by hooking to `xfs`.\n // see the persistProject: false above\n // await this.restorePackageJsons(existingPackageJsons);\n\n if (installReport.hasErrors()) process.exit(installReport.exitCode());\n\n this.logger.consoleSuccess('installing dependencies');\n }\n\n private getPackageJsonPath(dir: string): string {\n const packageJsonPath = join(dir, 'package.json');\n return packageJsonPath;\n }\n\n private async backupPackageJsons(rootDir: string, componentDirectoryMap: ComponentMap<string>): Promise<BackupJsons> {\n const result: BackupJsons = {};\n const rootPackageJsonPath = this.getPackageJsonPath(rootDir);\n result[rootPackageJsonPath] = await this.getFileToBackup(rootPackageJsonPath);\n const componentsBackupsP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const { packageJsonPath, file } = await this.getComponentPackageJsonToBackup(component, dir);\n result[packageJsonPath] = file;\n });\n await Promise.all(componentsBackupsP);\n return result;\n }\n\n private async restorePackageJsons(backupJsons: BackupJsons): Promise<void | undefined> {\n const promises = Object.entries(backupJsons).map(async ([packageJsonPath, file]) => {\n const exists = await fs.pathExists(packageJsonPath);\n // if there is no backup it means it wasn't there before and should be deleted\n if (!file) {\n if (exists) {\n return fs.remove(packageJsonPath);\n }\n return undefined;\n }\n return fs.writeFile(packageJsonPath, file);\n });\n await Promise.all(promises);\n }\n\n private async getFileToBackup(packageJsonPath: string): Promise<Buffer | undefined> {\n const exists = await fs.pathExists(packageJsonPath);\n if (!exists) {\n return undefined;\n }\n const existingFile = await fs.readFile(packageJsonPath);\n return existingFile;\n }\n\n private async getComponentPackageJsonToBackup(\n component: Component,\n dir: string\n ): Promise<{ packageJsonPath: string; file: Buffer | undefined }> {\n const packageJsonPath = resolve(join(dir, 'package.json'));\n const result = {\n packageJsonPath,\n file: await this.getFileToBackup(packageJsonPath),\n };\n return result;\n }\n\n private async createWorkspace(rootDir: string, project: Project, manifest: any, overrides?: Record<string, string>) {\n const wsPath = npath.toPortablePath(rootDir);\n const name = manifest.name || 'workspace';\n\n const ws = new Workspace(wsPath, { project });\n await ws.setup();\n const identity = structUtils.parseIdent(name);\n // const needOverrideInternal = !!ws.manifest.name && !!manifest.name;\n ws.manifest.name = identity;\n ws.manifest.version = manifest.version;\n ws.manifest.dependencies = this.computeDeps(manifest.dependencies);\n ws.manifest.devDependencies = this.computeDeps(manifest.devDependencies);\n ws.manifest.peerDependencies = this.computeDeps(manifest.peerDependencies);\n if (overrides) {\n ws.manifest.resolutions = convertOverridesToResolutions(overrides);\n }\n\n // if (needOverrideInternal) this.overrideInternalWorkspaceParams(ws);\n\n return ws;\n }\n\n /**\n * This is used to handle cases where in the capsules dirs we have the same component with different versions\n * The yarn ident is calculated by the manifest (package.json) name if exist\n * in our case for the same component with different versions we will get the same ident which will result errors later.\n * This is make sense in the original case of yarn workspace (it make sense you don't have 2 workspace with same name)\n * However in our case it doesn't make sense.\n * This function will make sure the ident will use the version as well\n * @param ws\n */\n private overrideInternalWorkspaceParams(ws: Workspace) {\n const ident = structUtils.makeIdent(\n ws.manifest.name?.scope || null,\n `${ws.manifest.name?.name}-${ws.manifest.version}`\n );\n\n ws.manifest.name = ident;\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.locator = structUtils.makeLocator(ident, ws.reference);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredDescriptor = structUtils.makeDescriptor(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n\n // @ts-expect-error: It's ok to initialize it now, even if it's readonly (setup is called right after construction)\n ws.anchoredLocator = structUtils.makeLocator(ws.locator, `${WorkspaceResolver.protocol}${ws.relativeCwd}`);\n }\n\n private setupWorkspaces(project: Project, workspaces: Workspace[]) {\n project.workspaces = [];\n project.workspacesByCwd = new Map();\n project.workspacesByIdent = new Map();\n\n workspaces.forEach((workspace) => {\n const dup = project.workspacesByIdent.get(workspace.locator.identHash);\n if (typeof dup !== `undefined`) {\n throw new Error(`Duplicate workspace name: ${workspace.cwd} conflicts with ${dup.cwd}`);\n }\n\n project.workspaces.push(workspace);\n project.workspacesByCwd.set(workspace.cwd, workspace);\n project.workspacesByIdent.set(workspace.locator.identHash, workspace);\n });\n }\n\n private async getScopedRegistries(registries: Registries) {\n const scopedRegistries = Object.keys(registries.scopes).reduce((acc, scopeName) => {\n const regDef = registries.scopes[scopeName];\n const authProp = this.getAuthProp(regDef);\n acc[scopeName] = {\n npmRegistryServer: regDef.uri,\n npmAlwaysAuth: regDef.alwaysAuth,\n };\n if (authProp) {\n acc[scopeName][authProp.keyName] = authProp.value;\n }\n\n return acc;\n }, {});\n return scopedRegistries;\n }\n\n private getAuthProp(registry: Registry) {\n if (registry.token) {\n return {\n keyName: 'npmAuthToken',\n value: registry.token,\n };\n }\n if (registry.baseToken) {\n return {\n keyName: 'npmAuthIdent',\n value: registry.baseToken,\n };\n }\n return undefined;\n }\n\n private getCacheFolder(baseDir: string = userHome) {\n return `${baseDir}/.yarn/cache`;\n }\n\n // TODO: implement this to automate configuration.\n private async computeConfiguration(\n rootDirPath: PortablePath,\n cacheFolder: string,\n options: {\n nodeLinker?: 'hoisted' | 'isolated';\n packageManagerConfigRootDir?: string;\n }\n ): Promise<Configuration> {\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const pluginConfig = getPluginConfiguration();\n let startingCwd: PortablePath;\n if (options.packageManagerConfigRootDir) {\n startingCwd = npath.toPortablePath(options.packageManagerConfigRootDir);\n } else {\n startingCwd = rootDirPath;\n }\n const config = await Configuration.find(startingCwd, pluginConfig);\n const scopedRegistries = await this.getScopedRegistries(registries);\n const defaultRegistry = registries.defaultRegistry;\n const defaultAuthProp = this.getAuthProp(defaultRegistry);\n\n const data = {\n nodeLinker: options.nodeLinker === 'isolated' ? 'pnpm' : 'node-modules',\n installStatePath: `${rootDirPath}/.yarn/install-state.gz`,\n cacheFolder,\n pnpDataPath: `${rootDirPath}/.pnp.meta.json`,\n npmScopes: scopedRegistries,\n virtualFolder: `${rootDirPath}/.yarn/__virtual__`,\n npmRegistryServer: defaultRegistry.uri || 'https://registry.yarnpkg.com',\n npmAlwaysAuth: defaultRegistry.alwaysAuth,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n enableStrictSsl: proxyConfig.strictSSL,\n // enableInlineBuilds: true,\n globalFolder: `${userHome}/.yarn/global`,\n\n // TODO: check about support for the following: (see more here - https://github.com/yarnpkg/berry/issues/1434#issuecomment-801449010)\n // ca?: string;\n // cert?: string;\n // key?: string;\n // noProxy?: boolean | string;\n };\n\n if (defaultAuthProp) {\n data[defaultAuthProp.keyName] = defaultAuthProp.value;\n }\n // TODO: node-modules is hardcoded now until adding support for pnp.\n config.use('<bit>', data, rootDirPath, {});\n\n return config;\n }\n\n private computeComponents(\n componentManifests: ComponentsManifestsMap,\n componentsDirMap: ComponentMap<string>,\n copyPeer = false\n ): { [key: string]: any } {\n return componentsDirMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentManifests.has(packageName)) {\n acc[dir] = componentManifests.get(packageName)?.toJson({ copyPeerToRuntime: copyPeer });\n }\n\n return acc;\n }, {});\n }\n\n private computeDeps(rawDeps?: { [key: string]: string }): Map<IdentHash, Descriptor> {\n const map = new Map<IdentHash, Descriptor>();\n if (!rawDeps) return map;\n\n Object.keys(rawDeps).forEach((packageName) => {\n const ident = structUtils.parseIdent(packageName);\n map.set(ident.identHash, structUtils.makeDescriptor(ident, rawDeps[packageName]));\n });\n\n return map;\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n const parsedPackage = parsePackageName(packageName);\n const parsedVersion = parsedPackage.version;\n const versionType = parsedVersion && versionSelectorType(parsedVersion)?.type;\n if (versionType === 'version') {\n return {\n packageName: parsedPackage.name,\n version: parsedVersion,\n isSemver: true,\n };\n }\n if (!npmPlugin.resolvers) {\n throw new Error('npm resolvers for yarn API not found');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_NpmRemapResolver, NpmSemverResolver, NpmTagResolver] = npmPlugin.resolvers;\n let resolver = new NpmSemverResolver();\n const ident = structUtils.parseIdent(parsedPackage.name);\n let range = 'npm:*';\n const rootDirPath = npath.toPortablePath(options.rootDir);\n const cacheDir = this.getCacheFolder(options.cacheRootDir);\n const config = await this.computeConfiguration(rootDirPath, cacheDir, {\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n });\n\n const project = new Project(rootDirPath, { configuration: config });\n const report = new LightReport({ configuration: config, stdout: process.stdout });\n\n // Handle cases when the version is a dist tag like dev / latest for example bit install lodash@latest\n if (versionType === 'tag') {\n resolver = new NpmTagResolver();\n range = `npm:${parsedPackage.version}`;\n }\n const descriptor = structUtils.makeDescriptor(ident, range);\n\n // @ts-ignore\n project.setupResolutions();\n const resolveOptions: ResolveOptions = {\n project,\n resolver,\n report,\n };\n // const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const candidates = await resolver.getCandidates(descriptor, new Map(), resolveOptions);\n const parsedRange = structUtils.parseRange(candidates[0].reference);\n const version = parsedRange.selector;\n return {\n packageName: parsedPackage.name,\n version,\n isSemver: true,\n };\n }\n}\n\nfunction convertOverridesToResolutions(\n overrides: Record<string, string>\n): Array<{ pattern: Resolution; reference: string }> {\n const parsedOverrides = parseOverrides(overrides);\n return parsedOverrides.map((override) => ({\n pattern: {\n from: override.parentPkg ? toYarnResolutionSelector(override.parentPkg) : undefined,\n descriptor: toYarnResolutionSelector(override.targetPkg),\n },\n reference: override.newPref,\n }));\n}\n\nfunction toYarnResolutionSelector({ name, pref }: { name: string; pref?: string }) {\n return {\n fullName: name,\n description: pref,\n };\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/yarn",
3
- "version": "0.0.666",
3
+ "version": "0.0.669",
4
4
  "homepage": "https://bit.dev/teambit/dependencies/yarn",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.dependencies",
8
8
  "name": "yarn",
9
- "version": "0.0.666"
9
+ "version": "0.0.669"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -22,13 +22,13 @@
22
22
  "version-selector-type": "3.0.0",
23
23
  "@babel/runtime": "7.12.18",
24
24
  "core-js": "^3.0.0",
25
- "@teambit/cli": "0.0.450",
26
- "@teambit/dependency-resolver": "0.0.665",
27
- "@teambit/logger": "0.0.540",
28
- "@teambit/pkg": "0.0.665",
29
- "@teambit/component": "0.0.665",
25
+ "@teambit/cli": "0.0.451",
26
+ "@teambit/dependency-resolver": "0.0.668",
27
+ "@teambit/logger": "0.0.541",
28
+ "@teambit/pkg": "0.0.668",
29
+ "@teambit/component": "0.0.668",
30
30
  "@teambit/ui-foundation.ui.use-box.menu": "0.0.111",
31
- "@teambit/ui": "0.0.665"
31
+ "@teambit/ui": "0.0.668"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/react": "^17.0.8",
@@ -41,7 +41,7 @@
41
41
  "@teambit/dependencies.aspect-docs.yarn": "0.0.132"
42
42
  },
43
43
  "peerDependencies": {
44
- "@teambit/legacy": "1.0.229",
44
+ "@teambit/legacy": "1.0.230",
45
45
  "react-dom": "^16.8.0 || ^17.0.0",
46
46
  "react": "^16.8.0 || ^17.0.0"
47
47
  },
@@ -69,7 +69,7 @@
69
69
  "react": "-"
70
70
  },
71
71
  "peerDependencies": {
72
- "@teambit/legacy": "1.0.229",
72
+ "@teambit/legacy": "1.0.230",
73
73
  "react-dom": "^16.8.0 || ^17.0.0",
74
74
  "react": "^16.8.0 || ^17.0.0"
75
75
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.666/dist/yarn.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.666/dist/yarn.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.669/dist/yarn.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_yarn@0.0.669/dist/yarn.docs.mdx')]