@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.
- package/lib/install/index.test.d.ts +1 -0
- package/lib/install/index.test.js +57 -0
- package/lib/install/index.test.js.map +1 -0
- package/lib/link/index.d.ts +11 -0
- package/lib/link/index.js +144 -0
- package/lib/link/index.js.map +1 -0
- package/lib/link/options.d.ts +32 -0
- package/lib/link/options.js +38 -0
- package/lib/link/options.js.map +1 -0
- package/package.json +30 -30
|
@@ -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.
|
|
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/
|
|
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/
|
|
48
|
-
"@pnpm/
|
|
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.
|
|
54
|
+
"@pnpm/lockfile.fs": "1001.1.0",
|
|
55
55
|
"@pnpm/lockfile.pruner": "1001.0.0",
|
|
56
|
-
"@pnpm/lockfile.
|
|
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/
|
|
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/
|
|
78
|
-
"@pnpm/
|
|
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/
|
|
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"
|