@pnpm/core 900.0.2 → 1001.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/api.d.ts +0 -1
  2. package/lib/api.js +0 -1
  3. package/lib/api.js.map +1 -1
  4. package/lib/getPeerDependencyIssues.js +1 -1
  5. package/lib/getPeerDependencyIssues.js.map +1 -1
  6. package/lib/index.d.ts +3 -1
  7. package/lib/index.js +4 -3
  8. package/lib/index.js.map +1 -1
  9. package/lib/install/checkCompatibility/BreakingChangeError.d.ts +12 -0
  10. package/lib/install/checkCompatibility/BreakingChangeError.js +14 -0
  11. package/lib/install/checkCompatibility/BreakingChangeError.js.map +1 -0
  12. package/lib/install/checkCompatibility/ErrorRelatedSources.d.ts +5 -0
  13. package/lib/install/checkCompatibility/ErrorRelatedSources.js +3 -0
  14. package/lib/install/checkCompatibility/ErrorRelatedSources.js.map +1 -0
  15. package/lib/install/checkCompatibility/ModulesBreakingChangeError.d.ts +9 -0
  16. package/lib/install/checkCompatibility/ModulesBreakingChangeError.js +18 -0
  17. package/lib/install/checkCompatibility/ModulesBreakingChangeError.js.map +1 -0
  18. package/lib/install/checkCompatibility/UnexpectedStoreError.d.ts +11 -0
  19. package/lib/install/checkCompatibility/UnexpectedStoreError.js +14 -0
  20. package/lib/install/checkCompatibility/UnexpectedStoreError.js.map +1 -0
  21. package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.d.ts +11 -0
  22. package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.js +14 -0
  23. package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.js.map +1 -0
  24. package/lib/install/checkCompatibility/index.d.ts +6 -0
  25. package/lib/install/checkCompatibility/index.js +38 -0
  26. package/lib/install/checkCompatibility/index.js.map +1 -0
  27. package/lib/install/extendInstallOptions.d.ts +4 -3
  28. package/lib/install/extendInstallOptions.js.map +1 -1
  29. package/lib/install/index.d.ts +2 -9
  30. package/lib/install/index.js +37 -108
  31. package/lib/install/index.js.map +1 -1
  32. package/lib/install/link.d.ts +4 -4
  33. package/lib/install/link.js.map +1 -1
  34. package/lib/install/validateModules.d.ts +26 -0
  35. package/lib/install/validateModules.js +138 -0
  36. package/lib/install/validateModules.js.map +1 -0
  37. package/lib/parseWantedDependencies.d.ts +2 -0
  38. package/lib/parseWantedDependencies.js +5 -0
  39. package/lib/parseWantedDependencies.js.map +1 -1
  40. package/package.json +67 -67
  41. package/lib/install/index.test.d.ts +0 -1
  42. package/lib/install/index.test.js +0 -57
  43. package/lib/install/index.test.js.map +0 -1
  44. package/lib/link/index.d.ts +0 -11
  45. package/lib/link/index.js +0 -144
  46. package/lib/link/index.js.map +0 -1
  47. package/lib/link/options.d.ts +0 -32
  48. package/lib/link/options.js +0 -38
  49. package/lib/link/options.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateModules = validateModules;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const error_1 = require("@pnpm/error");
