@pnpm/core 1001.0.0 → 1001.0.1

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,11 @@
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>;
@@ -0,0 +1,144 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
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 {};
@@ -0,0 +1,38 @@
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.extendOptions = extendOptions;
7
+ const path_1 = __importDefault(require("path"));
8
+ const normalize_registries_1 = require("@pnpm/normalize-registries");
9
+ async function extendOptions(opts) {
10
+ if (opts) {
11
+ for (const key in opts) {
12
+ if (opts[key] === undefined) {
13
+ delete opts[key];
14
+ }
15
+ }
16
+ }
17
+ const defaultOpts = await defaults(opts);
18
+ const extendedOpts = { ...defaultOpts, ...opts, storeDir: defaultOpts.storeDir };
19
+ extendedOpts.registries = (0, normalize_registries_1.normalizeRegistries)(extendedOpts.registries);
20
+ return extendedOpts;
21
+ }
22
+ async function defaults(opts) {
23
+ const dir = opts.dir ?? process.cwd();
24
+ return {
25
+ binsDir: path_1.default.join(dir, 'node_modules', '.bin'),
26
+ dir,
27
+ force: false,
28
+ hoistPattern: undefined,
29
+ lockfileDir: opts.lockfileDir ?? dir,
30
+ nodeLinker: 'isolated',
31
+ registries: normalize_registries_1.DEFAULT_REGISTRIES,
32
+ storeController: opts.storeController,
33
+ storeDir: opts.storeDir,
34
+ useLockfile: true,
35
+ virtualStoreDirMaxLength: 120,
36
+ };
37
+ }
38
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/link/options.ts"],"names":[],"mappings":";;;;;AA4CA,sCAYC;AAxDD,gDAAuB;AACvB,qEAAoF;AA2C7E,KAAK,UAAU,aAAa,CAAE,IAAiB;IACpD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,GAAwB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,GAAwB,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,YAAY,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAA;IAChF,YAAY,CAAC,UAAU,GAAG,IAAA,0CAAmB,EAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IACtE,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAE,IAAiB;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACrC,OAAO;QACL,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC;QAC/C,GAAG;QACH,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;QACpC,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,yCAAkB;QAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI;QACjB,wBAAwB,EAAE,GAAG;KACT,CAAA;AACxB,CAAC"}
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": "1001.0.0",
4
+ "version": "1001.0.1",
5
5
  "bugs": {
6
6
  "url": "https://github.com/pnpm/pnpm/issues"
7
7
  },
@@ -31,51 +31,51 @@
31
31
  "ramda": "npm:@pnpm/ramda@0.28.1",
32
32
  "run-groups": "^3.0.1",
33
33
  "semver": "^7.6.2",
34
- "@pnpm/build-modules": "1000.0.1",
35
- "@pnpm/catalogs.protocol-parser": "1000.0.0",
36
34
  "@pnpm/calc-dep-state": "1001.0.0",
35
+ "@pnpm/build-modules": "1000.0.1",
37
36
  "@pnpm/catalogs.types": "1000.0.0",
38
- "@pnpm/core-loggers": "1000.0.0",
37
+ "@pnpm/catalogs.protocol-parser": "1000.0.0",
39
38
  "@pnpm/constants": "1001.0.0",
40
39
  "@pnpm/crypto.hash": "1000.0.0",
40
+ "@pnpm/core-loggers": "1000.0.0",
41
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
42
  "@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",
43
+ "@pnpm/get-context": "1001.0.1",
44
+ "@pnpm/headless": "1001.0.1",
51
45
  "@pnpm/lifecycle": "1001.0.0",
52
46
  "@pnpm/hooks.read-package-hook": "1000.0.1",
47
+ "@pnpm/hooks.types": "1001.0.0",
48
+ "@pnpm/link-bins": "1000.0.1",
49
+ "@pnpm/dependency-path": "1000.0.0",
50
+ "@pnpm/lockfile-to-pnp": "1001.0.1",
51
+ "@pnpm/lockfile.preferred-versions": "1000.0.1",
52
+ "@pnpm/deps.graph-sequencer": "1000.0.0",
53
53
  "@pnpm/lockfile.filtering": "1001.0.0",
