@teambit/yarn 0.0.593 → 0.0.597

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { YarnAspect } from './yarn.aspect';
1
+ export { YarnAspect as default, YarnAspect } from './yarn.aspect';
2
2
  export type { YarnMain } from './yarn.main.runtime';
3
- export { YarnAspect };
4
- export default YarnAspect;
3
+ export type { YarnUI } from './yarn.ui.runtime';
package/dist/index.js CHANGED
@@ -9,7 +9,12 @@ Object.defineProperty(exports, "YarnAspect", {
9
9
  return _yarn().YarnAspect;
10
10
  }
11
11
  });
12
- exports.default = void 0;
12
+ Object.defineProperty(exports, "default", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _yarn().YarnAspect;
16
+ }
17
+ });
13
18
 
14
19
  function _yarn() {
15
20
  const data = require("./yarn.aspect");
@@ -21,8 +26,4 @@ function _yarn() {
21
26
  return data;
22
27
  }
23
28
 
24
- var _default = _yarn().YarnAspect;
25
-
26
- exports.default = _default;
27
-
28
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["YarnAspect"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;eAIeA,kB","sourcesContent":["import { YarnAspect } from './yarn.aspect';\n\nexport type { YarnMain } from './yarn.main.runtime';\nexport { YarnAspect };\nexport default YarnAspect;\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { YarnAspect as default, YarnAspect } from './yarn.aspect';\n\nexport type { YarnMain } from './yarn.main.runtime';\nexport type { YarnUI } from './yarn.ui.runtime';\n"]}
@@ -11,16 +11,6 @@ Object.defineProperty(exports, "__esModule", {
11
11
  });
12
12
  exports.YarnPackageManager = void 0;
13
13
 
14
- function semver() {
15
- const data = _interopRequireWildcard(require("semver"));
16
-
17
- semver = function () {
18
- return data;
19
- };
20
-
21
- return data;
22
- }
23
-
24
14
  function _parsePackageName() {
25
15
  const data = _interopRequireDefault(require("parse-package-name"));
26
16
 
@@ -111,9 +101,15 @@ function _userHome() {
111
101
  return data;
112
102
  }
113
103
 
114
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
104
+ function _versionSelectorType2() {
105
+ const data = _interopRequireDefault(require("version-selector-type"));
115
106
 
116
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
107
+ _versionSelectorType2 = function () {
108
+ return data;
109
+ };
110
+
111
+ return data;
112
+ }
117
113
 
118
114
  class YarnPackageManager {
119
115
  constructor(depResolver, pkg, logger) {
@@ -419,10 +415,13 @@ class YarnPackageManager {
419
415
  }
420
416
 
421
417
  async resolveRemoteVersion(packageName, options) {
418
+ var _versionSelectorType;
419
+
422
420
  const parsedPackage = (0, _parsePackageName().default)(packageName);
423
421
  const parsedVersion = parsedPackage.version;
422
+ const versionType = parsedVersion && ((_versionSelectorType = (0, _versionSelectorType2().default)(parsedVersion)) === null || _versionSelectorType === void 0 ? void 0 : _versionSelectorType.type);
424
423
 
425
- if (parsedVersion && semver().valid(parsedVersion)) {
424
+ if (versionType === 'version') {
426
425
  return {
427
426
  packageName: parsedPackage.name,
428
427
  version: parsedVersion,
@@ -455,7 +454,7 @@ class YarnPackageManager {
455
454
  stdout: process.stdout
456
455
  }); // Handle cases when the version is a dist tag like dev / latest for example bit install lodash@latest
457
456
 
458
- if (parsedPackage.version) {
457
+ if (versionType === 'tag') {
459
458
  resolver = new NpmTagResolver();
460
459
  range = `npm:${parsedPackage.version}`;
461
460
  }
@@ -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","project","Project","configuration","rootManifest","toJson","includeDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","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","nodeLinker","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","use","componentManifests","componentsDirMap","copyPeer","packageName","getPackageName","has","rawDeps","resolveRemoteVersion","parsedPackage","parsedVersion","semver","valid","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 * as semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport {\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';\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\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJson({\n includeDir: true,\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\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\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(rootDirPath: PortablePath, cacheFolder: string): 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: '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 if (parsedVersion && semver.valid(parsedVersion)) {\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 (parsedPackage.version) {\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","project","Project","configuration","rootManifest","toJson","includeDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","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","nodeLinker","installStatePath","pnpDataPath","npmScopes","virtualFolder","httpProxy","httpsProxy","enableStrictSsl","strictSSL","globalFolder","use","componentManifests","componentsDirMap","copyPeer","packageName","getPackageName","has","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 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\n const project = new Project(rootDirPath, { configuration: config });\n\n const rootManifest = workspaceManifest.toJson({\n includeDir: true,\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\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\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(rootDirPath: PortablePath, cacheFolder: string): 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: '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"]}
@@ -0,0 +1,8 @@
1
+ import { ComponentUI } from '@teambit/component';
2
+ export declare class YarnUI {
3
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
4
+ static dependencies: import("@teambit/harmony").Aspect[];
5
+ static provider([componentUI]: [ComponentUI]): Promise<YarnUI>;
6
+ private consumeMethod;
7
+ }
8
+ export default YarnUI;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ require("core-js/modules/es.regexp.exec.js");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = exports.YarnUI = void 0;
15
+
16
+ function _defineProperty2() {
17
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+
19
+ _defineProperty2 = function () {
20
+ return data;
21
+ };
22
+
23
+ return data;
24
+ }
25
+
26
+ function _react() {
27
+ const data = _interopRequireDefault(require("react"));
28
+
29
+ _react = function () {
30
+ return data;
31
+ };
32
+
33
+ return data;
34
+ }
35
+
36
+ function _ui() {
37
+ const data = require("@teambit/ui");
38
+
39
+ _ui = function () {
40
+ return data;
41
+ };
42
+
43
+ return data;
44
+ }
45
+
46
+ function _uiFoundationUiUseBox() {
47
+ const data = require("@teambit/ui-foundation.ui.use-box.menu");
48
+
49
+ _uiFoundationUiUseBox = function () {
50
+ return data;
51
+ };
52
+
53
+ return data;
54
+ }
55
+
56
+ function _component() {
57
+ const data = _interopRequireDefault(require("@teambit/component"));
58
+
59
+ _component = function () {
60
+ return data;
61
+ };
62
+
63
+ return data;
64
+ }
65
+
66
+ function _yarn() {
67
+ const data = require("./yarn.aspect");
68
+
69
+ _yarn = function () {
70
+ return data;
71
+ };
72
+
73
+ return data;
74
+ }
75
+
76
+ class YarnUI {
77
+ constructor() {
78
+ (0, _defineProperty2().default)(this, "consumeMethod", comp => {
79
+ const registry = comp.packageName.split('/')[0];
80
+ const packageVersion = comp.version === comp.latest ? '' : `@${comp.version}`;
81
+ return {
82
+ Title: /*#__PURE__*/_react().default.createElement("img", {
83
+ style: {
84
+ height: '17px',
85
+ paddingTop: '4px'
86
+ },
87
+ src: "https://static.bit.dev/brands/logo-yarn-text.svg"
88
+ }),
89
+ Component: /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox().Install, {
90
+ config: `npm config set '${registry}:registry' https://node.bit.dev`,
91
+ componentName: comp.id.name,
92
+ packageManager: "yarn",
93
+ copyString: `yarn add ${comp.packageName}${packageVersion}`,
94
+ registryName: registry
95
+ }),
96
+ order: 20
97
+ };
98
+ });
99
+ }
100
+
101
+ static async provider([componentUI]) {
102
+ const yarn = new YarnUI();
103
+ componentUI.registerConsumeMethod(yarn.consumeMethod);
104
+ return yarn;
105
+ }
106
+
107
+ }
108
+
109
+ exports.YarnUI = YarnUI;
110
+ (0, _defineProperty2().default)(YarnUI, "runtime", _ui().UIRuntime);
111
+ (0, _defineProperty2().default)(YarnUI, "dependencies", [_component().default]);
112
+ var _default = YarnUI;
113
+ exports.default = _default;
114
+
115
+ _yarn().YarnAspect.addRuntime(YarnUI);
116
+
117
+ //# sourceMappingURL=yarn.ui.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["yarn.ui.runtime.tsx"],"names":["YarnUI","comp","registry","packageName","split","packageVersion","version","latest","Title","height","paddingTop","Component","id","name","order","provider","componentUI","yarn","registerConsumeMethod","consumeMethod","UIRuntime","ComponentAspect","YarnAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,MAAN,CAAa;AAAA;AAAA,2DAWsBC,IAAD,IAAU;AAC/C,YAAMC,QAAQ,GAAGD,IAAI,CAACE,WAAL,CAAiBC,KAAjB,CAAuB,GAAvB,EAA4B,CAA5B,CAAjB;AACA,YAAMC,cAAc,GAAGJ,IAAI,CAACK,OAAL,KAAiBL,IAAI,CAACM,MAAtB,GAA+B,EAA/B,GAAqC,IAAGN,IAAI,CAACK,OAAQ,EAA5E;AACA,aAAO;AACLE,QAAAA,KAAK,eACH;AAAK,UAAA,KAAK,EAAE;AAAEC,YAAAA,MAAM,EAAE,MAAV;AAAkBC,YAAAA,UAAU,EAAE;AAA9B,WAAZ;AAAmD,UAAA,GAAG,EAAC;AAAvD,UAFG;AAILC,QAAAA,SAAS,eACP,+BAAC,+BAAD;AACE,UAAA,MAAM,EAAG,mBAAkBT,QAAS,iCADtC;AAEE,UAAA,aAAa,EAAED,IAAI,CAACW,EAAL,CAAQC,IAFzB;AAGE,UAAA,cAAc,EAAC,MAHjB;AAIE,UAAA,UAAU,EAAG,YAAWZ,IAAI,CAACE,WAAY,GAAEE,cAAe,EAJ5D;AAKE,UAAA,YAAY,EAAEH;AALhB,UALG;AAaLY,QAAAA,KAAK,EAAE;AAbF,OAAP;AAeD,KA7BiB;AAAA;;AAKG,eAARC,QAAQ,CAAC,CAACC,WAAD,CAAD,EAA+B;AAClD,UAAMC,IAAI,GAAG,IAAIjB,MAAJ,EAAb;AACAgB,IAAAA,WAAW,CAACE,qBAAZ,CAAkCD,IAAI,CAACE,aAAvC;AACA,WAAOF,IAAP;AACD;;AATiB;;;gCAAPjB,M,aACMoB,e;gCADNpB,M,kBAGW,CAACqB,oBAAD,C;eA6BTrB,M;;;AAEfsB,mBAAWC,UAAX,CAAsBvB,MAAtB","sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { Install } from '@teambit/ui-foundation.ui.use-box.menu';\nimport ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';\nimport { YarnAspect } from './yarn.aspect';\n\nexport class YarnUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const yarn = new YarnUI();\n componentUI.registerConsumeMethod(yarn.consumeMethod);\n return yarn;\n }\n\n private consumeMethod: ConsumePlugin = (comp) => {\n const registry = comp.packageName.split('/')[0];\n const packageVersion = comp.version === comp.latest ? '' : `@${comp.version}`;\n return {\n Title: (\n <img style={{ height: '17px', paddingTop: '4px' }} src=\"https://static.bit.dev/brands/logo-yarn-text.svg\" />\n ),\n Component: (\n <Install\n config={`npm config set '${registry}:registry' https://node.bit.dev`}\n componentName={comp.id.name}\n packageManager=\"yarn\"\n copyString={`yarn add ${comp.packageName}${packageVersion}`}\n registryName={registry}\n />\n ),\n order: 20,\n };\n };\n}\n\nexport default YarnUI;\n\nYarnAspect.addRuntime(YarnUI);\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/yarn",
3
- "version": "0.0.593",
3
+ "version": "0.0.597",
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.593"
9
+ "version": "0.0.597"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -18,29 +18,30 @@
18
18
  "@yarnpkg/plugin-npm": "2.6.1-rc.6",
19
19
  "fs-extra": "10.0.0",
20
20
  "parse-package-name": "0.1.0",
21
- "semver": "7.3.4",
22
21
  "user-home": "2.0.0",
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.406",
26
- "@teambit/dependency-resolver": "0.0.592",
27
- "@teambit/logger": "0.0.494",
28
- "@teambit/pkg": "0.0.592",
29
- "@teambit/component": "0.0.592"
25
+ "@teambit/cli": "0.0.409",
26
+ "@teambit/dependency-resolver": "0.0.596",
27
+ "@teambit/logger": "0.0.497",
28
+ "@teambit/pkg": "0.0.596",
29
+ "@teambit/component": "0.0.596",
30
+ "@teambit/ui-foundation.ui.use-box.menu": "0.0.107",
31
+ "@teambit/ui": "0.0.596"
30
32
  },
31
33
  "devDependencies": {
32
34
  "@types/react": "^17.0.8",
33
35
  "@types/fs-extra": "9.0.7",
34
- "@types/semver": "7.3.4",
35
36
  "@types/mocha": "5.2.7",
36
37
  "@types/testing-library__jest-dom": "5.9.5",
37
38
  "@types/jest": "^26.0.0",
38
39
  "@types/react-dom": "^17.0.5",
39
40
  "@types/node": "12.20.4",
40
- "@teambit/dependencies.aspect-docs.yarn": "0.0.128"
41
+ "@teambit/dependencies.aspect-docs.yarn": "0.0.130"
41
42
  },
42
43
  "peerDependencies": {
43
- "@teambit/legacy": "1.0.192",
44
+ "@teambit/legacy": "1.0.196",
44
45
  "react-dom": "^16.8.0 || ^17.0.0",
45
46
  "react": "^16.8.0 || ^17.0.0"
46
47
  },
@@ -68,7 +69,7 @@
68
69
  "react": "-"
69
70
  },
70
71
  "peerDependencies": {
71
- "@teambit/legacy": "1.0.192",
72
+ "@teambit/legacy": "1.0.196",
72
73
  "react-dom": "^16.8.0 || ^17.0.0",
73
74
  "react": "^16.8.0 || ^17.0.0"
74
75
  }
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { UIRuntime } from '@teambit/ui';
3
+ import { Install } from '@teambit/ui-foundation.ui.use-box.menu';
4
+ import ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';
5
+ import { YarnAspect } from './yarn.aspect';
6
+
7
+ export class YarnUI {
8
+ static runtime = UIRuntime;
9
+
10
+ static dependencies = [ComponentAspect];
11
+
12
+ static async provider([componentUI]: [ComponentUI]) {
13
+ const yarn = new YarnUI();
14
+ componentUI.registerConsumeMethod(yarn.consumeMethod);
15
+ return yarn;
16
+ }
17
+
18
+ private consumeMethod: ConsumePlugin = (comp) => {
19
+ const registry = comp.packageName.split('/')[0];
20
+ const packageVersion = comp.version === comp.latest ? '' : `@${comp.version}`;
21
+ return {
22
+ Title: (
23
+ <img style={{ height: '17px', paddingTop: '4px' }} src="https://static.bit.dev/brands/logo-yarn-text.svg" />
24
+ ),
25
+ Component: (
26
+ <Install
27
+ config={`npm config set '${registry}:registry' https://node.bit.dev`}
28
+ componentName={comp.id.name}
29
+ packageManager="yarn"
30
+ copyString={`yarn add ${comp.packageName}${packageVersion}`}
31
+ registryName={registry}
32
+ />
33
+ ),
34
+ order: 20,
35
+ };
36
+ };
37
+ }
38
+
39
+ export default YarnUI;
40
+
41
+ YarnAspect.addRuntime(YarnUI);