10
+ const logger_1 = require("@pnpm/logger");
11
+ const types_1 = require("@pnpm/types");
12
+ const rimraf_1 = __importDefault(require("@zkochan/rimraf"));
13
+ const enquirer_1 = __importDefault(require("enquirer"));
14
+ const equals_1 = __importDefault(require("ramda/src/equals"));
15
+ const checkCompatibility_1 = require("./checkCompatibility");
16
+ async function validateModules(modules, projects, opts) {
17
+ const rootProject = projects.find(({ id }) => id === '.');
18
+ if (opts.virtualStoreDirMaxLength !== modules.virtualStoreDirMaxLength) {
19
+ if (opts.forceNewModules && (rootProject != null)) {
20
+ await purgeModulesDirsOfImporter(opts, rootProject);
21
+ return { purged: true };
22
+ }
23
+ throw new error_1.PnpmError('VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF', 'This modules directory was created using a different virtual-store-dir-max-length value.' +
24
+ ' Run "pnpm install" to recreate the modules directory.');
25
+ }
26
+ if (opts.forcePublicHoistPattern &&
27
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
28
+ !(0, equals_1.default)(modules.publicHoistPattern, opts.publicHoistPattern || undefined)) {
29
+ if (opts.forceNewModules && (rootProject != null)) {
30
+ await purgeModulesDirsOfImporter(opts, rootProject);
31
+ return { purged: true };
32
+ }
33
+ throw new error_1.PnpmError('PUBLIC_HOIST_PATTERN_DIFF', 'This modules directory was created using a different public-hoist-pattern value.' +
34
+ ' Run "pnpm install" to recreate the modules directory.');
35
+ }
36
+ const importersToPurge = [];
37
+ if (opts.forceHoistPattern && (rootProject != null)) {
38
+ try {
39
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
40
+ if (!(0, equals_1.default)(opts.currentHoistPattern, opts.hoistPattern || undefined)) {
41
+ throw new error_1.PnpmError('HOIST_PATTERN_DIFF', 'This modules directory was created using a different hoist-pattern value.' +
42
+ ' Run "pnpm install" to recreate the modules directory.');
43
+ }
44
+ }
45
+ catch (err) { // eslint-disable-line
46
+ if (!opts.forceNewModules)
47
+ throw err;
48
+ importersToPurge.push(rootProject);
49
+ }
50
+ }
51
+ for (const project of projects) {
52
+ try {
53
+ (0, checkCompatibility_1.checkCompatibility)(modules, {
54
+ modulesDir: project.modulesDir,
55
+ storeDir: opts.storeDir,
56
+ virtualStoreDir: opts.virtualStoreDir,
57
+ });
58
+ if (opts.lockfileDir !== project.rootDir && (opts.include != null) && modules.included) {
59
+ for (const depsField of types_1.DEPENDENCIES_FIELDS) {
60
+ if (opts.include[depsField] !== modules.included[depsField]) {
61
+ throw new error_1.PnpmError('INCLUDED_DEPS_CONFLICT', `modules directory (at "${opts.lockfileDir}") was installed with ${stringifyIncludedDeps(modules.included)}. ` +
62
+ `Current install wants ${stringifyIncludedDeps(opts.include)}.`);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ catch (err) { // eslint-disable-line
68
+ if (!opts.forceNewModules)
69
+ throw err;
70
+ importersToPurge.push(project);
71
+ }
72
+ }
73
+ if (importersToPurge.length > 0 && (rootProject == null)) {
74
+ importersToPurge.push({
75
+ modulesDir: path_1.default.join(opts.lockfileDir, opts.modulesDir),
76
+ rootDir: opts.lockfileDir,
77
+ });
78
+ }
79
+ const purged = importersToPurge.length > 0;
80
+ if (purged) {
81
+ await purgeModulesDirsOfImporters(opts, importersToPurge);
82
+ }
83
+ return { purged };
84
+ }
85
+ async function purgeModulesDirsOfImporter(opts, importer) {
86
+ return purgeModulesDirsOfImporters(opts, [importer]);
87
+ }
88
+ async function purgeModulesDirsOfImporters(opts, importers) {
89
+ if (opts.confirmModulesPurge ?? true) {
90
+ const confirmed = await enquirer_1.default.prompt({
91
+ type: 'confirm',
92
+ name: 'question',
93
+ message: importers.length === 1
94
+ ? `The modules directory at "${importers[0].modulesDir}" will be removed and reinstalled from scratch. Proceed?`
95
+ : 'The modules directories will be removed and reinstalled from scratch. Proceed?',
96
+ initial: true,
97
+ });
98
+ if (!confirmed.question) {
99
+ throw new error_1.PnpmError('ABORTED_REMOVE_MODULES_DIR', 'Aborted removal of modules directory');
100
+ }
101
+ }
102
+ await Promise.all(importers.map(async (importer) => {
103
+ logger_1.logger.info({
104
+ message: `Recreating ${importer.modulesDir}`,
105
+ prefix: importer.rootDir,
106
+ });
107
+ try {
108
+ // We don't remove the actual modules directory, just the contents of it.
109
+ // 1. we will need the directory anyway.
110
+ // 2. in some setups, pnpm won't even have permission to remove the modules directory.
111
+ await removeContentsOfDir(importer.modulesDir, opts.virtualStoreDir);
112
+ }
113
+ catch (err) { // eslint-disable-line
114
+ if (err.code !== 'ENOENT')
115
+ throw err;
116
+ }
117
+ }));
118
+ }
119
+ async function removeContentsOfDir(dir, virtualStoreDir) {
120
+ const items = await fs_1.promises.readdir(dir);
121
+ await Promise.all(items.map(async (item) => {
122
+ // The non-pnpm related hidden files are kept
123
+ if (item.startsWith('.') &&
124
+ item !== '.bin' &&
125
+ item !== '.modules.yaml' &&
126
+ !dirsAreEqual(path_1.default.join(dir, item), virtualStoreDir)) {
127
+ return;
128
+ }
129
+ await (0, rimraf_1.default)(path_1.default.join(dir, item));
130
+ }));
131
+ }
132
+ function dirsAreEqual(dir1, dir2) {
133
+ return path_1.default.relative(dir1, dir2) === '';
134
+ }
135
+ function stringifyIncludedDeps(included) {
136
+ return types_1.DEPENDENCIES_FIELDS.filter((depsField) => included[depsField]).join(', ');
137
+ }
138
+ //# sourceMappingURL=validateModules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateModules.js","sourceRoot":"","sources":["../../src/install/validateModules.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type Dependencies } from '@pnpm/types';
2
2
  import { type WantedDependency } from '@pnpm/resolve-dependencies/lib/getWantedDependencies';
3
+ import { type Catalog } from '@pnpm/catalogs.types';
3
4
  export declare function parseWantedDependencies(rawWantedDependencies: string[], opts: {
4
5
  allowNew: boolean;
5
6
  currentPrefs: Dependencies;
@@ -11,4 +12,5 @@ export declare function parseWantedDependencies(rawWantedDependencies: string[],
11
12
  overrides?: Record<string, string>;
12
13
  updateWorkspaceDependencies?: boolean;
13
14
  preferredSpecs?: Record<string, string>;
15
+ defaultCatalog?: Catalog;
14
16
  }): WantedDependency[];
@@ -13,6 +13,11 @@ function parseWantedDependencies(rawWantedDependencies, opts) {
13
13
  if (!opts.allowNew && (!alias || !opts.currentPrefs[alias])) {
14
14
  return null;
15
15
  }
16
+ if (alias && opts.defaultCatalog?.[alias] && ((!opts.currentPrefs[alias] && pref === undefined) ||
17
+ opts.defaultCatalog[alias] === pref ||
18
+ opts.defaultCatalog[alias] === opts.currentPrefs[alias])) {
19
+ pref = 'catalog:';
20
+ }
16
21
  if (alias && opts.currentPrefs[alias]) {
17
22
  if (!pref) {
18
23
  pref = (opts.currentPrefs[alias].startsWith('workspace:') && opts.updateWorkspaceDependencies === true)
@@ -1 +1 @@
1
- {"version":3,"file":"parseWantedDependencies.js","sourceRoot":"","sources":["../src/parseWantedDependencies.ts"],"names":[],"mappings":";;AAKA,0DAkEC;AAvED,2EAAqE;AAErE,2EAAoE;AAGpE,SAAgB,uBAAuB,CACrC,qBAA+B,EAC/B,IAWC;IAED,OAAO,qBAAqB;SACzB,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,IAAA,+CAAqB,EAAC,mBAAmB,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,aAAyC,CAAA;QAE7C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,2BAA2B,KAAK,IAAI,CAAC;oBACrG,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YACD,aAAa,GAAG,IAAA,8CAAoB,EAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,MAAM,MAAM,GAAG;YACb,KAAK;YACL,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/E,aAAa;YACb,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB;SAClI,CAAA;QACD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI;aACL,CAAA;QACH,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAChC,GAAG,EAAE,GAAG,mBAAmB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;aAC5D,CAAA;QACH,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC3B,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACzC,CAAA;QACH,CAAC;QACD,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,IAAI,CAAC,UAAU;SACtB,CAAA;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAuB,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"parseWantedDependencies.js","sourceRoot":"","sources":["../src/parseWantedDependencies.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pnpm/core",
3
3
  "description": "Fast, disk space efficient installation engine",
4
- "version": "900.0.2",
4
+ "version": "1001.0.0",
5
5
  "bugs": {
6
6
  "url": "https://github.com/pnpm/pnpm/issues"
7
7
  },
@@ -12,13 +12,15 @@
12
12
  "!*.map"
13
13
  ],
14
14
  "peerDependencies": {
15
- "@pnpm/logger": ">=5.1.0 <901.0.0",
16
- "@pnpm/worker": "^900.0.1"
15
+ "@pnpm/logger": ">=5.1.0 <1001.0.0",
16
+ "@pnpm/worker": "^1000.0.1"
17
17
  },
18
18
  "dependencies": {
19
19
  "@pnpm/builder.policy": "3.0.0",
20
20
  "@pnpm/npm-package-arg": "^1.0.0",
21
21
  "@zkochan/rimraf": "^3.0.2",
22
+ "ci-info": "^3.9.0",
23
+ "enquirer": "^2.4.1",
22
24
  "is-inner-link": "^4.0.0",
23
25
  "is-subdir": "^1.2.0",
24
26
  "load-json-file": "^6.2.0",
@@ -29,52 +31,51 @@
29
31
  "ramda": "npm:@pnpm/ramda@0.28.1",
30
32
  "run-groups": "^3.0.1",
31
33
  "semver": "^7.6.2",
32
- "sort-keys": "^4.2.0",
33
- "@pnpm/build-modules": "900.0.1",
34
- "@pnpm/calc-dep-state": "900.0.1",
35
- "@pnpm/catalogs.protocol-parser": "900.0.0",
36
- "@pnpm/constants": "901.0.0",
37
- "@pnpm/core-loggers": "900.0.0",
38
- "@pnpm/crypto.base32-hash": "900.0.0",
39
- "@pnpm/dependency-path": "900.0.0",
40
- "@pnpm/catalogs.types": "900.0.0",
41
- "@pnpm/crypto.polyfill": "900.0.0",
42
- "@pnpm/deps.graph-sequencer": "900.0.0",
43
- "@pnpm/error": "900.0.1",
44
- "@pnpm/get-context": "900.0.1",
45
- "@pnpm/headless": "900.0.1",
46
- "@pnpm/hoist": "900.0.1",
47
- "@pnpm/hooks.read-package-hook": "900.0.1",
48
- "@pnpm/link-bins": "900.0.1",
49
- "@pnpm/lifecycle": "900.0.1",
50
- "@pnpm/lockfile-to-pnp": "900.0.1",
51
- "@pnpm/lockfile.filtering": "900.0.1",
52
- "@pnpm/lockfile.preferred-versions": "900.0.1",
53
- "@pnpm/hooks.types": "900.0.0",
54
- "@pnpm/lockfile.fs": "900.0.1",
55
- "@pnpm/lockfile.utils": "900.0.0",
56
- "@pnpm/lockfile.settings-checker": "900.0.1",
57
- "@pnpm/lockfile.verification": "900.0.1",
58
- "@pnpm/lockfile.pruner": "900.0.1",
59
- "@pnpm/lockfile.walker": "900.0.0",
60
- "@pnpm/manifest-utils": "900.0.1",
61
- "@pnpm/modules-cleaner": "900.0.1",
62
- "@pnpm/matcher": "900.0.0",
63
- "@pnpm/modules-yaml": "900.0.0",
64
- "@pnpm/package-requester": "900.0.1",
65
- "@pnpm/normalize-registries": "900.0.0",
66
- "@pnpm/parse-overrides": "900.0.1",
67
- "@pnpm/parse-wanted-dependency": "900.0.0",
68
- "@pnpm/read-modules-dir": "900.0.0",
69
- "@pnpm/remove-bins": "900.0.1",
70
- "@pnpm/pkg-manager.direct-dep-linker": "900.0.0",
71
- "@pnpm/resolve-dependencies": "900.0.2",
72
- "@pnpm/read-project-manifest": "900.0.1",
73
- "@pnpm/resolver-base": "900.0.0",
74
- "@pnpm/store-controller-types": "900.0.0",
75
- "@pnpm/symlink-dependency": "900.0.0",
76
- "@pnpm/types": "900.0.0",
77
- "@pnpm/which-version-is-pinned": "900.0.0"
34
+ "@pnpm/build-modules": "1000.0.1",
35
+ "@pnpm/catalogs.protocol-parser": "1000.0.0",
36
+ "@pnpm/calc-dep-state": "1001.0.0",
37
+ "@pnpm/catalogs.types": "1000.0.0",
38
+ "@pnpm/core-loggers": "1000.0.0",
39
+ "@pnpm/constants": "1001.0.0",
40
+ "@pnpm/crypto.hash": "1000.0.0",
41
+ "@pnpm/crypto.object-hasher": "1000.0.0",
42
+ "@pnpm/dependency-path": "1000.0.0",
43
+ "@pnpm/deps.graph-sequencer": "1000.0.0",
44
+ "@pnpm/get-context": "1001.0.0",
45
+ "@pnpm/headless": "1001.0.0",
46
+ "@pnpm/error": "1000.0.1",
47
+ "@pnpm/hoist": "1001.0.0",
48
+ "@pnpm/hooks.types": "1001.0.0",
49
+ "@pnpm/link-bins": "1000.0.1",
50
+ "@pnpm/lockfile-to-pnp": "1001.0.0",
51
+ "@pnpm/lifecycle": "1001.0.0",
52
+ "@pnpm/hooks.read-package-hook": "1000.0.1",
53
+ "@pnpm/lockfile.filtering": "1001.0.0",
54
+ "@pnpm/lockfile.fs": "1001.0.0",
55
+ "@pnpm/lockfile.pruner": "1001.0.0",
56
+ "@pnpm/lockfile.preferred-versions": "1000.0.1",
57
+ "@pnpm/lockfile.settings-checker": "1001.0.0",
58
+ "@pnpm/lockfile.utils": "1001.0.0",
59
+ "@pnpm/manifest-utils": "1000.0.1",
60
+ "@pnpm/lockfile.walker": "1001.0.0",
61
+ "@pnpm/lockfile.verification": "1001.0.0",
62
+ "@pnpm/matcher": "1000.0.0",
63
+ "@pnpm/modules-cleaner": "1001.0.0",
64
+ "@pnpm/modules-yaml": "1000.0.0",
65
+ "@pnpm/package-requester": "1000.1.0",
66
+ "@pnpm/parse-overrides": "1000.0.1",
67
+ "@pnpm/normalize-registries": "1000.0.0",
68
+ "@pnpm/pkg-manager.direct-dep-linker": "1000.0.0",
69
+ "@pnpm/read-modules-dir": "1000.0.0",
70
+ "@pnpm/read-project-manifest": "1000.0.1",
71
+ "@pnpm/remove-bins": "1000.0.1",
72
+ "@pnpm/resolve-dependencies": "1001.0.0",
73
+ "@pnpm/store-controller-types": "1000.1.0",
74
+ "@pnpm/parse-wanted-dependency": "1000.0.0",
75
+ "@pnpm/symlink-dependency": "1000.0.0",
76
+ "@pnpm/resolver-base": "1000.1.0",
77
+ "@pnpm/which-version-is-pinned": "1000.0.0",
78
+ "@pnpm/types": "1000.0.0"
78
79
  },
79
80
  "devDependencies": {
80
81
  "@pnpm/registry-mock": "3.43.0",
@@ -84,7 +85,7 @@
84
85
  "@types/ramda": "0.29.12",
85
86
  "@types/semver": "7.5.3",
86
87
  "@types/sinon": "^10.0.20",
87
- "@yarnpkg/core": "4.0.3",
88
+ "@yarnpkg/core": "4.0.5",
88
89
  "ci-info": "^3.9.0",
89
90
  "deep-require-cwd": "1.0.0",
90
91
  "execa": "npm:safe-execa@0.1.2",
@@ -95,31 +96,30 @@
95
96
  "read-yaml-file": "^2.1.0",
96
97
  "resolve-link-target": "^2.0.0",
97
98
  "sinon": "^16.1.3",
98
- "symlink-dir": "^6.0.2",
99
+ "symlink-dir": "^6.0.3",
99
100
  "write-json-file": "^4.3.0",
100
101
  "write-yaml-file": "^5.0.0",
101
- "@pnpm/assert-store": "1.0.92",
102
- "@pnpm/client": "900.0.2",
103
- "@pnpm/core": "900.0.2",
104
- "@pnpm/crypto.object-hasher": "900.0.0",
105
- "@pnpm/git-utils": "900.0.0",
106
- "@pnpm/lockfile.types": "900.0.0",
107
- "@pnpm/logger": "900.0.0",
108
- "@pnpm/prepare": "0.0.106",
109
- "@pnpm/read-package-json": "900.0.1",
110
- "@pnpm/store-path": "900.0.1",
111
- "@pnpm/package-store": "900.0.1",
112
- "@pnpm/store.cafs": "900.0.0",
113
- "@pnpm/assert-project": "2.3.63",
114
- "@pnpm/test-fixtures": "0.1.36",
115
- "@pnpm/test-ipc-server": "0.0.0"
102
+ "@pnpm/assert-project": "4.0.0",
103
+ "@pnpm/assert-store": "2.0.1",
104
+ "@pnpm/client": "1000.0.1",
105
+ "@pnpm/core": "1001.0.0",
106
+ "@pnpm/git-utils": "1000.0.0",
107
+ "@pnpm/logger": "1000.0.0",
108
+ "@pnpm/package-store": "1000.0.1",
109
+ "@pnpm/prepare": "0.0.107",
110
+ "@pnpm/store-path": "1000.0.1",
111
+ "@pnpm/read-package-json": "1000.0.1",
112
+ "@pnpm/store.cafs": "1000.0.1",
113
+ "@pnpm/test-fixtures": "0.1.37",
114
+ "@pnpm/test-ipc-server": "0.0.0",
115
+ "@pnpm/lockfile.types": "1001.0.0"
116
116
  },
117
117
  "directories": {
118
118
  "test": "test"
119
119
  },
120
120
  "homepage": "https://github.com/pnpm/pnpm/blob/main/pkg-manager/core#readme",
121
121
  "keywords": [
122
- "pnpm9",
122
+ "pnpm10",
123
123
  "dependency manager",
124
124
  "install",
125
125
  "installer",
@@ -1 +0,0 @@
1
- export {};
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("./index");
4
- function assets() {
5
- const sorted = {
6
- abc: {
7
- a: 0,
8
- b: [0, 1, 2],
9
- c: null,
10
- },
11
- def: {
12
- foo: 'bar',
13
- hello: 'world',
14
- },
15
- };
16
- const unsorted1 = {
17
- abc: {
18
- b: [0, 1, 2],
19
- a: 0,
20
- c: null,
21
- },
22
- def: {
23
- hello: 'world',
24
- foo: 'bar',
25
- },
26
- };
27
- const unsorted2 = {
28
- def: {
29
- foo: 'bar',
30
- hello: 'world',
31
- },
32
- abc: {
33
- a: 0,
34
- b: [0, 1, 2],
35
- c: null,
36
- },
37
- };
38
- const unsorted3 = {
39
- def: {
40
- hello: 'world',
41
- foo: 'bar',
42
- },
43
- abc: {
44
- b: [0, 1, 2],
45
- a: 0,
46
- c: null,
47
- },
48
- };
49
- return { sorted, unsorted1, unsorted2, unsorted3 };
50
- }
51
- test('createObjectChecksum', () => {
52
- const { sorted, unsorted1, unsorted2, unsorted3 } = assets();
53
- expect((0, index_1.createObjectChecksum)(unsorted1)).toBe((0, index_1.createObjectChecksum)(sorted));
54
- expect((0, index_1.createObjectChecksum)(unsorted2)).toBe((0, index_1.createObjectChecksum)(sorted));
55
- expect((0, index_1.createObjectChecksum)(unsorted3)).toBe((0, index_1.createObjectChecksum)(sorted));
56
- });
57
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/install/index.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAE9C,SAAS,MAAM;IACb,MAAM,MAAM,GAAG;QACb,GAAG,EAAE;YACH,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC,EAAE,IAAI;SACR;QACD,GAAG,EAAE;YACH,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,OAAO;SACf;KACO,CAAA;IAEV,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE;YACH,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,IAAI;SACR;QACD,GAAG,EAAE;YACH,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,KAAK;SACX;KACO,CAAA;IAEV,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE;YACH,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,OAAO;SACf;QACD,GAAG,EAAE;YACH,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC,EAAE,IAAI;SACR;KACO,CAAA;IAEV,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE;YACH,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,KAAK;SACX;QACD,GAAG,EAAE;YACH,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,IAAI;SACR;KACO,CAAA;IAEV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAW,CAAA;AAC7D,CAAC;AAED,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAA;IAC5D,MAAM,CAAC,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,CAAC,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,CAAC,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- import { type ProjectManifest } from '@pnpm/types';
2
- import { type LinkOptions } from './options';
3
- type LinkFunctionOptions = LinkOptions & {
4
- linkToBin?: string;
5
- dir: string;
6
- };
7
- export type { LinkFunctionOptions };
8
- export declare function link(linkFromPkgs: Array<{
9
- alias: string;
10
- path: string;
11
- } | string>, destModules: string, maybeOpts: LinkFunctionOptions): Promise<ProjectManifest>;
package/lib/link/index.js DELETED
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.link = link;
7
- const path_1 = __importDefault(require("path"));
8
- const core_loggers_1 = require("@pnpm/core-loggers");
9
- const error_1 = require("@pnpm/error");
10
- const get_context_1 = require("@pnpm/get-context");
11
- const link_bins_1 = require("@pnpm/link-bins");
12
- const lockfile_fs_1 = require("@pnpm/lockfile.fs");
13
- const logger_1 = require("@pnpm/logger");
14
- const manifest_utils_1 = require("@pnpm/manifest-utils");
15
- const lockfile_pruner_1 = require("@pnpm/lockfile.pruner");
16
- const read_project_manifest_1 = require("@pnpm/read-project-manifest");
17
- const symlink_dependency_1 = require("@pnpm/symlink-dependency");
18
- const types_1 = require("@pnpm/types");
19
- const normalize_path_1 = __importDefault(require("normalize-path"));
20
- const options_1 = require("./options");
21
- async function link(linkFromPkgs, destModules, maybeOpts) {
22
- const reporter = maybeOpts?.reporter;
23
- if ((reporter != null) && typeof reporter === 'function') {
24
- logger_1.streamParser.on('data', reporter);
25
- }
26
- const opts = await (0, options_1.extendOptions)(maybeOpts);
27
- const ctx = await (0, get_context_1.getContextForSingleImporter)(opts.manifest, {
28
- ...opts,
29
- extraBinPaths: [], // ctx.extraBinPaths is not needed, so this is fine
30
- }, true);
31
- const importerId = (0, lockfile_fs_1.getLockfileImporterId)(ctx.lockfileDir, opts.dir);
32
- const specsToUpsert = [];
33
- const linkedPkgs = await Promise.all(linkFromPkgs.map(async (linkFrom) => {
34
- let linkFromPath;
35
- let linkFromAlias;
36
- if (typeof linkFrom === 'string') {
37
- linkFromPath = linkFrom;
38
- }
39
- else {
40
- linkFromPath = linkFrom.path;
41
- linkFromAlias = linkFrom.alias;
42
- }
43
- const { manifest } = await (0, read_project_manifest_1.readProjectManifest)(linkFromPath);
44
- if (typeof linkFrom === 'string' && manifest.name === undefined) {
45
- throw new error_1.PnpmError('INVALID_PACKAGE_NAME', `Package in ${linkFromPath} must have a name field to be linked`);
46
- }
47
- const targetDependencyType = (0, manifest_utils_1.getDependencyTypeFromManifest)(opts.manifest, manifest.name) ?? opts.targetDependenciesField;
48
- specsToUpsert.push({
49
- alias: manifest.name,
50
- pref: (0, manifest_utils_1.getPref)(manifest.name, manifest.name, manifest.version, {
51
- pinnedVersion: opts.pinnedVersion,
52
- }),
53
- saveType: (targetDependencyType ?? (ctx.manifest && (0, manifest_utils_1.guessDependencyType)(manifest.name, ctx.manifest))),
54
- });
55
- const packagePath = (0, normalize_path_1.default)(path_1.default.relative(opts.dir, linkFromPath));
56
- const addLinkOpts = {
57
- linkedPkgName: linkFromAlias ?? manifest.name,
58
- manifest: ctx.manifest,
59
- packagePath,
60
- };
61
- addLinkToLockfile(ctx.currentLockfile.importers[importerId], addLinkOpts);
62
- addLinkToLockfile(ctx.wantedLockfile.importers[importerId], addLinkOpts);
63
- return {
64
- alias: linkFromAlias ?? manifest.name,
65
- manifest,
66
- path: linkFromPath,
67
- };
68
- }));
69
- const updatedCurrentLockfile = (0, lockfile_pruner_1.pruneSharedLockfile)(ctx.currentLockfile);
70
- const warn = (message) => {
71
- logger_1.logger.warn({ message, prefix: opts.dir });
72
- };
73
- const updatedWantedLockfile = (0, lockfile_pruner_1.pruneSharedLockfile)(ctx.wantedLockfile, { warn });
74
- // Linking should happen after removing orphans
75
- // Otherwise would've been removed
76
- await Promise.all(linkedPkgs.map(async ({ alias, manifest, path }) => {
77
- // TODO: cover with test that linking reports with correct dependency types
78
- const stu = specsToUpsert.find((s) => s.alias === manifest.name);
79
- const targetDependencyType = (0, manifest_utils_1.getDependencyTypeFromManifest)(opts.manifest, manifest.name) ?? opts.targetDependenciesField;
80
- await (0, symlink_dependency_1.symlinkDirectRootDependency)(path, destModules, alias, {
81
- fromDependenciesField: stu?.saveType ?? targetDependencyType,
82
- linkedPackage: manifest,
83
- prefix: opts.dir,
84
- });
85
- }));
86
- const linkToBin = maybeOpts?.linkToBin ?? path_1.default.join(destModules, '.bin');
87
- await (0, link_bins_1.linkBinsOfPackages)(linkedPkgs.map((p) => ({ manifest: p.manifest, location: p.path })), linkToBin, {
88
- extraNodePaths: ctx.extraNodePaths,
89
- preferSymlinkedExecutables: opts.preferSymlinkedExecutables,
90
- });
91
- let newPkg;
92
- if (opts.targetDependenciesField) {
93
- newPkg = await (0, manifest_utils_1.updateProjectManifestObject)(opts.dir, opts.manifest, specsToUpsert);
94
- for (const { alias } of specsToUpsert) {
95
- updatedWantedLockfile.importers[importerId].specifiers[alias] = (0, manifest_utils_1.getSpecFromPackageManifest)(newPkg, alias);
96
- }
97
- }
98
- else {
99
- newPkg = opts.manifest;
100
- }
101
- const lockfileOpts = { useGitBranchLockfile: opts.useGitBranchLockfile, mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles };
102
- if (opts.useLockfile) {
103
- await (0, lockfile_fs_1.writeLockfiles)({
104
- currentLockfile: updatedCurrentLockfile,
105
- currentLockfileDir: ctx.virtualStoreDir,
106
- wantedLockfile: updatedWantedLockfile,
107
- wantedLockfileDir: ctx.lockfileDir,
108
- ...lockfileOpts,
109
- });
110
- }
111
- else {
112
- await (0, lockfile_fs_1.writeCurrentLockfile)(ctx.virtualStoreDir, updatedCurrentLockfile);
113
- }
114
- core_loggers_1.summaryLogger.debug({ prefix: opts.dir });
115
- if ((reporter != null) && typeof reporter === 'function') {
116
- logger_1.streamParser.removeListener('data', reporter);
117
- }
118
- return newPkg;
119
- }
120
- function addLinkToLockfile(projectSnapshot, opts) {
121
- const id = `link:${opts.packagePath}`;
122
- let addedTo;
123
- for (const depType of types_1.DEPENDENCIES_FIELDS) {
124
- if (!addedTo && opts.manifest?.[depType]?.[opts.linkedPkgName]) {
125
- addedTo = depType;
126
- projectSnapshot[depType] = projectSnapshot[depType] ?? {};
127
- projectSnapshot[depType][opts.linkedPkgName] = id;
128
- }
129
- else if (projectSnapshot[depType] != null) {
130
- delete projectSnapshot[depType][opts.linkedPkgName];
131
- }
132
- }
133
- // package.json might not be available when linking to global
134
- if (opts.manifest == null)
135
- return;
136
- const availableSpec = (0, manifest_utils_1.getSpecFromPackageManifest)(opts.manifest, opts.linkedPkgName);
137
- if (availableSpec) {
138
- projectSnapshot.specifiers[opts.linkedPkgName] = availableSpec;
139
- }
140
- else {
141
- delete projectSnapshot.specifiers[opts.linkedPkgName];
142
- }
143
- }
144
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":";;;;;AA4CA,oBAmHC;AA/JD,gDAAuB;AACvB,qDAE2B;AAC3B,uCAAuC;AACvC,mDAA+D;AAC/D,+CAAoD;AACpD,mDAK0B;AAC1B,yCAAmD;AACnD,yDAO6B;AAC7B,2DAA2D;AAC3D,uEAAiE;AACjE,iEAAsE;AACtE,uCAKoB;AACpB,oEAAsC;AACtC,uCAGkB;AASX,KAAK,UAAU,IAAI,CACxB,YAA6D,EAC7D,WAAmB,EACnB,SAA8B;IAE9B,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,CAAA;IACpC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,qBAAY,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,MAAM,IAAA,yCAA2B,EAAC,IAAI,CAAC,QAAQ,EAAE;QAC3D,GAAG,IAAI;QACP,aAAa,EAAE,EAAE,EAAE,mDAAmD;KACvE,EAAE,IAAI,CAAC,CAAA;IAER,MAAM,UAAU,GAAG,IAAA,mCAAqB,EAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,aAAa,GAAG,EAAyB,CAAA;IAE/C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAI,YAAoB,CAAA;QACxB,IAAI,aAAiC,CAAA;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,YAAY,GAAG,QAAQ,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC5B,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAA;QAChC,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,2CAAmB,EAAC,YAAY,CAAqC,CAAA;QAChG,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,iBAAS,CAAC,sBAAsB,EAAE,cAAc,YAAY,sCAAsC,CAAC,CAAA;QAC/G,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAA,8CAA6B,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAA;QAExH,aAAa,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,IAAI,EAAE,IAAA,wBAAO,EAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE;gBAC5D,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC;YACF,QAAQ,EAAE,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAA,oCAAmB,EAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAsB;SAC5H,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,IAAA,wBAAS,EAAC,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAA;QACpE,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,aAAa,IAAI,QAAQ,CAAC,IAAI;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW;SACZ,CAAA;QACD,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;QACzE,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;QAExE,OAAO;YACL,KAAK,EAAE,aAAa,IAAI,QAAQ,CAAC,IAAI;YACrC,QAAQ;YACR,IAAI,EAAE,YAAY;SACnB,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,sBAAsB,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvE,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE;QAC/B,eAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;IACD,MAAM,qBAAqB,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/E,+CAA+C;IAC/C,kCAAkC;IAClC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACnE,2EAA2E;QAC3E,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChE,MAAM,oBAAoB,GAAG,IAAA,8CAA6B,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAA;QACxH,MAAM,IAAA,gDAA2B,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;YAC1D,qBAAqB,EAAE,GAAG,EAAE,QAAQ,IAAK,oBAA0C;YACnF,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,GAAG;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,SAAS,EAAE,SAAS,IAAI,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACxE,MAAM,IAAA,8BAAkB,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE;QACvG,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;KAC5D,CAAC,CAAA;IAEF,IAAI,MAAwB,CAAA;IAC5B,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,IAAA,4CAA2B,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAClF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,aAAa,EAAE,CAAC;YACtC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAA,2CAA0B,EAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC3G,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAA;IAC/H,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAA,4BAAc,EAAC;YACnB,eAAe,EAAE,sBAAsB;YACvC,kBAAkB,EAAE,GAAG,CAAC,eAAe;YACvC,cAAc,EAAE,qBAAqB;YACrC,iBAAiB,EAAE,GAAG,CAAC,WAAW;YAClC,GAAG,YAAY;SAChB,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,kCAAoB,EAAC,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;IACzE,CAAC;IAED,4BAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAEzC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,qBAAY,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,eAAgC,EAChC,IAIC;IAED,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAA;IACrC,IAAI,OAAsC,CAAA;IAC1C,KAAK,MAAM,OAAO,IAAI,2BAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,OAAO,CAAA;YACjB,eAAe,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACzD,eAAe,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;QACpD,CAAC;aAAM,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5C,OAAO,eAAe,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;QAAE,OAAM;IAEjC,MAAM,aAAa,GAAG,IAAA,2CAA0B,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACnF,IAAI,aAAa,EAAE,CAAC;QAClB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
@@ -1,32 +0,0 @@
1
- import { type StoreController } from '@pnpm/store-controller-types';
2
- import { type DependenciesField, type ProjectManifest, type Registries } from '@pnpm/types';
3
- import { type ReporterFunction } from '../types';
4
- interface StrictLinkOptions {
5
- autoInstallPeers: boolean;
6
- binsDir: string;
7
- excludeLinksFromLockfile: boolean;
8
- force: boolean;
9
- useLockfile: boolean;
10
- lockfileDir: string;
11
- nodeLinker: 'isolated' | 'hoisted' | 'pnp';
12
- pinnedVersion: 'major' | 'minor' | 'patch';
13
- storeController: StoreController;
14
- manifest: ProjectManifest;
15
- registries: Registries;
16
- storeDir: string;
17
- reporter: ReporterFunction;
18
- targetDependenciesField?: DependenciesField;
19
- dir: string;
20
- preferSymlinkedExecutables: boolean;
21
- hoistPattern: string[] | undefined;
22
- forceHoistPattern: boolean;
23
- publicHoistPattern: string[] | undefined;
24
- forcePublicHoistPattern: boolean;
25
- useGitBranchLockfile: boolean;
26
- mergeGitBranchLockfiles: boolean;
27
- virtualStoreDirMaxLength: number;
28
- peersSuffixMaxLength: number;
29
- }
30
- export type LinkOptions = Partial<StrictLinkOptions> & Pick<StrictLinkOptions, 'storeController' | 'manifest'>;
31
- export declare function extendOptions(opts: LinkOptions): Promise<StrictLinkOptions>;
32
- export {};