54
- "@pnpm/lockfile.fs": "1001.0.0",
54
+ "@pnpm/lockfile.fs": "1001.1.0",
55
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",
56
+ "@pnpm/lockfile.verification": "1001.0.1",
59
57
  "@pnpm/manifest-utils": "1000.0.1",
58
+ "@pnpm/lockfile.utils": "1001.0.0",
59
+ "@pnpm/hoist": "1001.0.0",
60
60
  "@pnpm/lockfile.walker": "1001.0.0",
61
- "@pnpm/lockfile.verification": "1001.0.0",
62
- "@pnpm/matcher": "1000.0.0",
63
61
  "@pnpm/modules-cleaner": "1001.0.0",
62
+ "@pnpm/matcher": "1000.0.0",
63
+ "@pnpm/normalize-registries": "1000.0.0",
64
64
  "@pnpm/modules-yaml": "1000.0.0",
65
65
  "@pnpm/package-requester": "1000.1.0",
66
66
  "@pnpm/parse-overrides": "1000.0.1",
67
- "@pnpm/normalize-registries": "1000.0.0",
68
67
  "@pnpm/pkg-manager.direct-dep-linker": "1000.0.0",
68
+ "@pnpm/parse-wanted-dependency": "1000.0.0",
69
69
  "@pnpm/read-modules-dir": "1000.0.0",
70
- "@pnpm/read-project-manifest": "1000.0.1",
71
70
  "@pnpm/remove-bins": "1000.0.1",
72
- "@pnpm/resolve-dependencies": "1001.0.0",
71
+ "@pnpm/read-project-manifest": "1000.0.1",
73
72
  "@pnpm/store-controller-types": "1000.1.0",
74
- "@pnpm/parse-wanted-dependency": "1000.0.0",
75
- "@pnpm/symlink-dependency": "1000.0.0",
76
73
  "@pnpm/resolver-base": "1000.1.0",
77
- "@pnpm/which-version-is-pinned": "1000.0.0",
78
- "@pnpm/types": "1000.0.0"
74
+ "@pnpm/resolve-dependencies": "1001.0.0",
75
+ "@pnpm/symlink-dependency": "1000.0.0",
76
+ "@pnpm/lockfile.settings-checker": "1001.0.0",
77
+ "@pnpm/types": "1000.0.0",
78
+ "@pnpm/which-version-is-pinned": "1000.0.0"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@pnpm/registry-mock": "3.43.0",
@@ -99,20 +99,20 @@
99
99
  "symlink-dir": "^6.0.3",
100
100
  "write-json-file": "^4.3.0",
101
101
  "write-yaml-file": "^5.0.0",
102
- "@pnpm/assert-project": "4.0.0",
103
102
  "@pnpm/assert-store": "2.0.1",
103
+ "@pnpm/assert-project": "4.0.0",
104
104
  "@pnpm/client": "1000.0.1",
105
- "@pnpm/core": "1001.0.0",
105
+ "@pnpm/lockfile.types": "1001.0.0",
106
106
  "@pnpm/git-utils": "1000.0.0",
107
- "@pnpm/logger": "1000.0.0",
108
107
  "@pnpm/package-store": "1000.0.1",
108
+ "@pnpm/logger": "1000.0.0",
109
109
  "@pnpm/prepare": "0.0.107",
110
+ "@pnpm/core": "1001.0.1",
110
111
  "@pnpm/store-path": "1000.0.1",
111
112
  "@pnpm/read-package-json": "1000.0.1",
112
113
  "@pnpm/store.cafs": "1000.0.1",
113
114
  "@pnpm/test-fixtures": "0.1.37",
114
- "@pnpm/test-ipc-server": "0.0.0",
115
- "@pnpm/lockfile.types": "1001.0.0"
115
+ "@pnpm/test-ipc-server": "0.0.0"
116
116
  },
117
117
  "directories": {
118
118
  "test": "test"