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.verifyAppliedPatches = exports.clearPatchApplicationState = exports.savePatchApplicationState = exports.getPatchApplicationState = exports.STATE_FILE_NAME = void 0;
|
---|
7 | const fs_1 = require("fs");
|
---|
8 | const path_1 = require("path");
|
---|
9 | const json_stable_stringify_1 = __importDefault(require("json-stable-stringify"));
|
---|
10 | const hash_1 = require("./hash");
|
---|
11 | const chalk_1 = __importDefault(require("chalk"));
|
---|
12 | const version = 1;
|
---|
13 | exports.STATE_FILE_NAME = ".patch-package.json";
|
---|
14 | function getPatchApplicationState(packageDetails) {
|
---|
15 | const fileName = path_1.join(packageDetails.path, exports.STATE_FILE_NAME);
|
---|
16 | let state = null;
|
---|
17 | try {
|
---|
18 | state = JSON.parse(fs_1.readFileSync(fileName, "utf8"));
|
---|
19 | }
|
---|
20 | catch (e) {
|
---|
21 | // noop
|
---|
22 | }
|
---|
23 | if (!state) {
|
---|
24 | return null;
|
---|
25 | }
|
---|
26 | if (state.version !== version) {
|
---|
27 | console.log(`You upgraded patch-package and need to fully reinstall node_modules to continue.`);
|
---|
28 | process.exit(1);
|
---|
29 | }
|
---|
30 | return state;
|
---|
31 | }
|
---|
32 | exports.getPatchApplicationState = getPatchApplicationState;
|
---|
33 | function savePatchApplicationState({ packageDetails, patches, isRebasing, }) {
|
---|
34 | const fileName = path_1.join(packageDetails.path, exports.STATE_FILE_NAME);
|
---|
35 | const state = {
|
---|
36 | patches,
|
---|
37 | version,
|
---|
38 | isRebasing,
|
---|
39 | };
|
---|
40 | fs_1.writeFileSync(fileName, json_stable_stringify_1.default(state, { space: 4 }), "utf8");
|
---|
41 | }
|
---|
42 | exports.savePatchApplicationState = savePatchApplicationState;
|
---|
43 | function clearPatchApplicationState(packageDetails) {
|
---|
44 | const fileName = path_1.join(packageDetails.path, exports.STATE_FILE_NAME);
|
---|
45 | try {
|
---|
46 | fs_1.unlinkSync(fileName);
|
---|
47 | }
|
---|
48 | catch (e) {
|
---|
49 | // noop
|
---|
50 | }
|
---|
51 | }
|
---|
52 | exports.clearPatchApplicationState = clearPatchApplicationState;
|
---|
53 | function verifyAppliedPatches({ appPath, patchDir, state, }) {
|
---|
54 | const patchesDirectory = path_1.join(appPath, patchDir);
|
---|
55 | for (const patch of state.patches) {
|
---|
56 | if (!patch.didApply) {
|
---|
57 | break;
|
---|
58 | }
|
---|
59 | const fullPatchPath = path_1.join(patchesDirectory, patch.patchFilename);
|
---|
60 | if (!fs_1.existsSync(fullPatchPath)) {
|
---|
61 | console.log(chalk_1.default.blueBright("Expected patch file"), fullPatchPath, "to exist but it is missing. Try removing and reinstalling node_modules first.");
|
---|
62 | process.exit(1);
|
---|
63 | }
|
---|
64 | if (patch.patchContentHash !== hash_1.hashFile(fullPatchPath)) {
|
---|
65 | console.log(chalk_1.default.blueBright("Patch file"), fullPatchPath, "has changed since it was applied. Try removing and reinstalling node_modules first.");
|
---|
66 | process.exit(1);
|
---|
67 | }
|
---|
68 | }
|
---|
69 | }
|
---|
70 | exports.verifyAppliedPatches = verifyAppliedPatches;
|
---|
71 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRlRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBd0U7QUFDeEUsK0JBQTJCO0FBRTNCLGtGQUE2QztBQUM3QyxpQ0FBaUM7QUFDakMsa0RBQXlCO0FBT3pCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQTtBQU9KLFFBQUEsZUFBZSxHQUFHLHFCQUFxQixDQUFBO0FBRXBELFNBQWdCLHdCQUF3QixDQUN0QyxjQUE4QjtJQUU5QixNQUFNLFFBQVEsR0FBRyxXQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx1QkFBZSxDQUFDLENBQUE7SUFFM0QsSUFBSSxLQUFLLEdBQWlDLElBQUksQ0FBQTtJQUM5QyxJQUFJO1FBQ0YsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtLQUNuRDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTztLQUNSO0lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0ZBQWtGLENBQ25GLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBckJELDREQXFCQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLEVBQ3hDLGNBQWMsRUFDZCxPQUFPLEVBQ1AsVUFBVSxHQUtYO0lBQ0MsTUFBTSxRQUFRLEdBQUcsV0FBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsdUJBQWUsQ0FBQyxDQUFBO0lBRTNELE1BQU0sS0FBSyxHQUEwQjtRQUNuQyxPQUFPO1FBQ1AsT0FBTztRQUNQLFVBQVU7S0FDWCxDQUFBO0lBRUQsa0JBQWEsQ0FBQyxRQUFRLEVBQUUsK0JBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUNqRSxDQUFDO0FBbEJELDhEQWtCQztBQUVELFNBQWdCLDBCQUEwQixDQUFDLGNBQThCO0lBQ3ZFLE1BQU0sUUFBUSxHQUFHLFdBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHVCQUFlLENBQUMsQ0FBQTtJQUUzRCxJQUFJO1FBQ0YsZUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3JCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPO0tBQ1I7QUFDSCxDQUFDO0FBUkQsZ0VBUUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxFQUNuQyxPQUFPLEVBQ1AsUUFBUSxFQUNSLEtBQUssR0FLTjtJQUNDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNoRCxLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbkIsTUFBSztTQUNOO1FBQ0QsTUFBTSxhQUFhLEdBQUcsV0FBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsZUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUN2QyxhQUFhLEVBQ2IsK0VBQStFLENBQ2hGLENBQUE7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssZUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFDOUIsYUFBYSxFQUNiLHFGQUFxRixDQUN0RixDQUFBO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNoQjtLQUNGO0FBQ0gsQ0FBQztBQWhDRCxvREFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMsIHVubGlua1N5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IFBhY2thZ2VEZXRhaWxzIH0gZnJvbSBcIi4vUGFja2FnZURldGFpbHNcIlxuaW1wb3J0IHN0cmluZ2lmeSBmcm9tIFwianNvbi1zdGFibGUtc3RyaW5naWZ5XCJcbmltcG9ydCB7IGhhc2hGaWxlIH0gZnJvbSBcIi4vaGFzaFwiXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hTdGF0ZSB7XG4gIHBhdGNoRmlsZW5hbWU6IHN0cmluZ1xuICBwYXRjaENvbnRlbnRIYXNoOiBzdHJpbmdcbiAgZGlkQXBwbHk6IGJvb2xlYW5cbn1cblxuY29uc3QgdmVyc2lvbiA9IDFcbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hBcHBsaWNhdGlvblN0YXRlIHtcbiAgdmVyc2lvbjogbnVtYmVyXG4gIHBhdGNoZXM6IFBhdGNoU3RhdGVbXVxuICBpc1JlYmFzaW5nOiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTVEFURV9GSUxFX05BTUUgPSBcIi5wYXRjaC1wYWNrYWdlLmpzb25cIlxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0Y2hBcHBsaWNhdGlvblN0YXRlKFxuICBwYWNrYWdlRGV0YWlsczogUGFja2FnZURldGFpbHMsXG4pOiBQYXRjaEFwcGxpY2F0aW9uU3RhdGUgfCBudWxsIHtcbiAgY29uc3QgZmlsZU5hbWUgPSBqb2luKHBhY2thZ2VEZXRhaWxzLnBhdGgsIFNUQVRFX0ZJTEVfTkFNRSlcblxuICBsZXQgc3RhdGU6IG51bGwgfCBQYXRjaEFwcGxpY2F0aW9uU3RhdGUgPSBudWxsXG4gIHRyeSB7XG4gICAgc3RhdGUgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhmaWxlTmFtZSwgXCJ1dGY4XCIpKVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gbm9vcFxuICB9XG4gIGlmICghc3RhdGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGlmIChzdGF0ZS52ZXJzaW9uICE9PSB2ZXJzaW9uKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgWW91IHVwZ3JhZGVkIHBhdGNoLXBhY2thZ2UgYW5kIG5lZWQgdG8gZnVsbHkgcmVpbnN0YWxsIG5vZGVfbW9kdWxlcyB0byBjb250aW51ZS5gLFxuICAgIClcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICByZXR1cm4gc3RhdGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVQYXRjaEFwcGxpY2F0aW9uU3RhdGUoe1xuICBwYWNrYWdlRGV0YWlscyxcbiAgcGF0Y2hlcyxcbiAgaXNSZWJhc2luZyxcbn06IHtcbiAgcGFja2FnZURldGFpbHM6IFBhY2thZ2VEZXRhaWxzXG4gIHBhdGNoZXM6IFBhdGNoU3RhdGVbXVxuICBpc1JlYmFzaW5nOiBib29sZWFuXG59KSB7XG4gIGNvbnN0IGZpbGVOYW1lID0gam9pbihwYWNrYWdlRGV0YWlscy5wYXRoLCBTVEFURV9GSUxFX05BTUUpXG5cbiAgY29uc3Qgc3RhdGU6IFBhdGNoQXBwbGljYXRpb25TdGF0ZSA9IHtcbiAgICBwYXRjaGVzLFxuICAgIHZlcnNpb24sXG4gICAgaXNSZWJhc2luZyxcbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmMoZmlsZU5hbWUsIHN0cmluZ2lmeShzdGF0ZSwgeyBzcGFjZTogNCB9KSwgXCJ1dGY4XCIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclBhdGNoQXBwbGljYXRpb25TdGF0ZShwYWNrYWdlRGV0YWlsczogUGFja2FnZURldGFpbHMpIHtcbiAgY29uc3QgZmlsZU5hbWUgPSBqb2luKHBhY2thZ2VEZXRhaWxzLnBhdGgsIFNUQVRFX0ZJTEVfTkFNRSlcblxuICB0cnkge1xuICAgIHVubGlua1N5bmMoZmlsZU5hbWUpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBub29wXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUFwcGxpZWRQYXRjaGVzKHtcbiAgYXBwUGF0aCxcbiAgcGF0Y2hEaXIsXG4gIHN0YXRlLFxufToge1xuICBhcHBQYXRoOiBzdHJpbmdcbiAgcGF0Y2hEaXI6IHN0cmluZ1xuICBzdGF0ZTogUGF0Y2hBcHBsaWNhdGlvblN0YXRlXG59KSB7XG4gIGNvbnN0IHBhdGNoZXNEaXJlY3RvcnkgPSBqb2luKGFwcFBhdGgsIHBhdGNoRGlyKVxuICBmb3IgKGNvbnN0IHBhdGNoIG9mIHN0YXRlLnBhdGNoZXMpIHtcbiAgICBpZiAoIXBhdGNoLmRpZEFwcGx5KSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjb25zdCBmdWxsUGF0Y2hQYXRoID0gam9pbihwYXRjaGVzRGlyZWN0b3J5LCBwYXRjaC5wYXRjaEZpbGVuYW1lKVxuICAgIGlmICghZXhpc3RzU3luYyhmdWxsUGF0Y2hQYXRoKSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLmJsdWVCcmlnaHQoXCJFeHBlY3RlZCBwYXRjaCBmaWxlXCIpLFxuICAgICAgICBmdWxsUGF0Y2hQYXRoLFxuICAgICAgICBcInRvIGV4aXN0IGJ1dCBpdCBpcyBtaXNzaW5nLiBUcnkgcmVtb3ZpbmcgYW5kIHJlaW5zdGFsbGluZyBub2RlX21vZHVsZXMgZmlyc3QuXCIsXG4gICAgICApXG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG4gICAgaWYgKHBhdGNoLnBhdGNoQ29udGVudEhhc2ggIT09IGhhc2hGaWxlKGZ1bGxQYXRjaFBhdGgpKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY2hhbGsuYmx1ZUJyaWdodChcIlBhdGNoIGZpbGVcIiksXG4gICAgICAgIGZ1bGxQYXRjaFBhdGgsXG4gICAgICAgIFwiaGFzIGNoYW5nZWQgc2luY2UgaXQgd2FzIGFwcGxpZWQuIFRyeSByZW1vdmluZyBhbmQgcmVpbnN0YWxsaW5nIG5vZGVfbW9kdWxlcyBmaXJzdC5cIixcbiAgICAgIClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgfVxufVxuIl19 |
---|