@pnpm/plugin-commands-patching 6.2.5 → 6.4.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/getEditDirPath.d.ts +5 -0
- package/lib/getEditDirPath.js +23 -0
- package/lib/getEditDirPath.js.map +1 -0
- package/lib/getPatchedDependency.d.ts +4 -1
- package/lib/getPatchedDependency.js +29 -18
- package/lib/getPatchedDependency.js.map +1 -1
- package/lib/patch.js +18 -4
- package/lib/patch.js.map +1 -1
- package/lib/patchCommit.js +37 -12
- package/lib/patchCommit.js.map +1 -1
- package/lib/stateFile.d.ts +21 -0
- package/lib/stateFile.js +62 -0
- package/lib/stateFile.js.map +1 -0
- package/package.json +21 -20
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ParseWantedDependencyResult } from '@pnpm/parse-wanted-dependency';
|
|
2
|
+
export interface GetEditDirOptions {
|
|
3
|
+
modulesDir: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function getEditDirPath(param: string, patchedDep: ParseWantedDependencyResult, opts: GetEditDirOptions): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
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.getEditDirPath = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
function getEditDirPath(param, patchedDep, opts) {
|
|
9
|
+
const editDirName = getEditDirNameFromParsedDep(patchedDep) ?? param;
|
|
10
|
+
return path_1.default.join(opts.modulesDir, '.pnpm_patches', editDirName);
|
|
11
|
+
}
|
|
12
|
+
exports.getEditDirPath = getEditDirPath;
|
|
13
|
+
function getEditDirNameFromParsedDep(patchedDep) {
|
|
14
|
+
if (patchedDep.alias && patchedDep.pref) {
|
|
15
|
+
const pref = patchedDep.pref.replace(/[\\/:*?"<>|]+/g, '+');
|
|
16
|
+
return `${patchedDep.alias}@${pref}`;
|
|
17
|
+
}
|
|
18
|
+
if (patchedDep.alias) {
|
|
19
|
+
return patchedDep.alias;
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=getEditDirPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEditDirPath.js","sourceRoot":"","sources":["../src/getEditDirPath.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAOvB,SAAgB,cAAc,CAAE,KAAa,EAAE,UAAuC,EAAE,IAAuB;IAC7G,MAAM,WAAW,GAAG,2BAA2B,CAAC,UAAU,CAAC,IAAI,KAAK,CAAA;IACpE,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,CAAA;AACjE,CAAC;AAHD,wCAGC;AAED,SAAS,2BAA2B,CAAE,UAAuC;IAC3E,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAC3D,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,CAAA;IACtC,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -3,7 +3,10 @@ import { type Config } from '@pnpm/config';
|
|
|
3
3
|
export type GetPatchedDependencyOptions = {
|
|
4
4
|
lockfileDir: string;
|
|
5
5
|
} & Pick<Config, 'virtualStoreDir' | 'modulesDir'>;
|
|
6
|
-
export
|
|
6
|
+
export type GetPatchedDependencyResult = ParseWantedDependencyResult & {
|
|
7
|
+
applyToAll: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function getPatchedDependency(rawDependency: string, opts: GetPatchedDependencyOptions): Promise<GetPatchedDependencyResult>;
|
|
7
10
|
export interface LockfileVersion {
|
|
8
11
|
gitTarballUrl?: string;
|
|
9
12
|
name: string;
|
|
@@ -22,28 +22,39 @@ async function getPatchedDependency(rawDependency, opts) {
|
|
|
22
22
|
}
|
|
23
23
|
dep.alias = dep.alias ?? rawDependency;
|
|
24
24
|
if (preferredVersions.length > 1) {
|
|
25
|
-
const { version } = await (0, enquirer_1.prompt)({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
const { version, applyToAll } = await (0, enquirer_1.prompt)([{
|
|
26
|
+
type: 'select',
|
|
27
|
+
name: 'version',
|
|
28
|
+
message: 'Choose which version to patch',
|
|
29
|
+
choices: preferredVersions.map(preferred => ({
|
|
30
|
+
name: preferred.version,
|
|
31
|
+
message: preferred.version,
|
|
32
|
+
value: preferred.gitTarballUrl ?? preferred.version,
|
|
33
|
+
hint: preferred.gitTarballUrl ? 'Git Hosted' : undefined,
|
|
34
|
+
})),
|
|
35
|
+
result(selected) {
|
|
36
|
+
const selectedVersion = preferredVersions.find(preferred => preferred.version === selected);
|
|
37
|
+
return selectedVersion.gitTarballUrl ?? selected;
|
|
38
|
+
},
|
|
39
|
+
}, {
|
|
40
|
+
type: 'confirm',
|
|
41
|
+
name: 'applyToAll',
|
|
42
|
+
message: 'Apply this patch to all versions?',
|
|
43
|
+
}]);
|
|
44
|
+
return {
|
|
45
|
+
...dep,
|
|
46
|
+
applyToAll,
|
|
47
|
+
pref: version,
|
|
48
|
+
};
|
|
41
49
|
}
|
|
42
50
|
else {
|
|
43
51
|
const preferred = preferredVersions[0];
|
|
44
|
-
|
|
52
|
+
return {
|
|
53
|
+
...dep,
|
|
54
|
+
applyToAll: !dep.pref,
|
|
55
|
+
pref: preferred.gitTarballUrl ?? preferred.version,
|
|
56
|
+
};
|
|
45
57
|
}
|
|
46
|
-
return dep;
|
|
47
58
|
}
|
|
48
59
|
exports.getPatchedDependency = getPatchedDependency;
|
|
49
60
|
async function getVersionsFromLockfile(dep, opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPatchedDependency.js","sourceRoot":"","sources":["../src/getPatchedDependency.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,2EAAuG;AACvG,uCAAiC;AACjC,mDAA+E;AAC/E,yDAA6D;AAC7D,uCAAuC;AACvC,qDAAwD;AACxD,qDAAsD;AACtD,wEAA8C;AAC9C,oDAA2B;
|
|
1
|
+
{"version":3,"file":"getPatchedDependency.js","sourceRoot":"","sources":["../src/getPatchedDependency.ts"],"names":[],"mappings":"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"}
|
package/lib/patch.js
CHANGED
|
@@ -13,10 +13,11 @@ const pick_1 = __importDefault(require("ramda/src/pick"));
|
|
|
13
13
|
const render_help_1 = __importDefault(require("render-help"));
|
|
14
14
|
const chalk_1 = __importDefault(require("chalk"));
|
|
15
15
|
const terminal_link_1 = __importDefault(require("terminal-link"));
|
|
16
|
-
const tempy_1 = __importDefault(require("tempy"));
|
|
17
16
|
const error_1 = require("@pnpm/error");
|
|
18
17
|
const writePackage_1 = require("./writePackage");
|
|
18
|
+
const getEditDirPath_1 = require("./getEditDirPath");
|
|
19
19
|
const getPatchedDependency_1 = require("./getPatchedDependency");
|
|
20
|
+
const stateFile_1 = require("./stateFile");
|
|
20
21
|
const read_project_manifest_1 = require("@pnpm/read-project-manifest");
|
|
21
22
|
function rcOptionsTypes() {
|
|
22
23
|
return (0, pick_1.default)([], config_1.types);
|
|
@@ -58,14 +59,26 @@ async function handler(opts, params) {
|
|
|
58
59
|
if (!params[0]) {
|
|
59
60
|
throw new error_1.PnpmError('MISSING_PACKAGE_NAME', '`pnpm patch` requires the package name');
|
|
60
61
|
}
|
|
61
|
-
const editDir = opts.editDir ?? tempy_1.default.directory();
|
|
62
62
|
const lockfileDir = opts.lockfileDir ?? opts.dir ?? process.cwd();
|
|
63
63
|
const patchedDep = await (0, getPatchedDependency_1.getPatchedDependency)(params[0], {
|
|
64
64
|
lockfileDir,
|
|
65
65
|
modulesDir: opts.modulesDir,
|
|
66
66
|
virtualStoreDir: opts.virtualStoreDir,
|
|
67
67
|
});
|
|
68
|
+
const modulesDir = path_1.default.join(lockfileDir, opts.modulesDir ?? 'node_modules');
|
|
69
|
+
const editDir = opts.editDir ? opts.editDir : (0, getEditDirPath_1.getEditDirPath)(params[0], patchedDep, { modulesDir });
|
|
70
|
+
if (fs_1.default.existsSync(editDir) && fs_1.default.readdirSync(editDir).length !== 0) {
|
|
71
|
+
throw new error_1.PnpmError('EDIT_DIR_NOT_EMPTY', `The directory ${editDir} is not empty`, {
|
|
72
|
+
hint: 'Either run `pnpm patch-commit` to commit or delete it then run `pnpm patch` to recreate it',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
68
75
|
await (0, writePackage_1.writePackage)(patchedDep, editDir, opts);
|
|
76
|
+
(0, stateFile_1.writeEditDirState)({
|
|
77
|
+
editDir,
|
|
78
|
+
modulesDir: opts.modulesDir ?? 'node_modules',
|
|
79
|
+
patchedPkg: params[0],
|
|
80
|
+
applyToAll: patchedDep.applyToAll,
|
|
81
|
+
});
|
|
69
82
|
if (!opts.ignoreExisting) {
|
|
70
83
|
let rootProjectManifest = opts.rootProjectManifest;
|
|
71
84
|
if (!opts.sharedWorkspaceLockfile) {
|
|
@@ -76,6 +89,7 @@ async function handler(opts, params) {
|
|
|
76
89
|
}
|
|
77
90
|
if (rootProjectManifest?.pnpm?.patchedDependencies) {
|
|
78
91
|
tryPatchWithExistingPatchFile({
|
|
92
|
+
allowFailure: patchedDep.applyToAll,
|
|
79
93
|
patchedDep,
|
|
80
94
|
patchedDir: editDir,
|
|
81
95
|
patchedDependencies: rootProjectManifest.pnpm.patchedDependencies,
|
|
@@ -94,7 +108,7 @@ To commit your changes, run:
|
|
|
94
108
|
`;
|
|
95
109
|
}
|
|
96
110
|
exports.handler = handler;
|
|
97
|
-
function tryPatchWithExistingPatchFile({ patchedDep, patchedDir, patchedDependencies, lockfileDir, }) {
|
|
111
|
+
function tryPatchWithExistingPatchFile({ allowFailure, patchedDep, patchedDir, patchedDependencies, lockfileDir, }) {
|
|
98
112
|
if (!patchedDep.alias || !patchedDep.pref) {
|
|
99
113
|
return;
|
|
100
114
|
}
|
|
@@ -106,6 +120,6 @@ function tryPatchWithExistingPatchFile({ patchedDep, patchedDir, patchedDependen
|
|
|
106
120
|
if (!fs_1.default.existsSync(existingPatchFilePath)) {
|
|
107
121
|
throw new error_1.PnpmError('PATCH_FILE_NOT_FOUND', `Unable to find patch file ${existingPatchFilePath}`);
|
|
108
122
|
}
|
|
109
|
-
(0, patching_apply_patch_1.applyPatchToDir)({ patchedDir, patchFilePath: existingPatchFilePath });
|
|
123
|
+
(0, patching_apply_patch_1.applyPatchToDir)({ patchedDir, patchFilePath: existingPatchFilePath, allowFailure });
|
|
110
124
|
}
|
|
111
125
|
//# sourceMappingURL=patch.js.map
|
package/lib/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,qEAA4D;AAC5D,+CAAyC;AACzC,yCAA6D;AAK7D,0DAAiC;AACjC,8DAAoC;AACpC,kDAAyB;AACzB,kEAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
|
package/lib/patchCommit.js
CHANGED
|
@@ -8,6 +8,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const cli_utils_1 = require("@pnpm/cli-utils");
|
|
10
10
|
const config_1 = require("@pnpm/config");
|
|
11
|
+
const error_1 = require("@pnpm/error");
|
|
11
12
|
const fs_packlist_1 = require("@pnpm/fs.packlist");
|
|
12
13
|
const plugin_commands_installation_1 = require("@pnpm/plugin-commands-installation");
|
|
13
14
|
const read_package_json_1 = require("@pnpm/read-package-json");
|
|
@@ -18,11 +19,13 @@ const pick_1 = __importDefault(require("ramda/src/pick"));
|
|
|
18
19
|
const equals_1 = __importDefault(require("ramda/src/equals"));
|
|
19
20
|
const safe_execa_1 = __importDefault(require("safe-execa"));
|
|
20
21
|
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
|
|
22
|
+
const make_empty_dir_1 = __importDefault(require("make-empty-dir"));
|
|
21
23
|
const render_help_1 = __importDefault(require("render-help"));
|
|
22
24
|
const tempy_1 = __importDefault(require("tempy"));
|
|
23
25
|
const writePackage_1 = require("./writePackage");
|
|
24
26
|
const parse_wanted_dependency_1 = require("@pnpm/parse-wanted-dependency");
|
|
25
27
|
const getPatchedDependency_1 = require("./getPatchedDependency");
|
|
28
|
+
const stateFile_1 = require("./stateFile");
|
|
26
29
|
exports.rcOptionsTypes = cliOptionsTypes;
|
|
27
30
|
function cliOptionsTypes() {
|
|
28
31
|
return (0, pick_1.default)(['patches-dir'], config_1.types);
|
|
@@ -52,24 +55,45 @@ async function handler(opts, params) {
|
|
|
52
55
|
const patchesDirName = (0, normalize_path_1.default)(path_1.default.normalize(opts.patchesDir ?? 'patches'));
|
|
53
56
|
const patchesDir = path_1.default.join(lockfileDir, patchesDirName);
|
|
54
57
|
const patchedPkgManifest = await (0, read_package_json_1.readPackageJsonFromDir)(userDir);
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
pref: patchedPkgManifest.version,
|
|
59
|
-
}, {
|
|
60
|
-
lockfileDir,
|
|
61
|
-
modulesDir: opts.modulesDir,
|
|
62
|
-
virtualStoreDir: opts.virtualStoreDir,
|
|
58
|
+
const stateValue = (0, stateFile_1.readEditDirState)({
|
|
59
|
+
editDir: userDir,
|
|
60
|
+
modulesDir: opts.modulesDir ?? 'node_modules',
|
|
63
61
|
});
|
|
62
|
+
if (!stateValue) {
|
|
63
|
+
throw new error_1.PnpmError('INVALID_PATCH_DIR', `${userDir} is not a valid patch directory`, {
|
|
64
|
+
hint: 'A valid patch directory should be created by `pnpm patch`',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const { applyToAll } = stateValue;
|
|
68
|
+
const nameAndVersion = `${patchedPkgManifest.name}@${patchedPkgManifest.version}`;
|
|
69
|
+
const patchKey = applyToAll ? patchedPkgManifest.name : nameAndVersion;
|
|
70
|
+
let gitTarballUrl;
|
|
71
|
+
if (!applyToAll) {
|
|
72
|
+
gitTarballUrl = await getGitTarballUrlFromLockfile({
|
|
73
|
+
alias: patchedPkgManifest.name,
|
|
74
|
+
pref: patchedPkgManifest.version,
|
|
75
|
+
}, {
|
|
76
|
+
lockfileDir,
|
|
77
|
+
modulesDir: opts.modulesDir,
|
|
78
|
+
virtualStoreDir: opts.virtualStoreDir,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
64
81
|
const srcDir = tempy_1.default.directory();
|
|
65
|
-
await (0, writePackage_1.writePackage)((0, parse_wanted_dependency_1.parseWantedDependency)(gitTarballUrl ? `${patchedPkgManifest.name}@${gitTarballUrl}` :
|
|
82
|
+
await (0, writePackage_1.writePackage)((0, parse_wanted_dependency_1.parseWantedDependency)(gitTarballUrl ? `${patchedPkgManifest.name}@${gitTarballUrl}` : nameAndVersion), srcDir, opts);
|
|
83
|
+
(0, stateFile_1.deleteEditDirState)({
|
|
84
|
+
editDir: userDir,
|
|
85
|
+
modulesDir: opts.modulesDir ?? 'node_modules',
|
|
86
|
+
});
|
|
66
87
|
const patchedPkgDir = await preparePkgFilesForDiff(userDir);
|
|
67
88
|
const patchContent = await diffFolders(srcDir, patchedPkgDir);
|
|
89
|
+
if (patchedPkgDir !== userDir) {
|
|
90
|
+
fs_1.default.rmSync(patchedPkgDir, { recursive: true });
|
|
91
|
+
}
|
|
68
92
|
if (!patchContent.length) {
|
|
69
93
|
return `No changes were found to the following directory: ${userDir}`;
|
|
70
94
|
}
|
|
71
95
|
await fs_1.default.promises.mkdir(patchesDir, { recursive: true });
|
|
72
|
-
const patchFileName =
|
|
96
|
+
const patchFileName = patchKey.replace('/', '__');
|
|
73
97
|
await fs_1.default.promises.writeFile(path_1.default.join(patchesDir, `${patchFileName}.patch`), patchContent, 'utf8');
|
|
74
98
|
const { writeProjectManifest, manifest } = await (0, read_project_manifest_1.tryReadProjectManifest)(lockfileDir);
|
|
75
99
|
const rootProjectManifest = (!opts.sharedWorkspaceLockfile ? manifest : (opts.rootProjectManifest ?? manifest)) ?? {};
|
|
@@ -81,7 +105,7 @@ async function handler(opts, params) {
|
|
|
81
105
|
else if (!rootProjectManifest.pnpm.patchedDependencies) {
|
|
82
106
|
rootProjectManifest.pnpm.patchedDependencies = {};
|
|
83
107
|
}
|
|
84
|
-
rootProjectManifest.pnpm.patchedDependencies[
|
|
108
|
+
rootProjectManifest.pnpm.patchedDependencies[patchKey] = `${patchesDirName}/${patchFileName}.patch`;
|
|
85
109
|
await writeProjectManifest(rootProjectManifest);
|
|
86
110
|
if (opts?.selectedProjectsGraph?.[lockfileDir]) {
|
|
87
111
|
opts.selectedProjectsGraph[lockfileDir].package.manifest = rootProjectManifest;
|
|
@@ -157,7 +181,8 @@ async function preparePkgFilesForDiff(src) {
|
|
|
157
181
|
if (await areAllFilesInPkg(files, src)) {
|
|
158
182
|
return src;
|
|
159
183
|
}
|
|
160
|
-
const dest =
|
|
184
|
+
const dest = `${src}_tmp`;
|
|
185
|
+
await (0, make_empty_dir_1.default)(dest);
|
|
161
186
|
await Promise.all(files.map(async (file) => {
|
|
162
187
|
const srcFile = path_1.default.join(src, file);
|
|
163
188
|
const destFile = path_1.default.join(dest, file);
|
package/lib/patchCommit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patchCommit.js","sourceRoot":"","sources":["../src/patchCommit.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,+CAAyC;AACzC,yCAA6D;AAC7D,mDAA4C;AAC5C,qFAA4D;AAC5D,+DAAgE;AAChE,uEAAoE;AAEpE,0DAA4B;AAC5B,oEAA0C;AAC1C,0DAAiC;AACjC,8DAAqC;AACrC,4DAA8B;AAC9B,gFAAqD;AACrD,8DAAoC;AACpC,kDAAyB;AACzB,iDAA6C;AAC7C,2EAAuG;AACvG,iEAAkG;
|
|
1
|
+
{"version":3,"file":"patchCommit.js","sourceRoot":"","sources":["../src/patchCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type EditDir = string & {
|
|
2
|
+
__brand: 'patch-edit-dir';
|
|
3
|
+
};
|
|
4
|
+
export interface EditDirState {
|
|
5
|
+
patchedPkg: string;
|
|
6
|
+
applyToAll: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type State = Record<EditDir, EditDirState>;
|
|
9
|
+
export interface EditDirKeyInput {
|
|
10
|
+
editDir: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ReadEditDirStateOptions extends EditDirKeyInput {
|
|
13
|
+
modulesDir: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function readEditDirState(opts: ReadEditDirStateOptions): EditDirState | undefined;
|
|
16
|
+
export interface WriteEditDirStateOptions extends ReadEditDirStateOptions, EditDirState {
|
|
17
|
+
}
|
|
18
|
+
export declare function writeEditDirState(opts: WriteEditDirStateOptions): void;
|
|
19
|
+
export interface DeleteEditDirStateOptions extends ReadEditDirStateOptions {
|
|
20
|
+
}
|
|
21
|
+
export declare function deleteEditDirState(opts: DeleteEditDirStateOptions): void;
|
package/lib/stateFile.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
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.deleteEditDirState = exports.writeEditDirState = exports.readEditDirState = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const util_1 = __importDefault(require("util"));
|
|
10
|
+
const createEditDirKey = (opts) => opts.editDir;
|
|
11
|
+
function readEditDirState(opts) {
|
|
12
|
+
const state = readStateFile(opts.modulesDir);
|
|
13
|
+
if (!state)
|
|
14
|
+
return undefined;
|
|
15
|
+
const key = createEditDirKey(opts);
|
|
16
|
+
return state[key];
|
|
17
|
+
}
|
|
18
|
+
exports.readEditDirState = readEditDirState;
|
|
19
|
+
function writeEditDirState(opts) {
|
|
20
|
+
modifyStateFile(opts.modulesDir, state => {
|
|
21
|
+
const key = createEditDirKey(opts);
|
|
22
|
+
state[key] = {
|
|
23
|
+
patchedPkg: opts.patchedPkg,
|
|
24
|
+
applyToAll: opts.applyToAll,
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.writeEditDirState = writeEditDirState;
|
|
29
|
+
function deleteEditDirState(opts) {
|
|
30
|
+
modifyStateFile(opts.modulesDir, state => {
|
|
31
|
+
const key = createEditDirKey(opts);
|
|
32
|
+
delete state[key];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
exports.deleteEditDirState = deleteEditDirState;
|
|
36
|
+
function modifyStateFile(modulesDir, modifyState) {
|
|
37
|
+
const filePath = getStateFilePath(modulesDir);
|
|
38
|
+
let state = readStateFile(modulesDir);
|
|
39
|
+
if (!state) {
|
|
40
|
+
state = {};
|
|
41
|
+
fs_1.default.mkdirSync(path_1.default.dirname(filePath), { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
modifyState(state);
|
|
44
|
+
fs_1.default.writeFileSync(filePath, JSON.stringify(state, undefined, 2));
|
|
45
|
+
}
|
|
46
|
+
function readStateFile(modulesDir) {
|
|
47
|
+
let fileContent;
|
|
48
|
+
try {
|
|
49
|
+
fileContent = fs_1.default.readFileSync(getStateFilePath(modulesDir), 'utf-8');
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
if (util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT') {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
throw err;
|
|
56
|
+
}
|
|
57
|
+
return JSON.parse(fileContent);
|
|
58
|
+
}
|
|
59
|
+
function getStateFilePath(modulesDir) {
|
|
60
|
+
return path_1.default.join(modulesDir, '.pnpm_patches', 'state.json');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=stateFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateFile.js","sourceRoot":"","sources":["../src/stateFile.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,gDAAuB;AAevB,MAAM,gBAAgB,GAAG,CAAC,IAAqB,EAAW,EAAE,CAAC,IAAI,CAAC,OAAkB,CAAA;AAMpF,SAAgB,gBAAgB,CAAE,IAA6B;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;AACnB,CAAC;AALD,4CAKC;AAID,SAAgB,iBAAiB,CAAE,IAA8B;IAC/D,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClC,KAAK,CAAC,GAAG,CAAC,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AARD,8CAQC;AAID,SAAgB,kBAAkB,CAAE,IAA+B;IACjE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC;AALD,gDAKC;AAED,SAAS,eAAe,CAAE,UAAkB,EAAE,WAAmC;IAC/E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,CAAA;QACV,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC;IACD,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,aAAa,CAAE,UAAkB;IACxC,IAAI,WAAmB,CAAA;IACvB,IAAI,CAAC;QACH,WAAW,GAAG,YAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,cAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5E,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAE,UAAkB;IAC3C,OAAO,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;AAC7D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/plugin-commands-patching",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"description": "Commands for creating patches",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -23,21 +23,22 @@
|
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/pnpm/pnpm/blob/main/patching/plugin-commands-patching#readme",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@pnpm/registry-mock": "3.
|
|
26
|
+
"@pnpm/registry-mock": "3.40.0",
|
|
27
27
|
"@types/normalize-path": "^3.0.2",
|
|
28
28
|
"@types/ramda": "0.29.12",
|
|
29
29
|
"@types/semver": "7.5.3",
|
|
30
30
|
"write-yaml-file": "^5.0.0",
|
|
31
|
-
"@pnpm/
|
|
32
|
-
"@pnpm/
|
|
33
|
-
"@pnpm/
|
|
34
|
-
"@pnpm/workspace.filter-packages-from-dir": "1.0.
|
|
31
|
+
"@pnpm/test-fixtures": "0.1.30",
|
|
32
|
+
"@pnpm/plugin-commands-patching": "6.4.0",
|
|
33
|
+
"@pnpm/prepare": "0.0.100",
|
|
34
|
+
"@pnpm/workspace.filter-packages-from-dir": "1.0.6"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"chalk": "^4.1.2",
|
|
38
38
|
"enquirer": "^2.4.1",
|
|
39
39
|
"escape-string-regexp": "^4.0.0",
|
|
40
40
|
"fast-glob": "^3.3.2",
|
|
41
|
+
"make-empty-dir": "^3.0.2",
|
|
41
42
|
"normalize-path": "^3.0.0",
|
|
42
43
|
"ramda": "npm:@pnpm/ramda@0.28.1",
|
|
43
44
|
"realpath-missing": "^1.1.0",
|
|
@@ -46,23 +47,23 @@
|
|
|
46
47
|
"semver": "^7.6.2",
|
|
47
48
|
"tempy": "^1.0.1",
|
|
48
49
|
"terminal-link": "^2.1.1",
|
|
49
|
-
"@pnpm/cli-utils": "
|
|
50
|
+
"@pnpm/cli-utils": "4.0.0",
|
|
51
|
+
"@pnpm/error": "6.0.1",
|
|
52
|
+
"@pnpm/config": "21.8.0",
|
|
50
53
|
"@pnpm/constants": "8.0.0",
|
|
51
|
-
"@pnpm/
|
|
54
|
+
"@pnpm/lockfile.fs": "1.0.1",
|
|
52
55
|
"@pnpm/fs.packlist": "2.0.0",
|
|
53
|
-
"@pnpm/
|
|
54
|
-
"@pnpm/
|
|
55
|
-
"@pnpm/
|
|
56
|
-
"@pnpm/
|
|
57
|
-
"@pnpm/patching.apply-patch": "3.0.1",
|
|
58
|
-
"@pnpm/pick-fetcher": "3.0.0",
|
|
56
|
+
"@pnpm/lockfile.utils": "1.0.1",
|
|
57
|
+
"@pnpm/modules-yaml": "13.1.5",
|
|
58
|
+
"@pnpm/patching.apply-patch": "3.1.0",
|
|
59
|
+
"@pnpm/pick-registry-for-package": "6.0.5",
|
|
59
60
|
"@pnpm/parse-wanted-dependency": "6.0.0",
|
|
60
|
-
"@pnpm/plugin-commands-installation": "17.0.
|
|
61
|
-
"@pnpm/
|
|
62
|
-
"@pnpm/read-project-manifest": "6.0.
|
|
63
|
-
"@pnpm/
|
|
64
|
-
"@pnpm/
|
|
65
|
-
"@pnpm/
|
|
61
|
+
"@pnpm/plugin-commands-installation": "17.0.3",
|
|
62
|
+
"@pnpm/read-package-json": "9.0.6",
|
|
63
|
+
"@pnpm/read-project-manifest": "6.0.6",
|
|
64
|
+
"@pnpm/pick-fetcher": "3.0.0",
|
|
65
|
+
"@pnpm/store-connection-manager": "8.3.6",
|
|
66
|
+
"@pnpm/types": "12.0.0"
|
|
66
67
|
},
|
|
67
68
|
"peerDependencies": {
|
|
68
69
|
"@pnpm/logger": "^5.0.0"
|