{"_id":"@geonosis/release","_rev":"26-7a22f0e7816b5e195d9bc64f15f217e6","name":"@geonosis/release","dist-tags":{"latest":"3.0.0"},"versions":{"1.1.0":{"name":"@geonosis/release","version":"1.1.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@1.1.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"24689b991c44a38f67b1ba8c85d3c9cd9728cb0b","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-1.1.0.tgz","fileCount":9,"integrity":"sha512-lwCeOcR0YHdrr5ylbdCuMpjLgP2iiGarJADd1BAhjSkpG/nSS41/4dPchwYYky/0/bm+d0frlGSU/En5SEc3NQ==","signatures":[{"sig":"MEYCIQD4+N7SyIYQbRyQrOsPkZpxPf1Ko8REDoiE05UnnCkVjwIhAIyDL/iIrEpDwZEhSBY1OW2oYp77i8bWvwDODSthlPn8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75992},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"squawk-cli":"2.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/release_1.1.0_1788114850806_0.37165854901254347","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@geonosis/release","version":"1.2.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@1.2.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"a75681eb68b740bc411d6298316aa8100a4ed59f","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-1.2.0.tgz","fileCount":9,"integrity":"sha512-AT2SkfFouZDuX7OJd3WkBBRu7hvvTMXwbSTfGopLFCDaC5R4TXPlXosY/cds3hjgO/91MnwC28gdPxSzzkGoGw==","signatures":[{"sig":"MEUCIQDF760MhpDVObxaOQ72W0qolBf/s4SQMt3HOal1XmpMJQIgEiUZ9R+SOBV32A/8B4NAh3NBgIPwXTlYWhsC9q2EWQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79098},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"squawk-cli":"2.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/release_1.2.0_1788119036942_0.4846239017533176","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@geonosis/release","version":"1.3.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@1.3.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"c2e0baf7fc5977008e7b2e2e8bedef7fcd4c9535","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-1.3.0.tgz","fileCount":9,"integrity":"sha512-NUHA4dotFxtZJaSReuN+WRv9/tONCWWrG6trSWZIRkIxsXRVOd1AN/tIT2hgeTm+sg2hZgYm+KQC/MWl2APB4g==","signatures":[{"sig":"MEYCIQCoKpAQ25fjwpzDOlCzpNosQLYpzQ9VkbBTzpq+sSdxpQIhAOu1Mj7/aYz6s0Yi0WEHk+4pQs5YVB1FXwhtTaQi2hDq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82222},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_1.3.0_1788254758053_0.5738480217165789","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@geonosis/release","version":"1.4.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@1.4.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"044a21d2f0a8d44473f696b86ef854d6e74f53ef","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-1.4.0.tgz","fileCount":9,"integrity":"sha512-MX8gSIcSelN6h0seOn2QU2QeGVKlHT2P6MG2PeJI1jUAYbssO5/VMfoIjlhK0CurlEikksMYozRbvnEBS56rig==","signatures":[{"sig":"MEQCIF+HBrgjOncq4fW66SbwRVldrXKqCm3t4pGWQ4md3lHWAiBHGc7mdWXN13MW7ZpGn9SIllAcWyQGpcFOOPXcAOx4CA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85967},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"1.4.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_1.4.0_1788268905935_0.9940162985523231","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@geonosis/release","version":"2.0.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.0.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"348f41e0fe24dfb05b4b2b57b81cbd32e7edb851","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.0.0.tgz","fileCount":9,"integrity":"sha512-PvB4BQS0wlH4A0vqXG2eWnZygokprl0u0BbCwkss/xseLLFOvH5dIpFBKm8MhmNoU4+Z0ia0G+bdJhOzGmw9Wg==","signatures":[{"sig":"MEUCIQDGPqoEXR2oV0w/mvZiG1PRPLVoD2ACdyjUdfplepIPbAIgN5QTz5e4DEdeGXb2SD0QeRy32SLziILCocx1y6ZgELc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149668},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.0.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.0.0_1788332149866_0.5168493568706947","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@geonosis/release","version":"2.1.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.1.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"250e4707e1ca954a00a864c8da82399c82e47144","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.1.0.tgz","fileCount":9,"integrity":"sha512-2RGW3JlihIuQWXlj2dguouQ81xqxoPXkHwhf+j1M/T4QGCaMzsenXh990axSww8E3Zn/zkXuTlBTlsFmbmrEtw==","signatures":[{"sig":"MEYCIQDRIA7pIMTExW1fkQKe3LHk4zsM8+1Zt8/mssR7zEtG+QIhAKSHwAh4swNsUkrIVwu4Vg2pDq4eW2tatZFbjJvyfkqP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167340},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.1.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.1.0_1788357157998_0.3122876187323609","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@geonosis/release","version":"2.2.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.2.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"ea456d9bad3aa89e171f1bcc85c435dd68ff2da5","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.2.0.tgz","fileCount":9,"integrity":"sha512-cPI2RcE/3tQpdQORQts0L1G4FmCBk3f6b85dWPa74KExWkKvEWyx38TGkcztfa75cFhpYPj/wgINbjDtez3Jpg==","signatures":[{"sig":"MEUCIDUqHQ4bKf/iqbF18eZ0KBUQrtHc854fJOWGbVatu0iCAiEA+S5lIVri8gzWC/rB9jeIGK6vEA4RXNEnIZZ9sNkWRCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171241},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.2.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.2.0_1788369597358_0.6252269608002929","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@geonosis/release","version":"2.3.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.3.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"dc7a098b01f1806cb1c342b8fcad884c4e930221","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.3.0.tgz","fileCount":9,"integrity":"sha512-H0W/6v2nyUnySa/SeNPlr8fMjYPqOgQKZ7MYEnrl0ZsrifquFvow8FXGW2o3gHFUyk5flzWI7fnNaeE0Yvqizw==","signatures":[{"sig":"MEUCIBTwKCN+dAqOG2d5CjUqA0RKv9sy4pDrzCE3SZl8mRgWAiEA77gR2Gr34NHEZFZIOK5z12YQKTqpXdx8Xm3xFmt4Vfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181649},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.3.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.3.0_1788419924558_0.6458444069562286","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@geonosis/release","version":"2.3.1","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.3.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"060ac2d52bdd77a9695217ec15f062329effb4f1","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.3.1.tgz","fileCount":9,"integrity":"sha512-ia9yWc1R2XvPrnlwhgP2gWzDKxutkmd8xfTAZVr8oEX6r2P1HNGZb1D91USX36P2k6o3qfQ8pP7MALycRycISQ==","signatures":[{"sig":"MEUCIFUFfJCn+CI9uX9uAyeyp7ym++aoQXbc070or6eC3l/gAiEAmGreRJUnCEwmieMVh4rpdeBRDl4hcYhEMafCsfZv2hw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181649},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.3.1"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.3.1_1788435297272_0.12120790792531921","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@geonosis/release","version":"2.4.2","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.4.2","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"d8daed06249d1070ac4b0e28db3e23c8c9e269de","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.4.2.tgz","fileCount":10,"integrity":"sha512-xF55+sei+uhpOf3mJz/U8P4R0IIB9468R/qXyMK8RfHz+TVmv9v6qZH5HV8aLW8hBfLlxhF3OJvyiEODUCUklw==","signatures":[{"sig":"MEQCIAPPLOKglrLJK66Jum5TEo2032j4OpYBaKcXaIwIUiJrAiBAmPmMFZGtcgRSmeDXw0mCQVzyKuaw0gr7JYGqcJgclQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206063},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.4.2"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.4.2_1788444808300_0.06428731171498847","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@geonosis/release","version":"2.4.3","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.4.3","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"cd38476a216e61a2d9f278dfe55c7baffe59d0d3","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.4.3.tgz","fileCount":10,"integrity":"sha512-/ldJwhjNky3DEaDy6RwaBh6hyZZNQ5jHjfDyZgwD2y+fK3tvftOfnAE3oVF1zcltSgEHAjL2hPuAsjR+bKGokg==","signatures":[{"sig":"MEQCIC4ww7njQlkDto8C77XoHIuZUbULIgDu4GBwBJ/4RP98AiBfM2IxpAflO9ruS/u82yrRx2b5tTI/Lt1cg4WzXL+/jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206073},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.4.3"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.4.3_1788565999972_0.27196812069912135","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@geonosis/release","version":"2.5.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.5.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"93d66fb63cd95baeb489377064ac80b788d680f6","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.5.0.tgz","fileCount":10,"integrity":"sha512-OJj1Rfm2EBjq9w2aBTZfixqaGzH2bEbYbpoKMzumoprsaIUYsX1q67NbukQ45RrZoBlmdxorrykw0Di4HCsExw==","signatures":[{"sig":"MEUCIQDWriU+FnGML5I6wNalWMJnGnexI1UoTCgxV/VII1uV2AIgIxla4SAJo7dyXlc2nPzT6XJ2it5Wy295gEhSGuMeXsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208334},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.5.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.5.0_1788595391612_0.9304658518653799","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@geonosis/release","version":"2.5.1","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.5.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"bf6872db8cdeccb4824593c0116b59640a953a82","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.5.1.tgz","fileCount":10,"integrity":"sha512-ZPN5hUF4cqNpqvSUGih0ksgaakhIvfJHsF7OjJ1hZqyKkDE8OEEB2Ov9YvZ/CX0phDIX5EDcEEQXng6sjYkUCQ==","signatures":[{"sig":"MEQCIH9sLC3odsPkZaPBWU3Q5u5P/LS831em18nLkBxHgYfOAiBfUZFSsChkUxEKxNZ9+WqnafMTzAULhXwLAbrHcGcCHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220514},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.5.1"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.5.1_1788685753688_0.7059324392605637","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@geonosis/release","version":"2.5.2","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.5.2","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"19a45f9607486cba8fa9530a8f2bc1db49020739","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.5.2.tgz","fileCount":10,"integrity":"sha512-aMlLZXtCDfMhlgg2wV6kUc6/EBDVT5/5Ro6Pz2DjE3cJ6F+UaU+H4k63ip15tbjWhmFuee58mVIPJMeHaaBtgw==","signatures":[{"sig":"MEUCIHHIN7/riyBttyTAiDMvw0Ne9GWjZMfOuNIC25wm/36qAiEAykTITiT8xZ3ZcumvzeaDIgqCJcvp8ps2YuUrT0nSvLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220524},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.5.2"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.5.2_1788701273547_0.7088688063855315","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@geonosis/release","version":"2.5.3","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.5.3","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"7cfaa383eb9bb33439b6051753e2b8285fd1564c","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.5.3.tgz","fileCount":10,"integrity":"sha512-uCgnie8EDogawBnhHkB41oWkF5LwsgAHgSAek4Q9zkGTbgalCAtEQsYevy9d/3bPo3FivvjaTYHekkVMSOydqg==","signatures":[{"sig":"MEQCICV9XxiRkRosPIHYQQphHn1HFmihAPlnvAslBhZtuF7RAiAWok3jBz7GqyCesDa/iBe/ewCCd02rQMTVt1ew/edNDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220534},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.5.3"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.5.3_1788712648386_0.17334115279881868","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@geonosis/release","version":"2.6.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.6.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"d18b068da8f3354b8c177ec9241b9a7fbe30987e","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.6.0.tgz","fileCount":10,"integrity":"sha512-euTWrvmen51pNmdHWHQwlN+M+WaRmhnb72qtk9J6rmgTonoiPu03agTDMSXltGXmivulpER5PigPB91muqRxXQ==","signatures":[{"sig":"MEYCIQDdmePyBbxHg2xIvUaT23TwFeWGmUPeUllCgERbBsFJ0QIhALNEZsaROhSokZQ+PBcD2RKsHv7ozshV9ZJQgg9QpMkc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225036},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.6.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.6.0_1788776151728_0.7963833813566465","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@geonosis/release","version":"2.6.1","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.6.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"a1772e83ad60a67c713dc1fe933a9593c697656b","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.6.1.tgz","fileCount":10,"integrity":"sha512-JBTUAn9PdeYidIRFrDV9bSt7bBeZ6hW14bNn3p0Z3+z6r8A54r5BbQpGCe6RdR9vCRgDCwoDSQSkc9EihZcCoA==","signatures":[{"sig":"MEYCIQCA8HylL/Ld7+uhndfALPSg2lswr6U/GxiV1qEIwATc9gIhANYA0lZy3xUj0rQRqBonslXSgl/Hg3Z4GXdiS8zflUV4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226429},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.6.1"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.6.1_1788803815124_0.872458435751218","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@geonosis/release","version":"2.7.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.7.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"355ccae021877ca5edb27b9e905ba3767c9744c2","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.7.0.tgz","fileCount":10,"integrity":"sha512-XOpGKmQG1GMIVt6iugAFkOVAwuuYaekOxcfGXJxNQJASmkXqBPQEmtHCGzsOtYyTuMoKLnsw7AMVhwFJOwyurA==","signatures":[{"sig":"MEYCIQCF5Kn2N6NF2LzJjCQ7jIddQkGhw8PACiSk2EXQ3WhIsQIhAJug15ZiXoNAwmeYYED77jnvwj+8WFXLzkXqU9JmydZi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226439},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.7.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.7.0_1789209384920_0.31493993355899264","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@geonosis/release","version":"2.8.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.8.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"e4ecff502339dd59f760ca34ed6e56b7815cd071","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.8.0.tgz","fileCount":10,"integrity":"sha512-Wnc3KUna6rK/i+lBL1KDg2/ixYqABN2xEXjuCPmoAFmm/9FAcTC+5Ko2INalMXThYpQSghZwSSmNo8allWrg0w==","signatures":[{"sig":"MEQCIAW2TIsTl03x6u1AJjCV4Y2Yxq9xG6+ty2AeBAA900nAAiAOjk73G1HmREiL2SVE7eyTncVSjZMnCFoQ9mVP1fxVnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGIX1IFZRh0PH0SbSGB2DZ+yAh7p+x0A0XP39XIEDtPqAiBBHEEkhPbUsha4kVMsoJqIkd2ZeWf3rgymALm5dFfudQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226420},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.8.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.8.0_1789421666283_0.692890853321714","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@geonosis/release","version":"2.9.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.9.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"24dd890abfc5324a3d471820f078ff4e8e0bc113","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.9.0.tgz","fileCount":10,"integrity":"sha512-Al7tPkYg7wYSO6VqPmgwQJiq13ELqpodg600gGxk673q1ygIoQ96xNjA+dQ31GlMBnpxS3wJiH7sNAZ26FsZbw==","signatures":[{"sig":"MEQCIFgK+TmIW+RqZQxA6R+usJes2Cq3wT76JxPMlmPMNsc2AiAfuRAwW9fd0PDX3papvKLZP6sAk6XRfv3rXemLEmItUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFDEF3TXHXyHKa5EGiE4j5UsEOHYZ0XH9aB5WPyC8hKEAiAYCyUiYSi9uYmO+El+ciG8bS7a81BPfg5pGlJkXF+wcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226430},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.9.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.9.0_1789468751022_0.8318022734228794","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@geonosis/release","version":"2.10.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.10.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"d0a3dbd0c42d80b947d3d160cf01fbd1b19e4e0c","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.10.0.tgz","fileCount":10,"integrity":"sha512-B15EvuMtJz1PgwQ4+rYpHfxE7VQ2oRkSwZGEnwOrG/7E1uGXNYVvuSy1ag8rmo32GZzK/gMkY4bl0g+2teNRxw==","signatures":[{"sig":"MEUCIEhE4cj0yIFgbHOlOO9UgMIgqOHUyoExdYLbBEevXFxxAiEArprQSqXo8tSKUienV7j4CzTFDUjPopNyy6A99d+xygo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDeMcgmnvIL2/s9TT20akHeXx+GHwxAAWjkIICIJULjjQIhAPFL38Rl/8YF8nVY54hhTadJkxEB3wIr6TkaDosYVDgH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226443},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.10.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.10.0_1789489970820_0.4543234843276711","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@geonosis/release","version":"2.11.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.11.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"dc223a32f6fe5baa093910643115d4c27754077d","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.11.0.tgz","fileCount":10,"integrity":"sha512-kqhoDe8eysQfDIh92WVN9tEmWIv0+SemJVl8KFFpzpt11Eph78rfaf4Grx7XfveuMLtqYML+TEB4CyEH0AKEdQ==","signatures":[{"sig":"MEYCIQDVt+oEhStxiWz+CViln29adt5gncGBMpoFDoJzcruyNgIhAMA9ghYaqG7hE546IiXr52gIsGSOItzPtfejF8pNuBXC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnj/tl5my3xGHLCaZ4T5IyZFLvBYp2lSmP1O3Mu/fcnQIhAO1xdglvTN80h1E4xeTBYe3nUwFAlRQFY5YJI04CSu44","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241702},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.11.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.11.0_1790271762422_0.030223232995449045","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"@geonosis/release","version":"2.11.1","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.11.1","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"4129520a87e8fbd330424c52dc7da7b81d6cdcff","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.11.1.tgz","fileCount":10,"integrity":"sha512-cG+sqev87jYT+/Cd6hFStbrkiu6mt0clMBWP/rDtuo2Pf1rWlD/J1roiXhE1QoSRWa8sI/9gSei2dTBKWzxFIQ==","signatures":[{"sig":"MEQCICVPmKxcGvQhZYFDVfUwWrxp6d8QfYVA0JYwLhTuaihgAiBVd/7aiWmc81oDiAktgJD6cRT8gndYi7sdXWyy/cDDFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE+v+cV3C5GL+M3bUxb/qSKlSVWBPqdHPWzNUOUr9Ly8AiEA/R5pmkFDcuLw0qyndKRLBZTcwQxGqTGx25eV9d6eaVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242446},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.11.1"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.11.1_1790351290719_0.8283813881092132","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@geonosis/release","version":"2.12.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.12.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"c2a820d1906a99a0e673f7b4f769803c4ade6acd","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.12.0.tgz","fileCount":10,"integrity":"sha512-2PK6qcxXWA+YNyzRrmy7iCxxlqzCj4CX00I3p9o3jhWa//GdJIhW1XjsHGTtUNHbr3ySwgTEwVg/25mi6MwKsw==","signatures":[{"sig":"MEYCIQC2wsvUs9zgLIGJP8zSC7C5p9zIJa4P5obOLnAM9Ha65gIhAOEQa6d0kaw1wLByC4ybXle8z3mVrVtqBxNsZdqUX8r+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLROtmxU+b/D0lZ0UwLoaWsQe6zi7egtPbWEV6hSWtpgIgTyQGjkTp7yFxlJBtTcjBpG85AqqZTvQh2q/0T6WDKfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242457},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0","@geonosis/ratchet":"2.12.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.12.0_1790356365701_0.222710474457118","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@geonosis/release","version":"2.13.0","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"license":"Apache-2.0","_id":"@geonosis/release@2.13.0","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"e9b2eb557a55a24b075e65d716c43212cfa374db","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-2.13.0.tgz","fileCount":10,"integrity":"sha512-DfZ/Yx/HlApsnkJDN2FPRrRpav+pPFwPib55I8E8vwneEmtMVRkWqZuPWYbFn9wE7+HpE2wYhm5I4T9oLPnI8w==","signatures":[{"sig":"MEUCIQD1hC6fbJO4r78KamjXUh8QThOpvxPzavmUmmmYcLekiAIgByMRj5uEfTbh1+dU9SLCchyRmz1pmu3eRnoFotFufc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCrgHoYBM7OMgOcZexE5zj/LAc1KMkMvEoYC5rE49hGswIhAIhD5xvb63ZUvYdZg6TJ+Fef/uwPNVy8FoM12JsDDsz2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227733},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"tsx ../../tooling/build-step.ts tsup","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@geonosis/ratchet":"2.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.63.0"},"peerDependencies":{"squawk-cli":"2.63.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/release_2.13.0_1790432621752_0.00023490154974292743","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@geonosis/release@3.0.0","bin":{"geonosis-release":"bin/geonosis-release.mjs"},"dist":{"shasum":"98d2d779e62e4b98ec91071887e34c4a73c697f0","tarball":"https://registry.npmjs.org/@geonosis/release/-/release-3.0.0.tgz","fileCount":57,"integrity":"sha512-zV6UyvL0B2nF0H7qi4DgQcnKOItxPiX/z7AkHEtq48LICTUbDUB9M1gVvMy3q4DzxVMwYIZljZ3EWSkLQaw4Ew==","signatures":[{"sig":"MEUCIFuOiPXr9XzobNaA/G+icbMGvkN4OqFGlD5Sx2rofZsqAiEA5TGHfVf+eUBXh/25ZCudIhPvcWYGz8u5Bx56W5sNqu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCVXxQKh40UJ30ol/4SdZEulg29madjNbLzE2pXDsMYOAIgYeeSap1cay4nbEMqoNgrdAdut1tlLgt1dfVOSf2KYqY="}],"unpackedSize":244744},"main":"dist/index.js","name":"@geonosis/release","type":"module","types":"./dist/index.d.ts","engines":{"bun":"^1.4.2","node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"license":"Apache-2.0","scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","build":"bun ../../tooling/build-step.ts bun ../../tooling/bundle.ts","test:bin":"vitest run --project bin --root ../.. --passWithNoTests \"$PWD\"","test:exam":"vitest run --project exam --root ../.. --passWithNoTests \"$PWD\"","test:unit":"vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"","typecheck":"tsc --noEmit"},"version":"3.0.0","_npmUser":{"name":"bayraak","email":"bayraak@gmail.com"},"homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","directories":{},"maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"dependencies":{"@geonosis/ratchet":"3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"squawk-cli":"2.66.0"},"peerDependencies":{"squawk-cli":"2.66.0"},"peerDependenciesMeta":{"squawk-cli":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/release_3.0.0_1790529108604_0.9594619943355673"}}},"time":{"created":"2026-08-30T18:34:10.626Z","modified":"2026-09-27T17:11:48.971Z","1.1.0":"2026-08-30T18:34:10.941Z","1.2.0":"2026-08-30T19:43:57.065Z","1.3.0":"2026-09-01T09:25:58.189Z","1.4.0":"2026-09-01T13:21:46.078Z","2.0.0":"2026-09-02T06:55:50.016Z","2.1.0":"2026-09-02T13:52:38.176Z","2.2.0":"2026-09-02T17:19:57.498Z","2.3.0":"2026-09-03T07:18:44.697Z","2.3.1":"2026-09-03T11:34:57.411Z","2.4.2":"2026-09-03T14:13:28.441Z","2.4.3":"2026-09-04T23:53:20.114Z","2.5.0":"2026-09-05T08:03:11.742Z","2.5.1":"2026-09-06T09:09:13.836Z","2.5.2":"2026-09-06T13:27:53.677Z","2.5.3":"2026-09-06T16:37:28.524Z","2.6.0":"2026-09-07T10:15:51.846Z","2.6.1":"2026-09-07T17:56:55.277Z","2.7.0":"2026-09-12T10:36:25.032Z","2.8.0":"2026-09-14T21:34:26.393Z","2.9.0":"2026-09-15T10:39:11.106Z","2.10.0":"2026-09-15T16:32:50.905Z","2.11.0":"2026-09-24T17:42:42.527Z","2.11.1":"2026-09-25T15:48:10.896Z","2.12.0":"2026-09-25T17:12:45.815Z","2.13.0":"2026-09-26T14:23:41.839Z","3.0.0":"2026-09-27T17:11:48.688Z"},"license":"Apache-2.0","homepage":"https://github.com/microcompanies/geonosis/tree/main/packages/release","keywords":["release","migrations","expand-contract","squawk","zero-downtime","gate","ci","drift"],"repository":{"url":"git+https://github.com/microcompanies/geonosis.git","type":"git","directory":"packages/release"},"description":"The release contract with its proofs: an expand-only migration gate over three dialects, a smoke that must name the version that answered it, and declared ≠ deployed.","maintainers":[{"name":"bayraak","email":"bayraak@gmail.com"}],"readme":"# @geonosis/release\n\nThrough the front door: `geonosis release` — the metapackage pins this and every other kit tool at\nONE version, and passes the exit code through unchanged.\n\nThe release contract with its proofs.\n\nA release proves its **code** before serving it. Its **schema** serves immediately, to 100 % of\ntraffic, while the previous version is still running — and no rollback undoes it. That sentence is\nthe whole reason this package exists, and it is the sentence one consumer's adversarial review\nfound its own runbook had inverted.\n\nNothing here invokes a platform. There is no wrangler, no Railway, no `psql`. Which workers exist,\nin which order they promote, what a smoke asserts and how a version is uploaded all stay with the\nconsumer; this package holds the contract, the refusals and the proofs.\n\n```bash\ngeonosis-release migrations --since <ref> [--dialect <name>] [--root <dir>] [--json]\n```\n\nExit **0** clean · **1** refusals · **2** the run could not be made.\n\n## What it reads\n\nThe files added since `--since <ref>` — committed, **staged, and untracked** — under every configured `release.migrations[].dir`. A migration that exists and narrows is a refusal whatever git thinks of it: the local gate a person runs before committing is the one window in which it is still free to fix, and a gate that only speaks after the commit speaks after the cheap moment has passed. A run that finds no migration file anywhere says `NONE … nothing was read`, never `OK`.\n\n## `migrations` — expand-only, enforced\n\nFor every file the diff ADDED under a directory `geonosis.json` names, in the dialect it names it\nin. A migration that already existed at the base already ran; the only SQL a release gate has an\nopinion about is the SQL it is proposing to run now.\n\n```jsonc\n{\n  \"release\": {\n    \"migrations\": [\n      { \"dir\": \"packages/db/migrations\", \"dialect\": \"sqlite\" },\n      {\n        \"dir\": \"packages/db/migrations-tenant\",\n        \"dialect\": \"postgres\",\n        \"squawk\": { \"exclude\": [\"prefer-robust-stmts\", \"prefer-bigint-over-int\"] }\n      },\n      { \"dir\": \"packages/plugins\", \"dialect\": \"mikro-orm-ts\", \"phases\": [\"up\"] }\n    ]\n  }\n}\n```\n\nEvery field is an option and every default is empty. A repo that has named no directory gets exit\n2 and one line saying so — never a green run over nothing.\n\n### The dialects\n\n| `dialect` | Files | What runs |\n|---|---|---|\n| `sqlite` | `*.sql` under `dir` | the narrowing-verb check. D1 is not Postgres, and squawk cannot parse `CREATE TABLE \\`account\\`` at all |\n| `postgres` | `*.sql` under `dir` | `squawk-cli`, its exit code and output surfaced verbatim — it knows six things a verb list does not, three of them ways to stall a live database |\n| `mikro-orm-ts` | `*.ts` under `dir` | the SQL extracted from `addSql(…)` inside the phases, then BOTH the verb check and squawk |\n\n### The five narrowing verbs\n\n`DROP TABLE` · `DROP COLUMN` · `RENAME` · `ALTER COLUMN … TYPE` · `SET NOT NULL`.\n\nEach removes something a version that is still serving — or one a rollback could put back — may\nstill be reading or writing. A refusal prints `path: verb (line)`.\n\nString literals are blanked before the search, because a verb inside one is data:\n`insert into audit values ('drop table orders')` narrows nothing. Comments are NOT blanked, because\nthat is where the marker lives.\n\n### The marker\n\n```sql\n-- contract-migration: <what expanded it, and why nothing reads it any more> since:<ref>\n```\n\n`//` in a TypeScript migration. It excuses a narrowing only when **all** of the following hold, and\nnames which one failed when they do not:\n\n| | |\n|---|---|\n| a reason | a marker with nothing after the colon is a comment. `\\s` swallows a newline and adopts the next line as the reason, which is how a bare marker once excused the statement under it |\n| a `since:<ref>` | an expand nobody can date excuses nothing |\n| `git merge-base --is-ancestor <ref> <since>` | **the across-releases rule.** A contract is safe only once the version that still read the old shape has drained, so the ref that expanded must already be in history at this release's base. A marker naming a commit inside this very diff says \"the code that stopped needing this column shipped\" about code that has not shipped |\n\nA marker the gate cannot believe excuses nothing, and the narrowing it was written over is still\nreported — otherwise a typo in a ref would read as \"your migration is fine\".\n\nThe marker is an argument about **drain**. It says nothing about locks or timeouts, so squawk's\nfindings stand on an excused file: a repo that has decided about `require-lock-timeout` says so once\nin `squawk.exclude`, rather than by writing a sentence into every migration.\n\n### `phases`\n\nDefault `[\"up\"]`. In the corpus this was built from, `down()` holds the `drop table` in every single\nmigration file — reading it would refuse every migration in the repo, for SQL a release never runs.\n\n### The `addSql` shapes the reader handles\n\nA template literal, a quoted string, either opening on the line after the call, a literal that\nitself spans lines, and adjacent literals joined by `+`.\n\nAn **identifier** argument (`this.addSql(dropOperationChecks)`) and a **template interpolation**\nare refused BY NAME with exit 2. Resolving either is name resolution — a TypeScript parser — and\nthis package will not grow one. A migration nobody could read is not a migration that passed.\n\n### squawk — an OPTIONAL peer\n\n```bash\npnpm add -D squawk-cli@2.66.0   # only if release.migrations names postgres or mikro-orm-ts\n```\n\n`squawk-cli` ships platform binaries, and as a hard dependency of this package it grew one\nconsumer's lockfile by **395 lines** for a Postgres linter that repo never configured. It is a peer\nmarked optional: nothing installs it for you.\n\n- a `release.migrations` naming only the **`sqlite`** dialect never calls it, and needs none of it;\n- a `postgres` or `mikro-orm-ts` dialect with squawk absent is **exit 2**, with the install line\n  above — the dialect cannot be measured, and a gate that cannot measure has not passed.\n\nIt is pinned exactly, because a squawk that renamed a rule would change what a release argues from,\nand that is a decision rather than an install. It is spawned from the `node_modules/.bin` beside\nthis package: its bin is called `squawk`, and `squawk` on a public registry is an unrelated package\nthat exits 0 on anything — a gate that passes because it linted nothing. Nothing here asks a\nresolver.\n\nExit 0 is clean and exit 1 is findings. **Anything else is exit 2**, one line naming it: a linter\nthat could not start has not measured, and a gate that cannot measure has not passed.\n\n## `schema` — the wall no oxlint rule can see\n\n```bash\ngeonosis-release schema [--root <dir>] [--json]\n```\n\nOver every migration under every directory `geonosis.json` → `release.schema.domains` declares: a\nstatement naming a table ANOTHER domain declared is a cross-domain dependency the import graph does\nnot show, and a `current_setting('…')` outside `release.schema.sessionVariables` writes one\nconsumer's session vocabulary into a package everyone installs. Both lists are options with empty\ndefaults; the block declared and empty is a refusal naming both. It reads whole directories, not a\ndiff — a domain's migrations are applied as a set.\n\n## `plan` — the contract as data\n\n```jsonc\n{\n  \"release\": {\n    \"steps\": [\"upload\", \"park\", \"prove\", \"promote\"],\n    \"proof\": { \"mustAssertVersion\": true },\n    \"workers\": [\"api\", \"edge\", \"web\"]\n  }\n}\n```\n\n`upload` moves no traffic. `park` puts the new version into the deployment at 0 %, which is the only\nthing that makes it reachable by an override at all. `prove` reaches it and asks it who it is.\n`promote` swaps the pointer. Those four, in that order, and no other — a promote before its proof\nserves code nothing answered for, and a park before an upload is nothing.\n\n`proof.mustAssertVersion` is on unless a repo writes `false`, and writing `false` is refused unless\nthe run also carries `--i-accept-an-unproven-smoke`, which prints why it matters.\n\n## `prove` — the runner protocol\n\nThe runner is a **consumer executable** speaking JSON on stdio, one request per line and one reply\nper line. This is the whole seam: every platform call lives on the far side of it, in the repo that\nhas the credentials and knows which workers exist. Nothing on this side has heard of Cloudflare.\n\n```\n→ {\"step\":\"upload\"}                    ← {\"versionId\":\"…\"}\n→ {\"step\":\"smoke\",\"versionId\":\"…\"}     ← {\"ok\":true,\"answeredVersionId\":\"…\"}\n→ {\"step\":\"promote\",\"versionId\":\"…\"}   ← {\"ok\":true}            (may carry \"promotedVersionId\")\n```\n\nThe gate REFUSES, and the refusal means the next request is never written:\n\n| | |\n|---|---|\n| `answeredVersionId !== versionId` | the override did not apply and the smoke certified the version it was replacing |\n| no `answeredVersionId` at all | a smoke that cannot say who answered has proved nothing |\n| `ok: false` | the smoke failed |\n| `promotedVersionId !== versionId` | a promote went to a version nothing proved |\n\nWith **no** `--runner`, the package plants each of those into its own stub runner and requires every\none to be caught — and requires the honest runner to pass, because a gate that refused everything\nwould be as useless as one that refused nothing.\n\nA runner that never answers is exit 2 inside the time it was given: a job that hangs until CI's own\ntimeout kills it leaves no line anybody reads.\n\n## `published --group` — the group, resolved from the registry\n\n```bash\ngeonosis-release published --group [--registry <url>] [--wait <seconds>] [--root <dir>] [--json]\n```\n\nEvery workspace's local version against the version the registry answers, with no sampling.\n`changeset publish` exiting zero is not the release; the GROUP resolving from npm is — a six-package\nsample announced a version while the one unchecked entry point read one release behind, and the\nconsumer's bump aborted on it (#147). The registry is asked over HTTP, never through npm or bun,\nwhose manifest cache is the thing that lied; `--wait` polls through the minutes in which a freshly\npublished name still 404s. Exit 0 the whole group is there, 1 a gap, 2 the registry could not be\nasked.\n\n## `adoption` — how far each consumer is from this release\n\n```bash\ngeonosis-release adoption [--registry <url>] [--root <dir>] [--json]\n```\n\nRead off the recordings the smoke keeps, never off a consumer's disk. Per consumer: MATCH, BEHIND\n`<name> <declared> → <current>`, INCOHERENT (a group published as one number declared at two), or\nFLOOR UNDECLARED — informational, since a floor is opted into. `--registry` compares against what\nnpm answers instead of against this workspace. Always exit 0: it is a report, and the release\nreview carries one row per consumer from it (D-061).\n\n## `smoke` — the release read against a consumer's own tree\n\n```bash\ngeonosis-release smoke snapshot <name> --from <their tree> [--replace] [--root <dir>] [--json]\ngeonosis-release smoke baseline --snapshot <name> [--rc-dir <workspace>] [--install <cmd>] [--json]\ngeonosis-release smoke run [--snapshot <name>] [--absent <name>]... [--rc-dir <workspace>] [--json]\n```\n\n`snapshot` copies a consumer tree, read-only, into `.geonosis/consumer-snapshots/<name>/` —\ninstalled packages, build output and git history left behind, the manager read off the lockfile,\nthe declared versions and the commands to run recorded beside it. The bytes are a private tree's\n(D-048), so it refuses to write where git would let them be committed.\n\n`baseline` and `run` pack every workspace package of the candidate (a tarball is what a consumer\ninstalls), point a COPY of the snapshot's manifests at those tarballs, install with the snapshot's\nown manager, and run its own typecheck, lint, tests and doctor. `baseline` records what those four\nanswered at the versions the consumer is on; `run` refuses only what THIS release broke, in their\ncompiler's and their doctor's own lines. With no `--snapshot` it sweeps every consumer\n`geonosis.json` declares; a declared consumer with no recording refuses with the command to take\none, `--absent <name>` excuses one out loud, and a recording whose tree has moved prints STALE.\nExit 0 nothing new, 1 a new failure, 2 the run could not be made.\n\n## `changelog` — no version heading with nothing under it\n\n```bash\ngeonosis-release changelog [--root <dir>] [--json]\n```\n\nEvery publishable package's `CHANGELOG.md`, and every `## <version>` heading with nothing under it.\nA reader told that 1.2.0 shipped and told nothing else has been told less than nothing; a fixed\npublish group makes those headings by construction, which is a reason to write the sentence and not\na reason to leave the blank. Exit 0 clean, 1 an empty heading, 2 no changelog to read at all.\n\n## What this package does not cover\n\nOverrides never reach **Durable Objects**. Each DO instance is assigned a version by the deployment\npercentages, so at 0 % every workflow instance, queue consumer and cron runs the OLD code. `prove`\nproves the stateless fetch path and claims nothing more; the durable path's proof is a test suite,\na drain discipline, and post-promotion observation.\n\n## `deployed --check` — declared ≠ deployed\n\n`versions upload` applies **no triggers**. A cron or a route edited in a wrangler config is\ntherefore silently ignored in production for ever, with a green pipeline. And `wrangler secret put`\ncreates AND deploys a version immediately, outside the gate entirely — which is why the versioned\nform is `wrangler versions secret put`, and why secret names are an option here rather than a key\nread out of a config that never holds them.\n\n`.geonosis/deployed.json` is what the consumer's pipeline writes **after promote**:\n\n```json\n{\n  \"at\": \"2026-08-30T12:00:00.000Z\",\n  \"versions\": { \"api\": \"…\" },\n  \"triggers\": { \"crons\": [\"0 4 * * *\"], \"routes\": [\"api.example.test\"] },\n  \"secrets\": [\"AUTH_SECRET\"],\n  \"bindings\": [\"DB\", \"AUTH_KV\"]\n}\n```\n\n```jsonc\n{\n  \"release\": {\n    \"wrangler\": [\"apps/api/wrangler.jsonc\", \"apps/web/wrangler.toml\"],\n    \"wranglerEnv\": \"production\",\n    \"secrets\": [\"AUTH_SECRET\", \"EDGE_SECRET\"]\n  }\n}\n```\n\nDrift in either direction is exit 1, listing `declared but not deployed` and\n`deployed but not declared` per kind. **The file being absent is exit 2**, not a pass: nothing there\nsays what is deployed.\n\n`wranglerEnv` selects an `env.<name>` block, because named environments inherit nothing per\nbinding — every block repeats what it needs, and reading the top level instead would report a\ndeployment's own crons as drift.\n\n`.json` and `.jsonc` are read fully (comments and trailing commas included). `.toml` is read for\nexactly the keys this check needs — `[triggers] crons`, `routes`, and the binding lists — because\n`wrangler.toml` is wrangler's default and refusing it outright would make the command unusable;\nit is not a TOML implementation.\n\n`@geonosis/doctor` asks the same question of the same file as its `deployed` line. It reads the\nfile; it does not import this package. A repo can install either one alone.\n\n## What stays with the consumer\n\nEverything that touches a platform, and everything that is a fact about one repo:\n\n| | |\n|---|---|\n| which workers exist, and in what order they promote | callee first, and the gate never learns their names |\n| how a version is uploaded, parked, overridden to, promoted | the runner, on the far side of the JSON protocol |\n| what the smoke asserts | a positive marker, a status, a signed-in render — the gate only requires that it says which version answered |\n| canary percentages, version affinity, OpenNext | not the gate's subject |\n| writing `.geonosis/deployed.json` after promote | the pipeline knows what it applied; this reads what it wrote |\n| which squawk rules a repo has decided about | `squawk.exclude`, once, in config |\n\n## Exit codes\n\n| | |\n|---|---|\n| **0** | clean |\n| **1** | refused — a narrowing, a marker nobody can believe, a smoke that certified the wrong version, drift |\n| **2** | the run could not be made: an option that was never configured, a shape the reader cannot read, a linter that would not start, a runner that never answered, no `.geonosis/deployed.json` |\n\nA gate that cannot measure has not passed. Nothing here answers 0 by default.\n\nApache-2.0.\n","readmeFilename":""}