{"_id":"@taigrr/gitward","_rev":"7-18ca61c921d2e0998b46003c9552026e","name":"@taigrr/gitward","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@taigrr/gitward","version":"0.0.1","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.0.1","maintainers":[{"name":"taigrr","email":"groot.tai@gmail.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"669c91552a82bc2cd5249aca1b3e8251c7729429","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.0.1.tgz","fileCount":6,"integrity":"sha512-vdDmCEl2EKDkCEPyUFLx/xu7FcLwmKu93l1MYHulyg8YvcO6QLCU5YKrlrZ+P15922tqT9WuOGtz+Ho9PQQj7A==","signatures":[{"sig":"MEUCIQCq68N3+cbrrGQblqGEr0qrhI0PSeUvIwmDsUz6+SKjtwIgR70R+LEQ9J/i1tE5fyJq4q2tA+aSKWkmoRMOfcJtb8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19630},"type":"module","gitHead":"ea46db9b4d8b479445f06eb5da01e1e03bd92571","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"taigrr","email":"groot.tai@gmail.com"},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.0.1_linux_amd64.tgz","format":"tgz","checksum":{"digest":"27bc9eb7dbc878f6e30529c1f4f1f3c8763b27da0df7bbd8425e51f188c117d0","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.0.1_windows_amd64.tgz","format":"tgz","checksum":{"digest":"01254c60eae451306f6719c22cb131777b411e7d67aaa9e542aacb7482f758a0","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.0.1_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"d06db7f04df542d0fb31f3a3cc39c943104e4a1e331a05351310bb16ab3684cc","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.0.1_linux_arm64.tgz","format":"tgz","checksum":{"digest":"c2fb035bf767bca00b9b4d902862b9310d5b15e2fa8277919a1f4048f1fe8971","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.0.1_windows_arm64.tgz","format":"tgz","checksum":{"digest":"3be464a91a36618083bac26dc13ac56e3d3976b1b8853a325e45b5ef442915a8","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.1/gitward_0.0.1_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.0.1_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"6c48cb970e1ab32bd0563096cbcb361a5e334a8ab6ede1dc696c0148e9cdd4f9","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"11.6.2","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"25.0.0","dependencies":{"tar":"7.5.15","jszip":"3.10.1","proxy-agent":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.0.1_1782929026451_0.0732571366594974","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@taigrr/gitward","version":"0.0.2","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.0.2","maintainers":[{"name":"taigrr","email":"groot.tai@gmail.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"7a2456f3212ffcd05f8f06b9261c38c86b3fe7c0","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.0.2.tgz","fileCount":6,"integrity":"sha512-4IXFUy/tpiXZ4hi4F0N73Yu72z7kIPQ07Yxu+CbA8D8W3GU3kGCP6lIZ9QvLiNFjP7o3eQOu8iHA53Tm6yAiug==","signatures":[{"sig":"MEQCIBqpjMWY0gi53BsYky6bFHh+q1JlGCWtkTfg9gHON87VAiAFZjdcA9bwaZ0LC37q1j7zoDMCefoHO0zxDmzCP3TJ5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19630},"type":"module","gitHead":"ea46db9b4d8b479445f06eb5da01e1e03bd92571","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.0.2_linux_amd64.tgz","format":"tgz","checksum":{"digest":"52991a4dcc6d25432a3056abadb8e6f01d92c36c96fc46390ba07888891a12dd","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.0.2_windows_amd64.tgz","format":"tgz","checksum":{"digest":"521006ab3f7b2ea8b41b8a972ca27eb608185b6b3c6fc942e19a7f4cd622ff66","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.0.2_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"a5bb3aeaf358c253a79c8da8f383f95262e63fe01096297a176b6f45cad8ec75","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.0.2_linux_arm64.tgz","format":"tgz","checksum":{"digest":"819e3456f4df19027b050f55ef0e6018663d9f51e6464e475f251046bfb2ad0c","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.0.2_windows_arm64.tgz","format":"tgz","checksum":{"digest":"2767ffa939c958193e6b08c4e9b00a198ff4a021a00b2f02039b37d0fec66fa7","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.2/gitward_0.0.2_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.0.2_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"91fe82625ac36b0e0b8a1d1b177ac5b32520f8140bbfa7c6b4fcf47a6195fd1f","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"11.18.0","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"tar":"7.5.15","jszip":"3.10.1","proxy-agent":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.0.2_1782929416354_0.09349856669882683","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@taigrr/gitward","version":"0.0.3","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.0.3","maintainers":[{"name":"taigrr","email":"groot.tai@gmail.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"3ccd299415e779bac708f40a6df3e839cff83c3c","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.0.3.tgz","fileCount":6,"integrity":"sha512-e/bPIZVx1Tp+1q+W8kxZovaVkdi5tyJ5WCYlq/sSMqvfTO0C+5+8xamftPS1Izr490EJMQwK/10GJeSJ1PbqVA==","signatures":[{"sig":"MEQCIFyg2TC0aqFdbjrUSJAKjTWXgU4fGEq5xvuJEWwenZUYAiArQNI16d9vdKewO2Gx4L0ZZ5OkgyF+yBVAywXtDZfUpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@taigrr%2fgitward@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19630},"type":"module","gitHead":"6cb5fcaf4c1f397950ca6cd5a5ca8411c24ced81","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.0.3_linux_amd64.tgz","format":"tgz","checksum":{"digest":"4b9d1222e910589ec00344584c34828cbe07227f5ea07e9b5bbcfc58bc6eb94a","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.0.3_windows_amd64.tgz","format":"tgz","checksum":{"digest":"f808d43011850ad40977499fa2158dcfd97bc236bef0c74d8925d0c710c071ee","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.0.3_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"3041e8888aab0c3174323616868c0c4197f7939bb43c57ba6773fbf77a098228","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.0.3_linux_arm64.tgz","format":"tgz","checksum":{"digest":"44f6ef095700e1ad8386d2e94f4fa4ca3725f7f95ff6e7f79632a4935283e617","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.0.3_windows_arm64.tgz","format":"tgz","checksum":{"digest":"f715894f609e6d50b90eb396dee8b3241676287bc033210165f98cd7bfdac028","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.3/gitward_0.0.3_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.0.3_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"e039792d57eabf12a16335b0064c85974b9442dff29963d08b02d1df50ad8ef3","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"11.18.0","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"tar":"7.5.15","jszip":"3.10.1","proxy-agent":"8.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.0.3_1782931344917_0.6809313951448999","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@taigrr/gitward","version":"0.0.4","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.0.4","maintainers":[{"name":"taigrr","email":"groot.tai@gmail.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"9f6d127773d4eb1f11ea6a95c819a04ee1ee946c","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.0.4.tgz","fileCount":6,"integrity":"sha512-DXuXcfJJKpSg0naAl0BQTgPGk6BxehD1FRi78RIfBkfBEtZXXlLxYBHR1IB9WjWlfjtrF2iFGQMMxrtATmenlg==","signatures":[{"sig":"MEQCIE8rGpJJtCpi5xBxzhVPgD/zuawiwrq+vjlSo6z5o5mcAiBLyRih+9/6H6/LaQ/alm4aN7o9W5mD/Ioj36MFMes+AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@taigrr%2fgitward@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19852},"type":"module","gitHead":"2b3ba280e572334441e1191ef9760d6864e4236c","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.0.4_linux_amd64.tgz","format":"tgz","checksum":{"digest":"bcf23e8396e8936ec6adef4d59314f886bb4006c4262271e2645ef666cc3879e","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.0.4_windows_amd64.tgz","format":"tgz","checksum":{"digest":"f7bcf091bbf02d79b76c722c3f83dc42421833d741101aa82ab43eefceca5729","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.0.4_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"9fc5d5214f0d6dc0841581035448c7f97cc2661385f561d0fe81987c6d2ab11d","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.0.4_linux_arm64.tgz","format":"tgz","checksum":{"digest":"53e84bdbfd29d9f91399ebbd712b18fb231e25af918f64d1d3b77e5e3b1c4235","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.0.4_windows_arm64.tgz","format":"tgz","checksum":{"digest":"4ead0120286a9f19442f64f8679c8644a0beed9f36daaaf6365096d965e87b4c","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.0.4/gitward_0.0.4_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.0.4_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"bb50c72d0ec2863311f57a4d660556f5ae6b253cffd8bebf34b4cc7edcc750c0","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"12.0.1","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"7.5.19","jszip":"3.10.1","proxy-agent":"8.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.0.4_1784845795667_0.39929279769999404","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@taigrr/gitward","version":"0.1.0","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.1.0","maintainers":[{"name":"taigrr","email":"tai@taigrr.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"d67841863dac9b79fc97d44af41054cf905d6d6e","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.1.0.tgz","fileCount":6,"integrity":"sha512-QQ7H828ytn5ixB5MhDNSM+xFmeOuMXDqPA5vwJtgSmtPZCyWXKpGRZCRPPt0CtOGaYPOdPFLJz/AuWRC7i8swA==","signatures":[{"sig":"MEUCIQD4KJkbus3ylYAaRFDLJGEQLhxy6qyjpwQvGLHUIH+wsgIgL72s5/eWrkKbFrGTi2SDi0X/N9rD0KG80dBd0+dsMwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@taigrr%2fgitward@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19852},"type":"module","gitHead":"08898f54c1b7ce6322a247c0f23b5d15d149eae6","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.1.0_linux_amd64.tgz","format":"tgz","checksum":{"digest":"220a2ad31dc9d73dd7201f192e55fe510d44434ca7e9ebd7a061acb772fafa14","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.1.0_windows_amd64.tgz","format":"tgz","checksum":{"digest":"b1071a09f67df209ae0b7a1805304db8abbb68802b5290b3fd57d47aeffe3912","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.1.0_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"400bef7df8900f6cc6b693ba6446e769663d67cab21785442007616f5a38592a","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.1.0_linux_arm64.tgz","format":"tgz","checksum":{"digest":"f0292adf9edd77396bf5b540117978d8830ad96e700946d0c40b9476b83a146a","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.1.0_windows_arm64.tgz","format":"tgz","checksum":{"digest":"64f6b0abc545bbe63ccdb1ecff867f49d986643bfeee77528617e6085d642dc1","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.0/gitward_0.1.0_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.1.0_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"5d6f77fa30aa01d8159a4575be5d9e353dfdf4cc79cb42eab3efd1862708efbb","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"12.0.2","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tar":"7.5.22","jszip":"3.10.1","proxy-agent":"8.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.1.0_1786833633462_0.271865324433324","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@taigrr/gitward","version":"0.1.1","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","_id":"@taigrr/gitward@0.1.1","maintainers":[{"name":"taigrr","email":"tai@taigrr.com"}],"homepage":"https://github.com/taigrr/gitward","bugs":{"url":"https://github.com/taigrr/gitward/issues"},"bin":{"ward":"run-ward.js"},"dist":{"shasum":"e7c77dc2ab40779a8750acc59548fd85ec26c5d3","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.1.1.tgz","fileCount":6,"integrity":"sha512-BTIicZwC5EETcmBgW933PLx/Sd0QRTll07cQDZCPNbX2iWtu1VmNNsSZ0l+cWuyWe/LZPUvI4DSDGlKTBboSyg==","signatures":[{"sig":"MEUCIQCq9PQK/tEviViXE9DFl83v42RDHLjTs0PuT3FEIlOpkgIgJzPxyLt8sVQOydvTY2rFQDRmDtF9RprUgEWSQQvBjAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@taigrr%2fgitward@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19852},"type":"module","gitHead":"65906e8636d54facb8113b0eeceb6a9d1d5ecab1","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.1.1_linux_amd64.tgz","format":"tgz","checksum":{"digest":"536ff7a7a7d5892a7791d08ecdbd69879e43d385fc29dfb68264ea904c44ebdc","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.1.1_windows_amd64.tgz","format":"tgz","checksum":{"digest":"d516e8f7f7db9c184c646229b6738e9efb21c6fb6c0e2ec8cb4c193fc33497c3","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.1.1_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"b741950ba0b7dd351ec2ff6d407b0cab33c8e92a336f0949ec8f20e1d75f64f1","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.1.1_linux_arm64.tgz","format":"tgz","checksum":{"digest":"8a3e04edaa88da723c0e4bdae680c34498eccd9f364863bd2e2d94c8096be8c6","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.1.1_windows_arm64.tgz","format":"tgz","checksum":{"digest":"ececc52f422b4b0a0f0c21a86f7f0c1f960eb1331fda369d33963cadaaf2b920","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.1/gitward_0.1.1_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.1.1_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"09ec3f10a5cec700034af3d66b855c565b0ffe0f1f9bb5e5bfdcfa68ff9d913d","algorithm":"sha256"}}},"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"12.0.2","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tar":"7.5.22","jszip":"3.10.1","proxy-agent":"8.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitward_0.1.1_1786834133477_0.07745651768753814","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@taigrr/gitward@0.1.2","bin":{"ward":"run-ward.js"},"bugs":{"url":"https://github.com/taigrr/gitward/issues"},"dist":{"shasum":"65d96e5f479e5d6d7ed25f40835ae7aad1662032","tarball":"https://registry.npmjs.org/@taigrr/gitward/-/gitward-0.1.2.tgz","fileCount":6,"integrity":"sha512-fJGVJ4e9W+qqV0QVbeRW+HJQi6nzALXUKhZ2vjcLvBifsonhIvuyWGXi3ClkbQW8LVoXtUnh7d20h6msRBmgwA==","signatures":[{"sig":"MEQCIHi8oRiQZ9BL4ojIWBIDED6m7agZ1TdVUfBHCZjGOFgzAiA2gr2C3mBnJDDOow/LxuA1bhhc+7HBC6vwWxxV8ebvmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDXgyvCwLBqIybjzLOlRvr5NlAUtcX4jn9mUsxq848WnwIgbGDQao0KyM7bdHiIptS6ymjkqAUhlT/qBrgW4rusFto="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@taigrr%2fgitward@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21799},"name":"@taigrr/gitward","type":"module","author":{"name":"Tai Groot","email":"tai@taigrr.com"},"gitHead":"4634efe316506d4f552415e757e507568e21f1a0","license":"0BSD","scripts":{"run":"node run-ward.js","postinstall":"node install.js"},"version":"0.1.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f9389e2-2bf1-478f-bf56-d520e87aed09"}},"archives":{"linux-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_linux_amd64.tgz","bins":["ward"],"name":"gitward_0.1.2_linux_amd64.tgz","format":"tgz","checksum":{"digest":"8b21299752b88cfafaf4d19180d2b6b2cb34d8c743caec878e473ca37c1401d1","algorithm":"sha256"}},"win32-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_windows_amd64.tgz","bins":["ward.exe"],"name":"gitward_0.1.2_windows_amd64.tgz","format":"tgz","checksum":{"digest":"89b4c5999d2b887a24f36850923d1850996be77e63bb0cfcde862ddd18b63601","algorithm":"sha256"}},"darwin-x64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_darwin_amd64.tgz","bins":["ward"],"name":"gitward_0.1.2_darwin_amd64.tgz","format":"tgz","checksum":{"digest":"a1fe1164c8aec008d47038136b1a8f00d4243c66dc8811246182b6cab2b608a0","algorithm":"sha256"}},"linux-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_linux_arm64.tgz","bins":["ward"],"name":"gitward_0.1.2_linux_arm64.tgz","format":"tgz","checksum":{"digest":"7212fced5ce6607c3c4e6074dd3100444d3bca860fbd271a2da5be3f6b294d26","algorithm":"sha256"}},"win32-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_windows_arm64.tgz","bins":["ward.exe"],"name":"gitward_0.1.2_windows_arm64.tgz","format":"tgz","checksum":{"digest":"ebed2d2d2617a7e0f3312363817e7615d70071bc460fc9137db3388848ad7509","algorithm":"sha256"}},"darwin-arm64":{"url":"https://github.com/taigrr/gitward/releases/download/v0.1.2/gitward_0.1.2_darwin_arm64.tgz","bins":["ward"],"name":"gitward_0.1.2_darwin_arm64.tgz","format":"tgz","checksum":{"digest":"33ddef8f002340493ace6954c1ed5fc025d17f0dc84994c1a4eebb7436284497","algorithm":"sha256"}}},"homepage":"https://github.com/taigrr/gitward","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"_npmVersion":"12.0.2","description":"Painless, git-tracked, encrypted secrets for your monorepo.","directories":{},"maintainers":[{"name":"taigrr","email":"tai@taigrr.com"}],"_nodeVersion":"22.23.2","dependencies":{"tar":"7.5.22","jszip":"3.10.2","proxy-agent":"8.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitward_0.1.2_1789689232364_0.9384290573183551"}}},"time":{"created":"2026-07-01T18:03:46.174Z","modified":"2026-09-17T23:53:52.710Z","0.0.1":"2026-07-01T18:03:46.594Z","0.0.2":"2026-07-01T18:10:16.657Z","0.0.3":"2026-07-01T18:42:25.053Z","0.0.4":"2026-07-23T22:29:55.809Z","0.1.0":"2026-08-15T22:40:33.597Z","0.1.1":"2026-08-15T22:48:53.624Z","0.1.2":"2026-09-17T23:53:52.438Z"},"bugs":{"url":"https://github.com/taigrr/gitward/issues"},"author":{"name":"Tai Groot","email":"tai@taigrr.com"},"license":"0BSD","homepage":"https://github.com/taigrr/gitward","keywords":["secrets","env","dotenv","encryption","git","age","sops","cli"],"repository":{"url":"git+https://github.com/taigrr/gitward.git","type":"git"},"description":"Painless, git-tracked, encrypted secrets for your monorepo.","maintainers":[{"name":"taigrr","email":"tai@taigrr.com"}],"readme":"<p align=\"center\">\n  <img alt=\"gitward\" src=\"https://github.com/taigrr/gitward/raw/master/docs/mascot.jpg\" width=\"400\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/taigrr/gitward/releases/latest\">\n    <img alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/taigrr/gitward?style=for-the-badge&logo=starship&color=FF6AD5&logoColor=D9E0EE&labelColor=302D41&sort=semver&include_prerelease\">\n  </a>\n  <a href=\"https://github.com/taigrr/gitward/pulse\">\n    <img alt=\"Last commit\" src=\"https://img.shields.io/github/last-commit/taigrr/gitward?style=for-the-badge&logo=starship&color=8bd5ca&labelColor=302D41&logoColor=D9E0EE\">\n  </a>\n  <a href=\"https://github.com/taigrr/gitward/blob/master/LICENSE\">\n    <img alt=\"License\" src=\"https://img.shields.io/github/license/taigrr/gitward?style=for-the-badge&logo=starship&color=ee999f&labelColor=302D41&logoColor=D9E0EE\">\n  </a>\n  <a href=\"https://github.com/taigrr/gitward/stargazers\">\n    <img alt=\"Stars\" src=\"https://img.shields.io/github/stars/taigrr/gitward?style=for-the-badge&logo=starship&color=c69ff5&labelColor=302D41&logoColor=D9E0EE\">\n  </a>\n</p>\n\n**Git + Ward = gitward** — Painless, git-tracked, encrypted secrets for your monorepo.\n\n## The Problem\n\nSecrets in a monorepo turn into a mess:\n\n- Some live in `wrangler secret put`, only in the cloud\n- Some live in `.env`, `.env.production`, `.env.preview`, gitignored and passed around Slack\n- Some live in `.dev.vars`, copied by hand between machines\n\nThere is no single source of truth, no safe way to keep them in the repo, and\nonboarding a new dev means hunting down every scattered value.\n\n## The Solution\n\n**gitward** keeps one encrypted store in your repo and fans it out to leaf files:\n\n```sh\n# One encrypted store, committed to git — a leaked repo leaks no plaintext\n$GIT_ROOT/.gitward.json\n\n# ward generates .env / .dev.vars from it, and captures your edits back on commit\nward install   # hooks do the rest\n```\n\nSecrets stay in git but encrypted, diffs stay meaningful, and edits flow both\nways automatically.\n\n## ✨ Features\n\n- 🔒 **In git, but safe** — Secrets are committed encrypted; a leaked repo leaks no plaintext\n- 📝 **Plaintext JSON, minimal diffs** — Key names stay cleartext (SOPS style); values encrypt to stable ciphertext\n- 🔁 **Lossless three-way merge** — Store, leaf, and base reconcile like git; edits are never silently clobbered\n- 🪝 **Git-hook driven** — `post-checkout`/`post-merge` fan out, `pre-commit` captures back, never blocks except on a real conflict\n- 🔑 **Multiple unlock paths** — age/ssh keys, gpg-agent, or a shared passphrase — any one recovers the data key\n- 🤖 **CI-friendly** — A single `GITWARD_PASSPHRASE` unlocks everything in CI\n- 🧰 **Worktree-friendly** — Repo discovery avoids config parsing, so `git worktree` and `extensions.worktreeConfig` repos just work\n- 🩺 **Batteries included** — `doctor` checks hooks, recipients, gitignore coverage, and `.example` parity\n\n## 📦 Installation\n\n### npm\n\n```sh\nnpm install -g @taigrr/gitward   # or: bun add -g @taigrr/gitward\n```\n\nThe npm package downloads the prebuilt `ward` binary for your platform on\ninstall (via a `postinstall` script, verified against a sha256 checksum). Use\n`npx @taigrr/gitward` if you prefer not to install globally.\n\n### go install\n\n```sh\ngo install github.com/taigrr/gitward/cmd/ward@latest\n```\n\n### Binaries\n\nPrebuilt binaries for macOS, Linux, and Windows (amd64/arm64) are attached to\neach [GitHub release](https://github.com/taigrr/gitward/releases).\n\nThen wire the hooks into your repo (idempotent — safe to run from a `bun`/`npm`\npostinstall):\n\n```sh\nward install\n```\n\n## ⚡ Requirements\n\n- Go >= **1.26** (to build)\n- `git` on `PATH` (used by the pre-commit hook to stage the store)\n- Optional: `gpg` with gpg-agent (for the gpg unlock path)\n- Optional: an ssh key at `~/.ssh/id_ed25519` or `~/.ssh/id_rsa` (for the ssh unlock path)\n\n## 🚀 Quick Start\n\n```sh\n# Create the store, wrapping the data key to your team's GitHub ssh keys\n# plus a shared passphrase for CI (read from GITWARD_PASSPHRASE)\nward init --github alice,bob,carol --passphrase\n\n# Install git hooks\nward install\n\n# Capture existing .env / .dev.vars files into the store\nward register\n\n# Edit a secret; the change is captured back on your next commit\nward edit apps/web production runtime\n```\n\n## 🗂️ Model\n\n```\n$GIT_ROOT/.gitward.json      encrypted store (committed)\n.git/gitward/base.json       plaintext merge base (never committed, hidden)\n<basepath>/.env[.<env>]      generated buildtime leaf   (gitignored)\n<basepath>/.dev.vars[.<env>] generated runtime  leaf   (gitignored)\n```\n\nThe store maps a **basepath (directory)** → **env** → `{buildtime, runtime}`.\nFilenames are derived by convention; the sentinel env `_` produces suffix-less\nfiles (`.env`, `.dev.vars`). Only `*.example` dotfiles are ever committed.\n\n### The three-way merge (why edits are never lost)\n\nEvery reconciliation compares three sources per key:\n\n- **S** — value in the store (last committed truth)\n- **L** — value in the leaf file on disk\n- **B** — value in the base snapshot (last successful sync)\n\n| S vs B  | L vs B        | Result                       |\n| ------- | ------------- | ---------------------------- |\n| same    | same          | no-op                        |\n| changed | same          | take store (incoming update) |\n| same    | changed       | take leaf (local edit)       |\n| changed | changed, `==` | converged, advance base      |\n| changed | changed, `!=` | **conflict** (block/prompt)  |\n\n`post-checkout` / `post-merge` apply store→leaf; `pre-commit` applies\nleaf→store and **blocks only on a true conflict**. A missing leaf file is\ntreated as \"no local change\" (it is disposable), so a fresh clone regenerates\ncleanly and a pull never clobbers an uncommitted local edit.\n\n## 📖 Commands\n\nA **cell** is one `(path, env, tier)` location. Every command that takes a cell\naccepts either the leaf file path (`apps/web/.env.production`) or the explicit\ntriple `<path> <env> <buildtime|runtime>` (env `_` = suffix-less file).\n\n| Command                                        | Description                                       |\n| ---------------------------------------------- | ------------------------------------------------- |\n| `ward init [flags]`                            | Create the store and data key                     |\n| `ward install`                                 | Install git hooks (idempotent)                    |\n| `ward register [path] [--dry-run]`             | Capture new keys from leaf files into the store   |\n| `ward edit <cell>`                             | `$EDITOR` a cell, capture back                    |\n| `ward get <cell> [KEY]`                        | Print one value (or the whole cell as dotenv)     |\n| `ward set <cell> KEY=VALUE... \\| KEY --stdin`   | Set values non-interactively (`--force` if dirty) |\n| `ward unset <cell> KEY...`                     | Remove keys non-interactively                     |\n| `ward sync [--dry-run]`                        | Reconcile both directions (exit 2 on conflict)    |\n| `ward status [--exit-code]`                    | Per-cell drift summary (0 clean / 1 drift / 2 conflict) |\n| `ward diff [path]`                             | Per-key merge decisions                           |\n| `ward resolve [path] [--take store\\|leaf] [--key K (--value V \\| --delete)]` | Resolve conflicts, interactively or via flags |\n| `ward list`                                    | Targets, envs, tiers, key names (never values)    |\n| `ward ignore <cell> [KEY]`                     | Stop managing a variable (or list ignored ones)   |\n| `ward unignore <cell> <KEY>`                   | Resume managing a previously ignored variable     |\n| `ward recipients`                              | List recipients and their public keys             |\n| `ward add-recipient <ssh\\|gpg\\|github>`        | Add a recipient and rewrap the data key           |\n| `ward rm-recipient <recipient>`                | Remove a recipient and rewrap the data key        |\n| `ward doctor`                                  | Check store, hooks, recipients, gitignore parity  |\n| `ward skill`                                   | Print the agent skill (SKILL.md) to stdout        |\n\n### Scripting and agents\n\n`ward skill` prints an [Agent Skills](https://agentskills.io) definition that\nteaches an agent both the human commands (`edit`, interactive `resolve`) and\nthe non-interactive ones below. Install it with\n`mkdir -p .agents/skills/gitward && ward skill > .agents/skills/gitward/SKILL.md`.\n\nEvery command accepts a global `--json` flag: data goes to stdout as JSON,\nerrors go to stderr as `{\"error\": \"...\", \"kind\": \"error\"|\"conflict\"}`, and\nnothing is styled. `status --exit-code`, `sync`, and `doctor` encode their\noutcome in the exit status, so a typical agent loop is:\n\n```sh\nward status --exit-code --json          # 0 clean, 1 pending, 2 conflict\nward sync --dry-run --json              # inspect the plan\nward sync --json                        # apply it\nward resolve --take leaf --json         # or --key K --value V, never a prompt\nprintf '%s' \"$SECRET\" | ward set apps/web/.dev.vars API_KEY --stdin --json\nward get apps/web/.dev.vars API_KEY\n```\n\n`set`/`unset` refuse to write when the cell has unsynced changes (they replace\nthe leaf file); pass `--force` to override. `resolve` without flags on a\nnon-terminal stdin is an error rather than a hang.\n\n### `ward init` flags\n\n| Flag                     | Description                                             |\n| ------------------------ | ------------------------------------------------------ |\n| `--github USER,...`      | Fetch each user's GitHub ssh keys as recipients        |\n| `--ssh-recipient LINE`   | Add an explicit age/ssh recipient line                 |\n| `--gpg FPR`              | Add a gpg recipient fingerprint                        |\n| `--passphrase`           | Also wrap the data key with `GITWARD_PASSPHRASE`       |\n\n## 🤖 CI\n\nSet `GITWARD_PASSPHRASE` in the CI environment. `ward` recovers the data key\nfrom the passphrase wrap without any ssh key or gpg-agent, then `ward sync`\nmaterializes the leaf files.\n\n## 🔐 How Unlocking Works\n\nThe store is protected by envelope encryption: one random data-encryption key\n(DEK) encrypts every value, and the DEK itself is wrapped independently for\neach recipient class. **Any one wrap recovers the DEK**, so different devs can\nuse whatever they are comfortable with:\n\n- **age / ssh** — reads your on-disk private key (`~/.ssh/id_ed25519`, then `id_rsa`)\n- **gpg** — via gpg-agent (pinentry, cached passphrases, and smartcards all work)\n- **passphrase** — a shared scrypt passphrase for CI and break-glass recovery\n\n## 🩺 Security Notes\n\n- Removing a recipient rewraps the data key but does **not** rotate secret\n  values; prior ciphertext remains in git history. Rotate the actual values at\n  the provider after removing someone.\n- The base snapshot in `.git/gitward/base.json` holds plaintext — the same\n  secrets already in your `.env` files — and is never committed.\n\n## 🗺️ Roadmap\n\n- `wrangler secret put` push hook for runtime secrets\n- Secret rotation helpers\n- A [Bubble Tea](https://github.com/charmbracelet/bubbletea) TUI\n\n## 📄 License\n\n[0BSD](LICENSE) © [Tai Groot](https://github.com/taigrr)\n","readmeFilename":"README.md"}