{"_id":"@briananders/two-way-merge","_rev":"7-c490d1a01ded7e9e2d4a990c76acd550","name":"@briananders/two-way-merge","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@briananders/two-way-merge","version":"1.0.0","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.0","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"7feefdbb546155ef9ab5193723761dacc32151d0","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.0.tgz","fileCount":5,"integrity":"sha512-WJhHPf8x2HASbZu92dKzw/B+nScGQwsDehXRXmp6NmrurqDCOlQN3xleecA7+pzm6jc7RGVJ/1/KiTwv+ZA7QQ==","signatures":[{"sig":"MEUCIAjt8FyIQ+3EZVgOWQf+tlX0p6xq3S2xYKnVU9hQr2d3AiEArnV6AMtOrxciVRp8A0pAEm5DcpahwAxeHPDLYMoziTM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS/IpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYTw//Z8sWYZzJsnzUeZl6DhsrmZJzKGLVTQbbMwCcAfuuZt/AUYQz\r\nor9TyBzzK4Zju4xZ/7AzDgd3+o6u+YWAAY1Z24grhnOXFXKWUzMNj14lQMxi\r\nbvuIjbn2QvphCo69i/LvBMo9J/gFl4fX9OOlLvCExuE+BgkWojcUp3ubhav0\r\nZC1gKW8zek4ITXjWUW0A1guTKMuHuifMtzeJEHq04w3lWA86LvuRnJEw/5oe\r\nCLlpVR+RDfREQpkrv6eZdLnxlnDg2YgWIC5m2bxI4UoyTSHuTtVr52tTqcl0\r\nMIGBeX7JWLeMtFYIBDIXHPy6g0LjgS6EVVW3yCt9ZtUop8TYqQ1UrJw8uHOb\r\nhfPj/pEqBv7bsLqhxSDS1hgmTy/hiKuoOWVYfEsHMuPP/3t1RckCpsqcvvGi\r\nbxR6QN61s0XDkZffG99NZ34H0eXHOHscdgGTzMuL7SyR/6h6S+3wm7+r+J8N\r\n2eyWflx+6cMfAorJF13y2U7BrTLpcPCigktjPpU7FO9hPfz/gErifA19LRaf\r\nUxPMfj2ccciVk33fqqjV5m07IU7fM29888d6n73/5jSiMR85C7Bkx3ftdE+Y\r\nrgjlobJsBNz636S5imwr+Co7D1LnkcgrYCd5D/k1JX6VCJQloxUdfQP0Yxvs\r\npwmCCUV1QoUwVTDpakVeUOPL7yYXAGOWUOQ=\r\n=zvC9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"4779534ec4f3963855166ffe45217d48a827dc92","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.5.1","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.0_1649144361699_0.4791725220932683","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@briananders/two-way-merge","version":"1.0.1","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.1","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"141bf08e68571637a05571e23e3f15bf41584cbc","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.1.tgz","fileCount":5,"integrity":"sha512-TrDu8ZPobJ3St3KdFjNV92NnYmO1EYyA/W8hvqirYZ4OD6f2toGwIqT+hx8wSJNfae9rYfZJN3qHSFls1FvSOQ==","signatures":[{"sig":"MEUCIHWWeGSt6CaFGQ7kZ7jcvPDIJobPlEXCi97FqMHmrRweAiEA1xWCWwdFvtSPd4ZnUpZ/RxqtdYVny2EpHH0l5tSFqLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS/MxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEaQ/+O9Zw3VJGO7qMc9Yf2kN+zIC1CR2+Q1DPd2Psqes9998XREzC\r\nnUoye9o3ki4pqppfFPRelJHIU6q2on0ydlOA+RP1Qz0d9m/mNk8GvyBGP4pq\r\nJBeJLeKhz7u/m/VXDTtKxaQ1Xc3digfUpmBrEh7A5EscCKKdBLoAx1cgxb42\r\nY9M2VAbMy+T5qwi9atoN5ePg68GduaV717X9XeBNKwQhSoe/J02wwkQPAGyi\r\n2ziNtq5qDZnyJ8ezGbIr6rwZQRVBulSG+VPxKijM90JQYeDXuNkaWniUodnc\r\nVd3Pu92vJgnmbAsGFq8FHYmFArnF+JOVE1yHw2no4pVOB6dgAXb5EKDNVwHY\r\nAFTxNxAPl1KEhRv1SzFaUIkJDQYJJNz6i+VFl2GckIRf/qe55+KgzeGqjkhW\r\nubDxvMsRaxx8KhtPaLw2XXtMKuhBacKT/ERCePRANe+z/S834djEibUKeTIm\r\nroAC/BMhWzBgrhDrNTNxmx+B/vbnvpTJIPB16TPdLa13b6tFXtOXhDucSMNx\r\nsJM3bGbhXMy+aSdo8NgGhG7IzkkHTjji65XXA41CdakCtgs5C+TKDWDnDP6c\r\nC0OshQCHrHUcEg3lCk51shb/3QbAubMh0PFBuNmaTgkLWDrWIz9c3Mexq3QF\r\nAXfr1kVg6mqEq5GiuDxvFKRZOaOJYeACJrE=\r\n=uzTx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"336c15038bc93d9066a51b9149a6884f005a7800","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.5.1","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.1_1649144625679_0.585473883626191","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@briananders/two-way-merge","version":"1.0.2","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.2","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"cd32f5a82bd0693b1ebe25a37c66b9db4d858934","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.2.tgz","fileCount":4,"integrity":"sha512-dYubWdkxePkl0zHqrMYQ5DqZAK31/hdZfEdtUhMlkOgs+LfM3kFAT4aM1j45dH2+jpvCwjwURkTk6uUlQqJyXQ==","signatures":[{"sig":"MEQCIHIBoAeThyDxGDfkt22wXDSzhZy0oM3P9yJwSb6vQOSnAiAHNlwhF13CZ8++XjXazOLGM6equyAfyYjsOZdX7pbdNw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUOatACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorYQ/6AicjGNhkLSYBBQ/7Pdn1rYFemkjjKzgNSYZM99hHEYEcSA2A\r\nURnlFwMiFBtE0aEsUe1M42slN9asRp04Mi8rPGMt6TkcdWFHY/j/pLrauOBC\r\ni6B/g4qcNypTs+WDuAX25ABBL4pwrgRoX0OtI+PQnObTSuyWyHra733Obv4S\r\nMP/QA822eGnMOXbKTcpduo1rLXGJP14fwgUjLjV79GEyOG0oT4ztWCDoOYvr\r\naZH7krgrzw1T8JWBJCESHvPknx0igD4uVqaODlgqrX49xMOlYOURaac/LHnT\r\nBkS/Yxy0c66aY0VbEWiWWoTvO1v/wOV/ePJs8OlwfZeXd9sis8QWWv4KYLL3\r\n304h2xsC6aUGmHpy2an8QQV8QnNwQ/h4QbjcYO01WaiK8GV0PhsqqYFlTOtI\r\ngG0jna44vyaSjx5JNhzeyWv+WflmRvEPYptz1g9/N5WzB/VvkQw3LpEz6Vo4\r\nzhBvRh++O/7VJtgUUStzfkVmaS/MJxeCxyj1WcDutoIBApJ+I5VXFkbGo7hs\r\nWemsgNZgZ2apanZmjVK7bYrDHY0Z9NmRmL5TltFJ9BUNWks+JZMVfzTshp+9\r\nzfYVSbE4sPG5UoJD3sp7J8MTMWWS0SeLcN1aRwb7ujDed1pMIj2mntx4JSgE\r\nVmYOq5hu+RnYFWSx/o6maRk+ZAi14YLqEF4=\r\n=zQoK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"1d6e3d3d3eb97c8d9f769f0456c67d6ff68f2f1b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.5.1","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.2_1649469100877_0.537638734950804","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@briananders/two-way-merge","version":"1.0.3","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.3","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"f87a63118f0af1c0dfb9ccb58177088da5064487","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.3.tgz","fileCount":4,"integrity":"sha512-Ub/WGxmUF86rm9K+BD/lmQwpniqhMPBXrVF3v+x8NsdFVdio2igRephRhw908AyjSiMjIuq/vQaRnhnjbbRhNQ==","signatures":[{"sig":"MEQCIFzGslZvgykgmmQfitjApFFqoeOe7RDg1g5IKwqyy5jQAiB9TCrHPkUBUgyc3HRxrgc2/a9KENBcKXuDn13ZjluC2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUibFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVaA/7B/+58JkxEqYob3+5HB+9+lUYrnQY7zIRf587m29XtYQ4YOYL\r\nKBxrg0eo7NOi43ICFbaRTfXJlT85TMHlIcj42vhLo/je6kFEtsmOTtsph1GC\r\nn0uDNjcVX5Y4dafAs0Eq9qJIr3upednugK5nZit5zbXGj24vnxglZBeIbjTi\r\nE1DybEsyw9wS5Dc71dvxgCB+IjglvFKDUnFMH4AGDws3Yg8un9yfA19Os/Bw\r\nUxsSdOKuN5s13II83Z7iPEdk0yC/QSfji6VW+pr8nC4M68bDpfK/nP5HRT4/\r\nScn5oUMyE3xXNRk4313G0qaqKTbcegk5gI+ZmBi1TFdDkDlatKUKz38i3vZn\r\n0lRNmfNbmGNS9oRMiyRpP27DIkGb1UiXH5YHljl4C1ZrA4buxT5inbVsyBBz\r\n4QViICc50cvAahObjHC/VWSRn19L30bbH5FQHHbBS8vjVBuD3LSxGRD0JiIe\r\n3VNwTmR/LwyMXv1FXJAyjf2y9ibZJPR6wk9eua54NxuMn32nHcJR161idoJ7\r\nuYmRnIylYxsLS1+68tW+Oai/5VUqCqCBB+ZASZN4CX+BYIcAwutakSrUzBjA\r\n2ekOshxLmWCqlCj2//PomlXL72L5Wh1U/Ot7hNRmsAknm2Ywmeis4B6PrDX7\r\nRG1DoJYSJBwAJm4RVMgPOWifouieQQP4cNM=\r\n=c2jZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"ddffd8fc5fbb64b600f12b694390cfdea9e4d6dc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.5.1","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","crypto":"^1.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.3_1649551045219_0.937589715571761","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@briananders/two-way-merge","version":"1.0.4","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.4","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"7bf5237f31930cfed114949bd48a79f62f47157a","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.4.tgz","fileCount":4,"integrity":"sha512-lqgCmDIhJW3xrSUp81iqtNFBKf1oS7R83J8K8fS1a5VkCGrnnqhe1FYovIucd71aaZev0eK06UDFzMaVge662Q==","signatures":[{"sig":"MEUCIQDb4uGYzVHWQDseeHgR7YZVGqT5fA+nyBHLfNfpD+dDDwIgDl7PRuKhvSsuDPD/mrr/u72gmfUKBc98fF3UpwyPiO4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVGQGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqC3xAAlIGb2h+yMIDXE+MRf+Nr8Id7N2Eu/fo/1i7/HgkTvngkjZTa\r\nCxGWwL2iUishZErGbxZ9u3LhD7hkxOPsH7WRRswBYFnVS0F4oAOBP28mkc/O\r\nEH/4e1CN0i+eLdHGnMYf2LMiTSCptH2O+RgvxeHuWNiCCM/3WP5GR3koR6Ht\r\ncD3OC6fkexrOOqvHSPeuDl9gmPdep9Ie/D/vbbrrY7J0x5rWUjI5Eq47VqnT\r\nJVNOswO55CHMapwoePRuNG+rbWDnrL22syEerew4TF1X0S7Glda6JdNgWwhT\r\nYNb0uJshH88UDq8w56Oq4u6qcojoPEy3sJKw3KRI0VRtZgtKT5ki1wbF0Mug\r\nMpH2E69X2JxERA9Uz2N94ekvja+qKv/DBDryrQj4JXh5g6HfDIEIYr1sLfAW\r\nWwZ5hJ3zgLTL1uA2Fn7zjHglgabLdh5I9LXZ1KaVg2TdtToM8u5kOA3nysUu\r\n0snL20AzZnBrExZ4VLEIF/2L8w3DQ6BWsS+RGCyi2GwMiv6wH1pcNdfLyoTo\r\nAjzwz1NVvI+5zqRIZR9laMqHJ2QeZ9eqQ6v7PT5WRinSbXkQSd3P5oId67Fa\r\nSrw5NEHv2HhmKsF6dN61betInUHoKQsVu7T8FXPMhO6fmcYmqe6Eju48ajPz\r\ne7emf4BaOT6D7SXiaQjMkVZNI9p4d1dS+f8=\r\n=PN6Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"956bf79f03a088703edfeba0e948f37fba20f200","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.5.1","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","crypto":"^1.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.4_1649697798429_0.6781571874125498","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@briananders/two-way-merge","version":"1.0.5","author":{"name":"Brian Anders"},"license":"ISC","_id":"@briananders/two-way-merge@1.0.5","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"homepage":"https://github.com/briananders/two-way-merge#readme","bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"bin":{"twowaymerge":"index.js"},"dist":{"shasum":"75345645914101f9271c53be99254f4c97276bba","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-1.0.5.tgz","fileCount":4,"integrity":"sha512-FvGPqSqpxH2HITpxWmBs1Ne+ktIE2RX2BYP35p/WeUqnFqENPXqlMMllPRAfsMomSU/U+Faka23S4wOB/kXhIQ==","signatures":[{"sig":"MEUCIA6/LNvC630ql2xvH6WfljVsiPpXWspfVYp3FVFqscM1AiEAvQTNxob9sSFUDzXL3DNUTJsVc09UC5arYXhw8PKoD/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4OvWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQWw/9FegmaXIXo+hJF0X0Z73HUCr4wrdpfzIxgWGW9Hr5uuxSfBAL\r\nllKVTPhAsPJsqhdXZZWJ5xIzr+QCEJJC3yCx6YcSifcT9DKYwB2EcpDeDggn\r\naz+K7IPQbMDBVt/F3r8nbQRnR6y4/K0se6u38K80JSA4wM4fX2jkxkY47y1F\r\nAksh+G76YRKktXNCrzhRYnAvmEEx2BO/o5i7+79cOepmU2/KLxodXTQo2wsb\r\nTh3/HzdZxY61tZfRl8w0OoTL1Yg9GH+IVg3kKVT/xTMcmHzbeWVSzl/cRgff\r\nr/LZQU5hRsNplylW/Z0jPVc8Xat+rsYMedACtS+nqNpbHjEi0VYTHgZHjSpp\r\nf3gNjDnSNVcvawgDKiCQeBADZo//5A94uaYkfQmivKCDvqprBcmvw8udNrHO\r\nCNtozPlohzSZBo9bsCZtf85eKAJzF8dcO2U47OTX6B+OuQcif/o7YXnbfe1Y\r\n/kq6Ab9WbkUezIgVN8Idi1lZsvzEF8fnproFLjQSoOL2qBJ9+/VAEKXdRZzn\r\nLSGvPCSFktCQQoYnqoOpHfZ5c6H6Oqg6V4y1HyvUx9QXA4YP4HDAhDZ8ZNw6\r\nxeom8n5E59u+V/nvhqisoCDEpAyH21bfMq5ulC/oXgp7fLpdMpVky3lmI1G4\r\nsa3lTpEdgJZvdpQ6Ni5U2WIf9zvfltoIgr4=\r\n=M+XH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^17.5.0"},"gitHead":"4ca8ee197a71a4f4306024f0e6e399ca32936c78","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"repository":{"url":"git+https://github.com/briananders/two-way-merge.git","type":"git"},"_npmVersion":"8.15.0","description":"Merges two directories into each other","directories":{},"_nodeVersion":"17.5.0","dependencies":{"glob":"^7.2.0","chalk":"^5.0.1","crypto":"^1.0.1","utimes":"^5.1.1","fs-extra":"^10.0.1","commander":"^9.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/two-way-merge_1.0.5_1658907605990_0.7883023486013725","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@briananders/two-way-merge","version":"2.0.1","type":"module","description":"Merges two directories into each other","main":"index.js","author":{"name":"Brian Anders"},"license":"ISC","dependencies":{"commander":"^12.0.0","fs-extra":"^11.0.0","glob":"^13.0.0"},"devDependencies":{"vitest":"^4.0.0"},"bin":{"twowaymerge":"index.js"},"engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","test:watch":"vitest"},"repository":{"type":"git","url":"git+https://github.com/briananders/two-way-merge.git"},"bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"homepage":"https://github.com/briananders/two-way-merge#readme","gitHead":"13ed230c4fabe63c640c6c55cabab22740246bad","_id":"@briananders/two-way-merge@2.0.1","_nodeVersion":"22.21.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-QXY+67gh9FgGpjRcz/hb+6UhfC2EL23WnbmST3erAowwUF6e+TaztWTaKu7xKIVHHeWoLccwAVDSUU7TZbUh6g==","shasum":"521b7832f83a1a41fd55b4976af93140899324cc","tarball":"https://registry.npmjs.org/@briananders/two-way-merge/-/two-way-merge-2.0.1.tgz","fileCount":6,"unpackedSize":35577,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIExyt/PYdnXbeOBQ/cYJ+/t93NZxHroJauijGGMC0aVYAiEAhCpmqYnowIXsJhPdASD7umQv/EKLycgId4s4OOWMInI="}]},"_npmUser":{"name":"briananders","email":"brian.steven.anders@gmail.com"},"directories":{},"maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/two-way-merge_2.0.1_1772869367493_0.7172572999415592"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-05T07:39:21.626Z","modified":"2026-03-07T07:42:47.740Z","1.0.0":"2022-04-05T07:39:21.869Z","1.0.1":"2022-04-05T07:43:45.821Z","1.0.2":"2022-04-09T01:51:41.042Z","1.0.3":"2022-04-10T00:37:25.375Z","1.0.4":"2022-04-11T17:23:18.590Z","1.0.5":"2022-07-27T07:40:06.269Z","2.0.1":"2026-03-07T07:42:47.633Z"},"bugs":{"url":"https://github.com/briananders/two-way-merge/issues"},"author":{"name":"Brian Anders"},"license":"ISC","homepage":"https://github.com/briananders/two-way-merge#readme","repository":{"type":"git","url":"git+https://github.com/briananders/two-way-merge.git"},"description":"Merges two directories into each other","maintainers":[{"name":"briananders","email":"brian.steven.anders@gmail.com"}],"readme":"# two-way-merge\n\n## Introduction\n\nA CLI tool that performs a two-way sync between two directories, making both sides mirror each other. It is designed to be run repeatedly — as a cron job, for example — to keep two locations in sync.\n\n**How syncing works:**\n\n- Files that exist in only one directory are copied to the other.\n- Files that exist in both directories are compared by content hash. If the content differs, the file with the later modification time wins and overwrites the other.\n- Files with identical content are left untouched.\n\n**How deletion works:**\n\nTo delete a file from both directories, create an empty marker file with a `.delete` extension alongside the original file. On the next sync, both the original file and the marker are removed from both directories, and the deletion is recorded in a manifest (`.two-way-merge-deletions.json`).\n\nThe manifest persists across syncs. If a cloud service or other process restores a deleted file, the manifest will cause it to be deleted again on the next sync run.\n\n## Installation\n\n```sh\nnpm install -g @briananders/two-way-merge\n```\n\nRequires Node.js `>=18.0.0`.\n\n## Usage\n\n### Syncing two directories\n\n```sh\ntwowaymerge merge <dirA> <dirB>\n```\n\n**Example:**\n\n```sh\ntwowaymerge merge ~/Google\\ Drive/configs ~/configs\n```\n\n### Deleting a file from both directories\n\nCreate an empty file with a `.delete` extension next to the file you want removed:\n\n```sh\ntouch ~/configs/obsolete-script.sh.delete\n```\n\nOn the next sync, `obsolete-script.sh` and `obsolete-script.sh.delete` will be deleted from both directories. A deletion record is written to `.two-way-merge-deletions.json` in each directory, so the file will not reappear even if an external process (such as a cloud sync) restores it.\n\nThe `.delete` marker can be placed in either directory — it will be picked up from both sides.\n\n### Deletion manifest\n\nThe file `.two-way-merge-deletions.json` is maintained automatically at the root of each synced directory. You do not need to edit it manually. It is excluded from the regular sync process and is instead merged (union) across both directories on every run.\n\n### Running as a cron job\n\nUse absolute paths to both the binary and the directories — the `PATH` environment variable is not available in cron.\n\n```sh\n# Example crontab entry (runs every 5 minutes)\n*/5 * * * * /Users/yourname/.nvm/versions/node/v22.0.0/bin/node \\\n  /usr/local/lib/node_modules/@briananders/two-way-merge/index.js \\\n  merge \\\n  \"/Users/yourname/Google Drive/configs\" \\\n  \"/Users/yourname/configs\"\n```\n\n## Dev setup\n\n```sh\ngit clone https://github.com/briananders/two-way-merge.git\ncd two-way-merge\nnpm install\nnpm test\n```\n\n### Running locally without global install\n\n```sh\nnode index.js merge <dirA> <dirB>\n```\n","readmeFilename":"README.md"}