{"_id":"lazyrepo","_rev":"68-f3eebc1184566981bd910f806fa33bee","name":"lazyrepo","dist-tags":{"latest":"0.0.0-alpha.27","canary":"0.0.0-canary.c67eda9","alpha":"0.0.0-alpha.27","latest}":"0.0.0-alpha.17"},"versions":{"0.0.0-alpha.0":{"name":"lazyrepo","version":"0.0.0-alpha.0","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"main":"index.js","keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","tsx":"^3.12.6"},"devDependencies":{"@types/node":"^18.15.11","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3","vitest":"^0.29.8"},"scripts":{"test":"vitest"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.0","_integrity":"sha512-ul4UiauQWcbLrSfwsrlU6XaF30aaYiquoeVuoDvVbELsHgKSGR3tHmb8eM/PRHVvQ5aZgg39VAZn+SMhvBaVpg==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/4c9af09dc55d0c188a8fa6d2d35fd986/lazyrepo-0.0.0-alpha.0.tgz","_from":"file:lazyrepo-0.0.0-alpha.0.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-ul4UiauQWcbLrSfwsrlU6XaF30aaYiquoeVuoDvVbELsHgKSGR3tHmb8eM/PRHVvQ5aZgg39VAZn+SMhvBaVpg==","shasum":"74a46972ca8d42abb5cd451d493400e728d79698","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.0.tgz","fileCount":26,"unpackedSize":47129,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEUZwjHRj20J08ntecffSg/D3rS44vLqaFK5X5gbPRcEAiB8MNcwaDnOD3PrG2zYyogu6ZcTwi0NdWFWn7VXdyun/g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkL+c6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsRQ//eXqBPowz8bxM98AhAGiq/c4Ymw0Yetx7DkJcSjqsblpDxbTj\r\n+IxrDaog9B8DzcB1OHaWd1a/s+ZszibXrAxm+Q15bNNKdiSXl6mJaaxZEa1h\r\nYSX6/GHksBrcWAINMwttrKeOzvuUCOKZifPRlbLsoUn7pRsSAYsPlwHIkxXp\r\ncQ0XCs0cpy4yqyDZOnVxefBJPLSyTMgTIdm/W0F2i3aefgAc4QP0TAbSw2T1\r\nw/74tA0PTuaYMZciK0tMiQynAE3n+T3+uqpKC89/Ftq4pZczHrynjVrFOTj/\r\nAkSv69OzAyVaLtgbX3kmLzecHCdwiQFlze/61fiIuN2NNbIFlP6CB6EAWiar\r\nKnxJ/IGR8gRfQOhJ+bvl2crH/owKaAqp9NKaNJpOJqa/r8R1O60fkOaoSgGN\r\nI7NjKJ9rjshmlTFafxakmaPvsen3XPH5P+EJpNVloW0dTGgf/bYSM3L92YH7\r\nZ17LIV8oKPY24f8JtY4GYvRlpMN5Ixh1E6RB67/BVoW2EhAGj/RgzvvHzdBA\r\nCdM3rAkrZUyGAOjvG2rKS5mdpl24t4toM0mSJhZ7T14YI40prqvqi9HKyScE\r\nLj5//FUOfptdu3OAhRFHx1ZCpo2y2UP9/MFnYNZYwfj0XAR5YpR5gugmudNQ\r\nqw3wd+25+O3KHq+SrZfpYC8FJUwsS/k3xu4=\r\n=8Leg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.0_1680860986286_0.40681213230338287"},"_hasShrinkwrap":false},"0.0.0-alpha.1":{"name":"lazyrepo","version":"0.0.0-alpha.1","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/node":"^18.15.11","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3","vitest":"^0.29.8"},"scripts":{"test":"vitest","format":"prettier --write ."},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.1","_integrity":"sha512-6tHbuQNw/raNef/R/vE6IghvUY2OHZGdVP6xYBxr0PsEKpwrQRoEzhLZwyM03vsgPmGAphPoQlOmb06NbaAtvQ==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/743aa2d081458d7ba8ed95d653311a51/lazyrepo-0.0.0-alpha.1.tgz","_from":"file:lazyrepo-0.0.0-alpha.1.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-6tHbuQNw/raNef/R/vE6IghvUY2OHZGdVP6xYBxr0PsEKpwrQRoEzhLZwyM03vsgPmGAphPoQlOmb06NbaAtvQ==","shasum":"546119d3bd237f42b46277d25b9547a03c49507c","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.1.tgz","fileCount":29,"unpackedSize":85446,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdWw6rkzIE6diH5zN8pmHPmFjUpflfTZSb41JYi4dEHAiEA000x7clnhE4CUYQRveecGRZqh/BEqCxStDnaqDPkLIQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMI4GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoiig//cWIU96EGF4cRlSi87BCSpK+FuBdiPo3FUqOIIdrQ+vhTaPf/\r\nAm4F7tvoMyShLK93idcrOZ81qNv1jrX4Fq88dnjNtjMq9Z30oU+uLB5H3o/7\r\nqryfBUNM8xo83ZgTqQLy7E8vvg9SxfqD8BBFzPL++f8bfySGi0EBDBHGgHhk\r\n7adgvl5EJ6dAPnGWIWmx6KAFCUF1udMq1flfGYforveMYBpwaQ/XB7dUutRv\r\nzWHBPZCyfDZaucmi/IrNq3+UK7x6wRNUp5CSQKKdtTTIvBqCI9Ddt87U+J0v\r\nLue2XNpYy9gRn6p6Gl3JECMUE1q2y01LD74d5AvZxMAT8EqkPGTW+QRvOlzf\r\nV+Z1G1YKhrzv9Z9IVnycHaLx/+rI8W7cU20p2tjVKJyhTGDtVIEeRrWpqawd\r\nNVisxDcm6SYtOTN4lZaz9gxbCoUbFBE09yziG6aA6HCzRZec6W9sss5nxO/G\r\n2tKj7vAhC3XYs+s+uC9NpGOZLousOzXHZGnZy+EPWctAUT/sFRcFV6EG+xYZ\r\nrQgbFj8HOMKX8nWmx4kopingG1DT8sxKu432SMaPzHCAtgpl+ty/WyedSip/\r\nZujfvwMUEMMChP/sHOEwenKRSx3OZGSRibJsIqbb6px9eaD9gq5krV1J0MuV\r\nP3qtoUXyDXD9/E0W8JfMQ4qUOrVPwszgeXA=\r\n=XMim\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.1_1680903686370_0.32305106215234924"},"_hasShrinkwrap":false},"0.0.0-alpha.2":{"name":"lazyrepo","version":"0.0.0-alpha.2","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/node":"^18.15.11","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3","vitest":"^0.29.8"},"scripts":{"test":"vitest","format":"prettier --write ."},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.2","_integrity":"sha512-85kEJvcKj1xRwxJJC4bBY5ikC+ye7sTEtqTlavkLi2rOm+NNOwj2CeeR1qlTA8QLGANidjSdZplWqAINHa2PVw==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/9dd6ae0d97a75ff85b75cd1d28901ce8/lazyrepo-0.0.0-alpha.2.tgz","_from":"file:lazyrepo-0.0.0-alpha.2.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-85kEJvcKj1xRwxJJC4bBY5ikC+ye7sTEtqTlavkLi2rOm+NNOwj2CeeR1qlTA8QLGANidjSdZplWqAINHa2PVw==","shasum":"4cbef8135aeaea21ddd05a76cbee1b5f1605aff3","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.2.tgz","fileCount":31,"unpackedSize":89559,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdq3gykdN7ldMK4YnViGetJblMhV0fwmCVrd6XqGU4MAiEA6CWmZ3P6pW4lvnE0cawjg+AJE9wKnjPagqv9vdAVDec="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMTx9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9GQ//dICmuliIOhvhMWlSm7joTgu97y5y28GiIYgnjmm5+XcCl79X\r\nfFgD58mTRqgt6CKet5oS0KZ4OqJ7u0vxBB3lhQ1FSUgIe9C3EsLE8UXmYhXG\r\nywR+jzZab+ysBUDDO9/0OOmRHEu6Tp5F0omqWrSZ6CePse+BjSEPzmbw5ugH\r\njYAeh3PEuxJDIBBvCSWdPBJBBazTh9TZqxrOg8s/y2ROw4oR9ROZ2G6kYvJl\r\nfqLwUW9sMYHYzv9Hx08KKwv9GdK1yNIhGsKAhb2MH597wnBz3OSG5kMn+waN\r\nDBvj3dZSFMrsOQ4/GM/naf780tTnlqOt3ThnJj1W0IIVwP3viAqKj4J8vltH\r\nBxpZlEMW0d18gaEBLSiteeU0MX7t2ywUfix8sfyWBDE1AFY7qkirJ2EBtUF2\r\n1mSd5kDARHyem8YSnfM8zJ8xCZ/JaqS0pMM3e5DV8fhzrWDMT5HqZ5wlyje6\r\nptwWoBjJvdEiJ5A79w0V97CSQMwgdnUh5/FysNB1nZD52Hiv+go0YJwRfcUx\r\nbyIo0+GyzCEbzQa+1GBjNUZo+t6Xrq3mBjM2HaAD0Dt1E8d58NFYoTwAzsam\r\nN4/rIEpk6TajRN3DVs6dV8Q5Oo6NpAeQxCzvH8gt/JdTDALlP1aYhjCp5+X/\r\nnovqeI9gkoAjkkCFZGf3onuolYfSJa02QD0=\r\n=fTYj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.2_1680948349386_0.5716326228285291"},"_hasShrinkwrap":false},"0.0.0-alpha.4":{"name":"lazyrepo","version":"0.0.0-alpha.4","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.15.11","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","jest":"^29.5.0","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write ."},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.4","_integrity":"sha512-a05ZDsdY/JuGlIFWDgv20T4V/YmtjuoksKvtwpIEjEmz1SzgKOVaKmUvhnCo6TC88y4CPcSfg8hevu6z6FzZTA==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/32e2bd93e8c0be47cf99d1d910b6816f/lazyrepo-0.0.0-alpha.4.tgz","_from":"file:lazyrepo-0.0.0-alpha.4.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-a05ZDsdY/JuGlIFWDgv20T4V/YmtjuoksKvtwpIEjEmz1SzgKOVaKmUvhnCo6TC88y4CPcSfg8hevu6z6FzZTA==","shasum":"ea882ccc58a46f779d0a13943931ad06df97e09d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.4.tgz","fileCount":25,"unpackedSize":94419,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEfJzkM/5c6nfcWjFE4NEHfwAofX+R6FmUx6zQLJKsf6AiBUMBfRWng2vg1vnULKYQzn5W3iGTrw+NxGg//anv6+cw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMnp2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZwA/9Ek6zzHIrEuJaq4Is/OSDmmgaN22GRGcwX3o9esqWm1JOVadh\r\nMEB7CLK6ABVl12ZQo4oqPVaRxCwPryRWWonnuKkNv0qxqPKXjRkG5w6hWGZU\r\nLv1aQkuH7W34IDK4HngH5FTKXcZZnagyiQoa6T98xxyS/gaHJszuDIGnGjhI\r\nTZQi0hoj3VsFbou52TL9QYKHYJtjn8c4Vpw2rHqorJlwZVNt3WApOUAJWwdN\r\nAtC80coFuTWE8Lkxcl0yGY+ZBmH1+VCkG62V0+Ot5b991UbmPIGYVErlhI9G\r\nnANcEUsrlvzHjDFhMSkRB9Cl/puPa1Zt8jlM+ONaurW3/d4mHfX1fHP548LK\r\nkATryN7t2VwTUcQ1yVOasj6NlrLoj/dSqC7nH6WDXvnAl6Fy/cYa/8SHb7CN\r\nDHQEejcUCy4Cpmg48IKqKJPaDIiigPaw5ACCn6lmYD81K7yULA1Eddp42mn5\r\n7NxKWIIQNBG37UbquTohY4q6o0YfXbNteycPylH2wdYi4/VyGGLh4RtCXj91\r\n8pqZ4X8vx8eRQASHUDvDJ2UY3vu6gmTBXbnQGGp+CQ2eJSpihFGM1A/9QjVp\r\n4Bs+d6pK5zWNgWd1w3cs1758h+5fEz61yvMJtFHoJc2S/IIREmnJNF+aAjXZ\r\n51ndwWNx6asNrx20USnA5HysPB8gjqMH7e0=\r\n=0Oep\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.4_1681029750430_0.04659578166760836"},"_hasShrinkwrap":false},"0.0.0-alpha.5":{"name":"lazyrepo","version":"0.0.0-alpha.5","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.15.11","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint ."},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.5","_integrity":"sha512-u3ZZiLyOiZ14R+wFmA1yUKHfDwRtbiOcvI2N/PMB6C/HFgh+TJSxP6zp8B4fqAUrOFq5wUpyQ3ilfXN6o6oEFA==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/f46c216c1d2bcc353ac427f12e018e3f/lazyrepo-0.0.0-alpha.5.tgz","_from":"file:lazyrepo-0.0.0-alpha.5.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-u3ZZiLyOiZ14R+wFmA1yUKHfDwRtbiOcvI2N/PMB6C/HFgh+TJSxP6zp8B4fqAUrOFq5wUpyQ3ilfXN6o6oEFA==","shasum":"6efa67bbef9b4e2690fd7f101dee25bcac9973f7","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.5.tgz","fileCount":25,"unpackedSize":97311,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJRr7jnzZsx4HZNZhPObhvM4x7P1m/FQhtfWg/gf/lTwIhANGUL2XATvN82WrnWiXOCKQSTPHRtsf4wwDoGHli0AJh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNRg+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMBg//Tis/Q164i94E6ASHABWfIZZ8fbBVMBxzHrmVdUjhMxEqIki4\r\n3EYG9oYGwomiW2cg1m00vtIh69jn06LDekWVu/c0Blf4FpCpe3aVl5FahQu3\r\n0WOMewRCfioW8QamXD2hB8tjbS37wyi/I6tq3YjsBcA5Km9KmBtzxRK/PLiQ\r\nyKfMFK9u4PpGGcwo8dbDb0ICx88AeAN4ambwzrj6xxaJLbky0s4Rehcb5YeO\r\nZvuZW2JpLwbr30xhHSiTQQT5nS6Ce5uPZeK6VeQoqsQPAMWNWjGeoVHEpq+4\r\ngQxSoqTE8u0ixlEm2mRnpw2MCRBLIDQ9jzGC23Uw/DAzf4OmzJ19OHtZQ7cN\r\np6VLWsBrJyWSMKKo9V+mNhj5ybNcxMA8dewgy9xJgN7Qqis8HVaHjjMdDCtU\r\nSB1JA/Irc7+UHDdBGI6KlnYMpO10l2Fm/+Ti8mPCRb8VjLJcwDf15U1qYNOo\r\nb2x6OHfBgmQCL17JIQPMpt9Cgf4U0Jz1e/F0E7r5b4QdDjTwcM0QA2XyDZJR\r\nsV8kgwMp2H4IonKfFcWptLJXUTNE/Z+eR197+brZqo/8GeJC/U272+NdRbLe\r\n6zCYpIBk3Es8rNDVQSlNj4DY8fv7ZUftYZQq4ztGMTmedGBsQRwTBfI2EkVw\r\nPtKP13mBk+huaNKoF7XlGqNWlBPDoBLFe6s=\r\n=IGCv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.5_1681201213897_0.1319086704461483"},"_hasShrinkwrap":false},"0.0.0-alpha.6":{"name":"lazyrepo","version":"0.0.0-alpha.6","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.15.11","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint ."},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.6","_integrity":"sha512-VRHnT5Hbik0kbT7iCHrb5k0Dz8tehsQ25MyU8QL/HELIFsGyPXQ6wgtn3hpeNmpn0CUUOBleKjLI5VH2MfgfSA==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/622f0924b72abd3048702cf0ba12040c/lazyrepo-0.0.0-alpha.6.tgz","_from":"file:lazyrepo-0.0.0-alpha.6.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-VRHnT5Hbik0kbT7iCHrb5k0Dz8tehsQ25MyU8QL/HELIFsGyPXQ6wgtn3hpeNmpn0CUUOBleKjLI5VH2MfgfSA==","shasum":"4713b70d04a535fc5c66f8e63a4d1e43590ccb3a","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.6.tgz","fileCount":25,"unpackedSize":97677,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyONBvC8nq/GN4VRMFJL00kcVuGMpGZoYcw0kdbCOauAIhAKe/vXrh+JJG1nsntRmC113pY9NDoDxbAj+cpbYrz6qi"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNR5DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiGBAAnh+JiDQKbOlqqf5k5zvUAVnoV5jqstFScd2q/ePSsKn2kh9f\r\n0HLXxZPDRkeHxHRc3rt+8nS6pVW2UrUeW3VDdkBiwVvEDlBjLfZdeyl2MomC\r\nZ5+zKTVYSrymuQHGIWhhvJ5m7WjwwM5WBqOALdy8zJPD4srkvqL7v2B3Q5jq\r\ndTdnJ4l8+q/+gYqk1CpHF3C+QPQwu5DfIRqXb9OoyLEJE48o3y5giKcnbopl\r\nmQhXkWRmjzVOqC0/D++Vp7Q1Zwcxb4Zg/bNgSsaDZWs31virYxbBd1mJsFlk\r\nnFslCV9j5kc8QCZ2fLKvJgJD8g/7U5uj8gD8o4YiudD3yWMwq8HIxI2oTiQP\r\nI2sLPrkLiBO6Of34geNY8PGFZfJg6GxzwaHE87uhpVZzs2sQ5eFEz+9c5QNs\r\nvep7MgY0cJzEcOU/U0OlI6aLevcdVTc3NdISFn2ON7nst5gcN2yHLc+TdIrN\r\nQywJfBxp11VfkpmZWCiOTliVXUPrv5mBb8GFJm49D+T7OPbB+ualSHgQZZyh\r\n8h5K5yYC23C2DppDL3jLi+2DVz4M7XztdeYQbk+AW3arMlehlEo43AbuvLE/\r\n2kiR9UsY1u34pR62mXVS7P1ZMAdFSodZ0UWmJASYROg60TGGT/QsgU5ImVLQ\r\n/hLPxT8owE6j4P1Xz8cs19Bbhg3+rTViXIU=\r\n=Nwg0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.6_1681202755462_0.9705343388551209"},"_hasShrinkwrap":false},"0.0.0-alpha.7":{"name":"lazyrepo","version":"0.0.0-alpha.7","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.7","_integrity":"sha512-8KcyoT4Gx+wIIDfS3lIo7YrqgE4QqGupU38OuipqFIiYNjqxL8VtJVJD72N6IXhuZXO9A5eZSgDbAoKmCVPMlQ==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/afc44ea2ca888b2378323aba2c0bfb76/lazyrepo-0.0.0-alpha.7.tgz","_from":"file:lazyrepo-0.0.0-alpha.7.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-8KcyoT4Gx+wIIDfS3lIo7YrqgE4QqGupU38OuipqFIiYNjqxL8VtJVJD72N6IXhuZXO9A5eZSgDbAoKmCVPMlQ==","shasum":"89ef386d98e1e20c3b0a5d3566bf8044776fcfde","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.7.tgz","fileCount":26,"unpackedSize":100320,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8PWp9VJZPLAhO/IiczV3CwO/sfRgIr7ti+h4fcWL2wAIhAIOD2ujXYIb92DS/0eynNtg6mfTydwUR9wAKQlASbQw4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNYuEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrM+xAAmK9QdtF36KgnjhtMNWh6bbabku/TyVFf0oTbpBvHcR0LcoNY\r\nu789BCVpqhmSTG9s0TMiFlbO/EKJGTwhHsxxCSkjT3aNgDFBfoHGUmgQQ6Wu\r\nmnCmiEQ4OUiVKQ55qiCVFjedY+jml8t3cItWIufrvwZaDlIFhSZJ9zqvXzRR\r\ns+b4g8uUT5S336CwLFDhmVbD0YJ3sZqdvZCCdNJmvriwNkPSb0sOzV3KajkY\r\n8eGhyygfi9GTzbMo65KTcwozSLu5KCccp8QPqCKJZAmDqEjdDxMGcX+tGq8t\r\n5GHdwuQw3wGNFLXyYiflXnWvy4Ri48r+hT/GyM4+WqCzF5/UI2UKLKHlfebf\r\ntAFye6apgb2FiKRFCNPZ4kKBaRC+cKuxj4Pm5XoB9v/yaRlfAKkpws+6pS7E\r\n+Gt3x94Rw7bDqWhrWcEAj52gpZjdk1DRjzUtLDR+NwMd2YZnE7gpNJCjBKce\r\nE8OYQ1oQKqJAB8o07aaznqIkVJ2mEeMgWOquLRJlZPB4xz8G9RZeckBiquVS\r\n/6GTgOoYvVeHiPbBC3HIclPf7Lxl6cYwLOI0n+5wkeHsm4z2nGVGBnZgHVPZ\r\nXf0VkuoMjMFuWIj1P2UH7q9E0fQ2DEAJlllCcFYwIbFZ21uTKhJ2vQKD3Ja0\r\nJhBFHaaIsEc2mY4APEbEy7n+I2yv2Rb+fQs=\r\n=EQsv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.7_1681230724072_0.5809163145675473"},"_hasShrinkwrap":false},"0.0.0-alpha.8":{"name":"lazyrepo","version":"0.0.0-alpha.8","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.8","_integrity":"sha512-otxU3vlJ8i+7ce7ywc5elcP/5Ioo45iVrMc5BtCmqwxQfkNXMvifFdPDmNkztHHY2NEbD5AVuN3TM8r0pBY3lg==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/c50233146f2ab6f4a8589d5f55de7d47/lazyrepo-0.0.0-alpha.8.tgz","_from":"file:lazyrepo-0.0.0-alpha.8.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-otxU3vlJ8i+7ce7ywc5elcP/5Ioo45iVrMc5BtCmqwxQfkNXMvifFdPDmNkztHHY2NEbD5AVuN3TM8r0pBY3lg==","shasum":"937f99a56125be0886399964c614384dcfc8ef90","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.8.tgz","fileCount":26,"unpackedSize":103503,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1r8xElrBSeN6vPD+3JZDDEptPDR5fYG4360ZMQ7EN8QIhAPFoVsrPz+HJcqdA5q1srKxQcMcOU5S+3BmNubRo/gnj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNsjSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6Hg/9ERaKMObNTow/qlymXbV8QuP/4NG+JwQk3A4eZQZ5VidUGozh\r\nLWbSmWSoICD/0GXkvzoypdymoNoXcppSTz77RkqdB1sWBOWL1zbzLsXJztFa\r\nYyUgtDydhiB7F9hflmUkRAsq8lPvDOOaoAYemqnO1VHMEO2N9Z8hTpdWPcAV\r\n/PN77FOJBw4xylGZNY+tGlTB/rCSxlfbczCusJuL8IOP7Vw9TPWdc/21TZ9D\r\n1WIRyxqgvVu/p4byJMnbIiteY4LG/+sAgjaDf2IyW7wULZ5MKDCOWB3LDQK1\r\nGVajCkV63LfFWvjd+smVTOto2Jjmp+0PegPH4/nIxv6o+Kd2oAyoNnjjPF6a\r\nO/hWEjc1utKb8xCR9SMM00DEtYpya9BBf6f6fo/uuyqg9ZDyk2tFTCpPH4NU\r\nBy++Zd1HdLTc7oCfcFlDxn5inl2e6n8h7Kajv/eiild1E+7lXwGQUaBf0YVn\r\nYWAzR2LEkI3+p9sAiJsQixSioaZZfSQ8vf2TRLIyLnpf0BoVVVwgAZB3lKXw\r\nVzLJ+irMV1wIdrwF093tVp3pMtLEogJWHuGi4fDVOBtjgacU3TQ+ffFoWKFB\r\nkkSyN5fhdGGTjOYMruaVhBqJPFD3FlmS6QHcWFXWM5O9mQoV3R9TEiGqg9/V\r\nGx5rVjwVHs5X44vNHDCsFvcFDUqZWWlT3ug=\r\n=/Cx0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.8_1681311953906_0.2327607485344918"},"_hasShrinkwrap":false},"0.0.0-alpha.9":{"name":"lazyrepo","version":"0.0.0-alpha.9","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.9","_integrity":"sha512-3vmVCrhamQYIuk4mOOIofSNhlYzOXxUXOisLhwFf9dEw57yWKIKGShvWTMfZPpWny9uT4u7wmb/zxD5Mdel6mw==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/b7594dcad57ed68f48669649693162a3/lazyrepo-0.0.0-alpha.9.tgz","_from":"file:lazyrepo-0.0.0-alpha.9.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-3vmVCrhamQYIuk4mOOIofSNhlYzOXxUXOisLhwFf9dEw57yWKIKGShvWTMfZPpWny9uT4u7wmb/zxD5Mdel6mw==","shasum":"58f75597d511a0ff50136349f14480d2213b8461","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.9.tgz","fileCount":26,"unpackedSize":103504,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhgaWCEDi1UKHvtY/gm45FYUDYOaBTlfTTfYmeBY1d3AiEA+NmfmxtHcWtTjHrdzaKrsrgVLLavNNi4cvWbAQEM95w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNtOvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoQA//YPa1svppk1HPVn5nRXeLs5VAMK65N1b4iz34WZLdT4c25p3c\r\n2E1Ztylqm1m4j5AAzLYDfm+bkiwtiKgHvwQ3rzbUIztvYYI/MXiMae3bXRKp\r\n3Zcg1Hxj47lnkeSqKCJIMtGkZYle2jjQgHKQtuS4u89OE+YKhywNHnpQfJAw\r\n3IhFFcDPnCnfZhQ/NtoFCfjh4WNCcfYQK7z/6gmH4vy5zJHvSOpzh6uKZ6iL\r\nuCundB+ohMV2PjNp8+FqiotHOUfwF+7oi/ZhsTgpVp+APTu7jzLI2mFII/MG\r\n7yqCezs9RQZWbDZZWH8mjwSpgntoL6q98lCi0458MbaeBY9Z7/1nengyxUvx\r\n86tCKxbSLRiCspd4bZ5lxYtxere/flj7S/NwF4dKgwHUCHBIrl0pn5DGyIn3\r\nzyMBBMC8D3a7QB3mbgazaJH3BzTcjIylk83LSw71Q4uc9qSlP70hTL7Q8JLU\r\nN4J2GRb9K/qE2pif90wlB03OhsgAlKOXrvd+LkgrprqbXAuItSs+k6DZwcyI\r\nBBeN8ptVQMuwjFDC1iAxcyv8xDiar8aB0QTGsRaahX9IUNWtyHasypfF1Ey3\r\nNCdO07gcmX3PvAF82549XwmF1tuonvPNAzTpPu2ZwBwoKse6Rg7TZ5KyyxaN\r\n/sI2lZVu5Fl8RDzA2YxXBWJmKlt3NWtfN80=\r\n=WktN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.9_1681314735232_0.8859105892005914"},"_hasShrinkwrap":false},"0.0.0-alpha.10":{"name":"lazyrepo","version":"0.0.0-alpha.10","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","typescript":"^5.0.3"},"scripts":{"test":"jest","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.10","_integrity":"sha512-ccG1OC0csMgSG3y4AmrQhp3VIc1A3geem2rsafS12mavcC6Nb0Febh9rWRzrU/QUCjCTJNfzVBHaXTk5ht7kjQ==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/c2ced74b69cad6350f7dff6403335ed6/lazyrepo-0.0.0-alpha.10.tgz","_from":"file:lazyrepo-0.0.0-alpha.10.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-ccG1OC0csMgSG3y4AmrQhp3VIc1A3geem2rsafS12mavcC6Nb0Febh9rWRzrU/QUCjCTJNfzVBHaXTk5ht7kjQ==","shasum":"f750c44f917c9a9d479d8ee452370ea67d016094","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.10.tgz","fileCount":26,"unpackedSize":104471,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLFVbTHSpL1hjrNZiawIt9CSlnD/+CcbGl/EFWPt8IlAiEAhcm6LDS+pPW+6N9GWXh5XPk6C3rbssKcbWTH7TJluyg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOR+xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroNhAAlYe27kI59TsnFAjIT2diDngmOg1HG5RRXlVneXylctLaHG46\r\nMI1pVAZfXb9akx3W+Lx3oxNi7nAiuvViQzXzHzIalqJB7jckRhm1dk7WxUVd\r\nxg3ym9Ek1aZU2lDaU9u/H3Lhk76p0hGevHrDcxjGQSV3WP5IerD1IFS4uu7v\r\nI2cgFGl08exyjh1BD4q+dDF6807kxC7/i7vxujBrSWD12bsYRgSvuPov8TxW\r\nmkmIq5ll0gAAG3AYpgx2TnG6QUOqXrP83GUDSXy5kqdh9t12yNQ4Gk9qtHvY\r\nYMtD7ATWG7cfrCXa+3X77SJzui0RKieEQMV1WAIFKGK4H/LbDC9RglNnk3l2\r\nawr4cQ2ZbQ1xq49Fk2bWbynwHQZ/e5e0PjaAEQNIoXBz0j2zmA7z/kPX3JH6\r\nJ4uTInOm5iFr2qUDb3OBW/xIcc75QtCWyxBN0i44mqphKqA2gkSwpCq50d+c\r\nkZ7aNij0Yqx0lkHumAEjAfjgW5IdzNFRTGQTLXWMSSfem4gRImQ7gZwMbVMp\r\n6U3N+Y7su6jdnUMa5B1Q04ot5cr7NC5gU5h90mjBveLC98L1P9fDs/bC4CdM\r\nkiTQ33hO9wxTZ/UTV1cKLkhjx2Lyq7cO068I0aIHPsF4SM6EmWxYrAH0tWb2\r\ntTJfBdSvccrLcS4LMnYOfy67zYooR1CS0yM=\r\n=95L5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.10_1681465265044_0.811036380513281"},"_hasShrinkwrap":false},"0.0.0-alpha.11":{"name":"lazyrepo","version":"0.0.0-alpha.11","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3"},"scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.11","_integrity":"sha512-NCsIHFXQqhAjEoCdwfOgv4bVisTAGNADDAXA6eY1gCetbtnv1EDuPZHBDSYSXbfzvgm74X2y6D7gMU+CuFaiIg==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/0331a6ad8bc004996bf196159d97ec06/lazyrepo-0.0.0-alpha.11.tgz","_from":"file:lazyrepo-0.0.0-alpha.11.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-NCsIHFXQqhAjEoCdwfOgv4bVisTAGNADDAXA6eY1gCetbtnv1EDuPZHBDSYSXbfzvgm74X2y6D7gMU+CuFaiIg==","shasum":"f60c4050b44b630c85c6476107081a9e98bd5141","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.11.tgz","fileCount":34,"unpackedSize":121747,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIArty6yjutaf+TZkmeq2slWrpINWtA1yaFeeCRyazgWzAiEA7EdUKqan3AaG+JZr7/7GSrjokiiNTS+qHDdw1hyW/jE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPUSKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmocPQ//Wzf9//IZpgleKZsvX1epkENRpEVradZHRQOl05O8saqd7mxw\r\ntV9HmiFyN0/oBlt3EqN0zm10EazLImABlxN1d9p5bcb4jhR/SCubzvZMZrOM\r\nirAPDarQh2XvZbp779v6a84ZTiwC74y46EHinGgpDjX2ku0nXQBPenXcvBh7\r\nnEgOlQekAwgcRk9cM0fL3FMu9bX0n9aTcjDqQPob/1Zn1soaIVAC0wcREQR3\r\nFoRARJZNRk26GFQDW7CN6vou+AHJY3ocBGh/CnPqAW64WyTupqkxoHGjmPnw\r\nB6nvXvYBH4x2SWUONLS/KGVV52ZvGR6kc56+Ti3O3dBEICPSiPyPEacn/9s1\r\n5CduIAgUSTgZjmiVV2UvLi7fX/BOHhzwVbtUHrXGSBLfTJiq1R648nFvqThu\r\nLTZh1MGKypDyspOm/rMfgWuKmxq9lSxvJNSBRWMIE5Dt6bi/XbL7AT2V4bG3\r\nbRLbszoiKNemShvYFNbd3Iiqv6H5ce+/fJY1N19PdbJY7He6KB9I/ZU/ri4z\r\n2pAQhcT1HSoWkPgmzan6Op7eJmSXcumIMIMoC8U5RGW0RDwDh50pe8vGjUje\r\nhpElgeKvxpGsXpf+LwyG7N7ZDbhKWsnpkpCXsO4wj+WKP9b+Rlo/U4j3vLAa\r\n53+2hdXwPXkcXU+X3prjmaUXDd9FaWaRH8M=\r\n=4Cor\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.11_1681736842699_0.43444796450351353"},"_hasShrinkwrap":false},"0.0.0-alpha.12":{"name":"lazyrepo","version":"0.0.0-alpha.12","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3"},"scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.12","_integrity":"sha512-tgo6+Fx9QY9VnhZIVc4WM1MppiwKexRpC3oSY764tHb585PquYaQzu9HW0YYsrw+V+JUZ6l1oLQTO8m7Ac5uDw==","_resolved":"/private/var/folders/vy/gwzthhtn2yn54wqrg5nvnr_80000gp/T/70dacbb0fc8148a77daeedd7d84fe7b0/lazyrepo-0.0.0-alpha.12.tgz","_from":"file:lazyrepo-0.0.0-alpha.12.tgz","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-tgo6+Fx9QY9VnhZIVc4WM1MppiwKexRpC3oSY764tHb585PquYaQzu9HW0YYsrw+V+JUZ6l1oLQTO8m7Ac5uDw==","shasum":"89640e4284f508518ef28355ec054f0d53ac9d6d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.12.tgz","fileCount":34,"unpackedSize":121696,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkiFf8Cmk6PDTVedvSk09BAW5cPxnvWJhKKJRBP9pukgIhAJarJOTrdYa2DeagzyIaxijxHda1WB2dSzL6FRcARSiy"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPVSAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJXA//dMmDmFx+ri5a7aQI+XjauRg+1LqZPrgjSt0V9owyKWYTTtpF\r\n2W/0iuu38wH5lwYSYK750lF2I14TVGkHVajY6VaHKjSLNUW5spJe/6tOtzsU\r\nu0pUcIvBt8HHs3/bagssPlOnkM8pbFs77m2rxulpZsPWQoYah14Ki8gFA9Sa\r\nQ0uDrWp+uDx2xnIP6bTT0W3g7duvrwhhjDN57t+Xv19OznlFrb4dweYvhbZh\r\nTGaw2hWrYX4H9th1GVbWb98YunBIBtwa98xAugDyfE6vHNJzSs5w8OVHN0rQ\r\nKrS9RfJ6Gmp5A/Xb86mX8Nn7PnxjSg6c/sT8ojgh0KmHTMkg+8CMHwe9b5Rx\r\nBjaaOfSwHFP58ZkXmoGl4smjapU7qwr4b2ildt0y7sMkzZM17RJeYVfnwc6H\r\nMcCInqBtsRnqJWGjNuLM9qbZlCe5rTrgYMzSi6dXrZXm2yEitmyghz35P+Ig\r\nmh0Zvdg3+VJtjYtLZWHubMgUOm1c345UdHZ+bmJqfpv5H1mS9YDWQ5uFIS2o\r\nC0VZFMqb3W5sRwjXPEViudmBtwDcmYGIjHj8DrOrDMy5moFIQYaKjgFdbNPo\r\nkZ85KceFpUiQccckcdyyd74qvXIKQJaTw2spj5Nsl3IrzNOQneLtj6oNJ2O5\r\nVC6ikfsm1oBAgjWuXD1w0a8JjLEZsHMRSwc=\r\n=d6wO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.12_1681740928179_0.7799736592459239"},"_hasShrinkwrap":false},"0.0.0-canary.cf889a4":{"name":"lazyrepo","version":"0.0.0-canary.cf889a4","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"cf889a4f37a281c5027e04343918b1f4cb1274ce","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.cf889a4","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-IKn51KvcM7dBk6dStpROa12INhA28UJUF4l7ylCdiJR4uXxqFUf93dAohzshx+eszVQMpLTde0kh8NgVqIMs0w==","shasum":"825e1dcb420fe946980d9818ac4202c94cd201fd","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.cf889a4.tgz","fileCount":34,"unpackedSize":122017,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+vxhqHJxgzWImKGCpNqkqATh/c5i+zSOGMymo/NWJRwIhAOtgX8NKdQsCzZrhlyhPbXrgSdB0f9O2BJr6ygGD3Bfv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPYK5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHKw/+LJ5usqXtlL6MiWYkA10thkRd1ZeKNvLrdfrFganLUmvXP4Fb\r\nrIhYYf7JkIWdjKWgHoStd1d/egApqVH1M/hE2v6NPnhAF7MKZnca59qC+1Nt\r\n9KI40bR3qnrr7BEO7+mnZFDH/kBpPT3xh4DxordIgJP96qYfm3gMW60qKTpf\r\nOEyJc1UjmOlg828nS8gEHuUnaZSxlmeQHoqz7qC4cd8ylR9BVeHESWlcEuWq\r\nyqMtxSiQg6Z/dmiuWV88w8BcZwqPjM4MehZXQyCv9dryEeo6cy7PIoTXC0AK\r\nhWEu/3ezGKelMrSJRK4xb1LKsmsLesERei2bs5ruEHB67e1gRvl0Hy1CsarO\r\nhAJk25d/nAYIRw2v9zr8zbf2/84jbu/fxjzBpg43L1JYyIA4Gll8i8jl4tRu\r\nSGfQikFfqtRTrByKYpa/bA4jJrXvYU/8Xdhf3f10Gsff5gUufP3jRPs7jE9d\r\nTvndrfHyv8ynQnKdBgTeMMQGMo7ewZ5s2aYO8mzsMn4eahudkcwOHyF4w59K\r\n9Ik8d3W12spuLyyyBx7t65mYr9JAuWMOOelRo9Bk3EpmAxOL3HSwSMlWf3it\r\nYcHu1Vs51fLmDm8cWnupRmC8BMpLBC0ZtDpubjViP0PdAG+Se9Ns5udQOVKV\r\ntUqVqLVF5aCMYi+NTA8g+56/BHrIxuWHJhw=\r\n=K16J\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.cf889a4_1681752761094_0.06972394208179633"},"_hasShrinkwrap":false},"0.0.0-canary.d9f4a38":{"name":"lazyrepo","version":"0.0.0-canary.d9f4a38","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3","semver":"^7.4.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"d9f4a38615662a688e5b52060fea485424fd080b","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.d9f4a38","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-EXfd6vSZHTNugXmmgmZj9RBwxzWF/Me1eNkEWXm5scJeEHTjXrMC2SY7P2bmw0NT87hpgS2wfx4wo28iin1txA==","shasum":"18d0ec676d1f51c2d836169b35953be645f7b09c","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.d9f4a38.tgz","fileCount":36,"unpackedSize":125226,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCf8M3DigCfQFpwkcvl3MNLICXjVoDazsgfy4J79QEf8wIhAPXNZQC3fUCg2j81Es9nZXzpjYOTk6yFa82KLXzhRZtW"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPaMUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhhQ//XmxJ5BmSRjDa/76lUnq0AwN/pdbRr1y20TufbFZy7fO2fTm5\r\nDOJ1Ujkw8mvDvAwx92of01CtwtpElrwiClD6EZmgBOs2x1HrQ9bGiXTZGtB1\r\ndLrWeZy4TjeFajjdP1S+cnYe3FPTqY3YyVkLuQGRKeLmbxJEiAs/yK4aBbTN\r\nYLsKac25UVKJyhT95jsr4IgAk6lvS2VVHlU21Gundlkla8RfEcvgt9rrT+ZV\r\nVHEqcTswOLognC3DD7jHTQ9MlugyycxW6/snx3xQqgdiRFQYLYLcCCFtauEZ\r\nk/dhJd7/z44PzqJiwnA67DHc+Nk77FNwgU2yXgiXJ3CsS6CI4VO/3D3F6gvN\r\nHFK7bwEb+OhAge1ShoYEq6w5ajDoBwx9zwMT0YC/4Vh31q/MvL5CY9ASvepo\r\nK6yOZUBfyP2RauCLUOakspbrfZTVRGwxsf7yyG0vA45MpE81rfVPTTlVh2Ij\r\nEZmBTv2qgLqiTdIfqqdU1uFP+QMEizampXrDT+6tfuLYQ8UR+jiBBMHKrDv3\r\nnXVKsfZXyS8f/S0SO15aaBKx1sr9ECRsHjnrwp0IHTqY70F+7yXE1cMrta+A\r\nlXT23bnl+RCCkk872P0sZZa3nRM6Lu4c30wag44VoyulzuX5u+1Wx7Dj7D8U\r\nwYkpmhG2ZQLy4MxouBNet7nqENCavER69VE=\r\n=ayXi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.d9f4a38_1681761043769_0.6248414488547576"},"_hasShrinkwrap":false},"0.0.0-canary.4cefca1":{"name":"lazyrepo","version":"0.0.0-canary.4cefca1","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3","semver":"^7.4.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"4cefca1dc814acd73f464f752962a5bc2a5e7619","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.4cefca1","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-rha72y7fqOXtleVWBTWffbslQT/lgc4xYpMN6Ja0LUt1R9Z2ziddqzAiGOKg6dQRMs0Cx4c9Ecp0LPhIgy6dtQ==","shasum":"d5053d38ba42662f1389a997544eef350fb8706f","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.4cefca1.tgz","fileCount":36,"unpackedSize":125266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfpUnu+AdF67Xvi+6nTa0zmA/oOiA6FViRMNI8pPYTMgIhAMDTnLl7foGOfga/kRajOJnqvawiYDwlylDKD8+uJtJE"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPnuyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpq9g/9H76Li0ODfbgPUN8ukTpDR1IgbtmTeMQC+BlZJjSOWFZFZAeN\r\n1zP9WOKyHzdgSMmPkDDanxAB8ZhoCUwZVYzIeYoxxXa/Fci+XLDWr3nQsh2b\r\nQn4rMYqPrP/oBYhIVUQSllxtbrEuPKfnHV//HwAZprpeKp1jTf5XyBowNRWl\r\nASUca4eDd25pQrWi7wMyLha+GyqyX1fxJhYWkUh4TFnfWxLN3AT82K49it/K\r\n1L7g+S10Ja6XTtcqPxbR9VECsCq8267eO7Apqkr354ogdTGGzsNgsr4To1Rp\r\n/MQac9r+T+HSkihKF2DHX1ThPo4mJD+AEj2C5V1fEccj5zqdbo63oKULiTtJ\r\n5xIU3Mw0fud8YbXOBGhJQvE2oEQ1Mx6jQdtU9aUgxXotgFuJvdL0+uNEf5ot\r\nwyZFJbPo2fdDoZKa8Om7BrR/LYEZeQQqF6yMGrpgBiz3xomHRUXun8a3aqQA\r\n7yA2EVEGiCl9CuELUkGsh6lqhAumqKLWeB+gXHu/7cdynlMEJFw/Wy4qhigf\r\nKdtKOkd1HDnNSliJRWY4z2A07v3K7giLHOS/ejuKOcIur4B8spOZhDFXvjTx\r\nmAzFNm3YsgLoe7D69vZXh5iUQM/XmvFm1WWgxnQdFdJRravASLoJ3akYymn8\r\nUt0+8eEIpnnYflXrFalP9cwUyLY9cXuA3zs=\r\n=8kG6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.4cefca1_1681816498606_0.6058745806052934"},"_hasShrinkwrap":false},"0.0.0-canary.f7fb837":{"name":"lazyrepo","version":"0.0.0-canary.f7fb837","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3","semver":"^7.4.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"f7fb837bbdcd0532bd8f06a7c31881db7ad05689","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.f7fb837","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-yU+NaoLYt3QLIkEnAucbBgR/r604hsu5y5c/YzGw0TEbCSDq+Koyb++knyiR5ARGzeVIDZSZgovqVziRKfPIHw==","shasum":"67b15961a5f6bf6c1b58976144cb14a8e3d1a137","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.f7fb837.tgz","fileCount":36,"unpackedSize":125093,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYtpAWzJKIhTzH1BlDq+54DVWlZ95ZUtm8oW25AGCepgIhANRa+p+XZsTteH5iBskOs5yLfnurlc02j3igZt9sppi2"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPp2vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmooaQ/+Kv0oP/iJQlqCYpxcXTqjceONeq+vuzIrdL5AlZtGW4UBZgsQ\r\nGz8fDb9BT9IMQjaUF8ObRmRUW4f1kRawKLqqBHtZoP+ojW0nqgIR5d7hmwG0\r\nHxtLa4rNuxqJ5N/dfcR8eZ2zaxoHHS1c7NLd6v1P1iQiJyUfv/Mt0nGCYrN6\r\n8qcuo+9QWpHpMClyYXExrmssDbqpqElOTNWJ7kQI6EMT8WwHXEPDjmv1axkZ\r\nSwbCvtpWerkglozhzz5mLk9dHpGCWGCu9DM109F49dUA9TD/RRp+AyzFsH2C\r\n+VYL/q/qa7jd6RidzoPpnNKIbTYV2o/Ek3eSjx3BMRVmjLJH2yTN15RWqGLn\r\nMrWEjfTP0fybgExff1q/vZ+PF4jZhd+Ln281sX2/BKpZ21nKClTqOneYmOHk\r\nOObemSXGgW+Fy/rwwGRyBmPDk/oF2zwBjyYmx/vI7URFksXqob5dbtp9Afrq\r\nbUjdUefqd78jx9n39KezYhGZRQ4b7emlO2uBZIWrSvOJaH1j6PNEiN1fxaHH\r\nIXwE8CDoqo/Vn69fA2gtbzHSWJscoyPHjC3wY3CKoDuDAdpP4Vnho/Bj8/h+\r\nZv7gTCYABcdtbD4N6O5tcL/iC3QSKlsOVDTFdmLAOmWFgqm3eYqx7M9Bsg33\r\ncEFnYweT0TX4Z/zoRyEi/qvsHYEtFn4QyR4=\r\n=wfLm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.f7fb837_1681825199089_0.646755589880603"},"_hasShrinkwrap":false},"0.0.0-canary.2422a97":{"name":"lazyrepo","version":"0.0.0-canary.2422a97","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","typescript":"^5.0.3","semver":"^7.4.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"2422a9708df8882bd2a25f1e90561bedaf2400a2","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.2422a97","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-95zH82xx2893FYp4jTgSen4GFLnflMA4SyItHOjMGuMDVeoHbG94zztUnZ/NN/VZ41kyEV0VnzayUsP9bvo7cQ==","shasum":"e053b8c983c91511ee04e598743c260032fe09d1","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.2422a97.tgz","fileCount":36,"unpackedSize":125109,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpRLMejxlRO9eT4Yy1q4Hi1ysVSWXEe39ul+DF8yl07wIhAJegBNuQjV94GG3FRbZDEUt54X/5czolWHNyGjBisB0M"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPrixACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqj2w//atefhGfruAhLYxG0tSsmz9N88X/46BwKUtoLkhaAqGCFKp39\r\nxEHfDdY/fNee/mtUfRoYGWL4Sw94pF2YQoVSX3oV9axJvm6+hZe8wVn4dyJM\r\njyxVn7UfFUFoQfjYSb0z0rREWlnJ8g/1kvholPPRGQ4oDIA4pJ3X5mKGlW1q\r\nwXAjjBysB4n/V1rn8wyu53YAvwGLBqT6AC9zOrodU9Ja99Wql0DmFfu1Scvt\r\nisRSvyZJtAM57oKptEySe7rI8oGrLcZQrNMTQcVZNZm7tK8XAeffq0gPKLmM\r\n46txiK6uyDspwPQxNrjlPbPknNGjEz9MamAXctuPJUB3A1fUAfit5/qgbRw1\r\nv+HwWcnckGADMr2dQjqNq2JWVIeTeqQSfC3SyYNFRJRFwfwcKB+ffeMSuhIq\r\njO+pJ09oZsNskt2xBfXm1vXt19e+tIEt/UdaQJFwliSHC561Vg2VhWyhUPTv\r\nYUCC8e/r2SLZXimCf2sSM7E+9E4utzfD1xBOrhe00LslUrjiYhBdHeI/WeDt\r\n1fJm0MDVkbLqriX6spIOTw+lt8LnCJ2lzkOwApcMbCKrKLKHQ0GERRz8Xe7w\r\nBLHzEqggy1WMojiMEVGIli2xMZH2Xwn7AB1omvgE0UI7u9K1ic69ikZyUKms\r\nX5u2ZOYiVVSel1UzwQSPPXgyXPDzbeyYDvA=\r\n=yAy0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.2422a97_1681832113557_0.5427790128085246"},"_hasShrinkwrap":false},"0.0.0-canary.8c2ac0a":{"name":"lazyrepo","version":"0.0.0-canary.8c2ac0a","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy :init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"8c2ac0a3ea475d5cc260027915f0b86cb84190bd","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.8c2ac0a","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-WTcXrvOpZ61iVT7P5AU3u9YSkVw+r5Iig4xXV78FzoLGQBzg5M0vdW/ToXvJiEqPCrx7c8RoZEZlq/GOsvDEhw==","shasum":"3683d11fa32669742a4f40845296d5bdd93ef299","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.8c2ac0a.tgz","fileCount":36,"unpackedSize":128814,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBjxlHL6TXi2HginelrZizUIo+q/jA+bR+ozl+EuLChgIhANxAlsaG3jQ5e7y10LVIU3qjBfDypMwayTdOV1EiSQYF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPuflACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZuA//S6vRf9yccsUZGo4erIa64xEJjD9ePDnyHVYjiu55qkcyO3dF\r\ny2n+h5TLZzSwQ07Z7y+7Ehf4kwGv7wbPFabuLmsQ8uyZwfHzWM4z1goKBRjJ\r\noiEMHcgezKwHDR2NZh6ogO+Ag8u4xjtYoZ+FUqfdlYzq06KhJmZTkVhiPaYw\r\nrcNRE9GOYyELjsJyAat2mfB2llVJ1cSwnfREq2AeBtn855QrbTlBUEZdsdho\r\n6IpzF4hfUVfCE4WAXRSfjBaGFvVIg9vOKQveHqFUaL3iBBcggPqsV6P2OvNP\r\nfhOr5dSTY4VfGCldUbWcMlo4YQPBwaUHJXAibl2udV48/hoIqu74Qh6VEyev\r\nCkXUiQ2pNb45ykAjM5Drbqbsnoec4cvYDK9iQClYvACXMWrSG2klJpD5Cz3J\r\n1rtU3wBbxp14szGei0vCVBh1waEZkYvS4qHc0rZuJ7MHj+dvaefeiafcOBrb\r\nJr53wyWxdHvBmO13Z22V33zyGFgP0bB5rfL2YWI2pOqEjbY5BtpCFVzox9bi\r\no7QhZtKAfDw06prV2vaIk8ttSDbUDlaeA8UBtLOJ2VOmyugig1J1wl8intuT\r\nyR6K/NsJtgjGHU/JOkfbT1UeE1/czEsEYk4nTlSRoBIPjsgIsO5HvTVe2lSl\r\nnh2STGQuLP9lReAGOd6xohuXNIx/Fw0xDgA=\r\n=MP50\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.8c2ac0a_1681844197328_0.3387565443656386"},"_hasShrinkwrap":false},"0.0.0-canary.295c3d7":{"name":"lazyrepo","version":"0.0.0-canary.295c3d7","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"295c3d7be8aa635e5d690512fb4f3c0e58d0e0a9","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.295c3d7","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-mXz8UVROiVmjAINLcD7UI7iNNLzI9GtnuuIObmlWYxSgSaA5nFgCVROOZ8Qfqc0KsKm+S1iPX3M9RTmw1A86MA==","shasum":"817f2325d7e732c8f77624162eb1ad48176803a9","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.295c3d7.tgz","fileCount":36,"unpackedSize":128813,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDh8wxeXnnX4QwLxmABZtWoUhqWPXwJbay2istJrQcClAiEAzAM6FOczXkyTI3h4FvIYWy1OU2FbYx3filTZHYfIWno="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPugDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHIQ/+JbIdAyPfkbkL8+RtiEtUglmPFvqz+CZsRPs1/L6r+FnVK4s8\r\nyq+u1KkkUmQ5aenKV/Yl8sI7dGtIKPZeG4ePR4w2ZmapkGDpJxmqd6EnicbL\r\nsr9YKctzyOV8iJ9u33vytS7tsBqj6inYrFClQ3oKJWig/FyjsIu4Wuoob3rR\r\n9sZXt3gMXlIinsFYan0zrN+efoRypC6wA6bBjcyNvp4Jutqw00NxyyTieC7U\r\nQSoQkShT6Ps5/kKeSjzicZISNsgMKo2WYuTQ05JPt60FCqqcNdj+3g2LWe6G\r\nwXE1cxSTBdfVgqN2wp8wnuJdcU8cLF4GWA2UNOl5boOhzfNRAtlDsC6v82xf\r\nv8nQLQ5+Hininx7lQbJMjWlBQn700HnTAI+BAkRebtFqa+0bW8HipY5++kHe\r\nE0exqGQ2OrCTX98PdZ0emeG/5vN1LGtPnRUzNhDIOVlA1cG9ftvGJPmaC/Hc\r\nfPNZq+OetXA1JKLb7eZOyOdbx6vDhRPHHkLIOs8niRa3S60UXSnD6eYCYMWs\r\n8M9D8dMYXba3KPMtUnkLlZgAkJ/BlMDxiVupEfsDDD4JImUioU6rdXQ+O9qJ\r\nBSHogJQW+fiQXS6tkaT2scSY/0ERuVncL0be8dPK/h4vyWV7cFKvxmWskprN\r\nvOTe7oU8N+6V3i55jgi7MIu5tysrsxaoHII=\r\n=ph7d\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.295c3d7_1681844227600_0.07034756372214024"},"_hasShrinkwrap":false},"0.0.0-canary.9805cdc":{"name":"lazyrepo","version":"0.0.0-canary.9805cdc","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","kleur":"^4.1.5","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"9805cdcbe657401973f427a9be5a532b4791b412","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.9805cdc","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-AnMGGT8Bp/JdS86eMMWGmLPRfA63pjiyzxX35nBGHYo7JphKhVmwxq0dTFParlwNbVk5jLKQVuHlKGBoVGVPFQ==","shasum":"2a893489be90300abd9a11d9ca1e6f92fe7f10e1","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.9805cdc.tgz","fileCount":36,"unpackedSize":129654,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlpMAWRM8CCnSD6UEJiMsHniHP2pF4PT2Y3yLfkZPIxAIhAK3mOKrrak8RpCjc95+nFR2L9EoPXv67qORSmxP3MEVN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP+7wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrxfg//ZC6FGYMqw3st/L//d0w/42sn39I7gyx5RO9NDn843KLzFT+p\r\nVlLc4+OAmg8L2/rjJWIEK0zIkiUVCIH9yiVFAdq0ZgEKhGEzVOB2KK7sHYz1\r\nx6MAHQoDpDzFPoZfwu5mJaqbdEGnR73mlG8/AnN5LZNGsedredz20OwCSBFV\r\nTXGetp6e+ixoz87Nkfsz3t/7yE0k5sn93p3RT5t0tw69vOaCuZB8mtGWVQJT\r\nYXhrsm9FC6cr8hwuzW/Mx6u55a5cAG6nA4ux1bRyO1VhOnctN5wqcLmukrnv\r\nx4/UgcdIs+J2hXsjL2278IOLZYyZM1zvs6GJvqMLitxkvHSaYNIaSPeESPN8\r\nBY34wCbewZ3RBAhdIOB9UoGajuGQyqlQ9FbUXGN1IFVUbOJ0TY0XOjrVPhXr\r\n8FBqNNNcv/xayNJo6EHyr7P27RUHdg7ooYmCwjM73lA7F8chsv7gxp/I7KVq\r\nsf6IxixxWdCa57C6mZiWIB0BhabWxvB7jKmZGIRM+UGtvi3xXGHiZpVdrkd8\r\n9wgdcTsdeIfPdCgT0+A2YybakY4Y+qV5mVxNwh+okOXJL7HRit9IyUJkWw5U\r\npI0CYhi6JNhkl6z4l5OqYu03ugRiF+Obb0PpaO5y7sCB1w39YPvAQklDPn5n\r\nkIaQeFBNBHudZGX7ioJP8kAQ1DKF3rTXEp8=\r\n=ZZ8P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.9805cdc_1681911536450_0.5040518310423101"},"_hasShrinkwrap":false},"0.0.0-canary.484aadf":{"name":"lazyrepo","version":"0.0.0-canary.484aadf","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact **/*.{js,ts}","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cross-spawn":"^7.0.3","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","cac":"^6.7.14","esbuild":"^0.17.15","esbuild-jest":"^0.5.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"484aadf5007313ab5dedbea8dee444f80c97adaf","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.484aadf","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-0KBrNDxtCruclKESdMcDwcv21GBMB86ddF83N05Eq5K5Vu4BlBaniAJ11zDyK3yAM1X7+7F2j39OtPJRC+3JxA==","shasum":"c8df1e3a3b1363bfaad726c1f0f2a74b8412db2a","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.484aadf.tgz","fileCount":35,"unpackedSize":129194,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCByTF6CWdsS6Yu8weRderiQzKXZ2y7uDKSF/hdlyeAmgIgBl4zBbolnhk4x5OJDsuTwQ2uktlsFqIAU736F3aDICs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQBUeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGgw/+JeARgITyCcSoDiIUP/eplq/E1XNGhuI1shF7vOmVNNxOo97Z\r\nJMqD+VPVEEvSc5lFpzks4ggKlpXZlgWzBunaTWPlTjXhZYikWYq1qekA+O5C\r\nGQTHrqXVpLV+f9uibf63SrMlzR3IkCXRQhiqxssTvCACpgrchtOP1Y4Ev4t4\r\nnzPRMMKR8xH+RThExK495uZ0/2ixTVlIekXFDnBkxYyDm3/g+Kq2q/N7bC2y\r\nChDK44ZCelBlJcW9UyR2VpUNkYQzYmXvG3Vs2Uc4758EstTyH8Qxlc0MiNln\r\n2qwMaK1dFrFbkfdV8MTiQIFEZia5wD1iU0tM6eS0TALzzmYgn2bwSHAG794B\r\n75mWU3Nek/6g996zyVdzWD7y/VEh+xZMU73dYEJrs10gwWbqFdJXBP/W9h/M\r\nNBONqL/5lBOOSKAFHdcObn4FYH19Yp187ctpagY2L8hh3sha7ElHgEfL+LEB\r\ny8KoHsyVzGC/zIwTyslUm6T3juNy+AA5WnoCbgaGQUH5UwF1Ahn7dWewD6zM\r\nIG+37VsUrCiQPHnMW3/leqkgd2fTNR4W/J5v8fljhbldSBqnXCzhUVmPYHH8\r\nrOAfoXdnZm5mr81s/4WOONOthwaz4Xxy1Ay2KsJX5p1mwPu0m4NmRU1Xvgid\r\nbkaQ8tjJF0205SjwGBHVy/jMA+4iC8HpOc0=\r\n=//g8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.484aadf_1681921309900_0.8532826562884221"},"_hasShrinkwrap":false},"0.0.0-canary.4514acf":{"name":"lazyrepo","version":"0.0.0-canary.4514acf","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"4514acfbb93039544c44fad49a90f1ed2df3f56a","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.4514acf","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ghIiXEap0dBg36JXrTM/qY0Z40C1ezErLQ4ajdGC+xxA8Y5jfSZpmazMemitjIPclCeVD5fZ7qdMmr8dVp9Yvg==","shasum":"e5abcfbe69e8a50aa6bdefd0d7adb747c3c027db","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.4514acf.tgz","fileCount":38,"unpackedSize":134998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA282mNYDXWYr4o3HrA6FTN4xzv/IfudJN9seT60bApuAiBjKVyKZOPz96FNcTIumYEDIzM81lKfKtBh/OlZGnqTYQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQCBYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqvtg/8C/eBmCyNXpBDvcshTj5xeHeJ9lV4j+Vu2FYds/g/yOVGGLIz\r\nBxxDEQEZZR1oce9uN5+5H9Koy6yON9Up2OxTZzxi5wudEnW+THgzWqTRUrr6\r\nn9EhBkrc1wHMWfT8aeOvsDgaHhDLDroiwGbMUyg2g6tv8IZYcEsv89AL3Ivx\r\ngxyU5UzQz8mTJMO3VwlJoY5+IjCXiNne8truQfciFn0o+PZ1REQS9ZVlJ8hG\r\nQCwoNNknxYitNcbKp/6T8XrAmO4//1x6pHLYSqGQttgP44Ej1cdlh37o0iVN\r\neLLQ0SnmsekqK0DyE4xFmRZW4lQrlVOp9Q5X2/oJ7MWLyCmrKmy5Thi8S4B4\r\njY/8uFUzT3lPjj0o9GxUBb21UzAl4DeLdkF1G5/adg+u7Fwd8Vmi03BJOUlu\r\ncsl07gyRTNVeRaLTBpyzN3x5C49hKt0jSbLBTpivc7L3NtVqNvRxALjvSkN/\r\n0qjUj7HB2T9VsjYCy9n+psMuz8szCzvXFhYr1MgRXETPyBk/0dRQegCBKWYj\r\nsQ7firRPE1INNl+2S6it2uBV7yFF8ObXSVcRX/OgURV7Ihblee9e093Crs3w\r\n00zneNj7wygTcj4/9J4S0LlNd347D871COXRl73HsIJ48qkfdzWd8HUfGp/s\r\ntQ4R1oZ2kE9Qao3UWKRUC/39m0QXhZi9SP0=\r\n=haqB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.4514acf_1681924183890_0.11630829960409739"},"_hasShrinkwrap":false},"0.0.0-canary.78b2d21":{"name":"lazyrepo","version":"0.0.0-canary.78b2d21","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"78b2d21b57c5f560b34ba80a3a69c34f9ae24622","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.78b2d21","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-wB5LkvNsrm0IAOWKJRoNk0qs4FqEw028J+fAXmo23x0MtgS6S1Vh0SXSnxUNMG6IRWiWaAqXolK96RIRL7/X8A==","shasum":"448e6b80658dd84f2dd5f194b408f0d125a1b489","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.78b2d21.tgz","fileCount":38,"unpackedSize":135534,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+d0/N91bdtpapDwaeYfAJRBHZrtZ9zM55B6x6e8WJGAiBtXHVi4jWNITq3cs0xccdNV+Nk/MhVsgtR9lo1hjbL6Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQFC2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpL9w/7BMv+QWkLVPNyvO5EscRfcs2fLJhXq6Kf/nhLKOr4rpBs8bSx\r\ndixULKYiQMwj25r0wybs4kO69iJSJlD9gxOvEyevLyzW1cZ/TaoY6ZrLPokq\r\nX5+Js73QElXGzs//i3nsa6kMF3r7JN/sU8UTDLYNlFVv0sg7dxHn1A0/z3wG\r\nj+Q6BH6Oid5VAMyuSsMtW76rlBFSetLuC0nZh/EcOewihUJ8uOSuf5yl1X9S\r\n4ODm+ik2WgTeJkLOu8/Cf2xn6xGydtTZQuDsS7YVXDTXWr2UXOfbTnwvoO7f\r\nUGMj+yQzbBslrFEAayZ7suRCXzUtBCPpWfzvohvUlNXGI1tTQP8u/8qtVvzG\r\nLLw1NgSjukkkIUgg7HW219NtSQkLEoL9Mcxmkbfs1QD3VT7sz0BmAvjDN545\r\n3ydVNDByBbmJE65yx74czyB7HJ0g1cOGH0YLlFLlv6xZoUV81NCWUz6tYfIc\r\nj2AmHUrPoKtIiV5h/j0wTBONvpph4wvVF8zL0Nnyv09jca0TTBG+5IMeG0z2\r\nY9KdaS9+vxPNvpQzotCETvAvUdy9sncRukeCjvx7qwBVGJctLbUHOBMB7pDy\r\nLn4Q9EqY3C67XixQJ4S6pcFwMVjbT3ALLruRyTbC/iuMsh0LBed1GiYeXb3o\r\n7/CAsrY3aiGQMUEz2iXjZIVNAIXu0oWC3rw=\r\n=Zv2u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.78b2d21_1681936565974_0.08986930292225703"},"_hasShrinkwrap":false},"0.0.0-canary.ea81681":{"name":"lazyrepo","version":"0.0.0-canary.ea81681","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"ea816818801f1507f3aac71e4a6c70992256f0a6","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.ea81681","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-2o3r5eo9+FohBaXR2pXNv6ZQm7+RDKv3NTW4883G+gC7c7PguJkqoxE78oec2r+ocHB3MuDql4zkMYhqxeMpOg==","shasum":"48d76153c24edd154a4147fc0bde95a17d64a4da","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.ea81681.tgz","fileCount":38,"unpackedSize":135164,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFq8mvzpramw6D6VQo4R2VnXMW1Cgh81u9YWJfA1QJ2lAiBqEQhX+3frAqC4j75VYkJxjWmwK7unw9hcFwZL2py6kA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQFTGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoL4A//bn60LZiczO7MpGZypV9inDEuGSn7PIFKbXn2DUd2LoXy2QC/\r\n0UWMHEGzSZGnLvIzstke2nOdv1WYdM3GS7w4e+V8GV+n1K/s+9GjpmqiMdfs\r\nqkum50VtlIcgbi2JYWZcEmU7Wd7ruhL4P/FUD0HLNlwX2uncPh35/vFUh/aa\r\n9ln+LmqIpEAOtKkR2FtHRBEWfeF3+bYqjsW4essAdc4EHIixG974iekBp5GX\r\nylxtyhGDhtvWBdkav1yehuF4pQJJSSogNJ1bYrEL0WDrpRj2SUuKUmRl6qhC\r\nFisRCXrW3sanGWOlJn0+SVAzq9yrR8ELGuR8G1gt7vbdylt1eVisMOJTAFhZ\r\nESY5stvWA4jWwggBzax020J7nGOjBzF/K+LprCWqwdoV0f9ZMByqMXb1Rhjh\r\n6cJjdRhQU6e5v9lyPi44iuBHCUMxqvYkli9xCmAMOEAfmaO3lFYiK2KmDe+m\r\n6kdxgJh2m3A5jjypm1vTsNjHD7/u2ZTtrLW/Ak3ZZnic4nSLtm7nFcMmAiCH\r\nnPJEvJTO6mkpVwl2D0tyvFaMXM301pTsaxNd7t7LmHMaPECy6tU9e9bETD5w\r\n6ICAUYT/FtHaKwTTaZ51xZ1FEurZAvufHDJENM6Yt9wi2CkfR9LtL3/ewJLD\r\nvNyXVbTeeMNN6163MihM7VExAy1Qj/hEh08=\r\n=kLwN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.ea81681_1681937606628_0.6556416548225399"},"_hasShrinkwrap":false},"0.0.0-canary.5508b1a":{"name":"lazyrepo","version":"0.0.0-canary.5508b1a","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"5508b1a882951bdfaca401de36036418cb7a7e10","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.5508b1a","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-7p+HvhrWnS0tvtvQSf2VlNCIFY9RkSWzSBb4NS7zAdfgFcGm61y0DEeNYmaWTKdWfFp9597qKB5MNtB4xqDwNw==","shasum":"f2a7ed17960a0b81f2294beca455ec8e1c6b1ac0","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.5508b1a.tgz","fileCount":38,"unpackedSize":135164,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGblQTseUf2udgTFNwKqj2JQyCJidxvtS6LAqk7dGpGAIhALWiYPjNQ8NT3KLsqlPTGFEfVDQT7NdClRrp/XqZIoNr"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQF5vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXIQ/6AuAu3GgkLrDOqMjKz9PbyAJpx42WDEhWxR4UMZg2hwgmFaRD\r\n/BKtoVGyLmBjUtfZyIvpTnri3+x0AiFenB5JWY9s/pMYn/8Hv9iZaBiLbiNR\r\nRYmqv9+cJJ803pEOY8UFXxEpfhHq9IS5Y0RS98Bzkj14NVBdeY8Uwiw6h5qo\r\n5hS827HzJuiEgVBSDgkOyMcv7hWqRgRm7TCzUNw3LbaJ5i5TuAJkdgyvwQ+p\r\nr2Kpz6MBYodGicCb7fyNxoQyt/XUavwylWK2LGYh0X5fgQGLtK1RDfWDYp+k\r\nZkhVH+hIQNLK8nmCF/seXAYRdRpLdTxi481gxOpGqux//piKUMzAOOYJsxdD\r\nt5a82vvwtvcJ4heRvklNRz1fA6aAcGV5XKc4XYj0X4nf8BUYwVe+z7zvXs3C\r\nlvalzfH6NryLY2UBjgDqbbAdGEphu9oLgk5yZl8QpSHEatUOTsI859SqDiw5\r\n2SYGTcyL4756ps6w6B2cEUxmpsNc0PPs6ax/1sH+Ynrq456my094FOvPGfW0\r\nhF/dAHt3egK8VW96vHJUFBYXn3FhEEgif7emYCEhOMSCSm9p5qql+F543Ryk\r\nBo0/an7AVowx6Qam5vS3Bh+VHXesBEc6goeQdLfDdNotyvO8Bs66zgaYFu/Y\r\nvYPw9fiTpqj8y/msgZgBWax77YpRuSkXpO0=\r\n=cfOm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.5508b1a_1681940079351_0.2282963318360105"},"_hasShrinkwrap":false},"0.0.0-alpha.13":{"name":"lazyrepo","version":"0.0.0-alpha.13","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter packages/*-utils\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n\n## Migrating from turborepo\n\nTODO\n","readmeFilename":"README.md","gitHead":"365999719c82d618eb88bbed0b2f0727a7a643b5","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.13","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-GAp2ZKzuzOfM6qlccgNZXLCrz9pO2b4dclrJXjtTSXG0CgOQWRIk+MGDmRbvs9c0ywu/WNZ0Ai7a3FgHTb+Dfg==","shasum":"89bcdd1d6cd31a6f582fc13dce4253f5b08f1770","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.13.tgz","fileCount":38,"unpackedSize":135158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE54gAZPdxV9s4LpKKc14A+KWojABx7rKsHdXeWmE2mEAiEAr2xDyoQ2s/kt6Ubfu/3B3/I1JzKL16Ac2/Gmr4ovaqE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQOUyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZGg//bQh0eR/zjCRoVM2RfhZ5IlGM1SvzVAaiDEM+ILmbskKOhvU8\r\nIQjlPvqP52ahNoYgB7r370M2mxKhkEEBo4WeuA7elVydvvQGsf3rf1tkzYw+\r\nExkgU5CHg1t/6tyHMf+/R4GeNvB9FubCWP/SUtVRxj0MI0kAuHax2da/Hhpf\r\nfW+D5iU5UcDwjnm4cQPBJCy3CIBYg4G0KVLwdPj5DM3pN9Chid4TPP/dotw8\r\nXbgUHPq1zxk7aPohJEUkaxsacgOI+h3LjbSpQi1AGfjubu+BawJtShwSPJ9J\r\nHA8vZPMbSkAqYkn2QAIahY4vuOHOWDI//+6ERg9fyNVEue8ZzWnwg5VpmasC\r\nzCyi2TK/Wl9lcmAeD/3OWzNvKoJfgRxa347CZ9watSO6rMotH45gePLL8BLD\r\nQ+6Yl7YXoEjFuZpFMCvugKYtuFZA6+N0BiIp5fvg1YPUQB5bSkBxSiiFJ+pe\r\nZPz0rqiVGCT/fwdTYIxFY3HW4I9DPD/zCTm8xvJmO/u3CkwNnvkNyHAQfijV\r\nYKaa3mfXXbr55RkX8e6MnIUrkX6JbJCfnTjwbdz2jPhnlhqr+6uXl351Vvl7\r\ntKda1j9uWSl377HQ4euGOK1NJZlnkoa/hD67/OKJjGUjq8EgK+6AtRG1ZLjq\r\nYvRj/fdJOyt338eoZT3WCE9RyMVEtpfp7ag=\r\n=xUmh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.13_1681974577992_0.4719764131305524"},"_hasShrinkwrap":false},"0.0.0-alpha.14":{"name":"lazyrepo","version":"0.0.0-alpha.14","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"gitHead":"f61c60327a90cce0cd37d5c5f595aa5e497bf0e0","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.14","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-XcUQF5JINd7Uved758tMJ9Hn3iR+kOMNKoSJB8t8hc+eMDLiUEN1a25RNr4LDh2ayklWs0ZzaSzJOgLonAV09Q==","shasum":"241435d7ec630567c8d0e1a5edec0c94a644243d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.14.tgz","fileCount":38,"unpackedSize":135158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAT1ZRhptr8dRIUJwetScdmq6uTqyVFcurCiSGMatLWLAiBRC3fE9xA4UVJzQPRQmDcOqWLfLmrjgIDNTkNn6HlVBA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQOqZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpzPg//RGh1fO1aySz3AHXdvWInDJQ44z9SKYkn2M82u0OeoEL6fr90\r\nw5eFucr8tnuyHrq4FsWYRfOY7Tt0xtbWfwIXnptj0uI/j2ulXIrtln3Uv4rn\r\nALgSND8OYjL7GRguBl+fuTmL1+sni34Y02gQSS0O+RVQZTEQ3t5QP644EPmQ\r\nFpup0zYfHX8YarIa6kki4GY++2FhHKdISxQhOZ7mZ8ToRySeNSy9Xu3Yzkcu\r\nnTWhi7gJwtj7yuNPbSCO5BQbyjg2MOSn8kBC4HWsYjrbs1nUobTSL8n8lJO3\r\nyrJycLF1pBO/VQQCVvx3fQ00hXFGrou/cGv+D+zeQIo54nbMYCXC3yP1vmR/\r\nyOP7y0Fc8UYXkiD/PWLD7JlWk8/r6MUGyFlSFAZwtxuLs+5HiA59r6tTpV8z\r\nKcOqROj1Y0GjF7+Dh8hQ0K2TzNi8lzbOtM0vILbo6GVsUGNi+E4VCsvLsf2o\r\n3ezsEkggejeg6gfZ4uFwkhi5szFGp23dzlWn5cxAwcs5EsnukxUq2heErAXS\r\nS6sPyTZUfd/cEJwmWZwE1n4Ohgg9RTxz6ZdE/AJolDGf8lHs2xa2I4oaV4xt\r\n66fp+MSsXxT/8j7VRQAeJmXfJa8LUB1+a3v1hDfhs+fR7mucdg7+rVYcbNJj\r\nkSuGm2308qD+igFsjtoq5DxsjSA8IZMNnVM=\r\n=FZwM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.14_1681975961560_0.583210321126818"},"_hasShrinkwrap":false},"0.0.0-alpha.15":{"name":"lazyrepo","version":"0.0.0-alpha.15","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","prepare":"husky install"},"packageManager":"pnpm@latest","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task should run in using the `--filter` option.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"6441164a6ed7bdb03810b29fa5ec0225ec350259","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.15","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-34RsmFB84X6hef/epdw+XDEqgQR4bHDE0l7SbjMVx2V/nV36CLyY9K24e3RbU+Dnefhwzo8eOs3LI7Z68s7PVA==","shasum":"2421a7a9ca13eb56877a58921b068a8440628f94","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.15.tgz","fileCount":39,"unpackedSize":135069,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1W5rMIpEjdL7y9rUBGliyFYrn9s5h/auTP9ZThxAfrwIhAMhA9yqDNoTTdVfAmEa75/qlcPY7tezfdgdLW1cH9ChA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQQUmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMdw/+O56iQOShp31Baju4eMRwH3bld0AdEgEf1OZJzkMDC0NWHOFr\r\n0BgXDyQcjz6MEDd58RscvS4/1EPHMMcQ5aW3lEDq9ufvgHIHzbn9VfupLTDS\r\nOT0PKPwlf5dcNtHO3MUWaG53xO74d3zR31J0ZZPBSGNz6erbOpXvWjEem+Sj\r\nUBiPykKgLVANzHbh2tnwndaRFkNIDUDsHhymtROI/SoGWWLb8JH3OUqsHnXX\r\nJL328Y8mVeAtsh/Rd7UdlFO+wkkrEmrJMg1FSu4Dh2ouzy1pbId2a3jHEktV\r\n40l8WE3VL1rHeFxHrT59u+hEPx+Fniup9MkxCjgO4i3b3gXl/lNkE/dSwwzV\r\nrVduSmHj6GXCyLqujnbIDgYzp8DvUDNAebAcDDrDpZ/Dl5s+T93rmntAr4g0\r\nP0cCH1KKRdV6MO93u9nh9pSQX6TfN74qGzgBGKP55evC27S1EctLr2SNsH3o\r\n8F6eoK8Q9FGuyTdzDv79qjV+sKqjOJVs3HCX6eHxxbGEyD5DPQFV7SD1I3Vf\r\nzQvfJCfB3PvPcK+cWMXq2MK+J4t4Ro21NZutTvxwXXw0hC3mLnTp07QzCwA2\r\ndbrz8GTeIcM6cuYRrncUUzmSRQacBc+anWulkw56U7GcMToHUsXkVCfHIwET\r\nBwvR7x/q9mTnQMAQ2Blt0ns7I3k5bKzeFDY=\r\n=OxHk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.15_1681982758308_0.9038813198077229"},"_hasShrinkwrap":false},"0.0.0-alpha.16":{"name":"lazyrepo","version":"0.0.0-alpha.16","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task should run in using the `--filter` option.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"c167a0b0757f4ac28dc2d41fcb9997215f99e7f5","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.16","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-hezocxqTkX4IcZv9ffsJ1FpDpDTRd3zSw654KjSaEp7qUNBgd0QiY2HE9bwv7rm8vuRSUpLS436JZITtXLndsw==","shasum":"a3f847a6723a6f0910d0f362be621cd89c275743","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.16.tgz","fileCount":39,"unpackedSize":136219,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9KD0N0aHSZaU6BY9M2OerzxvNBJMpHBCCmoV905T76gIhAJj6qd/teAbaoE357QvfP+FCoZ0lq7aC1ADPgkIgLib7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQUpqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdFQ//b9qoXv9CfSf3eqfxa4E7GDLqIcOVcWoUA1JjHkzr96j8/sk0\r\n3Wqtq3+yWLd1/nqZYZZ0zbaHPqIqdmWRqigC9Gt2Dn92d4HEmF8tVUpZpOEF\r\npRkQaSdDUOizmU0fw1/FkSnaAK1Jvu1Vw3gcQDIJYdNwf51PVVn4VCiu/GVs\r\n1wwFWG44RpLox4eyL5dwHQDI8qmRVi2Wi8yxO+kxe1KXkjUwQuBCGFwEVYCx\r\nsaOcznRpX/sP7qP1pRGqpvQN+4XV5+hjPVG2V2hyFjB7FEJUTHZWkRXiv7Yn\r\n+RAC4mzXEyJmqr1/d/z2E6CYZSJELC/t1hr9NQRsIQ7O1H36xXIwWSjITR/U\r\nEmXK/T+TM759HWtsnK1sjYYrKrna1WQb/72L6Y9eywUQYSGqeI77o7DgOyxx\r\n7ZOCDKS69Q32pYrkdwz9+xRHcrBKVVMSXhFfT0wB3th7Br6kOzTmEtpmTeRJ\r\nbqvvLVgsOHNDM/mTSQ0sBhENh0+HqZp5onjJHSdu4qZ9/p0Sn1PA9xQq2lBQ\r\nNoD4kR0gCAq6QbDkjk3aOr4QAYJAI7VKU3cheVvVYhs4KCr9m5jb/0Wx8Zyr\r\n9/somxgMMBmf4B7/O7e1z6f4nzcxp6w1MMpHmxybGZPJUGbHH3YUt550VAat\r\n94UrKDBfJZOwoXd2cvayI7zFamtRrOruSaE=\r\n=h6n6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.16_1682000490430_0.42009322095312784"},"_hasShrinkwrap":false},"0.0.0-alpha.17":{"name":"lazyrepo","version":"0.0.0-alpha.17","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","picocolors":"^1.0.0","micromatch":"^4.0.5","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> 💡 Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast. It's a lot faster than `turborepo` despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Palpably sensible defaults.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun tasks defined in `\"scripts\"` entries using:\n\n    lazy <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"tasks\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <task> [-- <forward-args>]`\n\n  Runs the given task, forwarding any args passed after the `--`\n\n  You may filter the packages that a task should run in using the `--filter` option.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  tasks: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"2758baffb8ea45aa1730b60ad5aaea731fd44e70","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.17","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Cb4wE6ijkf05CoXFWjKR3/OU/VObUwhaxVCcFnptQJuZ7G6oR9Kv63yKnEsHyqxTg5I/OOcONIfaB4Yu2AbgGw==","shasum":"d7f87b7844f510e0c32f371eae77e5a0357d41d1","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.17.tgz","fileCount":39,"unpackedSize":137885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv+rJYUK+BeJrECmxr1pLsTtfxEzEK7MsqiEZcORTWMwIhAOA1enaLclebIENA+TVjDfNbx5iVGko5j2KLS8GAiet6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQWMyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNKQ//ZFexwVSKW89DSYWKTtuVHmlraGCnlDRDbg/mL1n0UUZJPBlJ\r\n+3Jyqzl70HIlvf0bCLyzoy+Dx7YA60VDOyVCF4xEuTItqAZ1r+wLw6Av/Bhy\r\nfWlKCWvwsqvFlHXAI53ccpnYiELK/fMazSI/UsF3l36V6Go13JInBOqlKOqe\r\ncaZPB97/ptn8R6bhD32iIs6ukrFdxARbBzQy5X9T6MEMFQ292M9mWTGAAvwc\r\n/YgynZgOW3dwWUVhrV8BiPcPYoQSbBfKH1tP6fTIXRi0nwncTpRdSPRhHr9c\r\nA0RO4dn8v6eMVZcPsoy4uIvtnIArMEQbx4ZJirGmcM4fcgJichiWaPu4yLem\r\n7tXRZGndMWmYbkiEMLdTFBTu2l6s8ODwM+fe5QU5ndWlVwjcWb05nIGXUto4\r\nS82g8+KJmdgnvgod4dSQCDSB73wMBcTTuCqR3PrZw4Dapz/Lx6PkKuYxpzq7\r\njqWXc1eq24/7EQzsyZSRA+5Ujd7angNd01Si8BJ9S9qEf54WzROOvyD2WJex\r\nFlBptDCPqM9+NK6UcdrzlARsixutycNsawl1ntTy70CBuRpBrO3eGcuS5LlW\r\nur4skeykHJlYRJnAXVHOaE6KemfTYBskxNclWIJJ2c6s+KQtsmBn0M+fpSOD\r\nJ9pF8xQrK100huAcY4oOKdGxJu1VtXk6KBU=\r\n=qF1+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.17_1682006834556_0.10793181563559062"},"_hasShrinkwrap":false},"0.0.0-alpha.18":{"name":"lazyrepo","version":"0.0.0-alpha.18","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@octokit/rest":"^19.0.7","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"be8951de668ce0e1784c6f8fd642b42d3d6c4ea3","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.18","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-UzskTG2lXwdHmS1QWQyKV19W93MXNu5gRHPII/vpsyjCgczrvAIeZ+Atd8IwyWgWxVu6r9APp52Ic9hVEcexJg==","shasum":"5718527161f41e9fb7b5f661c11e0166e556de8d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.18.tgz","fileCount":39,"unpackedSize":138077,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvUkDBs8mPiW9hmn7gNPCdIsgP5S4LHuK3o2B/riyUiwIhAPZtXGpsxEPE95pVVkib1klVSP/Q3MuYQEcf9dEDMAwi"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQl80ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgGw//RhesCSk2ErNpdMsfV4zMJOCJrWclS/p+S6oxxMgGNghXRqcv\r\nwm+YmBQBmmw675VaoMv6aWtuNOLQGJZ5Q2OGoL3vFwqJkrCsF0cPtNKAw03b\r\noBlDe/4MK/GHfQ6J8vscxiRbUIVwJyU1dROlPFrGNZvTa9fmVodhvDUe6Anj\r\nJfb7O/wrjgkCJkejtqT9EgaKUcl3w0xItN+3T5Oi8IWiDwQiqwCYKYCu+hJ9\r\nJcY8wo+Ob9CSzo1dnj/fcqw4Fq/1Kxm/3/1IzxHWZIUsGxynJOsbYC6tzKEO\r\nFis2O+ZH4m2gbkQxz7FzQOuDAWInVEu4vN7CQwU0h1qPR51+PDb5W1DEJdis\r\n5W9XoBXW4SKnZlxn2RBG/uHJUFb8xXipc4R8OTQHkWc6hMyBYKLDs3MnXwVT\r\nX3g7sPHT8mlN7vvNfYdyzPnnKE0hxilywRE6PTqmFv2IPeNo4w3Y7h2I/aPm\r\nYBAripj0xBdvWk0FqZmcUGQGLCIlXTIDLm7BsYN5DSfKvwtSvJ5AmZA3SgHv\r\nFwlpcC+q+AmFMUUiyZXWl6nrhqByzck60t+CaZZ2WL0QlrxIaID1WGiTXE4W\r\njV6zJrq62OERb16B2G3pYgJ5rj8huK6Eid5u9ptSe3Ss/xdvSx8WmdGMIb4K\r\n5ElIrQ9GUvDo/PnAWzReVVi7x4gaCL+jFZw=\r\n=bU1X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.18_1682071348093_0.6537819638436648"},"_hasShrinkwrap":false},"0.0.0-alpha.19":{"name":"lazyrepo","version":"0.0.0-alpha.19","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@octokit/rest":"^19.0.7","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"aab20e8d3ebdc1925b13a52baed8f4c47c0b5b2f","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.19","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-NVSY38+FoPymTjxKecC60JWroIKUcq3ySMa4sy8rHuPkJ8Jh1PB4XH+88IwzqXQx1PdvhXyMWzLTJvr3zyxiRg==","shasum":"58719ace742032e3276656ce26af2e737fe6c36c","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.19.tgz","fileCount":39,"unpackedSize":138077,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQConUrCE8ao6FMSDEY0rfA99enRMOMdafMNu12CQC2AEgIhAO3uSPJfVEw0clopd6lnVLsolrMGSnvKTiWpL0TZ+i0D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQoo7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGDA//S6kfqwiAKTAQhfdrLJvfwmJQcIYWX2DsSHMdeeLMtPCrSKNh\r\n5p0GLjS3be3CzXKAgwHIIaBCJorqJ0tA/WbFNedqNQIPbGIhUFotFvv7QwJg\r\n8bPtmov06Mv9yoN8HwGneuyNOZKsbc3mCIAxqmKBfLWDVT0erbMTkEW5/FGJ\r\nPlZiFLmS8b4DOwi4NrQ8TWo0HEYDhE6Z2HRVLW7SdGuQir1j+CYU4chiBkWt\r\npjKg5nPFkui5N3im4ennSikxJ1z3Qr/ZlanHoCqhgsc4xLw/qJX6Kx8ASTVd\r\n7rrn0Kn0WE8DLZtBqlWu77X7xtGNF76ucU5ENV+xrRBU4/qvaQ4qsPHTxsu4\r\nbcUfpTMASotUQettEZhW2782as62jeQkTi9yG6LUzB0Yln71YNK7dCcOC/yE\r\njDsGr+gj/IiPmZycHZjdx7lleYNIY8xscPtE/WuS7VEsSO9DYkyxIFVcfin2\r\nFJjd8GgpWAN9eG2t8Fm5/NED0eu7Rwx2tRZjIwn5L84tm96QDL96FMimkcOJ\r\neVv2C0IvtMGx/iunqBv79IGMuP8cxRdmboY49aVN3C36pJEGMF0XTmK0Hhyp\r\nRn8AD7YsALZaOmfZMCdiAvOiUAggfPJqdRcstutiFqEusn3liunqKQGR9lEN\r\nq6GN2m+WyLn2FWPP+hK2MJtlshAQIdCHYLE=\r\n=4VqE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.19_1682082362824_0.7381441483149114"},"_hasShrinkwrap":false},"0.0.0-alpha.20":{"name":"lazyrepo","version":"0.0.0-alpha.20","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@octokit/rest":"^19.0.7","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"657d9081d31566708d2720b56bfb80d000525859","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.20","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-6QkoWR3zAt+p8TB2YBvMRilngUgSUcwbF+OqBwNBU7Ot7GQkjiTu6kS72ZQmuTyKKyrEnlZWazzPbiJjMX98tw==","shasum":"4fd0e4b86808a241880ee6c3fd7785aac2771a2f","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.20.tgz","fileCount":39,"unpackedSize":138160,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSRoC1XvkaEFqAlQEb/tpLhpWFeWZpUCyroXYe2GItTAIhAMFSBr6Az21QjVZr74PF6TkFDvGw3IiItoUwIlLWS83D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQpAaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoS2g/8DDnP3m3ttINANhS/G1PPBLyUWIkIRvGXUbvXt+Qt3iddY8ro\r\nSSFmU/Op+ThA3dKqktHNCpspy7Y1wOe6GU6lnjzYbmUQVy8wgyo63ukQvOp8\r\nOCcshtwi+/q5EoRA+8d5j+MtFBMDu5arcuigRtj37fWl/KtO+FwlbKD6zl79\r\nFBLZUaJ3BSI1Krfe5JeGU+Esz/ITSChQcF+K/qSl7CyTDXF2KUe+PqexTzMV\r\n+Jti2UILWjV0RkM4a6UeTyQbC6gEhzvOyb4Ii25eNJfbAMEdZAs6evgwogIn\r\nsy5lLShh4H/PWuA1ajMDdAAGV8Jt+p7FWebSNZkVOoKkk1dsVcmvjnoLoaNL\r\nLiX4Ib2zoBEfhsDR8DsB81RRzPmPpnVvKG+1ywxcXZpSaQDCht2+RxkDavqS\r\nB44ifuNFPEMvLQx9P2xCH9IOMia519HX0dN02KAfoWiJzc6MESlv3lM+t4wT\r\nMawAYlkYm4TDFsN5PTWxiDf1URyx/eYqOq5fwJoPCESZIwxflojfbRbm+IZT\r\noZ+gAPIwLiDM99B+8gMuMlQn2T1mEs6j9eMlqB370kWRH3dkRLEeKE5mYv31\r\nqThfHROFhN2Uda8UJHIWu38LQH1qDrieFV9S1000qRimbN/4FheyYFD5WDYU\r\nYKWfK470MO0mztTJoAF5WhyQ6qMniYxZSAs=\r\n=UgO2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.20_1682083866700_0.633205662381169"},"_hasShrinkwrap":false},"0.0.0-alpha.21":{"name":"lazyrepo","version":"0.0.0-alpha.21","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@octokit/rest":"^19.0.7","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"cb403a4b8cdc7f92b12fd5df01cc7d3ab023a691","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.21","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-KvgACVYC566v3FbakZjf4TlCmQ1j3OfwdE7Q3BQb0RJOMxxCfdzfRVbWGaCj464OIAIJg8/llL06PEFNGhjOWw==","shasum":"1b84cec4f55786546cacb97e75ea68b6334f56d7","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.21.tgz","fileCount":39,"unpackedSize":130621,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+VJLzYs96Tf+ychUZGXnTYx272K9oFzCp862dKxYVAAiEApBi363v6bngZKbaaE5a1U9PnS74qz5sCqoaHJtQxgsk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQ5JxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXZA/+LhXNxaZMqQ7TBnm8jWjkB7rFd1juFrnWtxEJpwx7aHJwwurL\r\nDIKfWp2mkEKDA2TGuDkAxncx77TgSF77gjpvaaMSgnM9l18igKVYwfewY9PH\r\nOeMfJv2SknslUM8Z3SbOtaARmBEGAdfjiwGnRd2sDN1+QYLiakAo/eGUVm9E\r\nyWaMHefx/T83mwsfMpkt/fOYaNX1X9t/Pv5AWXMbjcOCNuP+7FjmqsrZSF3b\r\nNpq13ixxwqZRnpZ39yK0wQz0RB3FhXnzwwPafPVc8Dh8EWdbC9uG7ASk8T5o\r\nky53de//0n6ujQELslmsISMwysoyeI0fIIbxMlS2Xf3RHbkrsZHqGv6t70/g\r\nNdZD24fX38EqQrIktisdtAItzJQ8sYHyMrytgCQJf+TplccLK8qAB3Xbb7wY\r\naUZdGg1NY9nj6BR2Qxw/t6zLqUSh75fCBDVY89+tu2bOJKooCg7ntjibOtlq\r\nSI0/g0PWCO7LUa+Dh6eXPlIQBnXx9/ca5AqJcErRhCcPFKbVZ0MgKv+9ypWH\r\nqHs8y1l4dVr/p+7/jLMvhHw7xBwFpu1i8xkJD/PpHko4qR6nRUoL29jv7YkR\r\ndQO5AwyQA5wocUkGS9xCP17BDh0O4fyFe0B64dhaMUTOrIwMexZcXQT5buNZ\r\ni6pCLnqphnBwQLX5gHz67rO/vMcs0Fl6C40=\r\n=c4eN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.21_1682150001763_0.7177327207272026"},"_hasShrinkwrap":false},"0.0.0-alpha.22":{"name":"lazyrepo","version":"0.0.0-alpha.22","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@octokit/rest":"^19.0.7","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.3"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"1bf96ecdd2fa3794ac00329d9fa7e4e45ca279de","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.22","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-9+4cSoD5DXlKm0xuaPr+yhACCdoe1Y1DVHBKxnopbZQgG4+KiYqE98UnyAbVTiUGdw9PIuZlhTgk8S0xckdJQg==","shasum":"0cfce85bb7d6691ad7494e7fa8a023ae2659d76a","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.22.tgz","fileCount":41,"unpackedSize":120455,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCG7C1ISJLwHjpP3ZMJKSYEbIAUejNMNekwZH3Vwz3RsgIgZ0a7L5ltlAXzA9oGYNwTgtr5JxisKHdZJvpjMT9vZBY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkR6tjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZTA/5AN7Oo9m5N1hfRYjuhxbGMHrLrFH11bEt1O0puMeIBGOfo7r1\r\nJlAQluCYAwrKlW6oc9vPIKDwd1Hw7dpOgcu/+Yj8BsMVP+UfDhadL3UP3D9P\r\nUvm23Qz0klBAGmbNGlu83wOkI7xpF1vlau2GqtweKD0Xb8pHzxdyn6sCcrUd\r\nrbQI/cx6bX76u50b7/w5+v255E7diSfvkLiinjBM2PEjz13vKkbDnpN4BAoI\r\nPiycXgFh34zM0R0+PpZhB3VnbHVsQwOba58G/EkSyBhCvrhNM+ZiefDpiRuj\r\n09aJrrYf5kWZ1dP8NVpQ1tJc0H0RQNHmJCKuuWMDIOevOUh0sf4PRbTf9zKN\r\nXaxn1APBuYVNKQqi0Qa5u/1ZCttKsOlWHhXtSsZyfp4NOERv7BXTZ31x8ol4\r\nIuF+KUEQkUXXAWG+6ey/ZtlKxnFdnWHCuqiifcSm2JIp5VoaIl381wy5tDuV\r\nMcu6+SfvWsvNW7W9TsJK6dOj7Vvsuqpo7H8ccbIQVpkLFpHmApzxzE39PRmH\r\nreBfKroOkRXq7tGdDx0uht3B9cyQyUmMNEc/LF+4Qk9uu69iT1xt8ZO+lFYC\r\nqtgB5wYUteGwbN9LcwNot0x+aQmwldxOP8+/FIQ++cPzKROdBl47SsUc1dqz\r\nX+jfHm2wCHhbJnumcNS/ANioNyjb0OD5Suw=\r\n=+A4H\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.22_1682418531666_0.5194711057838388"},"_hasShrinkwrap":false},"0.0.0-canary.4eec64a":{"name":"lazyrepo","version":"0.0.0-canary.4eec64a","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"4eec64aca9fd5796c58cb14026f7be2c8a406d48","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.4eec64a","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-REYVepw93iMLamebRlF9TrbBUwvagnYrsqY7hrtdmYBsdeiMW8abNM6rdqvVbTWH3sE1qwcqJDdVNHj0OPOXdg==","shasum":"c8fe0bef197eea0a767bf7f2402e26b86672dc43","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.4eec64a.tgz","fileCount":42,"unpackedSize":122967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICTAKPd6hQ1DftzoGuEc27adMt3m/1SL64+Y/HFaz15fAiB68keA7kicXf1mVZi7wqJDQnNuHG5Gphv/JLjbtZiL+w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSuFIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpE/Q//VptlhS2B0BlKdUa/PR+6a8+L0N6dF8WlRrxlHDoMj6qzk+zv\r\nSWjr2n2x8qZJE6yIfk1qsERVxJoZIHXirHmhE2BrrlMfHu8zeHOCNwXTTVhO\r\nhLiE4EHJEfqRfHJQS0DnVvErD/CjzoEC5uPqGhiy2FcH6jgIAh4kpV2WKCWd\r\n1H1uI8n9rmC8WImYTUj1YDEmjqGhoaqFQJGOJC0sUHN3lEh2lXRro4rdQcH+\r\nthAv23cjlVhdOGv9s1ESeb30m4d12DMe97iVbsmCg6y3fkiU81u5mieiDUC6\r\nc6koCUpFYHCENHJ7FEdwCGYli8ZoPn7ZwUBOXWvLaPaL/7oNN15f5ZSXTDs2\r\n49pBuSbrbPeofqsOC4Qgb934/RWfCJOKJEil074/cD2TEkcKRelaJlOuXQpz\r\ndoPTVcOPVkAgCYDQmMr9Yod510zlgl7PgMxsu2zvPBs/9cthCbPEeSxoFZsc\r\nNQOT+UaQBE8n4yyC+8vFJ23TQIvLfb5glhQtam0F45BmYBYye94xpSu1/Kqa\r\n4XC0DozPzjH5XBhfpYl8/n3IEFayHMuktIsSkLS9pPrfT8ZBLzTas/VVxKtQ\r\n/ODWpQD2yCfvYbSn5aRQQBtVtYSgXK+pyIv7ufb6h0oXytgL+vDNpiyCHRPH\r\n3eUMnkbIrxLgUogYZiDtIM+fiLxX3zoLM6o=\r\n=fvGQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.4eec64a_1682628935931_0.37945548447802424"},"_hasShrinkwrap":false},"0.0.0-alpha.23":{"name":"lazyrepo","version":"0.0.0-alpha.23","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"7d0331d07e2d52d7173915ea00c74cd8bdd05adf","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.23","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-GcvVhamremOd2yFQfUfamKc9EhXv0i6ycTQ4ZsSFd1R1E58/R4NHedd74Ec0Hx2Sq7A9zlh1lsRL62JEIYd+Yg==","shasum":"f85898a3ddd453dd22b695051aedb1e629084d68","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.23.tgz","fileCount":42,"unpackedSize":122961,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5tNYIKwVpLU14zaTAfE7l/NYFU7JQNriN5TrAOlEV0QIgPCUOIX8AX4GorUDEcEYCNqczlaZX3JMwfoLcd56/TDA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkS4bgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeJw//XGlW1lZdiptslpuOzQv80pLsnk5ypzgJW6K65IOJyccQoJYb\r\nEgZeOVespS/UebroZhQdN8NkIkGL02NWn03G1hBGgwVjX2hDM8IyczAz0Nqj\r\nz+3yMbPwBAT379uaWTqW7EvziK49ECgiiaUJ8eVZ5+c/U5lrYE0cesuncxnz\r\nfifNxm3tN7S7sp3oe7GRl6cDKUGfRZIResPYpLygKzlY46XUCtHq8HJvM+fe\r\n4hH8rE3+LsHp8sBsOHXBS3YlmYM8/Pvplsyw0i+hn5fGCGNnUObvtoil71b2\r\nkQbsQqTKjs8Yh9RbkggbMAhSk0TAmFgVFp8FzsIMeLwsB1lP5a3NUhQnhg0s\r\nYjp9BOQbyl1YBdo5mPwLAuPfBhqT4yJrDYBEUDg6Qt0ViLze7U3r88YbQbKZ\r\nKEll5dOqhUV3Akzp9uOzf9Taty7u70B2pT9RK5y+uqVc93yu9xBa4BHGUlT0\r\nLIHK8m3WBTMI14Lo0BIaY314gCLjA+P1S71nYLkSMSoIFAttV65U66IHV+8X\r\nd4EkXrGO/837CbEls8c/svvybqeC5ZavFq30NWDbCplX4WX+ak9dkkw4ANwg\r\nzlg2uOb/duUlJrfh0I/aZlsONwOswWFPqUDtm7WJ3Ih7K+ozRfRcRzfTDj3n\r\nNKkxPLH2ys8XvmnD4z1T/YW4hkTz6lxIk7E=\r\n=CiMQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.23_1682671328328_0.5948161273756398"},"_hasShrinkwrap":false},"0.0.0-canary.9737351":{"name":"lazyrepo","version":"0.0.0-canary.9737351","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"9737351919cb2beb3d7b8cd6f6f7137c638dcd15","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.9737351","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-UcJx9OTjUEBJ//Q8LZcYrMdJapukyYh0P8WGWNtqXP8GPJfZ24kQYOKOZPh0lMhmZkZUDcbAKd2ZCLYKkquJKQ==","shasum":"9ffccdc4e82225c22b7996e3b527290d25c5b3ed","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.9737351.tgz","fileCount":42,"unpackedSize":128703,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBjuTP125mIN8iY6LqvTWEWMPlQqTGjPf/WyMPDBquupAiAxKFQ6tERwDw883rsBz6cZ68/sSF6ax+yFwkS9IaH+2Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTi47ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSOQ//cSBdIf0yti5IXlKfNedRfK96NMc/Sl8kWfZ915wxGNR0tq/D\r\n2ljNu/RlkDBzHqYzDGrTPzLwG3cY0r1jk55Ci4tALkbFD315yzr9ZEGM5Uib\r\nx/KqLPuGG4thmDC0bD/CJEb4cWqdr8f9Y44+NVMi3oP76N3OE5ZBaiwhHrVq\r\nAXzCcsrLdUjBlTYOAVuoUNkxrj5nZKM8JrZJR0tB2uzzJrdDvjLLRSJYPmID\r\nk9VlKr48JQ76GA1mPVhUZ2f2riWS842FNAj9ahfH59NV6ZiZ59CZXoqcN/NU\r\nx0RpNrxivdO2OaihBNP2l6IxR0VjgLMvq7K8LK8BDSHgB2mOQccIC+PDHAuw\r\n/nSP3koOyPGb0F4VDN7p/hAFndSDi6BCbyC18uMsTDESkDofY8HSwIRd9HjR\r\nJQOicUyWSv+I6SwIR296rsW6DGnu/7uPyTt+IXCFQMmvzz1sKq6ExsQkHwNH\r\nRT4dYUHUiOPTPnj2l9F1MexbdQDTpe1XrQ2zd4yNtkBV5VC57yLXdROCPbyf\r\nA9B3NSashW35P4C6y194V52IwbcyH4+mr4VA4HbTGD7kivpeq4CwXzyISwEN\r\n4Brdj1n+dz24DAljs6aJ4cHzcywbFQ5MNAr1DmyqB2HdtHK3aOql5E7ISFbT\r\n8re/ezdNdFLUuN1kFj7Rd3wk+bclHsp961c=\r\n=jt/i\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.9737351_1682845243507_0.20684578447234103"},"_hasShrinkwrap":false},"0.0.0-canary.823099b":{"name":"lazyrepo","version":"0.0.0-canary.823099b","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"823099b5dfe24f5f07f4b031ce3963c482ee60f5","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.823099b","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-YE0TVSFOR0rvMcLgQ+blgsgvm3yhBE5LEp9PTqGFIMLesE6/KO7f8to5S36fIorGYmWfrMYUmiv+h6q+vnypDQ==","shasum":"48bf2ccf5585a8b889526420590b95d205f5e67d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.823099b.tgz","fileCount":43,"unpackedSize":129474,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAnBcZDvQkSLcEYY1TVvIzxHL0l6DMWrA+ut5lXzogVQIhAI1znBI4tPhCFhJsVUDqm/qDxZvlAMvRhB7N5i1LAzJF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTjuUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXsg/+LJorZ//dokF3MP1nMvAseg/uB3JxoDtWYRUPzBguyTGTfcLp\r\nQMpBsZbeOiKXDm3OUFMK2rjUpFuBNrhf73eHUwc3oT6lKSwx8jho+pIaJEt8\r\nfiwjo+Clk8X3t55QZfwCg641It/l/7QYMIl23L7W+yHy/ZNsuaE/JvSz03vW\r\n0OzHUIVnfInjsXPpXCpKkV/hSGwMPg8pCxEVT0Bbvej4UezXKKl0Qx1xSm2B\r\nKe8+pS6q0sX6p2cAadUx8x80STSZcrwQi1DgnfLJwNciUYw7KUFWfKDA/Ni1\r\nCaD8DBWDaDIFp30fyLBHLkfalePwYb/a5Q6AXLZFihVpHf+xglTCFWfSD3RA\r\n8mXjB0m1CF56LSW+5U9krKHlp9+MUm2+XmQqSIfuxDD/D+y86ubUCqoF7T7m\r\nILoOsPm0m6syEWuGojFu5GTl6u1LVTV/VxVCaosefg7nTPVgdnh5glkuaQ8F\r\npJo3gmPb9yor2g0gOAeeHGRNVFyYOj3vyUfGfYwHeAMtPhWh0o5U+zSkevTu\r\nWnI5wEos4VthZHVs9xiriCpVf5lFd9OIVyV5/HLO9vEM5trrKJkJJJHmMDst\r\nI1xyvKJIAiGL1wQW80UfhX57eqyMWprzFZWkxvsNVLPep+SByYGN4LpDhmZl\r\nhMy4mngNxuhyxbfTfVPeeQmqntzwyl+M39Q=\r\n=McG0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.823099b_1682848660122_0.8941672979799575"},"_hasShrinkwrap":false},"0.0.0-canary.6c7d499":{"name":"lazyrepo","version":"0.0.0-canary.6c7d499","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"6c7d499086e13288885339152f724a3529aec794","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.6c7d499","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-20ShPUUCM6D3KGsEuavSDzv/srB2buu2sHs3OpvDd6IK42ElfgMvMiKtBrm7GX09cSvvNOm844mMV9EK9KBzqw==","shasum":"c1b5fadb665107f206a76c8dc189f18b1321688d","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.6c7d499.tgz","fileCount":43,"unpackedSize":132686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5OibRW5aiZFJfXiCQvYiX4HcbvK6Nv4kNWBjOSTxU7gIhAKj5V/8MH6CLVHycUocTvMJAPYtZJz6M1Nf/R4ntSM1x"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTn3GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6KQ/+LxWIK3wkYZ7fjju5kyKakSEZbFNYPmBoCMpPRgNfoVRZYZB8\r\nChlpvKlRJe1E78hqdgQ8KowMzDca5ZGXh0dzZHZseRY2piAESGEiqyvgOqsm\r\n9avkYfY9ifbZuLfr3b0d4+U4UOihnR+eMNE40B2QUJvWHcu4AY046IH6ikUA\r\nXbszqG9mWmYR+z4Acx929M+6ktHCuCkQ5UATUz0+rTqb8NEt8YcoVy4kdBtT\r\n6BK1ywh4qudQTRqMToQ22aTc73/LonPhwNR16wXaUdWuDEcZ0GDLRnoAS4qb\r\n4l/YycaOs/Lg8cTKMU2YVX9+2UzWWfn0NW6qc7ByY4oxJHZFL/zz3xb0XsTc\r\nRwu3VwU8ncZndjq68LEnPKH1npKwSf7Hcdo4tFJzzqG+kGOugLT98oF0jJyC\r\n2lY66+ZNsh1mS6G0KtKWKR9laU6XVMrbJumKd0IHChS2c3opAZSpQ1xbdwXz\r\n1O3klNrQo9yZap1GjBGXsoSX0MGtykG4p/HecAea1wPF2XewNBXy+eowAf49\r\n04ChdVUJk/Srn4oLDIoeWFlqKo1y8qQldiURZyiy2H4ddGd/NfxuHtnop0cB\r\n0dN2W50zJb2wQDUjIU9VpHN+VrVZG7UZoi4N2fbO8/fEPHNXEjMwwQOfhsAa\r\nP7R6GrXqwuKRrl6Fu2kjNM54sc423iOetRg=\r\n=YJz/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.6c7d499_1682865606131_0.8976617112015901"},"_hasShrinkwrap":false},"0.0.0-canary.241f860":{"name":"lazyrepo","version":"0.0.0-canary.241f860","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"241f860dc429d17b8084d42a13a0ef7109ccb431","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.241f860","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-9e5IC8RyOxjPn0MtWd1bVSDT+WoWw8b/BNByMmWiUVFHnaLIshv9OeBIlrKEqgD6Q9Y2BYOguwyQYcG5TN0uwg==","shasum":"d18343fa7d01af83cf3dce8094e06794f8cd9d26","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.241f860.tgz","fileCount":43,"unpackedSize":133096,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHIFj5eZbVCIVKxW8VwJuuKWK3JpRL+YApSOsR6+U9FrAiB14LCOQXWXH6ll1zoQJB/tvPniZkDxmtc54jDdq+2eUQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTpF2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9ng/9Eysapid/Di7DTaFREhF4wyM4MejD626rj21hrbhXaTVsUV/f\r\nK/cen6+Ycdn1AyQCzDieqlFeWoavRxaCY1A9Xuf7Bbxn+ZlP7kmAiWyUNvUu\r\neMFETxsqayEVPdxfntbRhvdBMtA1qU7a+z85yAuWVwGw+yhdBciFmH4m+Y0q\r\nb7vWxhYsjgj9STSoVUk6l/c+kYJzL8Kjbn72X7yls1aITsZ6Rv4fzDgq5Gpy\r\nnWCz/NmDcHRAJKyBnreH6zNndpElT7obEYuj9eIJgV1UHO0sYm8SvdCZh9D7\r\nHPdoyFdtBetBBkNU8bzzbbaLILGRREZJx1UUq27JpaIa/a48J0iEiB/ZEOLS\r\nMXAVyYZx3LCprOng+vEpyMhlT3SB9ScYX0joLSYc/ZFVjNx30XT3EHIUb/BS\r\nAmgdUwb3j1naWV6KqlfRKW1cQn3vFfy7YcGFuZmqcg09pUZ9NhZWutyTuKDL\r\nIn/MgCkxdmB78dBtjwjqOFjLVCrWjiaXbBrabaKH5GhN0zOEzyGmO+vQgEVt\r\nZ3ROBZgSzou+TQkaaCjZuTPJL0v6PwK31Bbd4RAsWveK4v3vdXqeACPz4BoI\r\nleru/u1QG+Ga0PE0eB/QMdS9a3W8NdVEEldQLSoxrrpOBGgGrBTjGgGl7tzx\r\n1wYxJojADfB4RkdAIOKooR41JDwGQv3SREo=\r\n=CsWz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.241f860_1682870646119_0.8246135334102407"},"_hasShrinkwrap":false},"0.0.0-canary.24d5968":{"name":"lazyrepo","version":"0.0.0-canary.24d5968","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"24d5968c0efaee829dce820f9701e5393776413b","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.24d5968","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-yI/GRBY4JyrmeKNOtc7lMpZNjTQWaFXJ6KlhXzS7gikdAtgUYCo2TsRVohcpnZZ+QHGJDtZD+WxYgAzWi2L0hg==","shasum":"20f6fec53a7c3601517580ea9aa8fd4e8662386b","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.24d5968.tgz","fileCount":47,"unpackedSize":141207,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFX3GpuxyRJCXrzLPyvq/LM90P/X9UBs54AoDzDNdmyZAiEAl+HK7cORfeX9kM4HbMVXzm3io9IpFwr3KbsyBLTUVGw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUDKDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpWdA//SGjhkRA/uXJyAnEyUZJXUcNEFkoDdJkpWCB9L1uD/XZ3xlq/\r\nS12JHG7rALNDHUWAUZDZeaNYZ5nFZU5UGRTBtahvMZ8GR6Gjtc73VLJQFc06\r\nVcmyPGA4BPkdUmFHbpFpE3HtF+kRVVKRvJjvACz+ebfYI/oDuSoKrsxKLXPd\r\nP3I8D2qpWp3exozT6s4Fx847thEqIWdOi2zWGOzjlNqr1+aWvBd9HdSTD+Ek\r\nPdHokZf9OVRXnRvwKHlNxzy9qFrFbVVDmlusI9fYRBSxaA95IeAB9woUi8WX\r\nbT9Zw7WsHYiZ3m/bfz0gN93V8W8r6NXuOJtUbAoXvkbPmlCj2M3cb9XH56cP\r\neqz4VglV8u+/EjjKP5zgQBs0/LzoKSl0D+Jg2AfKMVoIHQediMUmlnLDaLmu\r\nGUj1AU5kGujSy2dLTtxJyYvgyHDDHCqk/RObIJCjuTHAZW0daULPKqv45WB7\r\nTQJwb1oBufdTEqRLrWPRUTpZhAFpiQMNG7vtWAy4ke0MgVPgFlHW+aHD60J0\r\nkh9pv2cvypJnsWP+sgAyJcbQiJ//MttlK1boclhv6g0nLFd4Tdvymj8SK3rF\r\nEcpcXTvQROookevj6Iic7EwZ/cvWe71LnNnDVkPSWGjaprIwFbu6Hki6WXcT\r\n6K2bREPvwBf3e2mWdtSm9KPx81CMsJPM1Wg=\r\n=TC1R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.24d5968_1682977411735_0.5526880229350555"},"_hasShrinkwrap":false},"0.0.0-alpha.24":{"name":"lazyrepo","version":"0.0.0-alpha.24","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"8104545feb26c5def07f45c8c194f889be8dbe60","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.24","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-HRB86q16S7Y8DUcI4SCvM4dv0eO+Xaj3XVp6mdhPtJa2NIzpeBiwK2PFyYYctWXnnxzYCeUtYIGXIHRx1YXtUw==","shasum":"0e6ed751b9db282ad7b531c09016e9f0d7546801","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.24.tgz","fileCount":47,"unpackedSize":141201,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAf9UE4v+TQR9WbVJQ+aMz7KT3ubs0xUDDWZBjftiPIKAiB4ybgN1WKrfdp/SGOnS2Jqzd5ZZhP9TH4RjV+4c/9hxQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkULmCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRaQ/+LKiECm+Q4b9KWd4ct4Vc9Lc9Sz6tZDRZlx42vIzoXEabqvn1\r\n5reOw2HzI1leUJDhOKKfwNDvsmFMBKM5MgSzPaKKdKR3mde5eBEgJh7JvGOA\r\nHDX3MHJQRoPcnOspo6Nkx9xpxK2HGTEZqbAr2we3SjqolBewqhdfUHaD3C0D\r\nZYilGTpXO5oYiXoBGxZMUkMW1CiXOR34fodVwfTU9Lz1uWkzP4IAR60Urwk4\r\nmd4wkGj3EaLfXSbhXKR9JFIXNKFAfPhZ8bafACVjcDnx4wFm15AnL33/0xsH\r\n0pQieqJTkA145RaHdk6mP+0HdzU5lVgp+rlPxWt6uLRNFMYK7pri4HopuwAd\r\n0p8q3AcckXRNP/u93h13fM6S2pYMFIRIpziVrUNfxtgtsIAzQfir7Pmnxleu\r\nroXM2BL2GFQRM6Nnn5zGaWV+ocaest5frW6zAvLolgw36wKXZgbLcLfGTJJB\r\nT9bXdZTZtkcTxmoHgcDUe17+Xe3tKtTnJ28JwzdESlzOZ1bj149bGFTCSy/C\r\n/kh2ZUQA3DlPbqNov3o7HwV+LsEj3FeL56pXTUNFQd04sRQYFpXP26knRfFO\r\nVV/EY/LMNamLVFoZ4an1WT2QD9hK/qkrT7jOXel/dYSoc2WQMsV4Qf8Ok+l+\r\ndghJpmI3rVFYdUjOwQTBbIxXS/eTV1B3WgM=\r\n=mINO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.24_1683011970673_0.49262681444912326"},"_hasShrinkwrap":false},"0.0.0-canary.e77c21b":{"name":"lazyrepo","version":"0.0.0-canary.e77c21b","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"e77c21b019f010ae21bc4cde758c2ecceb7a1521","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.e77c21b","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-ky8ajSdHgVQTckVCHXg6LgXyNyxlRDuw0WX6c0J2FBS5m+tehbAkiRetMIHar/NDnEWkxRj2f8xDYT38euuBCQ==","shasum":"eb16b58e1cee1a3f18e76e8c5d8ff1751717d374","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.e77c21b.tgz","fileCount":47,"unpackedSize":141203,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDezb+mVkLOpOoyplmHoiCIc0+oahpSny/K2eSCZzW4BwIgP7WS1JFMygcF/X0kC54LSyEc62Zr2XMSgUXRpX4Pcqc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUOEyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqfrw//Rh8p8aU5/FpZeqg8ZckMfzpUjkg4k9EP2zbhqG+SCy66s+5x\r\n5JwzKeClJyZBgNbR6musMumgTXKDz+ELKhOYCyo8vp60o2ugZE+z4NF9zNzH\r\niesuaJ/xqeqmbYnks3cp9oGtoi7WugYj6H0ZhpS6s7wJQLezDD5Klk19m7qH\r\nX0155Opn6wK9L176nRwRFhkx6DYTu/L4ITohY09dl24yQmaCij8Q6ugn6Ou0\r\nuSJ+5cxRlDHvkLRUNPBrjhs5ez7HgHfUPShk+1zf4YUyyi44Sxtf/lRD+X4F\r\nfexWHsiQUDjHA6FEt8g+S4y27H+Yy5axwsyUi4XzzvCW/9TO/DQGEFON8MOb\r\n7HjUfy7Wm64s9IJzmJuEIP1wXuIUCEMBqtXT5/YaM3zgb+DMik/k2SMNBkGA\r\nloSk9hKnpSNfUoPq2m60IMavvs0fxqNBBwSwk4eD6hCKdkZqg62a3cMg6mB/\r\n3mjHeMzu3/lFZ/GgHazsLJAaHnYyu0p2t4VZ4ELKXaG8ocjWOhrJVLNEA4xZ\r\n0uEfmWdkph+vt2R27jtDXo1TFFJtS6HUGYmY4JJVi1E3IttLDEmmJu6M4+/N\r\nCokALL7hhHDwHEoy678YuswkIHlUQr0hi02+wFTT4n86eCOlMxLm9IInlBwQ\r\njUfhLK+Dgb5IgP7hUEXWPbxcirQEaH06tVY=\r\n=MsNN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.e77c21b_1683022130280_0.9949146787876657"},"_hasShrinkwrap":false},"0.0.0-alpha.25":{"name":"lazyrepo","version":"0.0.0-alpha.25","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"333a621467a3506b0850bcf2aaa30ace75908cb0","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.25","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-KPcp4SgCo2+BhUwy5bDUtoDwRytXd4XXBT8nMMeUExLUMizw3z3CjzbRTmDQAbF64qXBFavNdath2kwdeddoVA==","shasum":"e3792dee3ee37cf56acf963709674ec60f80e6af","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.25.tgz","fileCount":47,"unpackedSize":141197,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1gw91m9JRriPlAbYqHpjuHMuqkReiqkS6q0aZKiUIHwIgIfyeLuIawCEzWi6V25n+zw0tp23T9W8lQ8P1sRDp1MY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUOFDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAJw//cmqINyJBQAzXfnQF//OTadWeuD3gvGowY3IkoTvyKRx1sHAK\r\nJmFY79pCB9gD6pSSTgSiX3YdLpvUdHD+O+HurOkKnse9gSesh27RYueKz/dB\r\neQ76uLuIAVXrS9AgRKxJj/OR1ufq8ZCuN8AGmE5dkltq8Usu1gPaO2zEHETu\r\nJyoolten7kIKYwx1pFjoWDZlyODB388/kp/n/vYgnABplFBGimgzQEjtB8eY\r\nPtAgynJ9H0Q/Wql/gM94Pg0yQiNvipGaLeIQGzE7QwyyE1BKnY7lbpwAnRSK\r\nLOEtocujwSYg6/V8eVlVn94Ygk8WgFxZjyGN1BnJax1gNWXcVYrxrO0xOWy3\r\n1pxC//HqdMgLOurLe99jKcKJE3dsSYv4ER7YZHbAra7S/HBeZQ7QA7Vwj0tR\r\nw+5OJ9EE+DniA0JOgyD1f6iJ3nNLzC5PSjoAW6BPT9t5bcfVHaS6+eF0lsiH\r\nu6PryKt9zCUsVc04UCAc/br4+XF1gjHWrTWetHwETn8slktQ8RZCBo4mAQPA\r\nP7iY54ZA/nvLc+IyKB7m9n0daVTAyRShyTSoGZPWkTTQaWH7JQafXYMQQccR\r\nLEyCwGge7Tr3fVDgsi6fV8Vl8UHlCOQOhT1JjvkqhLd2AmgQ3Zh3Pi8nRRSx\r\nG8HQH9KIMy914PW93d9vviOMjeQgZL3h0zs=\r\n=oJ+4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.25_1683022147241_0.0030016602538265325"},"_hasShrinkwrap":false},"0.0.0-canary.83943ca":{"name":"lazyrepo","version":"0.0.0-canary.83943ca","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"83943cae89fc35995ae7fdb9eb1e63ab6cf4b325","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.83943ca","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-KtCkDST5OwuSxmfJ+T+qLXzYfs8sfx8lzdYh8KFXeBKpWl5G2YPDHeEVoC9JSlPHjenWBrkki16W6Qge1FwATw==","shasum":"b1c8450adb7b16dd11bdd0e89a09510c3df74fdc","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.83943ca.tgz","fileCount":47,"unpackedSize":141140,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC5Dw5vVygD7GT4Sw+0pjbnqf8mvx4forucj2ShCCm/GAiAGhTNFbHbi7z0EpIHWfW6Qvfmj64Ys+EJsAfzyPTMjGQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUPTMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGsRAAirqnitHLB9J0mXqzm9Wdm6uCnGV3ldpp73fbktJxqx6NXzIZ\r\nzl0Y7xIlTL1ycWzUQ9ERRKQDY2hdBjgyCimZDqp5pVEyIm/49OYUQMaVpDq+\r\nhnH1WbzJhdAYoF0Vr+70oDpkjAYRhfuRMiDRuIsyxulqWjo270ZQz898qey6\r\nenwteBu0MTnFL1PuAly+j6/SES7WN2YfDWKUeTfCDEc8uS0BDsd33Ojbwpid\r\nfMWM/ShYfwdiZzZOzQ25pVc+hYQsKPDW/XsZsUXrvurEczpvy6xU6kgUvO8Y\r\nF5bk73xCAIRLm33ktO0YekzL4UlWYH4LjDluplGWnW4Cp21u4YXyLz5Qg5ne\r\nJTm5CAaz8VRV1xGKG+Jva5QOiMrWlP3gPtlJUVt1A1Ih1oGnz/64xNpQa9ft\r\nT5uN9OOOFmOvvwdsZ8Jq2IynnbOXmqYdvCwUsCyIl/rvhukFpX6vRQWTAvr/\r\nhohec+m6otNFhpRCVBgiRGP6pP8nJ7JflLSnD9JhHeqAehCDJodjGSpbytGx\r\nu+tJdeQogMJWJCem+owjoekYYNSEW1ZOZCda7ghM2vABh3lXIAKmenoet6WP\r\npOsSeJ9hOXSZzfM2Y5NhDdR/mV9ZknJjHsRR820lzUydMz3UVnb+OgnY7JF0\r\n6tGRAe4e3wOjQTGXxPQARxTHKiESnM4LLa0=\r\n=J4Vy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.83943ca_1683027148536_0.5622034639529314"},"_hasShrinkwrap":false},"0.0.0-alpha.26":{"name":"lazyrepo","version":"0.0.0-alpha.26","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"268958132f1a66cc8b09a7e893a85d706ff5bcf9","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.26","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-TFULJg5UV9HQmimp82h9Z9YDfQ5E51/w+bZ/aHUDx2SHPHhCOss9+vaKAJjkKpO4xQS5d+hWQcxS+ZuwO9bxAw==","shasum":"1f5f519ebc32c2032f19c500cded39afd3745f86","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.26.tgz","fileCount":47,"unpackedSize":141134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNbua1TMNZFF2lCJx1QDI5Lae1KfD1GVB+CQYlMtqPEgIgVc+bhFvvsRMq5bWbgdyVfLKqxR5ujnL2+UNMeRoKAmY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUPUHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmra2g/+Jr6p8dIDmz4T4kp406eFwWZL2ibhXvZQF4hJVbkEkT/xcuvM\r\nONx4iD9lOeif7wAWKrnCZFrSkt0AC8CkRGpdQ1XdNdFdPd7MMd6hfaDURaUU\r\nmyTFrLbhpL6XGiEVfn0QLGw4jmXkuuADE1QtJMVhsbcClH22N5uAos60aivg\r\np71n7+YzDO7qYft0P7d4pVDRGccxNf1Jejmp/vZujxNTqQucLF8PEv5w/yTB\r\nzRgQZuheri1rub36LQbYzbg4aBtz/0Fbsif6q+FGRPjw7kp43OMQMHEqsF1C\r\nile/+oNJt7Q0wfVKI8l7FYdQX64xpqx8n01+0X53keLISquuFZ7KsbBwjQHR\r\nvv3uVu1FSqcia3IvcAFUAQ83uzcJd6okwbD29tvgzCcRbUUvYj564OtozPYa\r\nENz12Mi8hJkJ5Mg3gRpNM3seoBLTqSibTAuQMTZ43GxwKvvacWF+qPbbWVVC\r\ndlOfvCFPfbTX138o+F57MmvM9ii5DeNlnMV4CRh7+OSVh8ybclZTmnxqXxKi\r\n6Y6wDMj+ufnhExUHZKWxREpFKIYckRhPm5YVOpEmNNybl1b/CXqWX35WixuU\r\nYC5HjwYJT1BhSZIOnbcKxIRLuDsRrJx4AN/6cQ3Xdl5FYjZBxv34ZJNwTt1d\r\nqgEyfWvYr0Udy8j1lGHHiUhCk1ZjtjkrKqk=\r\n=HW/K\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.26_1683027207152_0.2150007322216403"},"_hasShrinkwrap":false},"0.0.0-canary.ea2200d":{"name":"lazyrepo","version":"0.0.0-canary.ea2200d","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-glob":"^3.2.12","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"ea2200d233a105a8884adfade28419156e85f184","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.ea2200d","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-vD6DDBM7nPWhSBFdx7lbMaSku2hR7Z7BMSt8TDCrdq5m7yxiFJlZLfTBGIP3nfGs8fx1FBmUSstnKmoM74nj8g==","shasum":"c8629aa1a5319d1bbaa7094833efbc165ecc7fee","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.ea2200d.tgz","fileCount":48,"unpackedSize":141566,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFf/hN6IQ4p3isA8J2/z5LUWI9XzEohaYrVFn6QTcynrAiAakEC9P7kBKI7UEZksdXX7ivMB1Q387QeSKWwVQ0nmqA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkU8vSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4zxAAnYzrqvK5zbVEEnzudD7/BSBo1HljqFy4fds0sbmhm+pdEhHa\r\n7ryIRNfL0/NMzoVzcLUDPgoHeZQ7tpQmuqDBwZ+/JhG4UNwTpOgQOqFFNlho\r\nGtWGmskxiCxegpmp/vlLcL9AaQ6f2YACGtR2lNBPhyzJG+Pl49mw8oiT9dHI\r\nkCxCl817CBEGPmZdkcu79+H5gx1tkJ8j+1eJ7VtuwDTgExuLqxmpUBurNagC\r\nJzRucrPp7EbYiY5pUJDRen4BlLyZpe4YnC2Qo5Kemi6Nw5gJaDpsRyUUd4HU\r\nIRgi/wk/+VP82FAguo3Ouk0goUIB1+jWrqhZ9cjvClMKHicKwXZW9vtW6+Nj\r\nOIAClyhOARhPZt00QYxmjXnsB9ynOcgbsiHnHuZDJEgJAcfWJfBNLvcUFgOv\r\nrLRtK4R2ff86QUuxcbKUkgq0Dw7BDfkBVtnvo7flMtB3ky5sskKOlZx/e8fa\r\njQNfpYO7xZv/XBq66AtHCZ4/klgMNoxZBs/89fhkeRGIGt3rUWZxl/2lUUeg\r\nTWhADp/oZI1shViUrzpHMXH2Xeh8fzrxr9+1244I/emcHQJLlWxD4xkGqfg5\r\nudxYG95bJpMy6vCG4CUWALrQjNRI1XrF5W+YU9aZghl74NzPlXFezilC/Co2\r\nt5DqPDfn/t4GFjA5grUH23IbdpMGFo0aQLM=\r\n=Davz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.ea2200d_1683213266375_0.5489171179298402"},"_hasShrinkwrap":false},"0.0.0-canary.66a9919":{"name":"lazyrepo","version":"0.0.0-canary.66a9919","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rm -rf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact '**/*.{js,ts}'","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"66a9919c7c3b2c01604a378845c131c43483e4b1","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.66a9919","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-tirJxjRhxsGzyvN8QYZmhCO/queaXN349dV9MnOuLM7S1BjPC2BcTnzbhHdtdMztaEf36G2JlMrgbFz1Yitj6Q==","shasum":"4cd084597b17e10697b1270b928a7cffc25a9beb","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.66a9919.tgz","fileCount":62,"unpackedSize":163657,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeDERgx5sbfMgXfOf5nSoRElWp1EO2hiuqtRg63eIzGgIhAPjT2AH78Bydfa/geU841NzDYxTGgFzH2YbvqJPhVXV/"}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.66a9919_1683650692079_0.5327179211880935"},"_hasShrinkwrap":false},"0.0.0-canary.1924288":{"name":"lazyrepo","version":"0.0.0-canary.1924288","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"19242889bc98d095b159f154fc724a8efff21229","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.1924288","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-p7crcNlOJh3Y3KVYD619Q3ZhlrBmHMz/arWnp67+MbQ61b1tFNu0RtpDa0krAbnb/YGmtLBh3ccjtxGrJbUGcQ==","shasum":"c9a06e09b6ebd88017f5e1556744d5cb107713a0","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.1924288.tgz","fileCount":65,"unpackedSize":165585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD12xLBcWzFI3kVy6Xunpm0GqmVthJk3akmYjtwc7eeHAIhAOvGKh02MBwp+NEfBXAuuNS6vN1sQuXBJHc4kn/IT5Pm"}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.1924288_1683795893661_0.9132515711438907"},"_hasShrinkwrap":false},"0.0.0-canary.98aadea":{"name":"lazyrepo","version":"0.0.0-canary.98aadea","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"98aadeafca0e63a50ddaab39e1e1f04a35206695","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.98aadea","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-FGcnL2kZUdcS+IsOyxZF7g5HAlcb7isKqRqmDuQv23xKTzLJl/zTXCtFLzIorFwE5vGonzensUFErfB+LoWP2w==","shasum":"6e99a5f19f28dac352f26be97503f46870361f78","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.98aadea.tgz","fileCount":65,"unpackedSize":165585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDG1hg0zU/nIdlLsgeidSNsiN4/nf2KZv4lt77bN5k+RQIgeRdEF0GSN02Ws8OpoF6b6bB+NVERVPvHf6K2ZV1LFUE="}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.98aadea_1683798812435_0.1382509348885672"},"_hasShrinkwrap":false},"0.0.0-canary.93d56b1":{"name":"lazyrepo","version":"0.0.0-canary.93d56b1","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"93d56b1e32579bb539a350808e8a706dc38b2422","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.93d56b1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-y9c/bljoAh6C9HDVtBB6iUJWVVJ2liRWyfDHMnTIGeHuk4VLnUfjRkHXXQCDF+vtz262ZjzDNwFk6STRQENziw==","shasum":"e10e4e9b3064e1a68c8034bebb76c92ca055a71e","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.93d56b1.tgz","fileCount":65,"unpackedSize":188509,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHga7HRakBroo9ZvS5JbGAB/sYnSVHWvs9NupIMujT9GAiEAufI3y0A2C42FxNguqOL29Rdp/XCYXm5DXQjTapY+buE="}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.93d56b1_1685910843185_0.5777103019858789"},"_hasShrinkwrap":false},"0.0.0-canary.3d416a9":{"name":"lazyrepo","version":"0.0.0-canary.3d416a9","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"3d416a956eff2f6700e816709cb5f16714878032","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.3d416a9","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-dL4ixxu5ElhcHNXMDrF95w3i8Ze5NXzCf1r5rMivLODt9ty0pd44CDyjf6ai3hV/5LGOAVbS77EzWNiJ6usJWg==","shasum":"518309ec91b0c617975a5778d09dc5f3a8dc5dee","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.3d416a9.tgz","fileCount":65,"unpackedSize":188818,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwZaoUTnHFSGLk7NBEGGD8aerBayMiYbbQLsN0H2BLXwIgDqaWFJ7GCP0zlkcsyprjeioTpTXIycuSTVHQcjyz6/I="}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.3d416a9_1685981608296_0.8809804005015502"},"_hasShrinkwrap":false},"0.0.0-alpha.27":{"name":"lazyrepo","version":"0.0.0-alpha.27","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"gitHead":"7f40119edfd5ee4a25d217160bb7ee0f940623ed","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-alpha.27","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-tnOEmd6fiWqgkLNt6AoCRzHFQegW5ZfdQ2z+cTbz9JdD5paOorPz7XZRpc6t/LrobwCf5Yqc/VSRtH3fNBLQdw==","shasum":"766aee234533d34d6c15fb7647580483c91daf2c","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-alpha.27.tgz","fileCount":65,"unpackedSize":188812,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlh8JLP3LLFpVpvqnOdGHnkGggt7ZIX2etdywotZNS6AIhAKBrJb0K/dUz6U6IXG29fG5wxC4TfusavxHB+19upXB3"}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-alpha.27_1685981904247_0.6630902457123555"},"_hasShrinkwrap":false},"0.0.0-canary.c67eda9":{"name":"lazyrepo","version":"0.0.0-canary.c67eda9","description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"type":"module","main":"index.js","scripts":{"test":"rimraf .test && jest","update-snapshots":"jest -u","clean":"rm -rf node_modules && pnpm install","format":"prettier --write .","format:check":"prettier --list-different .","lint":"eslint -f compact \"**/*.{js,ts}\"","pack-test-version":"node scripts/pack-test-version.js","prepare":"husky install"},"packageManager":"pnpm@8.3.1","lint-staged":{"*.{js,ts}":["eslint --fix"],"*.{js,ts,json,yml,yaml,md}":["prettier --write"]},"keywords":[],"author":{"name":"David Sheldrick"},"bin":{"lazy":"bin.js"},"license":"MIT","types":"index.d.ts","dependencies":{"@sindresorhus/slugify":"^2.2.0","cac":"^6.7.14","ci-info":"^3.8.0","cross-spawn":"^7.0.3","esbuild":"^0.17.15","fast-json-stable-stringify":"^2.1.0","micromatch":"^4.0.5","picocolors":"^1.0.0","slash":"^5.0.1","slice-ansi":"^6.0.0","source-map-support":"^0.5.21","strip-ansi":"^7.0.1","ts-dedent":"^2.2.0","yaml":"^2.2.1","zod":"^3.21.4","zod-validation-error":"^1.3.0"},"devDependencies":{"@auto-it/core":"^10.44.0","@cloudflare/workers-types":"^4.20230404.0","@octokit/rest":"^19.0.7","@octokit/webhooks-types":"^6.11.0","@swc/core":"^1.3.51","@swc/jest":"^0.2.26","@types/cross-spawn":"^6.0.2","@types/eslint":"^8.37.0","@types/jest":"^29.5.0","@types/micromatch":"^4.0.2","@types/node":"^18.15.11","@types/semver":"^7.3.13","@types/slice-ansi":"^5.0.0","@types/source-map-support":"^0.5.6","@typescript-eslint/eslint-plugin":"^5.58.0","@typescript-eslint/parser":"^5.58.0","auto":"^10.44.0","eslint":"^8.38.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-n":"^15.7.0","husky":"^8.0.0","immer":"^10.0.1","jest":"^29.5.0","jest-resolve":"^29.5.0","lint-staged":"^13.2.1","memfs":"^3.5.1","minimatch":"^9.0.0","nanoid":"^4.0.2","node-gyp":"^9.3.1","prettier":"^2.8.7","prettier-plugin-organize-imports":"^3.2.2","rimraf":"^5.0.0","semver":"^7.4.0","typescript":"^5.0.4","wrangler":"2.17.0"},"pnpm":{"patchedDependencies":{"jest-resolve@29.5.0":"patches/jest-resolve@29.5.0.patch"}},"auto":{"plugins":["npm","pr-body-labels"]},"readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md","gitHead":"c67eda9d332b85c135f8a69a23570a67b3b1f698","bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"homepage":"https://github.com/ds300/lazyrepo#readme","_id":"lazyrepo@0.0.0-canary.c67eda9","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-qgwLQxzBkCgETn8zjgzQJ4CDFFp65CLi0Km8FymnhRx1JG9MhRb1W/1vcorO15mClh/F6dXfAvDbm0lLol7V9A==","shasum":"2c465f5130e90e93935b78f3031253cbf258a0e8","tarball":"https://registry.npmjs.org/lazyrepo/-/lazyrepo-0.0.0-canary.c67eda9.tgz","fileCount":65,"unpackedSize":188818,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxDJW+Vss7miOvAbT/afg5CSu0HNEz2u28qnTcYY9ReAIhAJwDGH7+V7vUcY/fa91K8LtJh/Hru1TKIeSqrBe+vyr5"}]},"_npmUser":{"name":"ds300","email":"djsheldrick@gmail.com"},"directories":{},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lazyrepo_0.0.0-canary.c67eda9_1686040176380_0.4609920933386116"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-07T09:49:46.285Z","0.0.0-alpha.0":"2023-04-07T09:49:46.476Z","modified":"2023-06-06T08:29:36.687Z","0.0.0-alpha.1":"2023-04-07T21:41:26.543Z","0.0.0-alpha.2":"2023-04-08T10:05:49.560Z","0.0.0-alpha.4":"2023-04-09T08:42:30.610Z","0.0.0-alpha.5":"2023-04-11T08:20:14.056Z","0.0.0-alpha.6":"2023-04-11T08:45:55.612Z","0.0.0-alpha.7":"2023-04-11T16:32:04.251Z","0.0.0-alpha.8":"2023-04-12T15:05:54.121Z","0.0.0-alpha.9":"2023-04-12T15:52:15.418Z","0.0.0-alpha.10":"2023-04-14T09:41:05.251Z","0.0.0-alpha.11":"2023-04-17T13:07:22.892Z","0.0.0-alpha.12":"2023-04-17T14:15:28.415Z","0.0.0-canary.cf889a4":"2023-04-17T17:32:41.255Z","0.0.0-canary.d9f4a38":"2023-04-17T19:50:44.046Z","0.0.0-canary.4cefca1":"2023-04-18T11:14:58.794Z","0.0.0-canary.f7fb837":"2023-04-18T13:39:59.212Z","0.0.0-canary.2422a97":"2023-04-18T15:35:13.827Z","0.0.0-canary.8c2ac0a":"2023-04-18T18:56:37.526Z","0.0.0-canary.295c3d7":"2023-04-18T18:57:07.824Z","0.0.0-canary.9805cdc":"2023-04-19T13:38:56.667Z","0.0.0-canary.484aadf":"2023-04-19T16:21:50.098Z","0.0.0-canary.4514acf":"2023-04-19T17:09:44.100Z","0.0.0-canary.78b2d21":"2023-04-19T20:36:06.158Z","0.0.0-canary.ea81681":"2023-04-19T20:53:26.859Z","0.0.0-canary.5508b1a":"2023-04-19T21:34:39.554Z","0.0.0-alpha.13":"2023-04-20T07:09:38.231Z","0.0.0-alpha.14":"2023-04-20T07:32:41.760Z","0.0.0-alpha.15":"2023-04-20T09:25:58.467Z","0.0.0-alpha.16":"2023-04-20T14:21:30.733Z","0.0.0-alpha.17":"2023-04-20T16:07:14.751Z","0.0.0-alpha.18":"2023-04-21T10:02:28.363Z","0.0.0-alpha.19":"2023-04-21T13:06:03.072Z","0.0.0-alpha.20":"2023-04-21T13:31:06.945Z","0.0.0-alpha.21":"2023-04-22T07:53:21.953Z","0.0.0-alpha.22":"2023-04-25T10:28:51.835Z","0.0.0-canary.4eec64a":"2023-04-27T20:55:36.140Z","0.0.0-alpha.23":"2023-04-28T08:42:08.513Z","0.0.0-canary.9737351":"2023-04-30T09:00:43.718Z","0.0.0-canary.823099b":"2023-04-30T09:57:40.322Z","0.0.0-canary.6c7d499":"2023-04-30T14:40:06.294Z","0.0.0-canary.241f860":"2023-04-30T16:04:06.337Z","0.0.0-canary.24d5968":"2023-05-01T21:43:31.950Z","0.0.0-alpha.24":"2023-05-02T07:19:30.880Z","0.0.0-canary.e77c21b":"2023-05-02T10:08:50.460Z","0.0.0-alpha.25":"2023-05-02T10:09:07.443Z","0.0.0-canary.83943ca":"2023-05-02T11:32:28.799Z","0.0.0-alpha.26":"2023-05-02T11:33:27.335Z","0.0.0-canary.ea2200d":"2023-05-04T15:14:26.554Z","0.0.0-canary.66a9919":"2023-05-09T16:44:52.270Z","0.0.0-canary.1924288":"2023-05-11T09:04:53.822Z","0.0.0-canary.98aadea":"2023-05-11T09:53:32.605Z","0.0.0-canary.93d56b1":"2023-06-04T20:34:03.378Z","0.0.0-canary.3d416a9":"2023-06-05T16:13:28.507Z","0.0.0-alpha.27":"2023-06-05T16:18:24.425Z","0.0.0-canary.c67eda9":"2023-06-06T08:29:36.575Z"},"maintainers":[{"name":"ds300","email":"djsheldrick@gmail.com"}],"description":"lazyrepo is a caching task runner for npm/yarn/pnpm monorepos","homepage":"https://github.com/ds300/lazyrepo#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/ds300/lazyrepo.git"},"author":{"name":"David Sheldrick"},"bugs":{"url":"https://github.com/ds300/lazyrepo/issues"},"license":"MIT","readme":"<div alt style=\"text-align: center; transform: scale(.5);\">\n  <img alt=\"LAZYREPO\" src=\"https://github.com/ds300/lazyrepo/raw/main/assets/lazyrepo.svg\" />\n</div>\n\n> **Warning** Currently in the prototyping stage, expect breaking changes! Get help or join in development on [discord](https://discord.gg/XWb3NGHkfD).\n\n`lazyrepo` is a zero-config caching task runner for `npm`/`pnpm`/`yarn` monorepos.\n\nIt fits right into the niche that `turborepo` carved out: making package.json `\"scripts\"` scale without adopting a big industrial-strength build system like `nx`, `bazel`, `rush`, or `buck`.\n\n`lazyrepo` is scary fast, despite being written in TypeScript rather than some young handsome clever funny systems language.\n\nAside from perf, `lazyrepo` comes with some big quality-of-life improvements:\n\n- A human-friendly config format.\n- Concise and timely feedback to help you tweak and debug your build pipelines.\n- Palpably sensible defaults.\n- You don't need to learn Rust to contribute.\n\nTrust me, the whole situation is so delightful it will make you reach for the `:chefs-kiss:` emoji. And then you'll realize that there is no such emoji, but you'll want it so badly that you'll draft a proposal to the Unicode Consortium to lobby for its introduction.\n\n## Installation\n\nInstall `lazyrepo` globally\n\n    npm install lazyrepo@alpha --global\n\nAnd also as a dev dependency in the root of your repo\n\n    npm install lazyrepo@alpha --save-dev\n\nAnd finally add `.lazy` to your .gitignore\n\n    echo \"\\n\\n#lazyrepo\\n.lazy\" >> .gitignore\n\n## Basic Usage\n\n### Running Tasks\n\nRun scripts defined in `\"scripts\"` entries using:\n\n    lazy run <script-name>\n\nYou can pass arguments to the task script after a `--`\n\n    lazy run test -- --runInBand\n\nThe default behavior is optimized for `\"test\"` scripts, where the order of execution matters if your packages depend on each other.\n\nLet's say you have three packages: `core`, `utils`, and `primitives`. The `core` package depends on both `utils` and `primitives`, and they all have `\"test\"` scripts in their package.json files.\n\n```mermaid\ngraph TD\n    A[packages/core] -->|depends on| B[packages/utils]\n    A -->|depends on| C[packages/primitives]\n```\n\nWith no config, when you run `lazy run test` in the project root:\n\n- The tests for `utils` and `primitives` will begin concurrently. The tests for `core` will only be started if both `utils` and `primitives` finish successfully.\n- If you change a source file in `core` and run `lazy run test` again, only `core`'s tests will be executed.\n- If you change a source file in `utils` and run `lazy run test` again, both `utils` and `core`'s tests will be executed, in that order.\n\n### Other commands\n\n- `lazy init`\n\n  Creates a config file.\n\n- `lazy clean`\n\n  Deletes all local cache data.\n\n- `lazy inherit`\n\n  In larger projects, you often end up with the same `\"script\"` entries duplicated in lots of package.json files. Keeping them in sync can be troublesome.\n\n  `lazyrepo` lets you specify the command just once.\n\n  Replace the scripts entries with `lazy inherit`:\n\n  ```diff\n   \"scripts\": {\n  -  \"test\": \"jest --runInBand --noCache --coverage\",\n  +  \"test\": \"lazy inherit\"\n   }\n  ```\n\n  Then add this in your lazy config file:\n\n  ```diff\n   \"scripts\": {\n     \"test\": {\n  +    \"baseCommand\": \"jest --runInBand --noCache --coverage\"\n     }\n   }\n  ```\n\n  Now when you run `npm test`, or whatever, in one of your package directories, it will look up the actual command to run from your lazy config file and run that.\n\n- `lazy run <script> [-- <forward-args>]`\n\n  Runs the given script, forwarding any args passed after the `--`\n\n  You may filter the packages that a script should run in using the `--filter` option, which supports glob patterns.\n\n  e.g. to test only packages that end in `-utils`\n\n      lazy run test --filter=\"packages/*-utils\"\n\n  You may force all tasks to execute by passing the `--force` option.\n\n      lazy run test --force\n\n## Configuration\n\nCreate a file called `lazy.config.js` or `lazy.config.json`\n\nTo create a `.js` config file, in your project root run:\n\n    lazy init\n\n```ts\nexport default {\n  scripts: {\n    test: {\n      cache: {\n        // by default we consider all files in the package directory\n        inputs: ['**/*'],\n        // there are no outputs\n        outputs: [],\n        // a test invocation depends on the input files of any upstream packages\n        inheritsInputFromDependencies: true,\n      },\n    },\n  },\n}\n```\n","readmeFilename":"README.md"}