@pnpm/core 16.0.0 → 900.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.
- package/lib/api.d.ts +1 -0
- package/lib/api.js +1 -0
- package/lib/api.js.map +1 -1
- package/lib/index.d.ts +1 -3
- package/lib/index.js +3 -4
- package/lib/index.js.map +1 -1
- package/lib/install/index.d.ts +9 -2
- package/lib/install/index.js +104 -29
- package/lib/install/index.js.map +1 -1
- 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 +67 -67
- package/lib/install/checkCompatibility/BreakingChangeError.d.ts +0 -12
- package/lib/install/checkCompatibility/BreakingChangeError.js +0 -14
- package/lib/install/checkCompatibility/BreakingChangeError.js.map +0 -1
- package/lib/install/checkCompatibility/ErrorRelatedSources.d.ts +0 -5
- package/lib/install/checkCompatibility/ErrorRelatedSources.js +0 -3
- package/lib/install/checkCompatibility/ErrorRelatedSources.js.map +0 -1
- package/lib/install/checkCompatibility/ModulesBreakingChangeError.d.ts +0 -9
- package/lib/install/checkCompatibility/ModulesBreakingChangeError.js +0 -18
- package/lib/install/checkCompatibility/ModulesBreakingChangeError.js.map +0 -1
- package/lib/install/checkCompatibility/UnexpectedStoreError.d.ts +0 -11
- package/lib/install/checkCompatibility/UnexpectedStoreError.js +0 -14
- package/lib/install/checkCompatibility/UnexpectedStoreError.js.map +0 -1
- package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.d.ts +0 -11
- package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.js +0 -14
- package/lib/install/checkCompatibility/UnexpectedVirtualStoreDirError.js.map +0 -1
- package/lib/install/checkCompatibility/index.d.ts +0 -6
- package/lib/install/checkCompatibility/index.js +0 -38
- package/lib/install/checkCompatibility/index.js.map +0 -1
- package/lib/install/validateModules.d.ts +0 -26
- package/lib/install/validateModules.js +0 -138
- package/lib/install/validateModules.js.map +0 -1
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type IncludedDependencies, type Modules } from '@pnpm/modules-yaml';
|
|
2
|
-
import { type Registries, type ProjectRootDir } from '@pnpm/types';
|
|
3
|
-
export declare function validateModules(modules: Modules, projects: Array<{
|
|
4
|
-
modulesDir: string;
|
|
5
|
-
id: string;
|
|
6
|
-
rootDir: ProjectRootDir;
|
|
7
|
-
}>, opts: {
|
|
8
|
-
currentHoistPattern?: string[];
|
|
9
|
-
currentPublicHoistPattern?: string[];
|
|
10
|
-
forceNewModules: boolean;
|
|
11
|
-
include?: IncludedDependencies;
|
|
12
|
-
lockfileDir: string;
|
|
13
|
-
modulesDir: string;
|
|
14
|
-
registries: Registries;
|
|
15
|
-
storeDir: string;
|
|
16
|
-
virtualStoreDir: string;
|
|
17
|
-
virtualStoreDirMaxLength: number;
|
|
18
|
-
confirmModulesPurge?: boolean;
|
|
19
|
-
hoistPattern?: string[] | undefined;
|
|
20
|
-
forceHoistPattern?: boolean;
|
|
21
|
-
publicHoistPattern?: string[] | undefined;
|
|
22
|
-
forcePublicHoistPattern?: boolean;
|
|
23
|
-
global?: boolean;
|
|
24
|
-
}): Promise<{
|
|
25
|
-
purged: boolean;
|
|
26
|
-
}>;
|
|
@@ -1,138 +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.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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validateModules.js","sourceRoot":"","sources":["../../src/install/validateModules.ts"],"names":[],"mappings":"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"}
|