Skip to content

Commit

Permalink
fix(plugin-compat): update fsevents patch for version 2.2.0 (#2078)
Browse files Browse the repository at this point in the history
* fix(plugin-compat): update fsevents patch for version 2.2.0

* chore: remove leftover patch
  • Loading branch information
merceyz committed Nov 4, 2020
1 parent 9d60d47 commit 5cc3c8a
Show file tree
Hide file tree
Showing 9 changed files with 134 additions and 26 deletions.
18 changes: 9 additions & 9 deletions .pnp.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions .yarn/versions/6796d160.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
releases:
"@yarnpkg/cli": patch
"@yarnpkg/plugin-compat": patch

declined:
- "@yarnpkg/plugin-constraints"
- "@yarnpkg/plugin-dlx"
- "@yarnpkg/plugin-essentials"
- "@yarnpkg/plugin-init"
- "@yarnpkg/plugin-interactive-tools"
- "@yarnpkg/plugin-node-modules"
- "@yarnpkg/plugin-npm-cli"
- "@yarnpkg/plugin-pack"
- "@yarnpkg/plugin-patch"
- "@yarnpkg/plugin-pnp"
- "@yarnpkg/plugin-stage"
- "@yarnpkg/plugin-typescript"
- "@yarnpkg/plugin-version"
- "@yarnpkg/plugin-workspace-tools"
- "@yarnpkg/builder"
- "@yarnpkg/core"
- "@yarnpkg/doctor"
13 changes: 0 additions & 13 deletions packages/plugin-compat/extra/fsevents/2.1.2.patch

This file was deleted.

84 changes: 84 additions & 0 deletions packages/plugin-compat/extra/fsevents/fsevents-2.2.0.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/*
** © 2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller
** Licensed under MIT License.
*/

/* jshint node:true */
"use strict";

if (process.platform !== "darwin") {
throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
}

const Native = require("./fsevents.node");
const events = Native.constants;

function watch(path, since, handler) {
if (typeof path !== "string") {
throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
}
if ("function" === typeof since && "undefined" === typeof handler) {
handler = since;
since = Native.flags.SinceNow;
}
if (typeof since !== "number") {
throw new TypeError(`fsevents argument 2 must be a number and not a ${typeof since}`);
}
if (typeof handler !== "function") {
throw new TypeError(`fsevents argument 3 must be a function and not a ${typeof handler}`);
}

let VFS = require('./vfs');
let vfs = new VFS(path);
let instance = Native.start(Native.global, vfs.resolvedPath, since, vfs.wrap(handler));
if (!instance) throw new Error(`could not watch: ${path}`);
return () => {
const result = instance ? Promise.resolve(instance).then(Native.stop) : Promise.resolve(undefined);
instance = undefined;
return result;
};
}

function getInfo(path, flags) {
return {
path,
flags,
event: getEventType(flags),
type: getFileType(flags),
changes: getFileChanges(flags),
};
}

function getFileType(flags) {
if (events.ItemIsFile & flags) return "file";
if (events.ItemIsDir & flags) return "directory";
if (events.ItemIsSymlink & flags) return "symlink";
}
function anyIsTrue(obj) {
for (let key in obj) {
if (obj[key]) return true;
}
return false;
}
function getEventType(flags) {
if (events.ItemRemoved & flags) return "deleted";
if (events.ItemRenamed & flags) return "moved";
if (events.ItemCreated & flags) return "created";
if (events.ItemModified & flags) return "modified";
if (events.RootChanged & flags) return "root-changed";
if (events.ItemCloned & flags) return "cloned";
if (anyIsTrue(flags)) return "modified";
return "unknown";
}
function getFileChanges(flags) {
return {
inode: !!(events.ItemInodeMetaMod & flags),
finder: !!(events.ItemFinderInfoMod & flags),
access: !!(events.ItemChangeOwner & flags),
xattrs: !!(events.ItemXattrMod & flags),
};
}

exports.watch = watch;
exports.getInfo = getInfo;
exports.constants = events;
17 changes: 16 additions & 1 deletion packages/plugin-compat/extra/fsevents/gen-fsevents-patch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ cd "$TEMP_DIR"

wget https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz
wget https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz
wget https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.0.tgz

tar xvf fsevents-1.2.11.tgz
cp -rf package copy
Expand All @@ -24,16 +25,30 @@ cp "$THIS_DIR"/fsevents-2.1.2.js copy/fsevents.js
cp "$THIS_DIR"/vfs.js copy/vfs.js
git diff -U2 --src-prefix=a/ --dst-prefix=b/ --ignore-cr-at-eol --ignore-space-change --full-index --no-index package copy > "$THIS_DIR"/fsevents-2.1.2.patch || true

rm -rf package copy

tar xvf fsevents-2.2.0.tgz
cp -rf package copy

cp "$THIS_DIR"/fsevents-2.2.0.js copy/fsevents.js
cp "$THIS_DIR"/vfs.js copy/vfs.js
git diff -U2 --src-prefix=a/ --dst-prefix=b/ --ignore-cr-at-eol --ignore-space-change --full-index --no-index package copy > "$THIS_DIR"/fsevents-2.2.0.patch || true

perl -p -i -e 's#a/package/#a/#' "$THIS_DIR"/fsevents-1.2.11.patch
perl -p -i -e 's#b/copy/#b/#' "$THIS_DIR"/fsevents-1.2.11.patch
perl -p -i -e 's#^--- #semver exclusivity ^1\'$'\n''--- #' "$THIS_DIR"/fsevents-1.2.11.patch

perl -p -i -e 's#a/package/#a/#' "$THIS_DIR"/fsevents-2.1.2.patch
perl -p -i -e 's#b/copy/#b/#' "$THIS_DIR"/fsevents-2.1.2.patch
perl -p -i -e 's#^--- #semver exclusivity ^2.1\'$'\n''--- #' "$THIS_DIR"/fsevents-2.1.2.patch
perl -p -i -e 's#^--- #semver exclusivity >=2.1 <2.2\'$'\n''--- #' "$THIS_DIR"/fsevents-2.1.2.patch

perl -p -i -e 's#a/package/#a/#' "$THIS_DIR"/fsevents-2.2.0.patch
perl -p -i -e 's#b/copy/#b/#' "$THIS_DIR"/fsevents-2.2.0.patch
perl -p -i -e 's#^--- #semver exclusivity ^2.2\'$'\n''--- #' "$THIS_DIR"/fsevents-2.2.0.patch

cat "$THIS_DIR"/fsevents-1.2.11.patch \
"$THIS_DIR"/fsevents-2.1.2.patch \
"$THIS_DIR"/fsevents-2.2.0.patch \
> "$TEMP_DIR"/fsevents.patch

node "$THIS_DIR/../createPatch.js" "$TEMP_DIR"/fsevents.patch "$THIS_DIR"/../../sources/patches/fsevents.patch.ts
2 changes: 1 addition & 1 deletion packages/plugin-compat/sources/patches/fsevents.patch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ let patch: string;

export function getPatch() {
if (typeof patch === `undefined`)
patch = require(`zlib`).brotliDecompressSync(Buffer.from(`G1gUAIzCtr2xMzjJgJA88r/l8s7l9OoQ+WtKxU5uIQ1k15mQ1bamroyXoMKC0yqx44/BZ2Kp0oH6z9/XdLihMONU+ufec9+07fv777XvQJOVjRaHnkmAASXQQzhvDK3lC18lfWMQhmk/hyqMS39FA4d4X8na/QZocXQ3LmObAWWccY/xG5ZSBm6J6brPQ3E9pQ9DGJyhaurt4KyaZ+syHd/CnvYuraXnvJwez3WGhy6s6ecrfJVYeBDArI75wxB2HxweIqw0/gT+qXpDEji4JdFGZ5Do7yg5nV8J1f33B2JUENlw97TRDgNjq3yzyqD4IoFfFgJqt3Ga003n9/+eOFU1KYz99N6eCCDmOTGq8usWP53fU1IK8D0qzI3bK5KkKGgUjkG1dRyJBAC/T4SK5AOiInV6kSnLcQGMDKTOwrPxN8919kVydBmns6kfSdr1DhMISD0Q1qGeqWAowNVB+MlACshFFA8GHqpUTfgPlAi3RRDj6lJGtDcafGRQNymNVsmoKySzioKxwowoUiDaisGalJQCq7cw/5n3ETx7nKiI0iqiVdn885HOYSf2yH4hATXJEesF2nOfqp2bzLO2T2uI0hX/0JwMdac692S4i9/UzJ5PPqsqAVnxooXrvlQ/1ibnqvhIvgBqLWtP+p8kNU8NSlso1fnR6P8ir9txAdrm+XaYQpbns6D5hqqKw6WkVuPP2cNXIXqf22EaIHq/FDSg/sUFz5s4K0JyemiYYFrc5HBiLmmE5qqpIStviMHER2BVSUZlRCUOzCaHkCisRn3ltIMkNegRhip+9sT3nKpPPFIASnM1QVvE25LUteytfyIxhi2C4zcl3oloipwOLj6/qJOtPAPEAnKf105va2Lf3B1CndU2yBIrW2urW8N6wbdSYoBvisT5KlRosuRJcV9TL7dGdNXzUA7aqJSIfGdtxCJi8dK7/dx2uFksGP773q3ioNgRNkUAIS6y+CJBY2U5zV0P/XqaWeE3RYDV//Sv7mgs+kEVZ5ST1tCArNYcidRe9ZudVIfLfzxcpbzIv+Lc3ZvJD1cXzeVNM25FDyRmU2fd1F/bdVAqOWnKk1Q52pkEfMDeVC0GW4Q/lmckM5Z5r7Nz3WlkQcEICtc3JDVTXIl3r9YXggjAkDzU4r4NQehHbLEQ/uINXzYTISLiZQsFICKVpU69ME8bYLnLZlwmBJSZYAehatIhj3gC6Iho0uFsc8w92muCdflw5SouKRfSodbNZoLcxbG48Rc6Ng3mU+TcU65b2pRVwaIO0N0TNYmptsxD5WTDtG5SWskELYsSSoqpH6VNkXxcg3vwQGWaF5XL2XI5GgG6iA6kETJUICJE1GBXQ1TJT1OvRjNQFRutEg8EXZHQEHCYv8fWDiL+o7rWbEBqFvhMEZWL9uQLQqyNLrxq7wfa2P5dXv+PYsQqrih/3/6/5zLNAQ==`, `base64`)).toString();
patch = require(`zlib`).brotliDecompressSync(Buffer.from(`G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==`, `base64`)).toString();

return patch;
}
4 changes: 2 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -12859,7 +12859,7 @@ fsevents@^1.2.7:

"fsevents@patch:fsevents@^1.2.7#builtin<compat/fsevents>":
version: 1.2.7
resolution: "fsevents@patch:fsevents@npm%3A1.2.7#builtin<compat/fsevents>::version=1.2.7&hash=127e8e"
resolution: "fsevents@patch:fsevents@npm%3A1.2.7#builtin<compat/fsevents>::version=1.2.7&hash=11e9ea"
dependencies:
nan: ^2.9.2
node-pre-gyp: ^0.10.0
Expand All @@ -12869,7 +12869,7 @@ fsevents@^1.2.7:

"fsevents@patch:fsevents@^2.1.2#builtin<compat/fsevents>, fsevents@patch:fsevents@~2.1.2#builtin<compat/fsevents>":
version: 2.1.3
resolution: "fsevents@patch:fsevents@npm%3A2.1.3#builtin<compat/fsevents>::version=2.1.3&hash=127e8e"
resolution: "fsevents@patch:fsevents@npm%3A2.1.3#builtin<compat/fsevents>::version=2.1.3&hash=11e9ea"
dependencies:
node-gyp: latest
checksum: e2b8c379340e21a786d32c653854c8876f94eb1202dd5be378fd42c062bc123aab5051c32bf0011865257c85982c41ded203f9fe8c9f9c8f8c84dc4672abc0e0
Expand Down

0 comments on commit 5cc3c8a

Please sign in to comment.