@teambit/pnpm 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,3 +1,3 @@
1
- export { PnpmPackageManager } from './pnpm.package-manager';
2
1
  export type { PnpmMain } from './pnpm.main.runtime';
3
- export { PnpmAspect } from './pnpm.aspect';
2
+ export type { PnpmUI } from './pnpm.ui.runtime';
3
+ export { PnpmAspect as default, PnpmAspect } from './pnpm.aspect';
package/dist/index.js CHANGED
@@ -6,30 +6,20 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "PnpmAspect", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _pnpm2().PnpmAspect;
9
+ return _pnpm().PnpmAspect;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "PnpmPackageManager", {
12
+ Object.defineProperty(exports, "default", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _pnpm().PnpmPackageManager;
15
+ return _pnpm().PnpmAspect;
16
16
  }
17
17
  });
18
18
 
19
19
  function _pnpm() {
20
- const data = require("./pnpm.package-manager");
21
-
22
- _pnpm = function () {
23
- return data;
24
- };
25
-
26
- return data;
27
- }
28
-
29
- function _pnpm2() {
30
20
  const data = require("./pnpm.aspect");
31
21
 
32
- _pnpm2 = function () {
22
+ _pnpm = function () {
33
23
  return data;
34
24
  };
35
25
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { PnpmPackageManager } from './pnpm.package-manager';\nexport type { PnpmMain } from './pnpm.main.runtime';\nexport { PnpmAspect } from './pnpm.aspect';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { PnpmMain } from './pnpm.main.runtime';\nexport type { PnpmUI } from './pnpm.ui.runtime';\nexport { PnpmAspect as default, PnpmAspect } from './pnpm.aspect';\n"]}
package/dist/lynx.d.ts CHANGED
@@ -1,6 +1,15 @@
1
1
  import { ResolvedPackageVersion, Registries, PackageManagerProxyConfig, PackageManagerNetworkConfig } from '@teambit/dependency-resolver';
2
+ import { PeerDependencyIssuesByProjects } from '@pnpm/core';
2
3
  import { Logger } from '@teambit/logger';
3
- export declare function install(rootPathToManifest: any, pathsToManifests: any, storeDir: string, cacheDir: string, registries: Registries, proxyConfig?: PackageManagerProxyConfig, networkConfig?: PackageManagerNetworkConfig, options?: {
4
+ export declare function getPeerDependencyIssues(rootManifest: any, manifestsByPaths: Record<string, any>, opts: {
5
+ storeDir: string;
6
+ cacheDir: string;
7
+ registries: Registries;
8
+ proxyConfig: PackageManagerProxyConfig;
9
+ networkConfig: PackageManagerNetworkConfig;
10
+ overrides?: Record<string, string>;
11
+ }): Promise<PeerDependencyIssuesByProjects>;
12
+ export declare function install(rootManifest: any, manifestsByPaths: any, storeDir: string, cacheDir: string, registries: Registries, proxyConfig?: PackageManagerProxyConfig, networkConfig?: PackageManagerNetworkConfig, options?: {
4
13
  overrides?: Record<string, string>;
5
14
  }, logger?: Logger): Promise<void>;
6
15
  export declare function resolveRemoteVersion(packageName: string, rootDir: string, cacheDir: string, registries: Registries, proxyConfig?: PackageManagerProxyConfig, networkConfig?: PackageManagerNetworkConfig): Promise<ResolvedPackageVersion>;
package/dist/lynx.js CHANGED
@@ -11,6 +11,7 @@ require("core-js/modules/es.regexp.exec.js");
11
11
  Object.defineProperty(exports, "__esModule", {
12
12
  value: true
13
13
  });
14
+ exports.getPeerDependencyIssues = getPeerDependencyIssues;
14
15
  exports.install = install;
15
16
  exports.resolveRemoteVersion = resolveRemoteVersion;
16
17
 
@@ -74,10 +75,10 @@ function _dependencyResolver() {
74
75
  return data;
75
76
  }
76
77
 
77
- function _core() {
78
- const data = require("@pnpm/core");
78
+ function pnpm() {
79
+ const data = _interopRequireWildcard(require("@pnpm/core"));
79
80
 
80
- _core = function () {
81
+ pnpm = function () {
81
82
  return data;
82
83
  };
83
84
 
@@ -124,6 +125,12 @@ function _readConfig() {
124
125
  return data;
125
126
  }
126
127
 
128
+ 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); }
129
+
130
+ 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; }
131
+
132
+ const STORE_CACHE = {};
133
+
127
134
  async function createStoreController(rootDir, storeDir, cacheDir, registries, proxyConfig = {}, networkConfig = {}) {
128
135
  const authConfig = getAuthConfig(registries);
129
136
  const opts = {
@@ -142,10 +149,18 @@ async function createStoreController(rootDir, storeDir, cacheDir, registries, pr
142
149
  strictSsl: proxyConfig.strictSSL,
143
150
  maxSockets: networkConfig.maxSockets,
144
151
  networkConcurrency: networkConfig.networkConcurrency
145
- }; // Although it would be enough to call createNewStoreController(),
146
- // that doesn't resolve the store directory location.
152
+ }; // We should avoid the recreation of store.
153
+ // The store holds cache that makes subsequent resolutions faster.
154
+
155
+ const cacheKey = JSON.stringify(opts);
156
+
157
+ if (!STORE_CACHE[cacheKey]) {
158
+ // Although it would be enough to call createNewStoreController(),
159
+ // that doesn't resolve the store directory location.
160
+ STORE_CACHE[cacheKey] = await (0, _storeConnectionManager().createOrConnectStoreController)(opts);
161
+ }
147
162
 
148
- return (0, _storeConnectionManager().createOrConnectStoreController)(opts);
163
+ return STORE_CACHE[cacheKey];
149
164
  }
150
165
 
151
166
  async function generateResolverAndFetcher(cacheDir, registries, proxyConfig = {}, networkConfig = {}) {
@@ -174,7 +189,38 @@ async function generateResolverAndFetcher(cacheDir, registries, proxyConfig = {}
174
189
  return result;
175
190
  }
176
191
 
177
- async function install(rootPathToManifest, pathsToManifests, storeDir, cacheDir, registries, proxyConfig = {}, networkConfig = {}, options, // eslint-disable-next-line @typescript-eslint/no-unused-vars
192
+ async function getPeerDependencyIssues(rootManifest, manifestsByPaths, opts) {
193
+ const projects = [];
194
+ const workspacePackages = {};
195
+
196
+ for (const [rootDir, manifest] of Object.entries(manifestsByPaths)) {
197
+ projects.push({
198
+ manifest,
199
+ rootDir
200
+ });
201
+ workspacePackages[manifest.name] = workspacePackages[manifest.name] || {};
202
+ workspacePackages[manifest.name][manifest.version] = {
203
+ dir: rootDir,
204
+ manifest
205
+ };
206
+ }
207
+
208
+ projects.push({
209
+ manifest: rootManifest.manifest,
210
+ rootDir: rootManifest.rootDir
211
+ });
212
+ const registriesMap = getRegistriesMap(opts.registries);
213
+ const storeController = await createStoreController(rootManifest.rootDir, opts.storeDir, opts.cacheDir, opts.registries, opts.proxyConfig, opts.networkConfig);
214
+ return pnpm().getPeerDependencyIssues(projects, {
215
+ storeController: storeController.ctrl,
216
+ storeDir: storeController.dir,
217
+ overrides: opts.overrides,
218
+ workspacePackages,
219
+ registries: registriesMap
220
+ });
221
+ }
222
+
223
+ async function install(rootManifest, manifestsByPaths, storeDir, cacheDir, registries, proxyConfig = {}, networkConfig = {}, options, // eslint-disable-next-line @typescript-eslint/no-unused-vars
178
224
  logger) {
179
225
  const packagesToBuild = []; // @pnpm/core will use this to install the packages
180
226
 
@@ -192,8 +238,8 @@ logger) {
192
238
  // This is the rational behind not deleting this completely, but need further check that it really works
193
239
  // eslint-disable-next-line
194
240
 
195
- for (const rootDir in pathsToManifests) {
196
- const manifest = pathsToManifests[rootDir];
241
+ for (const rootDir in manifestsByPaths) {
242
+ const manifest = manifestsByPaths[rootDir];
197
243
  packagesToBuild.push({
198
244
  buildIndex: 0,
199
245
  // workspace components should be installed before the root
@@ -211,16 +257,16 @@ logger) {
211
257
  packagesToBuild.push({
212
258
  buildIndex: 1,
213
259
  // install the root package after the workspace components were installed
214
- manifest: rootPathToManifest.manifest,
260
+ manifest: rootManifest.manifest,
215
261
  mutation: 'install',
216
- rootDir: rootPathToManifest.rootDir
262
+ rootDir: rootManifest.rootDir
217
263
  });
218
264
  const registriesMap = getRegistriesMap(registries);
219
265
  const authConfig = getAuthConfig(registries);
220
- const storeController = await createStoreController(rootPathToManifest.rootDir, storeDir, cacheDir, registries, proxyConfig, networkConfig);
266
+ const storeController = await createStoreController(rootManifest.rootDir, storeDir, cacheDir, registries, proxyConfig, networkConfig);
221
267
  const opts = {
222
268
  storeDir: storeController.dir,
223
- dir: rootPathToManifest.rootDir,
269
+ dir: rootManifest.rootDir,
224
270
  storeController: storeController.ctrl,
225
271
  workspacePackages,
226
272
  preferFrozenLockfile: true,
@@ -240,7 +286,7 @@ logger) {
240
286
  });
241
287
 
242
288
  try {
243
- await (0, _core().mutateModules)(packagesToBuild, opts);
289
+ await (0, pnpm().mutateModules)(packagesToBuild, opts);
244
290
  } finally {
245
291
  stopReporting();
246
292
  }
package/dist/lynx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["lynx.ts"],"names":["createStoreController","rootDir","storeDir","cacheDir","registries","proxyConfig","networkConfig","authConfig","getAuthConfig","opts","dir","rawConfig","verifyStoreIntegrity","httpProxy","httpsProxy","ca","cert","key","localAddress","noProxy","strictSsl","strictSSL","maxSockets","networkConcurrency","generateResolverAndFetcher","pnpmConfig","Object","assign","config","timeout","fetchTimeout","retry","factor","fetchRetryFactor","maxTimeout","fetchRetryMaxtimeout","minTimeout","fetchRetryMintimeout","retries","fetchRetries","result","install","rootPathToManifest","pathsToManifests","options","logger","packagesToBuild","workspacePackages","manifest","push","buildIndex","mutation","name","version","registriesMap","getRegistriesMap","storeController","ctrl","preferFrozenLockfile","overrides","stopReporting","context","argv","reportingOptions","appendOnly","throttleProgress","streamParser","resolveRemoteVersion","packageName","resolve","resolveOpts","projectDir","registry","parsedPackage","wantedDep","alias","pref","isValidRange","semver","validRange","val","isSemver","resolvedVia","e","message","includes","undefined","normalizedPref","default","defaultRegistry","uri","NPM_REGISTRY","entries","scopes","forEach","registryName","res","alwaysAuth","defaultAuthTokens","getAuthTokenForRegistry","keyName","authTokens","nerfed","alwaysAuthKeyName","isDefault","originalAuthType","originalAuthValue","split"],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport defaultReporter from '@pnpm/default-reporter';\nimport { streamParser } from '@pnpm/logger';\nimport { StoreController, WantedDependency } from '@pnpm/package-store';\nimport { createOrConnectStoreController, CreateStoreControllerOptions } from '@pnpm/store-connection-manager';\nimport {\n ResolvedPackageVersion,\n Registries,\n NPM_REGISTRY,\n Registry,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { MutatedProject, mutateModules } from '@pnpm/core';\nimport createResolverAndFetcher, { ClientOptions } from '@pnpm/client';\nimport pickRegistryForPackage from '@pnpm/pick-registry-for-package';\nimport { Logger } from '@teambit/logger';\nimport toNerfDart from 'nerf-dart';\nimport { readConfig } from './read-config';\n\ntype RegistriesMap = {\n default: string;\n [registryName: string]: string;\n};\n\nasync function createStoreController(\n rootDir: string,\n storeDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n): Promise<{ ctrl: StoreController; dir: string }> {\n const authConfig = getAuthConfig(registries);\n const opts: CreateStoreControllerOptions = {\n dir: rootDir,\n cacheDir,\n storeDir,\n rawConfig: authConfig,\n verifyStoreIntegrity: true,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n ca: proxyConfig?.ca,\n cert: proxyConfig?.cert,\n key: proxyConfig?.key,\n localAddress: networkConfig?.localAddress,\n noProxy: proxyConfig?.noProxy,\n strictSsl: proxyConfig.strictSSL,\n maxSockets: networkConfig.maxSockets,\n networkConcurrency: networkConfig.networkConcurrency,\n };\n // Although it would be enough to call createNewStoreController(),\n // that doesn't resolve the store directory location.\n return createOrConnectStoreController(opts);\n}\n\nasync function generateResolverAndFetcher(\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n) {\n const pnpmConfig = await readConfig();\n const authConfig = getAuthConfig(registries);\n const opts: ClientOptions = {\n authConfig: Object.assign({}, pnpmConfig.config.rawConfig, authConfig),\n cacheDir,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n ca: proxyConfig?.ca,\n cert: proxyConfig?.cert,\n key: proxyConfig?.key,\n localAddress: networkConfig?.localAddress,\n noProxy: proxyConfig?.noProxy,\n strictSsl: proxyConfig.strictSSL,\n timeout: networkConfig.fetchTimeout,\n retry: {\n factor: networkConfig.fetchRetryFactor,\n maxTimeout: networkConfig.fetchRetryMaxtimeout,\n minTimeout: networkConfig.fetchRetryMintimeout,\n retries: networkConfig.fetchRetries,\n },\n };\n const result = createResolverAndFetcher(opts);\n return result;\n}\n\nexport async function install(\n rootPathToManifest,\n pathsToManifests,\n storeDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {},\n options?: {\n overrides?: Record<string, string>;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n logger?: Logger\n) {\n const packagesToBuild: MutatedProject[] = []; // @pnpm/core will use this to install the packages\n const workspacePackages = {}; // @pnpm/core will use this to link packages to each other\n\n // This will create local link by pnpm to a component exists in the ws.\n // it will later deleted by the link process\n // we keep it here to better support case like this:\n // compA@1.0.0 uses compB@1.0.0\n // I have compB@2.0.0 in my workspace\n // now I install compA@1.0.0\n // compA is hoisted to the root and install B@1.0.0 hoisted to the root as well\n // now we will make link to B@2.0.0 and A will break\n // with this we will have a link to the local B by pnpm so it will install B@1.0.0 inside A\n // then when overriding the link, A will still works\n // This is the rational behind not deleting this completely, but need further check that it really works\n\n // eslint-disable-next-line\n for (const rootDir in pathsToManifests) {\n const manifest = pathsToManifests[rootDir];\n packagesToBuild.push({\n buildIndex: 0, // workspace components should be installed before the root\n manifest,\n rootDir,\n mutation: 'install',\n });\n workspacePackages[manifest.name] = workspacePackages[manifest.name] || {};\n workspacePackages[manifest.name][manifest.version] = { dir: rootDir, manifest };\n }\n packagesToBuild.push({\n buildIndex: 1, // install the root package after the workspace components were installed\n manifest: rootPathToManifest.manifest,\n mutation: 'install',\n rootDir: rootPathToManifest.rootDir,\n });\n const registriesMap = getRegistriesMap(registries);\n const authConfig = getAuthConfig(registries);\n const storeController = await createStoreController(\n rootPathToManifest.rootDir,\n storeDir,\n cacheDir,\n registries,\n proxyConfig,\n networkConfig\n );\n const opts = {\n storeDir: storeController.dir,\n dir: rootPathToManifest.rootDir,\n storeController: storeController.ctrl,\n workspacePackages,\n preferFrozenLockfile: true,\n registries: registriesMap,\n rawConfig: authConfig,\n overrides: options?.overrides,\n };\n\n const stopReporting = defaultReporter({\n context: {\n argv: [],\n },\n reportingOptions: {\n appendOnly: false,\n throttleProgress: 200,\n },\n streamParser,\n });\n try {\n await mutateModules(packagesToBuild, opts);\n } finally {\n stopReporting();\n }\n}\n\nexport async function resolveRemoteVersion(\n packageName: string,\n rootDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n): Promise<ResolvedPackageVersion> {\n const { resolve } = await generateResolverAndFetcher(cacheDir, registries, proxyConfig, networkConfig);\n const resolveOpts = {\n projectDir: rootDir,\n registry: '',\n };\n try {\n const parsedPackage = parsePackageName(packageName);\n const registriesMap = getRegistriesMap(registries);\n const registry = pickRegistryForPackage(registriesMap, parsedPackage.name);\n const wantedDep: WantedDependency = {\n alias: parsedPackage.name,\n pref: parsedPackage.version,\n };\n const isValidRange = parsedPackage.version ? !!semver.validRange(parsedPackage.version) : false;\n resolveOpts.registry = registry;\n const val = await resolve(wantedDep, resolveOpts);\n const version = isValidRange ? parsedPackage.version : val.manifest.version;\n\n return {\n packageName: val.manifest.name,\n version,\n isSemver: true,\n resolvedVia: val.resolvedVia,\n };\n } catch (e: any) {\n if (!e.message?.includes('is not a valid string')) {\n throw e;\n }\n // The provided package is probably a git url or path to a folder\n const wantedDep: WantedDependency = {\n alias: undefined,\n pref: packageName,\n };\n const val = await resolve(wantedDep, resolveOpts);\n return {\n packageName: val.manifest.name,\n version: val.normalizedPref,\n isSemver: false,\n resolvedVia: val.resolvedVia,\n };\n }\n}\n\nfunction getRegistriesMap(registries: Registries): RegistriesMap {\n const registriesMap = {\n default: registries.defaultRegistry.uri || NPM_REGISTRY,\n };\n\n Object.entries(registries.scopes).forEach(([registryName, registry]) => {\n registriesMap[`@${registryName}`] = registry.uri;\n });\n return registriesMap;\n}\n\nfunction getAuthConfig(registries: Registries): Record<string, any> {\n const res: any = {};\n res.registry = registries.defaultRegistry.uri;\n if (registries.defaultRegistry.alwaysAuth) {\n res['always-auth'] = true;\n }\n const defaultAuthTokens = getAuthTokenForRegistry(registries.defaultRegistry, true);\n defaultAuthTokens.forEach(({ keyName, val }) => {\n res[keyName] = val;\n });\n\n Object.entries(registries.scopes).forEach(([, registry]) => {\n const authTokens = getAuthTokenForRegistry(registry);\n authTokens.forEach(({ keyName, val }) => {\n res[keyName] = val;\n });\n if (registry.alwaysAuth) {\n const nerfed = toNerfDart(registry.uri);\n const alwaysAuthKeyName = `${nerfed}:always-auth`;\n res[alwaysAuthKeyName] = true;\n }\n });\n return res;\n}\n\nfunction getAuthTokenForRegistry(registry: Registry, isDefault = false): { keyName: string; val: string }[] {\n const nerfed = toNerfDart(registry.uri);\n if (registry.originalAuthType === 'authToken') {\n return [\n {\n keyName: `${nerfed}:_authToken`,\n val: registry.originalAuthValue || '',\n },\n ];\n }\n if (registry.originalAuthType === 'auth') {\n return [\n {\n keyName: isDefault ? '_auth' : `${nerfed}:_auth`,\n val: registry.originalAuthValue || '',\n },\n ];\n }\n if (registry.originalAuthType === 'user-pass') {\n return [\n {\n keyName: `${nerfed}:username`,\n val: registry.originalAuthValue?.split(':')[0] || '',\n },\n {\n keyName: `${nerfed}:_password`,\n val: registry.originalAuthValue?.split(':')[1] || '',\n },\n ];\n }\n return [];\n}\n"]}
1
+ {"version":3,"sources":["lynx.ts"],"names":["STORE_CACHE","createStoreController","rootDir","storeDir","cacheDir","registries","proxyConfig","networkConfig","authConfig","getAuthConfig","opts","dir","rawConfig","verifyStoreIntegrity","httpProxy","httpsProxy","ca","cert","key","localAddress","noProxy","strictSsl","strictSSL","maxSockets","networkConcurrency","cacheKey","JSON","stringify","generateResolverAndFetcher","pnpmConfig","Object","assign","config","timeout","fetchTimeout","retry","factor","fetchRetryFactor","maxTimeout","fetchRetryMaxtimeout","minTimeout","fetchRetryMintimeout","retries","fetchRetries","result","getPeerDependencyIssues","rootManifest","manifestsByPaths","projects","workspacePackages","manifest","entries","push","name","version","registriesMap","getRegistriesMap","storeController","pnpm","ctrl","overrides","install","options","logger","packagesToBuild","buildIndex","mutation","preferFrozenLockfile","stopReporting","context","argv","reportingOptions","appendOnly","throttleProgress","streamParser","resolveRemoteVersion","packageName","resolve","resolveOpts","projectDir","registry","parsedPackage","wantedDep","alias","pref","isValidRange","semver","validRange","val","isSemver","resolvedVia","e","message","includes","undefined","normalizedPref","default","defaultRegistry","uri","NPM_REGISTRY","scopes","forEach","registryName","res","alwaysAuth","defaultAuthTokens","getAuthTokenForRegistry","keyName","authTokens","nerfed","alwaysAuthKeyName","isDefault","originalAuthType","originalAuthValue","split"],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport parsePackageName from 'parse-package-name';\nimport defaultReporter from '@pnpm/default-reporter';\nimport { streamParser } from '@pnpm/logger';\nimport { StoreController, WantedDependency } from '@pnpm/package-store';\nimport { createOrConnectStoreController, CreateStoreControllerOptions } from '@pnpm/store-connection-manager';\nimport {\n ResolvedPackageVersion,\n Registries,\n NPM_REGISTRY,\n Registry,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { MutatedProject, mutateModules, PeerDependencyIssuesByProjects, ProjectOptions } from '@pnpm/core';\nimport * as pnpm from '@pnpm/core';\nimport createResolverAndFetcher, { ClientOptions } from '@pnpm/client';\nimport pickRegistryForPackage from '@pnpm/pick-registry-for-package';\nimport { Logger } from '@teambit/logger';\nimport toNerfDart from 'nerf-dart';\nimport { readConfig } from './read-config';\n\ntype RegistriesMap = {\n default: string;\n [registryName: string]: string;\n};\n\nconst STORE_CACHE: Record<string, { ctrl: StoreController; dir: string }> = {};\n\nasync function createStoreController(\n rootDir: string,\n storeDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n): Promise<{ ctrl: StoreController; dir: string }> {\n const authConfig = getAuthConfig(registries);\n const opts: CreateStoreControllerOptions = {\n dir: rootDir,\n cacheDir,\n storeDir,\n rawConfig: authConfig,\n verifyStoreIntegrity: true,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n ca: proxyConfig?.ca,\n cert: proxyConfig?.cert,\n key: proxyConfig?.key,\n localAddress: networkConfig?.localAddress,\n noProxy: proxyConfig?.noProxy,\n strictSsl: proxyConfig.strictSSL,\n maxSockets: networkConfig.maxSockets,\n networkConcurrency: networkConfig.networkConcurrency,\n };\n // We should avoid the recreation of store.\n // The store holds cache that makes subsequent resolutions faster.\n const cacheKey = JSON.stringify(opts);\n if (!STORE_CACHE[cacheKey]) {\n // Although it would be enough to call createNewStoreController(),\n // that doesn't resolve the store directory location.\n STORE_CACHE[cacheKey] = await createOrConnectStoreController(opts);\n }\n return STORE_CACHE[cacheKey];\n}\n\nasync function generateResolverAndFetcher(\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n) {\n const pnpmConfig = await readConfig();\n const authConfig = getAuthConfig(registries);\n const opts: ClientOptions = {\n authConfig: Object.assign({}, pnpmConfig.config.rawConfig, authConfig),\n cacheDir,\n httpProxy: proxyConfig?.httpProxy,\n httpsProxy: proxyConfig?.httpsProxy,\n ca: proxyConfig?.ca,\n cert: proxyConfig?.cert,\n key: proxyConfig?.key,\n localAddress: networkConfig?.localAddress,\n noProxy: proxyConfig?.noProxy,\n strictSsl: proxyConfig.strictSSL,\n timeout: networkConfig.fetchTimeout,\n retry: {\n factor: networkConfig.fetchRetryFactor,\n maxTimeout: networkConfig.fetchRetryMaxtimeout,\n minTimeout: networkConfig.fetchRetryMintimeout,\n retries: networkConfig.fetchRetries,\n },\n };\n const result = createResolverAndFetcher(opts);\n return result;\n}\n\nexport async function getPeerDependencyIssues(\n rootManifest,\n manifestsByPaths: Record<string, any>,\n opts: {\n storeDir: string;\n cacheDir: string;\n registries: Registries;\n proxyConfig: PackageManagerProxyConfig;\n networkConfig: PackageManagerNetworkConfig;\n overrides?: Record<string, string>;\n }\n): Promise<PeerDependencyIssuesByProjects> {\n const projects: ProjectOptions[] = [];\n const workspacePackages = {};\n for (const [rootDir, manifest] of Object.entries(manifestsByPaths)) {\n projects.push({\n manifest,\n rootDir,\n });\n workspacePackages[manifest.name] = workspacePackages[manifest.name] || {};\n workspacePackages[manifest.name][manifest.version] = { dir: rootDir, manifest };\n }\n projects.push({\n manifest: rootManifest.manifest,\n rootDir: rootManifest.rootDir,\n });\n const registriesMap = getRegistriesMap(opts.registries);\n const storeController = await createStoreController(\n rootManifest.rootDir,\n opts.storeDir,\n opts.cacheDir,\n opts.registries,\n opts.proxyConfig,\n opts.networkConfig\n );\n return pnpm.getPeerDependencyIssues(projects, {\n storeController: storeController.ctrl,\n storeDir: storeController.dir,\n overrides: opts.overrides,\n workspacePackages,\n registries: registriesMap,\n });\n}\n\nexport async function install(\n rootManifest,\n manifestsByPaths,\n storeDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {},\n options?: {\n overrides?: Record<string, string>;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n logger?: Logger\n) {\n const packagesToBuild: MutatedProject[] = []; // @pnpm/core will use this to install the packages\n const workspacePackages = {}; // @pnpm/core will use this to link packages to each other\n\n // This will create local link by pnpm to a component exists in the ws.\n // it will later deleted by the link process\n // we keep it here to better support case like this:\n // compA@1.0.0 uses compB@1.0.0\n // I have compB@2.0.0 in my workspace\n // now I install compA@1.0.0\n // compA is hoisted to the root and install B@1.0.0 hoisted to the root as well\n // now we will make link to B@2.0.0 and A will break\n // with this we will have a link to the local B by pnpm so it will install B@1.0.0 inside A\n // then when overriding the link, A will still works\n // This is the rational behind not deleting this completely, but need further check that it really works\n\n // eslint-disable-next-line\n for (const rootDir in manifestsByPaths) {\n const manifest = manifestsByPaths[rootDir];\n packagesToBuild.push({\n buildIndex: 0, // workspace components should be installed before the root\n manifest,\n rootDir,\n mutation: 'install',\n });\n workspacePackages[manifest.name] = workspacePackages[manifest.name] || {};\n workspacePackages[manifest.name][manifest.version] = { dir: rootDir, manifest };\n }\n packagesToBuild.push({\n buildIndex: 1, // install the root package after the workspace components were installed\n manifest: rootManifest.manifest,\n mutation: 'install',\n rootDir: rootManifest.rootDir,\n });\n const registriesMap = getRegistriesMap(registries);\n const authConfig = getAuthConfig(registries);\n const storeController = await createStoreController(\n rootManifest.rootDir,\n storeDir,\n cacheDir,\n registries,\n proxyConfig,\n networkConfig\n );\n const opts = {\n storeDir: storeController.dir,\n dir: rootManifest.rootDir,\n storeController: storeController.ctrl,\n workspacePackages,\n preferFrozenLockfile: true,\n registries: registriesMap,\n rawConfig: authConfig,\n overrides: options?.overrides,\n };\n\n const stopReporting = defaultReporter({\n context: {\n argv: [],\n },\n reportingOptions: {\n appendOnly: false,\n throttleProgress: 200,\n },\n streamParser,\n });\n try {\n await mutateModules(packagesToBuild, opts);\n } finally {\n stopReporting();\n }\n}\n\nexport async function resolveRemoteVersion(\n packageName: string,\n rootDir: string,\n cacheDir: string,\n registries: Registries,\n proxyConfig: PackageManagerProxyConfig = {},\n networkConfig: PackageManagerNetworkConfig = {}\n): Promise<ResolvedPackageVersion> {\n const { resolve } = await generateResolverAndFetcher(cacheDir, registries, proxyConfig, networkConfig);\n const resolveOpts = {\n projectDir: rootDir,\n registry: '',\n };\n try {\n const parsedPackage = parsePackageName(packageName);\n const registriesMap = getRegistriesMap(registries);\n const registry = pickRegistryForPackage(registriesMap, parsedPackage.name);\n const wantedDep: WantedDependency = {\n alias: parsedPackage.name,\n pref: parsedPackage.version,\n };\n const isValidRange = parsedPackage.version ? !!semver.validRange(parsedPackage.version) : false;\n resolveOpts.registry = registry;\n const val = await resolve(wantedDep, resolveOpts);\n const version = isValidRange ? parsedPackage.version : val.manifest.version;\n\n return {\n packageName: val.manifest.name,\n version,\n isSemver: true,\n resolvedVia: val.resolvedVia,\n };\n } catch (e: any) {\n if (!e.message?.includes('is not a valid string')) {\n throw e;\n }\n // The provided package is probably a git url or path to a folder\n const wantedDep: WantedDependency = {\n alias: undefined,\n pref: packageName,\n };\n const val = await resolve(wantedDep, resolveOpts);\n return {\n packageName: val.manifest.name,\n version: val.normalizedPref,\n isSemver: false,\n resolvedVia: val.resolvedVia,\n };\n }\n}\n\nfunction getRegistriesMap(registries: Registries): RegistriesMap {\n const registriesMap = {\n default: registries.defaultRegistry.uri || NPM_REGISTRY,\n };\n\n Object.entries(registries.scopes).forEach(([registryName, registry]) => {\n registriesMap[`@${registryName}`] = registry.uri;\n });\n return registriesMap;\n}\n\nfunction getAuthConfig(registries: Registries): Record<string, any> {\n const res: any = {};\n res.registry = registries.defaultRegistry.uri;\n if (registries.defaultRegistry.alwaysAuth) {\n res['always-auth'] = true;\n }\n const defaultAuthTokens = getAuthTokenForRegistry(registries.defaultRegistry, true);\n defaultAuthTokens.forEach(({ keyName, val }) => {\n res[keyName] = val;\n });\n\n Object.entries(registries.scopes).forEach(([, registry]) => {\n const authTokens = getAuthTokenForRegistry(registry);\n authTokens.forEach(({ keyName, val }) => {\n res[keyName] = val;\n });\n if (registry.alwaysAuth) {\n const nerfed = toNerfDart(registry.uri);\n const alwaysAuthKeyName = `${nerfed}:always-auth`;\n res[alwaysAuthKeyName] = true;\n }\n });\n return res;\n}\n\nfunction getAuthTokenForRegistry(registry: Registry, isDefault = false): { keyName: string; val: string }[] {\n const nerfed = toNerfDart(registry.uri);\n if (registry.originalAuthType === 'authToken') {\n return [\n {\n keyName: `${nerfed}:_authToken`,\n val: registry.originalAuthValue || '',\n },\n ];\n }\n if (registry.originalAuthType === 'auth') {\n return [\n {\n keyName: isDefault ? '_auth' : `${nerfed}:_auth`,\n val: registry.originalAuthValue || '',\n },\n ];\n }\n if (registry.originalAuthType === 'user-pass') {\n return [\n {\n keyName: `${nerfed}:username`,\n val: registry.originalAuthValue?.split(':')[0] || '',\n },\n {\n keyName: `${nerfed}:_password`,\n val: registry.originalAuthValue?.split(':')[1] || '',\n },\n ];\n }\n return [];\n}\n"]}
@@ -2,13 +2,20 @@ import { ComponentMap } from '@teambit/component';
2
2
  import { WorkspacePolicy, DependencyResolverMain, PackageManager, PackageManagerInstallOptions, PackageManagerResolveRemoteVersionOptions, ResolvedPackageVersion, Registries, PackageManagerProxyConfig, PackageManagerNetworkConfig } from '@teambit/dependency-resolver';
3
3
  import { Logger } from '@teambit/logger';
4
4
  import { PkgMain } from '@teambit/pkg';
5
+ import { PeerDependencyIssuesByProjects } from '@pnpm/core';
5
6
  export declare class PnpmPackageManager implements PackageManager {
6
7
  private depResolver;
7
8
  private pkg;
8
9
  private logger;
9
10
  private readConfig;
10
11
  constructor(depResolver: DependencyResolverMain, pkg: PkgMain, logger: Logger);
12
+ private _componentsToPnpmWorkspaceProjects;
13
+ _getGlobalPnpmDirs(cacheRootDir?: string): {
14
+ storeDir: string;
15
+ cacheDir: string;
16
+ };
11
17
  install(rootDir: string, rootPolicy: WorkspacePolicy, componentDirectoryMap: ComponentMap<string>, installOptions?: PackageManagerInstallOptions): Promise<void>;
18
+ getPeerDependencyIssues(rootDir: string, rootPolicy: WorkspacePolicy, componentDirectoryMap: ComponentMap<string>, installOptions?: PackageManagerInstallOptions): Promise<PeerDependencyIssuesByProjects>;
12
19
  private computeComponentsManifests;
13
20
  resolveRemoteVersion(packageName: string, options: PackageManagerResolveRemoteVersionOptions): Promise<ResolvedPackageVersion>;
14
21
  getProxyConfig?(): Promise<PackageManagerProxyConfig>;
@@ -86,15 +86,7 @@ class PnpmPackageManager {
86
86
  (0, _defineProperty2().default)(this, "readConfig", (0, _lodash().memoize)(_readConfig().readConfig));
87
87
  }
88
88
 
89
- async install(rootDir, rootPolicy, componentDirectoryMap, installOptions = {}) {
90
- // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import
91
- // eslint-disable-next-line global-require, import/no-dynamic-require
92
- const {
93
- install
94
- } = require('./lynx');
95
-
96
- const storeDir = installOptions !== null && installOptions !== void 0 && installOptions.cacheRootDir ? (0, _path().join)(installOptions === null || installOptions === void 0 ? void 0 : installOptions.cacheRootDir, '.pnpm-store') : defaultStoreDir;
97
- const cacheDir = installOptions !== null && installOptions !== void 0 && installOptions.cacheRootDir ? (0, _path().join)(installOptions === null || installOptions === void 0 ? void 0 : installOptions.cacheRootDir, '.pnpm-cache') : defaultCacheDir;
89
+ async _componentsToPnpmWorkspaceProjects(rootDir, rootPolicy, componentDirectoryMap, installOptions = {}) {
98
90
  const components = componentDirectoryMap.toArray().map(([component]) => component);
99
91
  const options = {
100
92
  filterComponentsFromManifests: true,
@@ -110,6 +102,32 @@ class PnpmPackageManager {
110
102
  const componentsManifests = this.computeComponentsManifests(componentDirectoryMap, workspaceManifest.componentsManifestsMap, // In case of not deduping we want to install peers inside the components
111
103
  // !options.dedupe
112
104
  installOptions.copyPeerToRuntimeOnComponents);
105
+ return {
106
+ componentsManifests,
107
+ rootManifest
108
+ };
109
+ }
110
+
111
+ _getGlobalPnpmDirs(cacheRootDir) {
112
+ const storeDir = cacheRootDir ? (0, _path().join)(cacheRootDir, '.pnpm-store') : defaultStoreDir;
113
+ const cacheDir = cacheRootDir ? (0, _path().join)(cacheRootDir, '.pnpm-cache') : defaultCacheDir;
114
+ return {
115
+ storeDir,
116
+ cacheDir
117
+ };
118
+ }
119
+
120
+ async install(rootDir, rootPolicy, componentDirectoryMap, installOptions = {}) {
121
+ // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import
122
+ // eslint-disable-next-line global-require, import/no-dynamic-require
123
+ const {
124
+ install
125
+ } = require('./lynx');
126
+
127
+ const {
128
+ componentsManifests,
129
+ rootManifest
130
+ } = await this._componentsToPnpmWorkspaceProjects(rootDir, rootPolicy, componentDirectoryMap, installOptions);
113
131
  this.logger.debug('root manifest for installation', rootManifest);
114
132
  this.logger.debug('components manifests for installation', componentsManifests);
115
133
  this.logger.setStatusLine('installing dependencies using pnpm'); // turn off the logger because it interrupts the pnpm output
@@ -118,6 +136,12 @@ class PnpmPackageManager {
118
136
  const registries = await this.depResolver.getRegistries();
119
137
  const proxyConfig = await this.depResolver.getProxyConfig();
120
138
  const networkConfig = await this.depResolver.getNetworkConfig();
139
+
140
+ const {
141
+ storeDir,
142
+ cacheDir
143
+ } = this._getGlobalPnpmDirs(installOptions === null || installOptions === void 0 ? void 0 : installOptions.cacheRootDir);
144
+
121
145
  await install(rootManifest, componentsManifests, storeDir, cacheDir, registries, proxyConfig, networkConfig, {
122
146
  overrides: installOptions.overrides
123
147
  }, this.logger);
@@ -127,6 +151,33 @@ class PnpmPackageManager {
127
151
  this.logger.consoleSuccess('installing dependencies using pnpm');
128
152
  }
129
153
 
154
+ async getPeerDependencyIssues(rootDir, rootPolicy, componentDirectoryMap, installOptions = {}) {
155
+ const {
156
+ storeDir,
157
+ cacheDir
158
+ } = this._getGlobalPnpmDirs(installOptions === null || installOptions === void 0 ? void 0 : installOptions.cacheRootDir);
159
+
160
+ const proxyConfig = await this.depResolver.getProxyConfig();
161
+ const networkConfig = await this.depResolver.getNetworkConfig();
162
+ const registries = await this.depResolver.getRegistries(); // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import
163
+ // eslint-disable-next-line global-require, import/no-dynamic-require
164
+
165
+ const lynx = require('./lynx');
166
+
167
+ const {
168
+ componentsManifests,
169
+ rootManifest
170
+ } = await this._componentsToPnpmWorkspaceProjects(rootDir, rootPolicy, componentDirectoryMap, installOptions);
171
+ return lynx.getPeerDependencyIssues(rootManifest, componentsManifests, {
172
+ storeDir,
173
+ cacheDir,
174
+ proxyConfig,
175
+ registries,
176
+ networkConfig,
177
+ overrides: installOptions.overrides
178
+ });
179
+ }
180
+
130
181
  computeComponentsManifests(componentDirectoryMap, componentsManifestsFromWorkspace, copyPeerToRuntime = false) {
131
182
  return componentDirectoryMap.toArray().reduce((acc, [component, dir]) => {
132
183
  const packageName = this.pkg.getPackageName(component);
@@ -1 +1 @@
1
- {"version":3,"sources":["pnpm.package-manager.ts"],"names":["defaultStoreDir","userHome","defaultCacheDir","PnpmPackageManager","constructor","depResolver","pkg","logger","readConfig","install","rootDir","rootPolicy","componentDirectoryMap","installOptions","require","storeDir","cacheRootDir","cacheDir","components","toArray","map","component","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","dependencyFilterFn","workspaceManifest","getWorkspaceManifest","undefined","rootManifest","toJson","includeDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","componentsManifests","computeComponentsManifests","componentsManifestsMap","copyPeerToRuntimeOnComponents","debug","setStatusLine","off","registries","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","overrides","on","console","consoleSuccess","componentsManifestsFromWorkspace","reduce","acc","dir","packageName","getPackageName","has","get","resolveRemoteVersion","config","maxSockets","networkConcurrency","fetchRetries","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","pnpmRegistry","defaultRegistry","Registry","default","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","scopesRegistries","Object","keys","scopedRegName","scopedReg","name","replace","bit","BIT_DEV_REGISTRY","Registries"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAgBA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,eAAe,GAAG,kBAAKC,mBAAL,EAAe,aAAf,CAAxB;AACA,MAAMC,eAAe,GAAG,kBAAKD,mBAAL,EAAe,aAAf,CAAxB;;AAEO,MAAME,kBAAN,CAAmD;AAExDC,EAAAA,WAAW,CAASC,WAAT,EAAsDC,GAAtD,EAA4EC,MAA5E,EAA4F;AAAA,SAAnFF,WAAmF,GAAnFA,WAAmF;AAAA,SAAtCC,GAAsC,GAAtCA,GAAsC;AAAA,SAAhBC,MAAgB,GAAhBA,MAAgB;AAAA,wDADlF,uBAAQC,wBAAR,CACkF;AAAE;;AAE5F,QAAPC,OAAO,CACXC,OADW,EAEXC,UAFW,EAGXC,qBAHW,EAIXC,cAA4C,GAAG,EAJpC,EAKI;AACf;AACA;AACA,UAAM;AAAEJ,MAAAA;AAAF,QAAcK,OAAO,CAAC,QAAD,CAA3B;;AACA,UAAMC,QAAQ,GAAGF,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,YAAhB,GAA+B,kBAAKH,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEG,YAArB,EAAmC,aAAnC,CAA/B,GAAmFhB,eAApG;AACA,UAAMiB,QAAQ,GAAGJ,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,YAAhB,GAA+B,kBAAKH,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEG,YAArB,EAAmC,aAAnC,CAA/B,GAAmFd,eAApG;AAEA,UAAMgB,UAAU,GAAGN,qBAAqB,CAACO,OAAtB,GAAgCC,GAAhC,CAAoC,CAAC,CAACC,SAAD,CAAD,KAAiBA,SAArD,CAAnB;AACA,UAAMC,OAAoC,GAAG;AAC3CC,MAAAA,6BAA6B,EAAE,IADY;AAE3CC,MAAAA,8CAA8C,EAAE,IAFL;AAG3CC,MAAAA,MAAM,EAAEZ,cAAc,CAACY,MAHoB;AAI3CC,MAAAA,kBAAkB,EAAEb,cAAc,CAACa;AAJQ,KAA7C;AAMA,UAAMC,iBAAiB,GAAG,MAAM,KAAKtB,WAAL,CAAiBuB,oBAAjB,CAC9BC,SAD8B,EAE9BA,SAF8B,EAG9BlB,UAH8B,EAI9BD,OAJ8B,EAK9BQ,UAL8B,EAM9BI,OAN8B,CAAhC;AAQA,UAAMQ,YAAY,GAAGH,iBAAiB,CAACI,MAAlB,CAAyB;AAC5CC,MAAAA,UAAU,EAAE,IADgC;AAE5CC,MAAAA,iBAAiB,EAAEpB,cAAc,CAACqB;AAFU,KAAzB,CAArB;AAKA,UAAMC,mBAAmB,GAAG,KAAKC,0BAAL,CAC1BxB,qBAD0B,EAE1Be,iBAAiB,CAACU,sBAFQ,EAG1B;AACA;AACAxB,IAAAA,cAAc,CAACyB,6BALW,CAA5B;AAOA,SAAK/B,MAAL,CAAYgC,KAAZ,CAAkB,gCAAlB,EAAoDT,YAApD;AACA,SAAKvB,MAAL,CAAYgC,KAAZ,CAAkB,uCAAlB,EAA2DJ,mBAA3D;AACA,SAAK5B,MAAL,CAAYiC,aAAZ,CAA0B,oCAA1B,EApCe,CAqCf;;AACA,SAAKjC,MAAL,CAAYkC,GAAZ;AACA,UAAMC,UAAU,GAAG,MAAM,KAAKrC,WAAL,CAAiBsC,aAAjB,EAAzB;AACA,UAAMC,WAAW,GAAG,MAAM,KAAKvC,WAAL,CAAiBwC,cAAjB,EAA1B;AACA,UAAMC,aAAa,GAAG,MAAM,KAAKzC,WAAL,CAAiB0C,gBAAjB,EAA5B;AACA,UAAMtC,OAAO,CACXqB,YADW,EAEXK,mBAFW,EAGXpB,QAHW,EAIXE,QAJW,EAKXyB,UALW,EAMXE,WANW,EAOXE,aAPW,EAQX;AACEE,MAAAA,SAAS,EAAEnC,cAAc,CAACmC;AAD5B,KARW,EAWX,KAAKzC,MAXM,CAAb;AAaA,SAAKA,MAAL,CAAY0C,EAAZ,GAvDe,CAwDf;;AACA,SAAK1C,MAAL,CAAY2C,OAAZ,CAAoB,2BAApB;AACA,SAAK3C,MAAL,CAAY4C,cAAZ,CAA2B,oCAA3B;AACD;;AAEOf,EAAAA,0BAA0B,CAChCxB,qBADgC,EAEhCwC,gCAFgC,EAGhCnB,iBAAiB,GAAG,KAHY,EAIhC;AACA,WAAOrB,qBAAqB,CAACO,OAAtB,GAAgCkC,MAAhC,CAAuC,CAACC,GAAD,EAAM,CAACjC,SAAD,EAAYkC,GAAZ,CAAN,KAA2B;AACvE,YAAMC,WAAW,GAAG,KAAKlD,GAAL,CAASmD,cAAT,CAAwBpC,SAAxB,CAApB;;AACA,UAAI+B,gCAAgC,CAACM,GAAjC,CAAqCF,WAArC,CAAJ,EAAuD;AAAA;;AACrDF,QAAAA,GAAG,CAACC,GAAD,CAAH,4BAAWH,gCAAgC,CAACO,GAAjC,CAAqCH,WAArC,CAAX,0DAAW,sBAAmDzB,MAAnD,CAA0D;AAAEE,UAAAA;AAAF,SAA1D,CAAX;AACD;;AACD,aAAOqB,GAAP;AACD,KANM,EAMJ,EANI,CAAP;AAOD;;AAEyB,QAApBM,oBAAoB,CACxBJ,WADwB,EAExBlC,OAFwB,EAGS;AACjC;AACA;AACA,UAAM;AAAEsC,MAAAA;AAAF,QAA2B9C,OAAO,CAAC,QAAD,CAAxC;;AACA,UAAMG,QAAQ,GAAGK,OAAO,SAAP,IAAAA,OAAO,WAAP,IAAAA,OAAO,CAAEN,YAAT,GAAwB,kBAAKM,OAAL,aAAKA,OAAL,uBAAKA,OAAO,CAAEN,YAAd,EAA4B,aAA5B,CAAxB,GAAqEhB,eAAtF;AACA,UAAM0C,UAAU,GAAG,MAAM,KAAKrC,WAAL,CAAiBsC,aAAjB,EAAzB;AACA,UAAMC,WAAW,GAAG,MAAM,KAAKvC,WAAL,CAAiBwC,cAAjB,EAA1B;AACA,UAAMC,aAAa,GAAG,MAAM,KAAKzC,WAAL,CAAiB0C,gBAAjB,EAA5B;AACA,WAAOa,oBAAoB,CAACJ,WAAD,EAAclC,OAAO,CAACZ,OAAtB,EAA+BO,QAA/B,EAAyCyB,UAAzC,EAAqDE,WAArD,EAAkEE,aAAlE,CAA3B;AACD;;AAEmB,QAAdD,cAAc,GAAwC;AAC1D;AACA,UAAM;AAAEA,MAAAA;AAAF,QAAqB/B,OAAO,CAAC,oBAAD,CAAlC;;AACA,UAAM;AAAE+C,MAAAA;AAAF,QAAa,MAAM,KAAKrD,UAAL,EAAzB;AACA,WAAOqC,cAAc,CAACgB,MAAD,CAArB;AACD;;AAEqB,QAAhBd,gBAAgB,GAA0C;AAC9D,UAAM;AAAEc,MAAAA;AAAF,QAAa,MAAM,KAAKrD,UAAL,EAAzB;AACA,WAAO;AACLsD,MAAAA,UAAU,EAAED,MAAM,CAACC,UADd;AAELC,MAAAA,kBAAkB,EAAEF,MAAM,CAACE,kBAFtB;AAGLC,MAAAA,YAAY,EAAEH,MAAM,CAACG,YAHhB;AAILC,MAAAA,YAAY,EAAEJ,MAAM,CAACI,YAJhB;AAKLC,MAAAA,oBAAoB,EAAEL,MAAM,CAACK,oBALxB;AAMLC,MAAAA,oBAAoB,EAAEN,MAAM,CAACM;AANxB,KAAP;AAQD;;AAEkB,QAAbxB,aAAa,GAAwB;AACzC;AACA,UAAM;AAAEA,MAAAA;AAAF,QAAoB7B,OAAO,CAAC,kBAAD,CAAjC;;AACA,UAAM;AAAE+C,MAAAA;AAAF,QAAa,MAAM,KAAKrD,UAAL,EAAzB;AACA,UAAM4D,YAAY,GAAG,MAAMzB,aAAa,CAACkB,MAAD,CAAxC;AACA,UAAMQ,eAAe,GAAG,KAAIC,8BAAJ,EACtBF,YAAY,CAACG,OAAb,CAAqBC,GADC,EAEtBJ,YAAY,CAACG,OAAb,CAAqBE,UAFC,EAGtBL,YAAY,CAACG,OAAb,CAAqBG,eAHC,EAItBN,YAAY,CAACG,OAAb,CAAqBI,gBAJC,EAKtBP,YAAY,CAACG,OAAb,CAAqBK,iBALC,CAAxB;AAQA,UAAMC,UAAU,GAAG,oBAAKT,YAAL,EAAmB,CAAC,SAAD,CAAnB,CAAnB;AACA,UAAMU,gBAA0C,GAAGC,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwBxB,MAAxB,CAA+B,CAACC,GAAD,EAAM2B,aAAN,KAAwB;AACxG,YAAMC,SAAS,GAAGL,UAAU,CAACI,aAAD,CAA5B;AACA,YAAME,IAAI,GAAGF,aAAa,CAACG,OAAd,CAAsB,GAAtB,EAA2B,EAA3B,CAAb;AACA9B,MAAAA,GAAG,CAAC6B,IAAD,CAAH,GAAY,KAAIb,8BAAJ,EACVY,SAAS,CAACV,GADA,EAEVU,SAAS,CAACT,UAFA,EAGVS,SAAS,CAACR,eAHA,EAIVQ,SAAS,CAACP,gBAJA,EAKVO,SAAS,CAACN,iBALA,CAAZ;AAOA,aAAOtB,GAAP;AACD,KAXkD,EAWhD,EAXgD,CAAnD,CAdyC,CA2BzC;;AACA,QAAI,CAACwB,gBAAgB,CAACO,GAAtB,EAA2B;AACzBP,MAAAA,gBAAgB,CAACO,GAAjB,GAAuB,KAAIf,8BAAJ,EAAagB,sCAAb,EAA+B,IAA/B,CAAvB;AACD;;AAED,WAAO,KAAIC,gCAAJ,EAAelB,eAAf,EAAgCS,gBAAhC,CAAP;AACD;;AAtJuD","sourcesContent":["import { ComponentMap } from '@teambit/component';\nimport {\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n Registries,\n Registry,\n BIT_DEV_REGISTRY,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { memoize, omit } from 'lodash';\nimport { PkgMain } from '@teambit/pkg';\nimport { join } from 'path';\nimport userHome from 'user-home';\nimport { readConfig } from './read-config';\n\nconst defaultStoreDir = join(userHome, '.pnpm-store');\nconst defaultCacheDir = join(userHome, '.pnpm-cache');\n\nexport class PnpmPackageManager implements PackageManager {\n private readConfig = memoize(readConfig);\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 // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n const storeDir = installOptions?.cacheRootDir ? join(installOptions?.cacheRootDir, '.pnpm-store') : defaultStoreDir;\n const cacheDir = installOptions?.cacheRootDir ? join(installOptions?.cacheRootDir, '.pnpm-cache') : defaultCacheDir;\n\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: installOptions.dedupe,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n const rootManifest = workspaceManifest.toJson({\n includeDir: true,\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n });\n\n const componentsManifests = this.computeComponentsManifests(\n componentDirectoryMap,\n workspaceManifest.componentsManifestsMap,\n // In case of not deduping we want to install peers inside the components\n // !options.dedupe\n installOptions.copyPeerToRuntimeOnComponents\n );\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', componentsManifests);\n this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n this.logger.off();\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n await install(\n rootManifest,\n componentsManifests,\n storeDir,\n cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n overrides: installOptions.overrides,\n },\n this.logger\n );\n this.logger.on();\n // Make a divider row to improve output\n this.logger.console('-------------------------');\n this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n\n private computeComponentsManifests(\n componentDirectoryMap: ComponentMap<string>,\n componentsManifestsFromWorkspace: ComponentsManifestsMap,\n copyPeerToRuntime = false\n ) {\n return componentDirectoryMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentsManifestsFromWorkspace.has(packageName)) {\n acc[dir] = componentsManifestsFromWorkspace.get(packageName)?.toJson({ copyPeerToRuntime });\n }\n return acc;\n }, {});\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const cacheDir = options?.cacheRootDir ? join(options?.cacheRootDir, '.pnpm-cache') : defaultStoreDir;\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n return resolveRemoteVersion(packageName, options.rootDir, cacheDir, registries, proxyConfig, networkConfig);\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n return {\n maxSockets: config.maxSockets,\n networkConcurrency: config.networkConcurrency,\n fetchRetries: config.fetchRetries,\n fetchTimeout: config.fetchTimeout,\n fetchRetryMaxtimeout: config.fetchRetryMaxtimeout,\n fetchRetryMintimeout: config.fetchRetryMintimeout,\n };\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_DEV_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n}\n"]}
1
+ {"version":3,"sources":["pnpm.package-manager.ts"],"names":["defaultStoreDir","userHome","defaultCacheDir","PnpmPackageManager","constructor","depResolver","pkg","logger","readConfig","_componentsToPnpmWorkspaceProjects","rootDir","rootPolicy","componentDirectoryMap","installOptions","components","toArray","map","component","options","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","dependencyFilterFn","workspaceManifest","getWorkspaceManifest","undefined","rootManifest","toJson","includeDir","copyPeerToRuntime","copyPeerToRuntimeOnRoot","componentsManifests","computeComponentsManifests","componentsManifestsMap","copyPeerToRuntimeOnComponents","_getGlobalPnpmDirs","cacheRootDir","storeDir","cacheDir","install","require","debug","setStatusLine","off","registries","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","overrides","on","console","consoleSuccess","getPeerDependencyIssues","lynx","componentsManifestsFromWorkspace","reduce","acc","dir","packageName","getPackageName","has","get","resolveRemoteVersion","config","maxSockets","networkConcurrency","fetchRetries","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","pnpmRegistry","defaultRegistry","Registry","default","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","scopesRegistries","Object","keys","scopedRegName","scopedReg","name","replace","bit","BIT_DEV_REGISTRY","Registries"],"mappings":"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","sourcesContent":["import { ComponentMap } from '@teambit/component';\nimport {\n ComponentsManifestsMap,\n CreateFromComponentsOptions,\n WorkspacePolicy,\n DependencyResolverMain,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n Registries,\n Registry,\n BIT_DEV_REGISTRY,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n} from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { memoize, omit } from 'lodash';\nimport { PkgMain } from '@teambit/pkg';\nimport { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { ProjectManifest } from '@pnpm/types';\nimport { join } from 'path';\nimport userHome from 'user-home';\nimport { readConfig } from './read-config';\n\nconst defaultStoreDir = join(userHome, '.pnpm-store');\nconst defaultCacheDir = join(userHome, '.pnpm-cache');\n\ninterface Manifests {\n componentsManifests: Record<string, ProjectManifest>;\n rootManifest: ProjectManifest;\n}\n\nexport class PnpmPackageManager implements PackageManager {\n private readConfig = memoize(readConfig);\n constructor(private depResolver: DependencyResolverMain, private pkg: PkgMain, private logger: Logger) {}\n\n private async _componentsToPnpmWorkspaceProjects(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<Manifests> {\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: installOptions.dedupe,\n dependencyFilterFn: installOptions.dependencyFilterFn,\n };\n const workspaceManifest = await this.depResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n components,\n options\n );\n const rootManifest = workspaceManifest.toJson({\n includeDir: true,\n copyPeerToRuntime: installOptions.copyPeerToRuntimeOnRoot,\n });\n\n const componentsManifests = this.computeComponentsManifests(\n componentDirectoryMap,\n workspaceManifest.componentsManifestsMap,\n // In case of not deduping we want to install peers inside the components\n // !options.dedupe\n installOptions.copyPeerToRuntimeOnComponents\n );\n return {\n componentsManifests,\n rootManifest,\n };\n }\n\n _getGlobalPnpmDirs(cacheRootDir?: string) {\n const storeDir = cacheRootDir ? join(cacheRootDir, '.pnpm-store') : defaultStoreDir;\n const cacheDir = cacheRootDir ? join(cacheRootDir, '.pnpm-cache') : defaultCacheDir;\n return { storeDir, cacheDir };\n }\n\n async install(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<void> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n\n const { componentsManifests, rootManifest } = await this._componentsToPnpmWorkspaceProjects(\n rootDir,\n rootPolicy,\n componentDirectoryMap,\n installOptions\n );\n this.logger.debug('root manifest for installation', rootManifest);\n this.logger.debug('components manifests for installation', componentsManifests);\n this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n this.logger.off();\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { storeDir, cacheDir } = this._getGlobalPnpmDirs(installOptions?.cacheRootDir);\n await install(\n rootManifest,\n componentsManifests,\n storeDir,\n cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n overrides: installOptions.overrides,\n },\n this.logger\n );\n this.logger.on();\n // Make a divider row to improve output\n this.logger.console('-------------------------');\n this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n\n async getPeerDependencyIssues(\n rootDir: string,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<PeerDependencyIssuesByProjects> {\n const { storeDir, cacheDir } = this._getGlobalPnpmDirs(installOptions?.cacheRootDir);\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const registries = await this.depResolver.getRegistries();\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const lynx = require('./lynx');\n const { componentsManifests, rootManifest } = await this._componentsToPnpmWorkspaceProjects(\n rootDir,\n rootPolicy,\n componentDirectoryMap,\n installOptions\n );\n return lynx.getPeerDependencyIssues(rootManifest, componentsManifests, {\n storeDir,\n cacheDir,\n proxyConfig,\n registries,\n networkConfig,\n overrides: installOptions.overrides,\n });\n }\n\n private computeComponentsManifests(\n componentDirectoryMap: ComponentMap<string>,\n componentsManifestsFromWorkspace: ComponentsManifestsMap,\n copyPeerToRuntime = false\n ): Record<string, ProjectManifest> {\n return componentDirectoryMap.toArray().reduce((acc, [component, dir]) => {\n const packageName = this.pkg.getPackageName(component);\n if (componentsManifestsFromWorkspace.has(packageName)) {\n acc[dir] = componentsManifestsFromWorkspace.get(packageName)?.toJson({ copyPeerToRuntime });\n }\n return acc;\n }, {});\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const cacheDir = options?.cacheRootDir ? join(options?.cacheRootDir, '.pnpm-cache') : defaultStoreDir;\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n return resolveRemoteVersion(packageName, options.rootDir, cacheDir, registries, proxyConfig, networkConfig);\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n return {\n maxSockets: config.maxSockets,\n networkConcurrency: config.networkConcurrency,\n fetchRetries: config.fetchRetries,\n fetchTimeout: config.fetchTimeout,\n fetchRetryMaxtimeout: config.fetchRetryMaxtimeout,\n fetchRetryMintimeout: config.fetchRetryMintimeout,\n };\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_DEV_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { ComponentUI } from '@teambit/component';
2
+ export declare class PnpmUI {
3
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
4
+ static dependencies: import("@teambit/harmony").Aspect[];
5
+ static provider([componentUI]: [ComponentUI]): Promise<PnpmUI>;
6
+ private consumeMethod;
7
+ }
8
+ export default PnpmUI;
@@ -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.PnpmUI = 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 _pnpm() {
67
+ const data = require("./pnpm.aspect");
68
+
69
+ _pnpm = function () {
70
+ return data;
71
+ };
72
+
73
+ return data;
74
+ }
75
+
76
+ class PnpmUI {
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: '16px',
85
+ marginTop: '-2px'
86
+ },
87
+ src: "https://static.bit.dev/brands/pnpm.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: "pnpm",
93
+ copyString: `pnpm i ${comp.packageName}${packageVersion}`,
94
+ registryName: registry
95
+ }),
96
+ order: 30
97
+ };
98
+ });
99
+ }
100
+
101
+ static async provider([componentUI]) {
102
+ const pnpm = new PnpmUI();
103
+ componentUI.registerConsumeMethod(pnpm.consumeMethod);
104
+ return pnpm;
105
+ }
106
+
107
+ }
108
+
109
+ exports.PnpmUI = PnpmUI;
110
+ (0, _defineProperty2().default)(PnpmUI, "runtime", _ui().UIRuntime);
111
+ (0, _defineProperty2().default)(PnpmUI, "dependencies", [_component().default]);
112
+ var _default = PnpmUI;
113
+ exports.default = _default;
114
+
115
+ _pnpm().PnpmAspect.addRuntime(PnpmUI);
116
+
117
+ //# sourceMappingURL=pnpm.ui.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pnpm.ui.runtime.tsx"],"names":["PnpmUI","comp","registry","packageName","split","packageVersion","version","latest","Title","height","marginTop","Component","id","name","order","provider","componentUI","pnpm","registerConsumeMethod","consumeMethod","UIRuntime","ComponentAspect","PnpmAspect","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,eAAE;AAAK,UAAA,KAAK,EAAE;AAAEC,YAAAA,MAAM,EAAE,MAAV;AAAkBC,YAAAA,SAAS,EAAE;AAA7B,WAAZ;AAAmD,UAAA,GAAG,EAAC;AAAvD,UADF;AAELC,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,UAASZ,IAAI,CAACE,WAAY,GAAEE,cAAe,EAJ1D;AAKE,UAAA,YAAY,EAAEH;AALhB,UAHG;AAWLY,QAAAA,KAAK,EAAE;AAXF,OAAP;AAaD,KA3BiB;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;eA2BTrB,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 { PnpmAspect } from './pnpm.aspect';\n\nexport class PnpmUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const pnpm = new PnpmUI();\n componentUI.registerConsumeMethod(pnpm.consumeMethod);\n return pnpm;\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: <img style={{ height: '16px', marginTop: '-2px' }} src=\"https://static.bit.dev/brands/pnpm.svg\" />,\n Component: (\n <Install\n config={`npm config set '${registry}:registry' https://node.bit.dev`}\n componentName={comp.id.name}\n packageManager=\"pnpm\"\n copyString={`pnpm i ${comp.packageName}${packageVersion}`}\n registryName={registry}\n />\n ),\n order: 30,\n };\n };\n}\n\nexport default PnpmUI;\n\nPnpmAspect.addRuntime(PnpmUI);\n"]}
package/package.json CHANGED
@@ -1,43 +1,46 @@
1
1
  {
2
2
  "name": "@teambit/pnpm",
3
- "version": "0.0.593",
3
+ "version": "0.0.597",
4
4
  "homepage": "https://bit.dev/teambit/dependencies/pnpm",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.dependencies",
8
8
  "name": "pnpm",
9
- "version": "0.0.593"
9
+ "version": "0.0.597"
10
10
  },
11
11
  "dependencies": {
12
12
  "@pnpm/error": "2.0.0",
13
13
  "@pnpm/fetching-types": "2.2.1",
14
- "@pnpm/git-resolver": "5.1.12",
15
- "@pnpm/local-resolver": "7.0.2",
16
- "@pnpm/npm-resolver": "12.1.2",
17
- "@pnpm/resolver-base": "8.1.1",
18
- "@pnpm/tarball-resolver": "5.0.6",
19
- "@pnpm/config": "13.6.1",
14
+ "@pnpm/git-resolver": "5.1.15",
15
+ "@pnpm/local-resolver": "7.0.5",
16
+ "@pnpm/npm-resolver": "12.1.5",
17
+ "@pnpm/resolver-base": "8.1.4",
18
+ "@pnpm/tarball-resolver": "5.0.9",
19
+ "@pnpm/config": "13.7.2",
20
20
  "credentials-by-uri": "2.0.0",
21
21
  "lodash": "4.17.21",
22
22
  "nerf-dart": "1.0.0",
23
23
  "@pnpm/logger": "4.0.0",
24
- "@pnpm/client": "6.0.7",
25
- "@pnpm/core": "2.0.1",
26
- "@pnpm/default-reporter": "8.4.2",
27
- "@pnpm/package-store": "12.1.3",
28
- "@pnpm/pick-registry-for-package": "2.0.6",
29
- "@pnpm/store-connection-manager": "3.1.13",
24
+ "@pnpm/client": "6.0.11",
25
+ "@pnpm/core": "2.1.4",
26
+ "@pnpm/default-reporter": "8.5.3",
27
+ "@pnpm/package-store": "12.1.6",
28
+ "@pnpm/pick-registry-for-package": "2.0.9",
29
+ "@pnpm/store-connection-manager": "3.1.17",
30
30
  "parse-package-name": "0.1.0",
31
31
  "semver": "7.3.4",
32
32
  "@teambit/harmony": "0.2.11",
33
+ "@pnpm/types": "7.8.0",
33
34
  "user-home": "2.0.0",
34
35
  "@babel/runtime": "7.12.18",
35
36
  "core-js": "^3.0.0",
36
- "@teambit/dependency-resolver": "0.0.593",
37
- "@teambit/logger": "0.0.495",
38
- "@teambit/cli": "0.0.407",
39
- "@teambit/pkg": "0.0.593",
40
- "@teambit/component": "0.0.593"
37
+ "@teambit/dependency-resolver": "0.0.597",
38
+ "@teambit/logger": "0.0.498",
39
+ "@teambit/cli": "0.0.410",
40
+ "@teambit/pkg": "0.0.597",
41
+ "@teambit/component": "0.0.597",
42
+ "@teambit/ui-foundation.ui.use-box.menu": "0.0.107",
43
+ "@teambit/ui": "0.0.597"
41
44
  },
42
45
  "devDependencies": {
43
46
  "@types/lodash": "4.14.165",
@@ -48,10 +51,10 @@
48
51
  "@types/jest": "^26.0.0",
49
52
  "@types/react-dom": "^17.0.5",
50
53
  "@types/node": "12.20.4",
51
- "@teambit/dependencies.aspect-docs.pnpm": "0.0.129"
54
+ "@teambit/dependencies.aspect-docs.pnpm": "0.0.130"
52
55
  },
53
56
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.193",
57
+ "@teambit/legacy": "1.0.197",
55
58
  "react-dom": "^16.8.0 || ^17.0.0",
56
59
  "react": "^16.8.0 || ^17.0.0"
57
60
  },
@@ -79,7 +82,7 @@
79
82
  "react": "-"
80
83
  },
81
84
  "peerDependencies": {
82
- "@teambit/legacy": "1.0.193",
85
+ "@teambit/legacy": "1.0.197",
83
86
  "react-dom": "^16.8.0 || ^17.0.0",
84
87
  "react": "^16.8.0 || ^17.0.0"
85
88
  }
@@ -0,0 +1,39 @@
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 { PnpmAspect } from './pnpm.aspect';
6
+
7
+ export class PnpmUI {
8
+ static runtime = UIRuntime;
9
+
10
+ static dependencies = [ComponentAspect];
11
+
12
+ static async provider([componentUI]: [ComponentUI]) {
13
+ const pnpm = new PnpmUI();
14
+ componentUI.registerConsumeMethod(pnpm.consumeMethod);
15
+ return pnpm;
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: <img style={{ height: '16px', marginTop: '-2px' }} src="https://static.bit.dev/brands/pnpm.svg" />,
23
+ Component: (
24
+ <Install
25
+ config={`npm config set '${registry}:registry' https://node.bit.dev`}
26
+ componentName={comp.id.name}
27
+ packageManager="pnpm"
28
+ copyString={`pnpm i ${comp.packageName}${packageVersion}`}
29
+ registryName={registry}
30
+ />
31
+ ),
32
+ order: 30,
33
+ };
34
+ };
35
+ }
36
+
37
+ export default PnpmUI;
38
+
39
+ PnpmAspect.addRuntime(PnpmUI);