@pnpm/plugin-commands-store 8.1.20 → 9.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/cleanExpiredDlxCache.d.ts +6 -0
- package/lib/cleanExpiredDlxCache.js +97 -0
- package/lib/cleanExpiredDlxCache.js.map +1 -0
- package/lib/cleanExpiredDlxCache.test.d.ts +1 -0
- package/lib/cleanExpiredDlxCache.test.js +153 -0
- package/lib/cleanExpiredDlxCache.test.js.map +1 -0
- package/lib/store.d.ts +2 -2
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/storePrune.d.ts +2 -0
- package/lib/storePrune.js +6 -0
- package/lib/storePrune.js.map +1 -1
- package/lib/storeStatus/extendStoreStatusOptions.d.ts +0 -1
- package/lib/storeStatus/extendStoreStatusOptions.js +0 -1
- package/lib/storeStatus/extendStoreStatusOptions.js.map +1 -1
- package/lib/storeStatus/index.js +3 -3
- package/lib/storeStatus/index.js.map +1 -1
- package/package.json +23 -22
|
@@ -0,0 +1,97 @@
|
|
|
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.cleanOrphans = exports.cleanExpiredDlxCache = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const util_1 = __importDefault(require("util"));
|
|
11
|
+
async function cleanExpiredDlxCache({ cacheDir, dlxCacheMaxAge, now, }) {
|
|
12
|
+
if (dlxCacheMaxAge === Infinity)
|
|
13
|
+
return;
|
|
14
|
+
const dlxCacheDir = path_1.default.join(cacheDir, 'dlx');
|
|
15
|
+
const dlxCacheNames = readOptDir(dlxCacheDir);
|
|
16
|
+
if (!dlxCacheNames)
|
|
17
|
+
return;
|
|
18
|
+
await Promise.all(dlxCacheNames.map(async (dlxCacheName) => {
|
|
19
|
+
const dlxCachePath = path_1.default.join(dlxCacheDir, dlxCacheName);
|
|
20
|
+
const dlxCacheLink = path_1.default.join(dlxCachePath, 'pkg');
|
|
21
|
+
let shouldClean;
|
|
22
|
+
if (dlxCacheMaxAge <= 0) {
|
|
23
|
+
shouldClean = true;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const dlxCacheLinkStats = await getStats(dlxCacheLink);
|
|
27
|
+
shouldClean = dlxCacheLinkStats !== 'ENOENT' && isOutdated(dlxCacheLinkStats, dlxCacheMaxAge, now);
|
|
28
|
+
}
|
|
29
|
+
if (shouldClean) {
|
|
30
|
+
// delete the symlink, the symlink's target, and orphans (if any)
|
|
31
|
+
await promises_1.default.rm(dlxCachePath, { recursive: true });
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
await cleanOrphans(dlxCacheDir);
|
|
35
|
+
}
|
|
36
|
+
exports.cleanExpiredDlxCache = cleanExpiredDlxCache;
|
|
37
|
+
async function cleanOrphans(dlxCacheDir) {
|
|
38
|
+
const dlxCacheNames = readOptDir(dlxCacheDir);
|
|
39
|
+
if (!dlxCacheNames)
|
|
40
|
+
return;
|
|
41
|
+
await Promise.all(dlxCacheNames.map(async (dlxCacheName) => {
|
|
42
|
+
const dlxCachePath = path_1.default.join(dlxCacheDir, dlxCacheName);
|
|
43
|
+
const dlxCacheLink = path_1.default.join(dlxCachePath, 'pkg');
|
|
44
|
+
const dlxCacheLinkStats = await getStats(dlxCacheLink);
|
|
45
|
+
if (dlxCacheLinkStats === 'ENOENT') {
|
|
46
|
+
return promises_1.default.rm(dlxCachePath, { recursive: true });
|
|
47
|
+
}
|
|
48
|
+
const dlxCacheLinkTarget = await getRealPath(dlxCacheLink);
|
|
49
|
+
const children = await promises_1.default.readdir(dlxCachePath);
|
|
50
|
+
await Promise.all(children.map(async (name) => {
|
|
51
|
+
if (name === 'pkg')
|
|
52
|
+
return;
|
|
53
|
+
const fullPath = path_1.default.join(dlxCachePath, name);
|
|
54
|
+
if (fullPath === dlxCacheLinkTarget)
|
|
55
|
+
return;
|
|
56
|
+
await promises_1.default.rm(fullPath, { recursive: true });
|
|
57
|
+
}));
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
exports.cleanOrphans = cleanOrphans;
|
|
61
|
+
function isOutdated(stats, dlxCacheMaxAge, now) {
|
|
62
|
+
return stats.mtime.getTime() + dlxCacheMaxAge * 60000 < now.getTime();
|
|
63
|
+
}
|
|
64
|
+
async function getStats(path) {
|
|
65
|
+
try {
|
|
66
|
+
return await promises_1.default.lstat(path);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
if (util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT') {
|
|
70
|
+
return 'ENOENT';
|
|
71
|
+
}
|
|
72
|
+
throw err;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function readOptDir(dirPath) {
|
|
76
|
+
try {
|
|
77
|
+
return (0, fs_1.readdirSync)(dirPath, 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
if (util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT') {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function getRealPath(linkPath) {
|
|
87
|
+
try {
|
|
88
|
+
return await promises_1.default.realpath(linkPath);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT') {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=cleanExpiredDlxCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanExpiredDlxCache.js","sourceRoot":"","sources":["../src/cleanExpiredDlxCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
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
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const crypto_base32_hash_1 = require("@pnpm/crypto.base32-hash");
|
|
9
|
+
const prepare_1 = require("@pnpm/prepare");
|
|
10
|
+
const cleanExpiredDlxCache_1 = require("./cleanExpiredDlxCache");
|
|
11
|
+
function createSampleDlxCacheLinkTarget(dirPath) {
|
|
12
|
+
fs_1.default.mkdirSync(path_1.default.join(dirPath, 'node_modules', '.pnpm'), { recursive: true });
|
|
13
|
+
fs_1.default.mkdirSync(path_1.default.join(dirPath, 'node_modules', '.bin'), { recursive: true });
|
|
14
|
+
fs_1.default.writeFileSync(path_1.default.join(dirPath, 'node_modules', '.modules.yaml'), '');
|
|
15
|
+
fs_1.default.writeFileSync(path_1.default.join(dirPath, 'package.json'), '');
|
|
16
|
+
fs_1.default.writeFileSync(path_1.default.join(dirPath, 'pnpm-lock.yaml'), '');
|
|
17
|
+
}
|
|
18
|
+
function createSampleDlxCacheItem(cacheDir, cmd, now, age) {
|
|
19
|
+
const hash = (0, crypto_base32_hash_1.createBase32Hash)(cmd);
|
|
20
|
+
const newDate = new Date(now.getTime() - age * 60000);
|
|
21
|
+
const timeError = 432; // just an arbitrary amount, nothing is special about this number
|
|
22
|
+
const pid = 71014; // just an arbitrary number to represent pid
|
|
23
|
+
const targetName = `${(newDate.getTime() - timeError).toString(16)}-${pid.toString(16)}`;
|
|
24
|
+
const linkTarget = path_1.default.join(cacheDir, 'dlx', hash, targetName);
|
|
25
|
+
const linkPath = path_1.default.join(cacheDir, 'dlx', hash, 'pkg');
|
|
26
|
+
createSampleDlxCacheLinkTarget(linkTarget);
|
|
27
|
+
fs_1.default.symlinkSync(linkTarget, linkPath, 'junction');
|
|
28
|
+
fs_1.default.lutimesSync(linkPath, newDate, newDate);
|
|
29
|
+
}
|
|
30
|
+
function createSampleDlxCacheFsTree(cacheDir, now, ageTable) {
|
|
31
|
+
for (const [cmd, age] of Object.entries(ageTable)) {
|
|
32
|
+
createSampleDlxCacheItem(cacheDir, cmd, now, age);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
afterEach(() => {
|
|
36
|
+
jest.restoreAllMocks();
|
|
37
|
+
});
|
|
38
|
+
test('cleanExpiredCache removes items that outlive dlxCacheMaxAge', async () => {
|
|
39
|
+
(0, prepare_1.prepareEmpty)();
|
|
40
|
+
const cacheDir = path_1.default.resolve('cache');
|
|
41
|
+
const dlxCacheMaxAge = 7;
|
|
42
|
+
const now = new Date();
|
|
43
|
+
createSampleDlxCacheFsTree(cacheDir, now, {
|
|
44
|
+
foo: 1,
|
|
45
|
+
bar: 5,
|
|
46
|
+
baz: 20,
|
|
47
|
+
});
|
|
48
|
+
const readdirSyncSpy = jest.spyOn(fs_1.default, 'readdirSync');
|
|
49
|
+
const lstatSpy = jest.spyOn(fs_1.default.promises, 'lstat');
|
|
50
|
+
const rmSpy = jest.spyOn(fs_1.default.promises, 'rm');
|
|
51
|
+
await (0, cleanExpiredDlxCache_1.cleanExpiredDlxCache)({
|
|
52
|
+
cacheDir,
|
|
53
|
+
dlxCacheMaxAge,
|
|
54
|
+
now,
|
|
55
|
+
});
|
|
56
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'))).length).toBe(2);
|
|
57
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'))).length).toBe(2);
|
|
58
|
+
expect(fs_1.default.existsSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('baz')))).toBeFalsy();
|
|
59
|
+
expect(readdirSyncSpy).toHaveBeenCalledWith(path_1.default.join(cacheDir, 'dlx'), expect.anything());
|
|
60
|
+
for (const key of ['foo', 'bar', 'baz']) {
|
|
61
|
+
expect(lstatSpy).toHaveBeenCalledWith(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)(key), 'pkg'));
|
|
62
|
+
}
|
|
63
|
+
expect(rmSpy).not.toHaveBeenCalledWith(expect.stringContaining(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'))), expect.anything());
|
|
64
|
+
expect(rmSpy).not.toHaveBeenCalledWith(expect.stringContaining(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'))), expect.anything());
|
|
65
|
+
expect(rmSpy).toHaveBeenCalledWith(expect.stringContaining(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('baz'))), { recursive: true });
|
|
66
|
+
readdirSyncSpy.mockRestore();
|
|
67
|
+
lstatSpy.mockRestore();
|
|
68
|
+
rmSpy.mockRestore();
|
|
69
|
+
});
|
|
70
|
+
test('cleanExpiredCache removes all directories without checking stat if dlxCacheMaxAge is 0', async () => {
|
|
71
|
+
(0, prepare_1.prepareEmpty)();
|
|
72
|
+
const cacheDir = path_1.default.resolve('cache');
|
|
73
|
+
const dlxCacheMaxAge = 0;
|
|
74
|
+
const now = new Date();
|
|
75
|
+
createSampleDlxCacheFsTree(cacheDir, now, {
|
|
76
|
+
foo: 1,
|
|
77
|
+
bar: 5,
|
|
78
|
+
baz: 20,
|
|
79
|
+
});
|
|
80
|
+
const readdirSyncSpy = jest.spyOn(fs_1.default, 'readdirSync');
|
|
81
|
+
const lstatSpy = jest.spyOn(fs_1.default.promises, 'lstat');
|
|
82
|
+
const rmSpy = jest.spyOn(fs_1.default.promises, 'rm');
|
|
83
|
+
await (0, cleanExpiredDlxCache_1.cleanExpiredDlxCache)({
|
|
84
|
+
cacheDir,
|
|
85
|
+
dlxCacheMaxAge,
|
|
86
|
+
now,
|
|
87
|
+
});
|
|
88
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx'))
|
|
89
|
+
.sort()).toStrictEqual([]);
|
|
90
|
+
expect(readdirSyncSpy).toHaveBeenCalledWith(path_1.default.join(cacheDir, 'dlx'), expect.anything());
|
|
91
|
+
expect(lstatSpy).not.toHaveBeenCalled();
|
|
92
|
+
for (const key of ['foo', 'bar', 'baz']) {
|
|
93
|
+
expect(rmSpy).toHaveBeenCalledWith(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)(key)), { recursive: true });
|
|
94
|
+
}
|
|
95
|
+
readdirSyncSpy.mockRestore();
|
|
96
|
+
lstatSpy.mockRestore();
|
|
97
|
+
rmSpy.mockRestore();
|
|
98
|
+
});
|
|
99
|
+
test('cleanExpiredCache does nothing if dlxCacheMaxAge is Infinity', async () => {
|
|
100
|
+
(0, prepare_1.prepareEmpty)();
|
|
101
|
+
const cacheDir = path_1.default.resolve('cache');
|
|
102
|
+
const dlxCacheMaxAge = Infinity;
|
|
103
|
+
const now = new Date();
|
|
104
|
+
createSampleDlxCacheFsTree(cacheDir, now, {
|
|
105
|
+
foo: 1,
|
|
106
|
+
bar: 5,
|
|
107
|
+
baz: 20,
|
|
108
|
+
});
|
|
109
|
+
const readdirSpy = jest.spyOn(fs_1.default.promises, 'readdir');
|
|
110
|
+
const lstatSpy = jest.spyOn(fs_1.default.promises, 'lstat');
|
|
111
|
+
const rmSpy = jest.spyOn(fs_1.default.promises, 'rm');
|
|
112
|
+
await (0, cleanExpiredDlxCache_1.cleanExpiredDlxCache)({
|
|
113
|
+
cacheDir,
|
|
114
|
+
dlxCacheMaxAge,
|
|
115
|
+
now,
|
|
116
|
+
});
|
|
117
|
+
const dlxCacheDir = path_1.default.join(cacheDir, 'dlx');
|
|
118
|
+
const entries = fs_1.default.readdirSync(dlxCacheDir).sort();
|
|
119
|
+
expect(entries).toStrictEqual(['foo', 'bar', 'baz']
|
|
120
|
+
.map(crypto_base32_hash_1.createBase32Hash)
|
|
121
|
+
.sort());
|
|
122
|
+
for (const entry of entries) {
|
|
123
|
+
expect(fs_1.default.readdirSync(path_1.default.join(dlxCacheDir, entry)).length).toBe(2);
|
|
124
|
+
}
|
|
125
|
+
expect(readdirSpy).not.toHaveBeenCalled();
|
|
126
|
+
expect(lstatSpy).not.toHaveBeenCalled();
|
|
127
|
+
expect(rmSpy).not.toHaveBeenCalled();
|
|
128
|
+
readdirSpy.mockRestore();
|
|
129
|
+
lstatSpy.mockRestore();
|
|
130
|
+
rmSpy.mockRestore();
|
|
131
|
+
});
|
|
132
|
+
test("cleanOrphans deletes dirs that don't contain `link` and subdirs that aren't pointed to by `link` from the same parent", async () => {
|
|
133
|
+
(0, prepare_1.prepareEmpty)();
|
|
134
|
+
const cacheDir = path_1.default.resolve('cache');
|
|
135
|
+
const now = new Date();
|
|
136
|
+
// has link and orphans
|
|
137
|
+
createSampleDlxCacheItem(cacheDir, 'foo', now, 0);
|
|
138
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'), `${now.getTime().toString(16)}-${(7000).toString(16)}`));
|
|
139
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'), `${now.getTime().toString(16)}-${(7005).toString(16)}`));
|
|
140
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'), `${now.getTime().toString(16)}-${(7102).toString(16)}`));
|
|
141
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'))).length).toBe(5);
|
|
142
|
+
// has no link, only orphans
|
|
143
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'), `${now.getTime().toString(16)}-${(7000).toString(16)}`));
|
|
144
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'), `${now.getTime().toString(16)}-${(7005).toString(16)}`));
|
|
145
|
+
createSampleDlxCacheLinkTarget(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'), `${now.getTime().toString(16)}-${(7102).toString(16)}`));
|
|
146
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar'))).length).toBe(3);
|
|
147
|
+
await (0, cleanExpiredDlxCache_1.cleanOrphans)(path_1.default.join(cacheDir, 'dlx'));
|
|
148
|
+
// expecting all subdirectories that aren't pointed to by `link` to be deleted.
|
|
149
|
+
expect(fs_1.default.readdirSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('foo'))).length).toBe(2);
|
|
150
|
+
// expecting directory that doesn't contain `link` to be deleted.
|
|
151
|
+
expect(fs_1.default.existsSync(path_1.default.join(cacheDir, 'dlx', (0, crypto_base32_hash_1.createBase32Hash)('bar')))).toBe(false);
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=cleanExpiredDlxCache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanExpiredDlxCache.test.js","sourceRoot":"","sources":["../src/cleanExpiredDlxCache.test.ts"],"names":[],"mappings":"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"}
|
package/lib/store.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { type Config } from '@pnpm/config';
|
|
|
5
5
|
import { type LogBase } from '@pnpm/logger';
|
|
6
6
|
import { type CreateStoreControllerOptions } from '@pnpm/store-connection-manager';
|
|
7
7
|
export declare const rcOptionsTypes: typeof cliOptionsTypes;
|
|
8
|
-
export declare function cliOptionsTypes(): Pick<Partial<Record<"optional" | "
|
|
8
|
+
export declare function cliOptionsTypes(): Pick<Partial<Record<"optional" | "proxy" | "color" | "global" | "save" | "production" | "force" | "depth" | "offline" | "registry" | "loglevel" | "only" | "dev" | "cert" | "key" | "ca" | "tag" | "globalconfig" | "userconfig" | "dry-run" | "ignore-scripts" | "save-prod" | "save-dev" | "save-optional" | "script-shell" | "fetch-retries" | "fetch-retry-factor" | "fetch-retry-mintimeout" | "fetch-retry-maxtimeout" | "save-exact" | "save-prefix" | "scripts-prepend-node-path" | "engine-strict" | "node-version" | "unsafe-perm" | "prefer-offline" | "https-proxy" | "local-address" | "no-proxy" | "strict-ssl" | "user-agent" | "package-lock" | "node-options", any>> & {
|
|
9
9
|
access: (string | null)[];
|
|
10
10
|
'allow-same-version': BooleanConstructor;
|
|
11
11
|
'always-auth': BooleanConstructor;
|
|
@@ -128,7 +128,7 @@ export declare function cliOptionsTypes(): Pick<Partial<Record<"optional" | "key
|
|
|
128
128
|
}, "force" | "registry">;
|
|
129
129
|
export declare const commandNames: string[];
|
|
130
130
|
export declare function help(): string;
|
|
131
|
-
export type StoreCommandOptions = Pick<Config, 'dir' | 'registries' | 'tag' | 'storeDir' | 'force'> & CreateStoreControllerOptions & {
|
|
131
|
+
export type StoreCommandOptions = Pick<Config, 'dir' | 'registries' | 'tag' | 'storeDir' | 'force' | 'dlxCacheMaxAge'> & CreateStoreControllerOptions & {
|
|
132
132
|
reporter?: (logObj: LogBase) => void;
|
|
133
133
|
};
|
|
134
134
|
export declare function handler(opts: StoreCommandOptions, params: string[]): Promise<string | void>;
|
package/lib/store.js
CHANGED
|
@@ -90,6 +90,8 @@ async function handler(opts, params) {
|
|
|
90
90
|
storeController: store.ctrl,
|
|
91
91
|
storeDir: store.dir,
|
|
92
92
|
removeAlienFiles: opts.force,
|
|
93
|
+
cacheDir: opts.cacheDir,
|
|
94
|
+
dlxCacheMaxAge: opts.dlxCacheMaxAge,
|
|
93
95
|
});
|
|
94
96
|
return (0, storePrune_1.storePrune)(storePruneOptions);
|
|
95
97
|
}
|
package/lib/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAyC;AACzC,yCAA6D;AAC7D,uCAAuC;AACvC,yCAAmD;AACnD,6EAAkH;AAClH,iDAA+C;AAC/C,0DAAiC;AACjC,8DAAoC;AACpC,yCAAqC;AACrC,6CAAyC;AACzC,+CAA2C;AAE9B,QAAA,cAAc,GAAG,eAAe,CAAA;AAE7C,SAAgB,eAAe;IAC7B,OAAO,IAAA,cAAI,EAAC;QACV,UAAU;QACV,OAAO;QACP,WAAW;QACX,OAAO;KACR,EAAE,cAAQ,CAAC,CAAA;AACd,CAAC;AAPD,0CAOC;AAEY,QAAA,YAAY,GAAG,CAAC,OAAO,CAAC,CAAA;AAErC,SAAgB,IAAI;IAClB,OAAO,IAAA,qBAAU,EAAC;QAChB,WAAW,EAAE,6EAA6E;QAC1F,gBAAgB,EAAE;YAChB;gBACE,KAAK,EAAE,UAAU;gBAEjB,IAAI,EAAE;oBACJ;wBACE,WAAW,EAAE;;iGAEwE;wBACrF,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,WAAW,EAAE,oFAAoF;wBACjG,IAAI,EAAE,cAAc;qBACrB;oBACD;wBACE,WAAW,EAAE;;;yFAGgE;wBAC7E,IAAI,EAAE,OAAO;qBACd;oBACD;wBACE,WAAW,EAAE;sFAC6D;wBAC1E,IAAI,EAAE,eAAe;qBACtB;oBACD;wBACE,WAAW,EAAE,iDAAiD;wBAC9D,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF;QACD,GAAG,EAAE,IAAA,mBAAO,EAAC,OAAO,CAAC;QACrB,MAAM,EAAE,CAAC,sBAAsB,CAAC;KACjC,CAAC,CAAA;AACJ,CAAC;AAxCD,oBAwCC;AAED,MAAM,gBAAiB,SAAQ,iBAAS;IAEtC,YAAa,QAAkB;QAC7B,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAMM,KAAK,UAAU,OAAO,CAAE,IAAyB,EAAE,MAAgB;IACxE,IAAI,KAAK,CAAA;IACT,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,IAAA,yBAAY,EAAC;gBAClB,OAAO,EAAE,IAAI,CAAC,GAAG;gBACjB,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAA;QACJ,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,GAAG,MAAM,IAAA,yDAA8B,EAAC,IAAI,CAAC,CAAA;YAClD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC5C,eAAe,EAAE,KAAK,CAAC,IAAI;gBAC3B,QAAQ,EAAE,KAAK,CAAC,GAAG;gBACnB,gBAAgB,EAAE,IAAI,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/lib/storePrune.d.ts
CHANGED
package/lib/storePrune.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.storePrune = void 0;
|
|
4
4
|
const logger_1 = require("@pnpm/logger");
|
|
5
|
+
const cleanExpiredDlxCache_1 = require("./cleanExpiredDlxCache");
|
|
5
6
|
async function storePrune(opts) {
|
|
6
7
|
const reporter = opts?.reporter;
|
|
7
8
|
if ((reporter != null) && typeof reporter === 'function') {
|
|
@@ -9,6 +10,11 @@ async function storePrune(opts) {
|
|
|
9
10
|
}
|
|
10
11
|
await opts.storeController.prune(opts.removeAlienFiles);
|
|
11
12
|
await opts.storeController.close();
|
|
13
|
+
await (0, cleanExpiredDlxCache_1.cleanExpiredDlxCache)({
|
|
14
|
+
cacheDir: opts.cacheDir,
|
|
15
|
+
dlxCacheMaxAge: opts.dlxCacheMaxAge,
|
|
16
|
+
now: new Date(),
|
|
17
|
+
});
|
|
12
18
|
if ((reporter != null) && typeof reporter === 'function') {
|
|
13
19
|
logger_1.streamParser.removeListener('data', reporter);
|
|
14
20
|
}
|
package/lib/storePrune.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storePrune.js","sourceRoot":"","sources":["../src/storePrune.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;
|
|
1
|
+
{"version":3,"file":"storePrune.js","sourceRoot":"","sources":["../src/storePrune.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,iEAA6D;AAEtD,KAAK,UAAU,UAAU,CAC9B,IAMC;IAED,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAA;IAC/B,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,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACvD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAElC,MAAM,IAAA,2CAAoB,EAAC;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,GAAG,EAAE,IAAI,IAAI,EAAE;KAChB,CAAC,CAAA;IAEF,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;AACH,CAAC;AAzBD,gCAyBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendStoreStatusOptions.js","sourceRoot":"","sources":["../../src/storeStatus/extendStoreStatusOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,qEAAoF;
|
|
1
|
+
{"version":3,"file":"extendStoreStatusOptions.js","sourceRoot":"","sources":["../../src/storeStatus/extendStoreStatusOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,qEAAoF;AA0BpF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAwB,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAA;IAC3C,OAAO;QACL,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC;QAC/C,GAAG;QACH,KAAK,EAAE,KAAK;QACZ,WAAW;QACX,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,yCAAkB;QAC9B,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI;KACU,CAAA;AAC/B,CAAC,CAAA;AAEM,KAAK,UAAU,wBAAwB,CAC5C,IAAwB;IAExB,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,GAA+B,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,GAA+B,CAAC,CAAA;YAC9C,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;AAdD,4DAcC"}
|
package/lib/storeStatus/index.js
CHANGED
|
@@ -43,7 +43,7 @@ async function storeStatus(maybeOpts) {
|
|
|
43
43
|
logger_1.streamParser.on('data', reporter);
|
|
44
44
|
}
|
|
45
45
|
const opts = await (0, extendStoreStatusOptions_1.extendStoreStatusOptions)(maybeOpts);
|
|
46
|
-
const {
|
|
46
|
+
const { storeDir, skipped, virtualStoreDir, wantedLockfile, } = await (0, get_context_1.getContextForSingleImporter)({}, {
|
|
47
47
|
...opts,
|
|
48
48
|
extraBinPaths: [], // ctx.extraBinPaths is not needed, so this is fine
|
|
49
49
|
});
|
|
@@ -52,12 +52,12 @@ async function storeStatus(maybeOpts) {
|
|
|
52
52
|
const pkgs = Object.entries(wantedLockfile.packages ?? {})
|
|
53
53
|
.filter(([depPath]) => !skipped.has(depPath))
|
|
54
54
|
.map(([depPath, pkgSnapshot]) => {
|
|
55
|
-
const id = (0, lockfile_utils_1.packageIdFromSnapshot)(depPath, pkgSnapshot
|
|
55
|
+
const id = (0, lockfile_utils_1.packageIdFromSnapshot)(depPath, pkgSnapshot);
|
|
56
56
|
return {
|
|
57
57
|
depPath,
|
|
58
58
|
id,
|
|
59
59
|
integrity: pkgSnapshot.resolution.integrity,
|
|
60
|
-
pkgPath:
|
|
60
|
+
pkgPath: depPath,
|
|
61
61
|
...(0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, pkgSnapshot),
|
|
62
62
|
};
|
|
63
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storeStatus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,iDAA4E;AAC5E,mDAA+D;AAC/D,yDAG6B;AAC7B,yCAA2C;AAC3C,0DAA2C;AAC3C,gDAAuB;AACvB,oEAAyC;AACzC,wDAA8B;AAC9B,yEAGmC;AAG5B,KAAK,UAAU,WAAW,CAAE,SAA6B;IAC9D,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,mDAAwB,EAAC,SAAS,CAAC,CAAA;IACtD,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storeStatus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,iDAA4E;AAC5E,mDAA+D;AAC/D,yDAG6B;AAC7B,yCAA2C;AAC3C,0DAA2C;AAC3C,gDAAuB;AACvB,oEAAyC;AACzC,wDAA8B;AAC9B,yEAGmC;AAG5B,KAAK,UAAU,WAAW,CAAE,SAA6B;IAC9D,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,mDAAwB,EAAC,SAAS,CAAC,CAAA;IACtD,MAAM,EACJ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,cAAc,GACf,GAAG,MAAM,IAAA,yCAA2B,EAAC,EAAE,EAAE;QACxC,GAAG,IAAI;QACP,aAAa,EAAE,EAAE,EAAE,mDAAmD;KACvE,CAAC,CAAA;IACF,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;SACvD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,GAAG,IAAA,sCAAqB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACtD,OAAO;YACL,OAAO;YACP,EAAE;YACF,SAAS,EAAG,WAAW,CAAC,UAAgC,CAAC,SAAS;YAClE,OAAO,EAAE,OAAO;YAChB,GAAG,IAAA,uCAAsB,EAAC,OAAO,EAAE,WAAW,CAAC;SAChD,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9E,MAAM,gBAAgB,GAAG,SAAS;YAChC,CAAC,CAAC,IAAA,8BAAiB,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;YAChD,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACnE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,wBAAY,EAAoB,gBAAgB,CAAC,CAAA;QACzE,OAAO,CAAC,MAAM,cAAI,CAAC,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,CAAA;IAC7H,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;IAEtB,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,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC;AA5CD,kCA4CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/plugin-commands-store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Commands for controlling the store",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"!*.map"
|
|
10
10
|
],
|
|
11
11
|
"engines": {
|
|
12
|
-
"node": ">=
|
|
12
|
+
"node": ">=18.12"
|
|
13
13
|
},
|
|
14
14
|
"repository": "https://github.com/pnpm/pnpm/blob/main/store/plugin-commands-store",
|
|
15
15
|
"keywords": [
|
|
16
|
-
"
|
|
16
|
+
"pnpm9",
|
|
17
17
|
"pnpm",
|
|
18
18
|
"scripts"
|
|
19
19
|
],
|
|
@@ -23,19 +23,20 @@
|
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/pnpm/pnpm/blob/main/store/plugin-commands-store#readme",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@pnpm/registry-mock": "3.
|
|
26
|
+
"@pnpm/registry-mock": "3.29.0",
|
|
27
27
|
"@types/archy": "0.0.33",
|
|
28
28
|
"@types/ramda": "0.28.20",
|
|
29
|
-
"@types/ssri": "^7.1.
|
|
29
|
+
"@types/ssri": "^7.1.5",
|
|
30
30
|
"@zkochan/rimraf": "^2.1.3",
|
|
31
31
|
"execa": "npm:safe-execa@0.1.2",
|
|
32
32
|
"path-exists": "^4.0.0",
|
|
33
33
|
"ssri": "10.0.5",
|
|
34
34
|
"tempy": "^1.0.1",
|
|
35
35
|
"@pnpm/assert-store": "1.0.81",
|
|
36
|
-
"@pnpm/
|
|
37
|
-
"@pnpm/
|
|
38
|
-
"@pnpm/
|
|
36
|
+
"@pnpm/crypto.base32-hash": "3.0.0",
|
|
37
|
+
"@pnpm/lockfile-file": "9.0.0",
|
|
38
|
+
"@pnpm/plugin-commands-store": "9.0.0",
|
|
39
|
+
"@pnpm/prepare": "0.0.90"
|
|
39
40
|
},
|
|
40
41
|
"dependencies": {
|
|
41
42
|
"archy": "^1.0.0",
|
|
@@ -44,20 +45,20 @@
|
|
|
44
45
|
"p-filter": "^2.1.0",
|
|
45
46
|
"ramda": "npm:@pnpm/ramda@0.28.1",
|
|
46
47
|
"render-help": "^1.0.3",
|
|
47
|
-
"@pnpm/
|
|
48
|
-
"@pnpm/
|
|
49
|
-
"@pnpm/
|
|
50
|
-
"@pnpm/
|
|
51
|
-
"@pnpm/
|
|
52
|
-
"@pnpm/
|
|
53
|
-
"@pnpm/
|
|
54
|
-
"@pnpm/
|
|
55
|
-
"@pnpm/
|
|
56
|
-
"@pnpm/
|
|
57
|
-
"@pnpm/store-controller-types": "
|
|
58
|
-
"@pnpm/store
|
|
59
|
-
"@pnpm/
|
|
60
|
-
"@pnpm/
|
|
48
|
+
"@pnpm/cli-utils": "3.0.0",
|
|
49
|
+
"@pnpm/config": "21.0.0",
|
|
50
|
+
"@pnpm/dependency-path": "3.0.0",
|
|
51
|
+
"@pnpm/error": "6.0.0",
|
|
52
|
+
"@pnpm/get-context": "11.0.0",
|
|
53
|
+
"@pnpm/lockfile-utils": "10.0.0",
|
|
54
|
+
"@pnpm/normalize-registries": "6.0.0",
|
|
55
|
+
"@pnpm/pick-registry-for-package": "6.0.0",
|
|
56
|
+
"@pnpm/parse-wanted-dependency": "6.0.0",
|
|
57
|
+
"@pnpm/store-connection-manager": "8.0.0",
|
|
58
|
+
"@pnpm/store-controller-types": "18.0.0",
|
|
59
|
+
"@pnpm/store-path": "9.0.0",
|
|
60
|
+
"@pnpm/store.cafs": "3.0.0",
|
|
61
|
+
"@pnpm/types": "10.0.0"
|
|
61
62
|
},
|
|
62
63
|
"peerDependencies": {
|
|
63
64
|
"@pnpm/logger": "^5.0.0"
|