{"_id":"rampway","_rev":"43-af52e786216b4db87a7b99bb674633c3","name":"rampway","dist-tags":{"latest":"0.5.33"},"versions":{"0.2.1":{"name":"rampway","version":"0.2.1","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.1","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"0d22f9a4a36e66bc203892e479e7b19433b286b5","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.1.tgz","fileCount":143,"integrity":"sha512-Jd/6+CaQm5VRpa/Jy441T2gDKsJDbcbvGJsfXDC+gT4GXk+MF2W7vhdP2NOvmtlYZ2AHxWvrM4Sfk0pdTOhaCg==","signatures":[{"sig":"MEQCIDNwVfdLmM52E1Y6L3figx4e/wJJt8BGG9aRmdngn2cAAiAWXp0VoXNIvbJcgfVGHDZr9aDPxyBPIOGfFbbxjjrn+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270775},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"1d97c69a94f8411bda1c05c87f263879e75f30ff","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.17.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","@types/node":"^26.1.1","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.1_1784051328149_0.9394460535843117","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"rampway","version":"0.2.2","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.2","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"61a9af5054d1a4b76f4247fa26869d1c97f18cef","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.2.tgz","fileCount":143,"integrity":"sha512-9PIRsGGqxBAjG3AlKnOMTUeKteJXFeFBxZyG8yJzZIdSEiuaj7i9q0UnnSf1OT3aCiqehhl/72zfAbFjmPiNKA==","signatures":[{"sig":"MEQCICOtuxNm6Vlj32Feh0O+i0LMgxwl80MQNmjliG4gDCTTAiB+4qrEcNReyqt6X6pNnPLdwN6al10N+QxfoqPe2aNZZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271629},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"aab8cc955dd5246a8f67a6e0493b7d4105b20c50","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.17.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","@types/node":"^26.1.1","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.2_1784054488905_0.9233981693788913","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"rampway","version":"0.2.3","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.3","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"9c7e12dd501a55848039ca52ddd7ce1e15ea11ae","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.3.tgz","fileCount":147,"integrity":"sha512-olwfASs5oVyOVU9Vnn2aAnbs0VLOW0hkoQlUYj75bTHOg4KUG2PDuzwnBc1QL09UPcrxYl/JR4mdWvycVnXDsg==","signatures":[{"sig":"MEYCIQD8Gibl1E/7+5NAHMOQ4jIQAkdNbjdeinwmMk6GHUE2cgIhAOjCCJ08LyzJjwNl8M5EHKYu0OMQVJbHA292tWxWxMsu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299261},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"5cbe852f4471fb20bf4aae399324ea37f7413ac8","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.3_1784135045726_0.4162431709987733","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"rampway","version":"0.2.4","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.4","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"f00d35d94242c5459dd377f0aa66c7f4df15af66","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.4.tgz","fileCount":147,"integrity":"sha512-5NioaMUEiZHuCxGu1V5jl0vfHy5HnN/sO89wex4K+WIlqp0ILcn88PVfiQV5GMioy36xlqkT3MfsiSDswaG07g==","signatures":[{"sig":"MEYCIQDqK0UuRO6U6kkBCNjNWu8eA2MY2slavyYQoRllP76igAIhAO9WqBBoNx47++SSShcr1C9beHl0IPSGmntBkIf2EZMs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301680},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"641dfc52f316c18ba2726cc09cbc942ac3a5c6ed","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.4_1784216041053_0.9241197824806349","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"rampway","version":"0.2.6","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.6","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"9324068d0af641bab3d20f078f3dbd7c5ee60510","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.6.tgz","fileCount":155,"integrity":"sha512-bj1Utb5tMBB5O9eJKZ7aE595r5gYFVfZq3P7U85isbn+UmFlPEahEmYt3zUjO1ELoSl3eQlC4zOih/5EIor/wA==","signatures":[{"sig":"MEYCIQDStBLGdemqkKSc7slSqVIR/CckDMr2XivExYCNGrvODQIhAOGGoC4HBD9ZA8nS0gyDMCknYfNaug/DbtDXaKkmtcV0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328152},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"8d9a80f3004679a22a3ae08807d9255ffbf28513","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.6_1784792867722_0.35809416838322017","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"rampway","version":"0.2.5","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.2.5","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"fac07b59044f07c8017bfb36c5672bedcebbab11","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.2.5.tgz","fileCount":151,"integrity":"sha512-zO2PfC5WmxaSUcop/ICyJ4IRse2d0R3zSuvpOIAssLe4Bw3Dt31Qh7+7pw+Q/fYxk/e04bFOhd8uSwKqURST2Q==","signatures":[{"sig":"MEQCIGgg1dibTTeu5my5H1lR7lvkPYOCJVdF0mBP4Y+f9RE3AiBrRZH7t7QcMztpvViWYRUsXWVczyGgaiots/V3CvizgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310060},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"1dd19d03ee7bfd13a6b8cdf00618d6edc7b29203","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.2.5_1784793088126_0.4779912675369784","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"rampway","version":"0.3.0","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.3.0","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"a48f417240d9bf8dc4ed72361947bc803e83bce1","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.3.0.tgz","fileCount":163,"integrity":"sha512-bNFjl21AFihPeLiV9yU/4kyP1nMGO2kJ6+U46gKeLj01qdyONtAzTqwxd/+uSnDqTPABGvPCnNEE8t3m8tJohA==","signatures":[{"sig":"MEQCIEgGFQUfa8trm8I/yTX3Iys5WSZDTWMk5V5DIUXFvxL/AiBiiJmuZ8HVmCDf5RuCTT0WSYK+7HpdAc4GZABTtEc3eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385858},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"9fbd60001a829eb6bc191014db2163409c2558fd","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.3.0_1785258894423_0.6845391325142187","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"rampway","version":"0.3.1","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.3.1","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"2ab9383aab0a7b64a27604ab978f175d893afe4b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.3.1.tgz","fileCount":201,"integrity":"sha512-DN1OsCoNAgQXxJzGfj/VFA+DW/HcoSH2suw6ImWmWIaEq+Rk2ZbOs7w//4f9S2oj9fROlSLE3vdkgWtRIvKqpA==","signatures":[{"sig":"MEQCIEV922NY3GOLVtOj21/rHNw1eYGXEzA+XRqHvPZaL+gNAiB8HRDKY6yLa83UOK15tJTjS9B5EJYMnA5UohYuwAYCIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551632},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e6fdbeb00dc6514a240545a1ee2d5cfc83f43514","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.3.1_1785832575967_0.5231734722860926","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"rampway","version":"0.4.0","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.4.0","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"e1142be11dbdc99a1b10184891a85f53de247481","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.4.0.tgz","fileCount":205,"integrity":"sha512-mvba5qVIypb5l7hctC8o6HuMYarscQyn2BG9ZLKHADf7xtFhD3IcER0AtJ5pjLLxfAwiJ5h+na11nsh2dQjieg==","signatures":[{"sig":"MEQCICIb9S1bojcTSH+ixL0efboMWnveJVR3AWL1GR5ZjVM8AiBDjYDYfjBiz6Sep7ckQIQrzMQXRz+o6B4kb0tIMQ80ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592851},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"6ba964a6a5db9451a0eec2a668da1e60f0054a24","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.4.0_1785941744875_0.7606372016756078","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"rampway","version":"0.5.0","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.0","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"4b2e1241d67701e7ac20c2dfe5b77e30e2c1513b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.0.tgz","fileCount":209,"integrity":"sha512-/9uABEO0UxeybZfEX4gTs0KhzO/V/qr6wxT+K9uEoVTIqYykuKXTreBMewnIZSxepTfYeAruP0dELH3CKZqxvw==","signatures":[{"sig":"MEQCIHp7vkAOLwY/oWgwhLYjPGB41rS1HTGmr9mmqdd4+kKLAiBoyazpTmM5NzJilNdjyAbfPffxlWD9IYu1wtRl7TmPtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":695019},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e9242ca6a5fc5f689bd8337ed2b78f738163c950","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.0_1786014267106_0.4311167553338151","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"rampway","version":"0.5.1","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.1","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"0bc19f18aa20d5ecca2840fe5f1669f37e4a338b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.1.tgz","fileCount":217,"integrity":"sha512-ewphUUE2NKhVLebEH/PDi2vUy1IMMBnYmekXb0ZRD2gVD2/V/LZZ2bkJiZ5ih70ApKnJkXUe+X8j93fSIJ4agQ==","signatures":[{"sig":"MEUCIQD6J3K3cSCYiOU0L/AP8tdkRqsRUwGTw1OfLLosZWQXtgIgKP+T3dbJfk+sXhIf98yIb7V9Fxeo3Ia5HwHK3HP9NiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754759},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e1127bf2a01f44390ddb3f52dfb8f52c0cfba99b","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.1_1786270800710_0.779053953750332","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"rampway","version":"0.5.2","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.2","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"b36dfc969493b688df106e19f3b770b084a9b78e","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.2.tgz","fileCount":217,"integrity":"sha512-otkUDzYHc8V3gDMLh2M3pQfeoOh5EoRVBzhh8YUaltJ3dWKmYagB+NNCRu2oceFwkzRMRVzvsAKl0ckj/3wDtw==","signatures":[{"sig":"MEYCIQC5m9iBgNDHLCqZodGWi1FrineXWdlSZdNTZGrWC7SESgIhAIv6tB7O65CCBHkzGWmMzSfOz4EWYd/uxyo4SRcUjAXh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":757906},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"6d189dee6c668b9c9d5b78427d00aaf3defe2e94","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.2_1786510462902_0.8567392059577481","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"rampway","version":"0.5.3","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.3","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"bbbcec013772c7cc87dd7dfb730da19badb72960","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.3.tgz","fileCount":225,"integrity":"sha512-56Li0Zn90QRzesz38iGkXN/Mafq7QYy96faRMtI3OwiUJtYuVZ05z6OEu9Y4bGDeYistrnc5XaZ6GuhMpDJJQw==","signatures":[{"sig":"MEYCIQD94vVMPthD9jN2btnNKiX4Sc3vA+DA1Djp6BhAINdGUwIhAJYVWhgLrL9+wYHLuzRNc0MwisQZTcxJidVz38iGDEjx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":786403},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"31d6ec92708c9d4ddef178768bbc6daf9d11e9fd","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.3_1786513945399_0.7786599440275801","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"rampway","version":"0.5.4","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.4","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"a7bce1c9f8391111c9bff762ed2800d20d8be584","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.4.tgz","fileCount":225,"integrity":"sha512-nQNPVBoLkqqx1VFqqwHJ3OICVIbn9msRDoW5/GO6s64qK2xG7Kb8OKE2OYoH+T3PkxEI9G51fFc/nPYyz/V5yw==","signatures":[{"sig":"MEQCIDg/QjZpDENSbyv1l2PM74n4o0VBchOY6s5pvI68qUiOAiAx/wAJqKUnVz4DYWoIryQCQP4OL0Q1qewZ/ZEc5u0QZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787302},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"fb6b69bf1d89b90e404f31152c5d4092cca6d69b","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.4_1786514996702_0.6747252025875652","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"rampway","version":"0.5.5","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.5","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"497872138974646c700dc92141379a1653c26d96","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.5.tgz","fileCount":229,"integrity":"sha512-MylLMo3otFKC8QCGuk12TeO/6YsG5lPTKzecudK5PkGyuWE7zHLCayVUXfSD5I5ISdV2XUMpo7BPSkGKPWoFDA==","signatures":[{"sig":"MEQCIGTIv332qW8dL5EKRKU2gXFpaMODvezq221wCT+Tovw+AiA+cv3JYhv/OaYsrC44L7tNxsck2X56d2NYBAugJT6a3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":801632},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"792634cdd1ff608506f777a92c3a1774b66e6c15","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b","prepack":"npm run build","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.5_1786519815407_0.21188803910708676","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"rampway","version":"0.5.6","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.6","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"c0c868a55c015790ddbba7e51089d5def943063b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.6.tgz","fileCount":229,"integrity":"sha512-PtwWM0kdtLqCYlqcRotIigxkHMOcxKf6x0ZtV0rnri+6hsxv1RIuT78fpgRRMOivX6XoyOIEb+s7VTnusWgfiw==","signatures":[{"sig":"MEUCIQCzNsRE0Qic01V49RtELSXZP28vhWsGRVprXD7drAWnFQIgZHL2uXwMCS12OQcb2Hh000ZD/wP3HP697TcaE1gFego=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":806129},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e2302f8312c9e3257e7d12c3d1141b7cb1b24a07","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.19.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.6_1786553552116_0.8773647699240197","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"rampway","version":"0.5.7","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.7","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"a6299a67e79c7291047cf0de80b7583bec6efd7d","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.7.tgz","fileCount":229,"integrity":"sha512-xOBLhdN5nMroEPd+Y21QlBilgtlPvsZIjsFH6p+ZoZ1dnYfRSIEQTU0HW2pEzIAfDdocJIvpsdj6t7Oa3ZZ4bw==","signatures":[{"sig":"MEUCIGXUUihs7+bzqAPpc7urJn1N5eMuJ/KToKB5VJugvp3UAiEAnlY2ne2wVzHKwjS+hqeXXH/jrjJK8XDEbyNDBP4YAvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":806601},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"96aeedac069d938819da161c0618099beeb5acb9","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.7_1786639554471_0.4089394853095172","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"rampway","version":"0.5.8","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.8","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"7915248c2968d0e9bc64075b653d5985b5b70c2b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.8.tgz","fileCount":237,"integrity":"sha512-djF/awBWoXjD2lttlX4wbCeyjo3UsVReGD20iBlbEqkLrOoSWue79k9Ou24jG+6J/HV4mpW3XzibFejxlvdWpA==","signatures":[{"sig":"MEUCIHOyHZNJvfqD0YwG3i+UGlxVHHQEIhbnthTf6lGm6222AiEAnUo/OAMAjK4Vk5AsA2w8ug3cUJ40ftD33sAO6Y72yew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846089},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"312892fb7367f47b1d8b1a56855f3084d8f93221","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.8_1786789642047_0.43874005938417016","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"rampway","version":"0.5.9","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.9","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"fe41167f09dde9bd585077ab0de39df5649e369c","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.9.tgz","fileCount":241,"integrity":"sha512-W5LK6Xd3k8FpLAjMysa6dQVAUP+/UlIO9tbUoLeZP6/GP8GnIQax6O3baeh941uMm8o+laGK7jex61GojDg4hw==","signatures":[{"sig":"MEUCIQDYw/mT3s5rJXIVnZSOukinbd2zj0aiT5bF2cCLPkW+iwIge5+zu6RHTLjNb4U5ohI90ueBrabYqHo4AXyVUWv0lgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":888405},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"bc49b42a54d261a6b1098d5ced5c965ba8d32afb","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.9_1786794252481_0.6878401997957893","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"rampway","version":"0.5.10","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.10","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"a8e275a25916c8f8baf86074e25b549942b3ed08","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.10.tgz","fileCount":241,"integrity":"sha512-GHlHpZrFQVJPYWeOwb4yKti3ChiaiA3HijmaC6U3G8DftaFS/CC1u/+XSG8Wu/ZmMkn9r9jrCmPnreOzp9UBAQ==","signatures":[{"sig":"MEYCIQDGT/VD89CJLBpHc6qyv2FqibVHeVKxHHyko7YY9xqnywIhAKwDU1vABUAaEITY2ojAgLmXxw2YSKQGeOpaiI7EnEzH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902130},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"161a8291ffd9c66f5bdb4cd13f18e97d37e0648e","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.10_1786873925672_0.13804656316459885","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"rampway","version":"0.5.11","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.11","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"eb4383bf3b58231af7a82475767376a3a2f05443","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.11.tgz","fileCount":241,"integrity":"sha512-GDBKgLf/KQSj7eK36/2M5/jMk8EmPyX3wY3sEhaEMiuc6O7cT2NcZRW4a86Xe7rDJmp2C8tC9zEOpBG4s2eyVQ==","signatures":[{"sig":"MEUCIQCPhsnEC7DeByVJlYvrL+x6kWqovtkH3GnKyD/EnHKtpwIgBl09Bq97AxrhTEz/GW1yOjV6jUcLUA39QdGhm2cj5ZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":905419},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"8e0ab924115a2fd85e99e57f08f37a78aa468cc6","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.11_1786879679825_0.7171865691865598","host":"s3://npm-registry-packages-npm-production"}},"0.5.12":{"name":"rampway","version":"0.5.12","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.12","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"963c421f22a17c3ad475d020142268a752b54347","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.12.tgz","fileCount":241,"integrity":"sha512-V+DtWA/1e1f6HSlPzjGFfQ28qSn0oU8B9rJfrZakRb4Vu1oIe/iuxdjuGJdxyuvwm4RuwQlL5Nz71X1B7tszuA==","signatures":[{"sig":"MEQCIFqnbeLFQw1tpR/6EzTFTMdnyxAhTumSR+iGzQt0Cyw5AiBif6u9jhRtInip2IS6KP6K2KhlPoLEguziAC5xaN+gaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":918097},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"64d9eed933c7a5985f05ef5cdde589cff3c3ad44","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"12.0.1","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.12_1787038902554_0.4103313213070032","host":"s3://npm-registry-packages-npm-production"}},"0.5.13":{"name":"rampway","version":"0.5.13","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.13","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"0b354acc39ec13b0d2452a98ab11aeedf86219f1","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.13.tgz","fileCount":241,"integrity":"sha512-XPA8BN8CU7FkNVOdDqemgnvQgkAfqXdGuGEmhKUJuP5bLubVJwo92Ib8IUKlu5fCSR4DIt3luHgikQFhU1Js2g==","signatures":[{"sig":"MEUCIQC6hgFDtvwNbMVG+IkCv4Id+Hg8MjBzJXu+sIDD/pz5oAIgeXrujx6OLDniLDRISOv2S8aFLgpX/A2ORDlGuxVcZ4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":917834},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"d3616993f90e329b337c5eabe025132fd42042c4","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"10.9.8","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.13_1787069172865_0.21907187342140144","host":"s3://npm-registry-packages-npm-production"}},"0.5.14":{"name":"rampway","version":"0.5.14","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.14","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"c9b4963b2881a9897bff847dfd61dd399e9795e5","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.14.tgz","fileCount":241,"integrity":"sha512-InlQdVkTyOlCLGJtVhxko9NHZZmSFtFsY6fF69NPGW2Xdud5v7NqqMVoZ3sxDSKqg5W6v4v5vvIZk45kuPSBcA==","signatures":[{"sig":"MEQCIDTuIOz2NLI6BEuqk+794bl6cENI11z/gQ/E0S1JXdkjAiA3VuYAoRD8bx42HtQVpBnAPDAdJ3xEWR1F/emwnbHpfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":937865},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"c8db719346a7717f75e3c1ed2108da89d459b23a","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.14_1787553062809_0.34291962973429313","host":"s3://npm-registry-packages-npm-production"}},"0.5.15":{"name":"rampway","version":"0.5.15","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.15","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"30b8c1d9c1b107d1d6711f4313d577857e007a04","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.15.tgz","fileCount":241,"integrity":"sha512-ZniON4PFPYaMRV7wQorWPUpkcWFoeHLbzvYRStWvWJ1t5P/8Dj++EfDC/pO56ZQrlGz78XWrPQpJWE7mcIyCZA==","signatures":[{"sig":"MEUCIQCTpj761OfiCFqbSwhdSBKonsXqzssIku7RGC/iV4eskwIgFSjl1ZDzPx13yqyTBcYXw9gQE3HA4LRjML8yjmz0A+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":937865},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e2c0b3a5113a9748b90809e4e953b322624ba5f2","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.15_1787553144723_0.24365090516751864","host":"s3://npm-registry-packages-npm-production"}},"0.5.16":{"name":"rampway","version":"0.5.16","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.16","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"630077733b4444df6dde85cdc41bd74ca9c904d1","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.16.tgz","fileCount":241,"integrity":"sha512-k1aOJhB/sggMwE9G0pYCYCeL1p0crJo0APtX5NJbw3LcZ9H3CC5m9ceIPR8a6rVvjyNr34vYfzCP5HRqSdpVzA==","signatures":[{"sig":"MEUCIQDESceVMg397LNtROsPRMoj16cS/ou7yIbkNv5HUqR6ywIgZ+07TQFk6voVjkXyZSbwJP7JwB+z4yGZSnojQXIoAoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953992},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"57fceff3769f9de51b7a00a9fa70e8fef542b232","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.16_1787575035179_0.26177613662879784","host":"s3://npm-registry-packages-npm-production"}},"0.5.17":{"name":"rampway","version":"0.5.17","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.17","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"7f9aae896b58527cbc31d2f7b0830e769c3a3e44","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.17.tgz","fileCount":241,"integrity":"sha512-dJQWMLtzXRE7oVgbiMJVoTbeFYYbgGlKt+tRvvnycc3hPtTUFJvvI/YIf9XANQavlrdZiZX77mFCy3jnE/lR5Q==","signatures":[{"sig":"MEQCIGU3WWvjWaal1VoCJpEG90/kJtkehvqX4Heiu9PDYHmYAiBiYScEGHyDEzxZ9uoteWO1yUC6+OGFNWs6COX60RCE9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953992},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"53de9bb14678a18b65b25a2484caa447d31ea88d","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.17_1787577547546_0.9713685601076045","host":"s3://npm-registry-packages-npm-production"}},"0.5.18":{"name":"rampway","version":"0.5.18","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.18","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"d8ca142e2d8062744238d38e2245d09d268654ca","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.18.tgz","fileCount":241,"integrity":"sha512-djWxSsCgsINruzEfsumM+YZBVVTc+T2NKbGGPXMy7nQbqhKsoXrBfZTpjltUPXzpIOuRDAoqWmp5R9UfUg67Iw==","signatures":[{"sig":"MEUCIGBt0x1PZRyalwu75Usoo5UkAO8WfS0WqSHvMJf5r9JqAiEAyj+ee1j8FqeNb+rLxZH15WzOrnJ5nwia9YResGZzt3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988184},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"4c6d297c7d7ab13082f3d0c46990cc715e563174","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.18_1787655658307_0.44452653478561954","host":"s3://npm-registry-packages-npm-production"}},"0.5.19":{"name":"rampway","version":"0.5.19","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.19","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"3c630dfcedde34875a364967bfc694ce7d07c074","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.19.tgz","fileCount":241,"integrity":"sha512-XiPStS1hn/1P8iZXzflXzhdpmqA0v3kuiQ8z+cfPdl6VEH9Ff/y/IemIboi9NwxKkyKxnZ3SYio3x0rOafZ0bw==","signatures":[{"sig":"MEYCIQCpCmeRUOKoSFkGbfwv6Vfmypwc5jx5zS2A+ls4/oeYLQIhAIDSXyhjdIm63dOx9ntJ9eieKo/YpZJVUWLW5s5yDQlJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995116},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"44b12c0a4e65ea78c71e2db9435a940cee65181f","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.19.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.19_1787736133855_0.623078563873886","host":"s3://npm-registry-packages-npm-production"}},"0.5.20":{"name":"rampway","version":"0.5.20","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.20","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"ea3c82a792e99c6e588c3519951d91aeee097f1c","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.20.tgz","fileCount":241,"integrity":"sha512-h+ld6QdkAA5LLvm+3f+PqHtxN6zdJrU2lxcBIDLsHRg865uOrsj7dBmdTHjaXuln0SJL6hB3Rp4md2AO896UZA==","signatures":[{"sig":"MEQCIDoH+Kmase8zSXGxYN/Sn+ZZbstcqgqp28lSGsw93d13AiABCyG9sQwRGgusMqiZL5Wry5zpmKliZJN63Ppt47FWSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1014718},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"463ca8b62cb7f7b0083983d657f67e06f8e198d6","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.20_1787827471723_0.7510815558331014","host":"s3://npm-registry-packages-npm-production"}},"0.5.21":{"name":"rampway","version":"0.5.21","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.21","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"2f65978dea25b38189958abc9840b234164a38d0","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.21.tgz","fileCount":241,"integrity":"sha512-8KzcAp+wQZilSE3ygwvs/GGX4ZhA7MGoV1seubsxfQWTBl6CM6xBwaLRaKGgOkXTkBRzaUF2X48p1VfUnTA+Og==","signatures":[{"sig":"MEYCIQCI80E19am3Uy3zgmygo3xPo51mIifjoIwKG7y7Xbk1lAIhAJToILJL4TGV1+1tuFts4DUd3r2pZLbsjlwyu4QPgeG7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1014319},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"8dd8fb875903222d1fa4aadd5fde7e9fe01e3f41","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.21_1787827920860_0.18051136613693664","host":"s3://npm-registry-packages-npm-production"}},"0.5.22":{"name":"rampway","version":"0.5.22","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.22","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"76579a7e414d253530675e73ba7a6cc4d387000e","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.22.tgz","fileCount":245,"integrity":"sha512-bFJ8RXbPmG+HqSoqCrM3JiFfOHBLgvha0hkJ/rxYj7e16UIvQPDFNeFQvlsrvHkhFDdxvgrUkCVbuuisH6tQ8A==","signatures":[{"sig":"MEUCIQDgVvnWhCXLO933Nk+ym2FbkcHA6ZtDfhgYtT9883fI/wIgI7ynjIHtVwgEluKlGOjM3eIH1vW9sGK3Q4ZvqDYtZhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1031037},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"3909269d26314e37d6cf1fd822b1506c2c25ced0","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.22_1787933025764_0.5259780621443881","host":"s3://npm-registry-packages-npm-production"}},"0.5.23":{"name":"rampway","version":"0.5.23","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.23","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"fa1b9bccf016ce7b10cdb0aebbd1aa212732b18e","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.23.tgz","fileCount":245,"integrity":"sha512-05FJE8PIpgGSxSd7OHjUKZIOeER9JdAh0QQAD77+61Pft8w5QIg32GSKYzI+1Q6u4G0pTLRe9eTwwAbuq+wG7w==","signatures":[{"sig":"MEUCIQCace6Yg1flDwia/cSSj+NKR9iTWajm2SHN42adSvNraQIgCcR6BTemiFu/D7wffzPqFarzQ7pvzxc7csoQx4/myyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1071453},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e21192e8a95da40d6a9e6787823a2f09b54c39c6","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.23_1788181139822_0.07398840224069225","host":"s3://npm-registry-packages-npm-production"}},"0.5.24":{"name":"rampway","version":"0.5.24","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.24","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"0068b2bb9d5964d99531db45f2543781e94d11fc","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.24.tgz","fileCount":245,"integrity":"sha512-1SvxKeesKk4u4r4p9Eoa3o63HTUmP9xOuoAFALhQCep/oLJbalByU+mCv2a8P1S3KrYGT4pUP/nmzrB7eFA+Cg==","signatures":[{"sig":"MEQCIERFplU0grVS86NAAOYVpxrA31EiXPnyUKa4P+2Cu0DYAiAt0V87mZ1O1Q6yBRMXtrFD//52qoiuvSkWv86p+CgTww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081488},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"e79fbf03306f3b608430f7515b83a7fc12e9a85c","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.24_1788204638590_0.2611548791304916","host":"s3://npm-registry-packages-npm-production"}},"0.5.25":{"name":"rampway","version":"0.5.25","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.25","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"860cda30d8f9a375319405db016e8a7fdd454f4b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.25.tgz","fileCount":245,"integrity":"sha512-KTqLLz+HjFQcnHY5USm4mIFFmOAN3HxtmSAB14JY9sxOdxaIxnD1ESsuBZRXQX//8wAAcBECarAFsb1A4TLUyQ==","signatures":[{"sig":"MEUCIQCdUmzmt5yf16xQRb/u/Ha5JFV6L08Bf2yqYUcpG5O7mgIgObc40PCG6wYVYIJ+adnjkUfPtWtrCtpIOOYJmmCYQcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081517},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"b661c8598ed83eac400a9d30c8d8d86093f399f1","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.25_1788206466126_0.5060260219965673","host":"s3://npm-registry-packages-npm-production"}},"0.5.26":{"name":"rampway","version":"0.5.26","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.26","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"030ecede98cc1e93a8dfd5b3370467472f95960c","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.26.tgz","fileCount":245,"integrity":"sha512-+MA0QrO8DbAqddVofNuRveHijmq4YyN3K5ntH5ssMg2eYetQJhFU6HBrmETsUhPum6/F2GBzEroKSTv/RrM7CQ==","signatures":[{"sig":"MEUCICip3r/+WEraOX+5FwOgETV+Qsz2MH6PEQUsQVo8N+/rAiEAjlJf7HVpGiWT7rbIJIg+hOYf9AdILCBEyAxrtCKSKgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1081597},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"2f008694bf138cadb0712959432f83561995c997","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.26_1788216831880_0.7612048068741752","host":"s3://npm-registry-packages-npm-production"}},"0.5.27":{"name":"rampway","version":"0.5.27","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.27","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"596fa069bdb7f024d8ec51e660155eed65489072","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.27.tgz","fileCount":246,"integrity":"sha512-K3BwnXDCOSl6BTf0IbvhXIXLxejNx5KuaD7j4c6/zkHLHb2Oxp4dR0NTFUlLxXWkpMUWf/rvmCpH1rhu3QsqaQ==","signatures":[{"sig":"MEUCIG0igqmGHhfYjTIoaBG+C6ykf0KXVLxpTPTxnTq1cBD/AiEAmvcUGIX4hIbLpp+CfueSDBP7cbwE3xALBouv3EAtCD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1082546},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"9e85c20877e86a817399c7862773f856e31a9c81","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.27_1788260719940_0.39612188679641425","host":"s3://npm-registry-packages-npm-production"}},"0.5.28":{"name":"rampway","version":"0.5.28","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.28","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"f64a75c0312856736fc54b68df65cce87454c9d1","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.28.tgz","fileCount":250,"integrity":"sha512-b9lodqfh2cYdJBDrP3otw8h64jS5dtCUPVQcVtkZHt3SXQmM+HDjB5wP2oaSZpfo6O6L3LysHoIgTMx+JApv4w==","signatures":[{"sig":"MEUCIQDQ0lyTJYEyRu2vRrvKsHsw7FkIhwzt8d4GwsigU6A0yQIgK8gUpUDFeh/ieVgS+6uXV3yQpyUKxR9ZSYk3VaYDek8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1144579},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"6450ae4f2469530a967f565ee2eaf10521ad4690","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && node --test tests/**/*.test.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"node --test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.28_1788327378861_0.15808462869915996","host":"s3://npm-registry-packages-npm-production"}},"0.5.29":{"name":"rampway","version":"0.5.29","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.29","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"5e5cfb35ca9370b0acbb03d66576da0832553cbf","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.29.tgz","fileCount":259,"integrity":"sha512-0dJ28r4RzK7HAlwz+d9M2F4O5x5vTY5VoaAHCPXx2uKiFhufSBN+H5aLESbNVa1chzNfsOPgJxXYPguLIFcpWg==","signatures":[{"sig":"MEYCIQCYiotWug/dnO4jgLG31J4vc/h5yF13elmqnPIdf/+deQIhAJmRSQmqZd2/UhmsDgXn++TbKr3HUwjDa7DZyLjxIANW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1207581},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"a8d0bbd10d49f40dc1502cf7567abe8c6c6aa3b6","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && velocious-test --setup tests/setup.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"velocious-test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"12.0.2","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","@velocious/testing":"0.0.5","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.29_1788513179129_0.9594866303935272","host":"s3://npm-registry-packages-npm-production"}},"0.5.30":{"name":"rampway","version":"0.5.30","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.30","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"2ac37ca764c2cf9893df81811b496be0845f6e1b","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.30.tgz","fileCount":263,"integrity":"sha512-mS5V8zMIX19v5/bL0X3gMPQUS4/pH3ccPfbThu1/C5q5ROYOczmlm5JErMtMyI9rH1DDwfFd0iKCuPiEUqRo1w==","signatures":[{"sig":"MEUCIHZv+hdG2K0OBCfgdK815lTjQ7NDzaLPAkLTJ+/QpWmhAiEA1wx7Inio8f+EUm42el12mvtyVE8oVr+ybGNnR+wLNmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1254609},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"8c49be9fe38ad522dbe2eecd6071347296054834","imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && velocious-test --setup tests/setup.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"velocious-test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","@velocious/testing":"0.0.5","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.30_1788541849011_0.9031053028736755","host":"s3://npm-registry-packages-npm-production"}},"0.5.31":{"name":"rampway","version":"0.5.31","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.31","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"8bef4ee0e393dd90e1fb51818620daad1e8158f4","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.31.tgz","fileCount":267,"integrity":"sha512-/n1GwaBgC4sTfK/+QYoW0ZkTEGeHzHdT/Y753FRtWkfO+hE0iQrZe/Bp820lexDxVYqYdiNFfu90D3Y41MjwWQ==","signatures":[{"sig":"MEUCIQCfwJzqXDR//I0j1aIN0UtOLm7gfnrOd0VBOZApsFRi1QIgYUaSavdn6LfzyuAWz78K1WKoPItouRkelsLGBdmrDNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1264062},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && velocious-test --setup tests/setup.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"velocious-test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"12.0.2","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","@velocious/testing":"0.0.5","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.31_1788970032024_0.8802944920975939","host":"s3://npm-registry-packages-npm-production"}},"0.5.32":{"name":"rampway","version":"0.5.32","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","_id":"rampway@0.5.32","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"homepage":"https://github.com/kaspernj/rampway#readme","bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"bin":{"rampway":"build/src/cli.js"},"dist":{"shasum":"d447d81175750a5e7ac466faa3346d0ab3bb0780","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.32.tgz","fileCount":267,"integrity":"sha512-9HoV6pP7Vz7OmAYD2aRDbgmweK8G5CxqA2irQjbF72B7hb5MaBc7TuWvYyef4ddTnFvhXWtVeJxEiz2TGhG30A==","signatures":[{"sig":"MEYCIQCYPc6/WfnR74KjJltFpEmGcG+HjFHXVyY9DQ0WDXeVDQIhAM3ety8CDD5dHAgC4k2THZICoQRGhyQ2Du3eInfKa0g3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1264249},"main":"build/src/tasks.js","type":"module","types":"build/src/tasks.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"imports":{"#types":"./build/src/types.js"},"private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && velocious-test --setup tests/setup.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"velocious-test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"12.0.2","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","@velocious/testing":"0.0.5","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rampway_0.5.32_1788974929988_0.14839661662297154","host":"s3://npm-registry-packages-npm-production"}},"0.5.33":{"_id":"rampway@0.5.33","bin":{"rampway":"build/src/cli.js"},"bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"dist":{"shasum":"3dca157497c6ec444ced670703cc9097e6bb32f5","tarball":"https://registry.npmjs.org/rampway/-/rampway-0.5.33.tgz","fileCount":271,"integrity":"sha512-mzdYSudDUvQrw1SQlX8rBnLaBNbgCYPFEGlURSJ0p2W9U17MNcwbjcQ49Hf6w7mOU1oZJu9S8lTrvzKx04ApSA==","signatures":[{"sig":"MEUCIBl24OD45lJ3hzUjSV8E05rQ4bPIcCz2eHvmV7cO0bDWAiEAxyajG4GCVaAa72Wqc5NLUk1+sxqaDlbAqXDzCD5GJ60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDFbhTKtE02TNoI1UOPFQFDb4z03Hc7TDSkCgtWIXDuoQIhAJOBIAI5eiGIKfawCmNJ/qesA3G4J8r7XxLHUQDJDKR5"}],"unpackedSize":1307577},"main":"build/src/tasks.js","name":"rampway","type":"module","types":"build/src/tasks.d.ts","author":{"name":"Kasper Johansen"},"engines":{"node":">=24"},"exports":{".":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./tasks.js":{"types":"./build/src/tasks.d.ts","default":"./build/src/tasks.js"},"./velocious":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./package.json":"./package.json","./test-helpers":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"},"./velocious.js":{"types":"./build/src/velocious/index.d.ts","default":"./build/src/velocious/index.js"},"./test-helpers.js":{"types":"./build/src/test-helpers.d.ts","default":"./build/src/test-helpers.js"}},"gitHead":"96ce37b6bcd3224ba75487864be0d64743504e7c","imports":{"#types":"./build/src/types.js"},"license":"UNLICENSED","private":false,"scripts":{"lint":"eslint src/ tests/ scripts/","test":"npm run build && velocious-test --setup tests/setup.js","build":"npm run clean && npm run compile","check":"npm run lint && npm run typecheck && npm run test","clean":"node scripts/clean.js","compile":"tsc -b --force","prepack":"npm run compile","prepare":"npm run build","typecheck":"tsc --noEmit","postcompile":"node scripts/ensure-cli-executable.js","release:patch":"npm run check && release-patch","test:docker-dev-environment":"velocious-test tests/docker-dev-environment.test.js","verify:docker-dev-environment":"node scripts/verify-docker-dev-environment.js"},"version":"0.5.33","_npmUser":{"name":"kaspernj","email":"kasper@diestoeckels.de"},"homepage":"https://github.com/kaspernj/rampway#readme","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"_npmVersion":"11.16.0","description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","directories":{},"maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"_nodeVersion":"24.18.1","dependencies":{"typanic":"^1.0.9","rollbridge":"^0.1.41","@types/node":"^26.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","velocious":"^1.0.574","typescript":"^5.9.3","release-patch":"^1.0.0","@velocious/testing":"0.0.5","eslint-plugin-jsdoc":"^61.5.0"},"peerDependencies":{"velocious":"^1.0.574"},"peerDependenciesMeta":{"velocious":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rampway_0.5.33_1790421086755_0.8037294649302948"}}},"time":{"created":"2026-07-14T17:48:48.066Z","modified":"2026-09-26T11:11:27.327Z","0.2.1":"2026-07-14T17:48:48.289Z","0.2.2":"2026-07-14T18:41:29.108Z","0.2.3":"2026-07-15T17:04:05.859Z","0.2.4":"2026-07-16T15:34:01.191Z","0.2.6":"2026-07-23T07:47:47.882Z","0.2.5":"2026-07-23T07:51:28.246Z","0.3.0":"2026-07-28T17:14:54.596Z","0.3.1":"2026-08-04T08:36:16.173Z","0.4.0":"2026-08-05T14:55:45.037Z","0.5.0":"2026-08-06T11:04:27.277Z","0.5.1":"2026-08-09T10:20:00.937Z","0.5.2":"2026-08-12T04:54:23.061Z","0.5.3":"2026-08-12T05:52:25.558Z","0.5.4":"2026-08-12T06:09:56.871Z","0.5.5":"2026-08-12T07:30:15.544Z","0.5.6":"2026-08-12T16:52:32.238Z","0.5.7":"2026-08-13T16:45:54.675Z","0.5.8":"2026-08-15T10:27:22.197Z","0.5.9":"2026-08-15T11:44:12.687Z","0.5.10":"2026-08-16T09:52:05.835Z","0.5.11":"2026-08-16T11:28:00.003Z","0.5.12":"2026-08-18T07:41:42.703Z","0.5.13":"2026-08-18T16:06:13.007Z","0.5.14":"2026-08-24T06:31:03.000Z","0.5.15":"2026-08-24T06:32:24.906Z","0.5.16":"2026-08-24T12:37:15.343Z","0.5.17":"2026-08-24T13:19:07.944Z","0.5.18":"2026-08-25T11:00:58.460Z","0.5.19":"2026-08-26T09:22:14.056Z","0.5.20":"2026-08-27T10:44:31.877Z","0.5.21":"2026-08-27T10:52:01.001Z","0.5.22":"2026-08-28T16:03:45.918Z","0.5.23":"2026-08-31T12:58:59.977Z","0.5.24":"2026-08-31T19:30:38.750Z","0.5.25":"2026-08-31T20:01:06.305Z","0.5.26":"2026-08-31T22:53:52.089Z","0.5.27":"2026-09-01T11:05:20.086Z","0.5.28":"2026-09-02T05:36:18.995Z","0.5.29":"2026-09-04T09:12:59.274Z","0.5.30":"2026-09-04T17:10:49.153Z","0.5.31":"2026-09-09T16:07:12.243Z","0.5.32":"2026-09-09T17:28:50.117Z","0.5.33":"2026-09-26T11:11:27.153Z"},"bugs":{"url":"https://github.com/kaspernj/rampway/issues"},"author":{"name":"Kasper Johansen"},"license":"UNLICENSED","homepage":"https://github.com/kaspernj/rampway#readme","keywords":["deploy","deployment","capistrano","release","release-directory","rollback","monorepo","node","expo","velocious","rollbridge","zero-downtime"],"repository":{"url":"git+https://github.com/kaspernj/rampway.git","type":"git"},"description":"JS-native Capistrano-style release-directory deployments with Rollbridge integration.","maintainers":[{"name":"kaspernj","email":"kasper@diestoeckels.de"}],"readme":"# Rampway Deploy\n\nRampway is a JavaScript-native release-directory deployment tool: the useful parts of Capistrano, built for Node/Expo/Velocious projects and designed to hand runtime changes to Rollbridge.\n\nPackage: `rampway`  \nCLI: `rampway`  \nConfig: `rampway.config.mjs`\n\n## Current MVP\n\nThis initial scaffold includes:\n\n- ESM config loading and validation\n- deterministic deploy plans\n- local release-directory deploys for tests/dogfooding\n- linked file/dir checks and symlink creation\n- deploy lock acquisition/release\n- release metadata (`REVISION`, `TRESTLE_RELEASE.json`)\n- atomic `current` symlink publishing\n- safe cleanup\n- revision-fenced, idempotent post-publish cleanup recovery\n- rollback to previous or selected release\n- guarded publication recovery for an already-committed exact release\n- JSONL deploy reports at `shared/log/rampway-deployments.jsonl`\n- secret redaction helpers\n- basic runtime adapter interface with `none` and Rollbridge validate/deploy/status/logs/recover helpers\n- optional Rampway-owned authenticated Velocious deployment API at `rampway/velocious`\n\nSSH transport command execution supports both local-copy and remote-git deployments. `remote-git` prepares each release checkout on the target host, so the target needs `git` and access to the configured repository.\n\nOrdinary SSH projects need only deployment facts:\n\n```js\ntransport: {\n  type: \"ssh\"\n},\nhosts: [{host: \"server.example\", user: \"deploy\"}]\n```\n\nRampway enforces strict host-key checking with the standard OpenSSH known-hosts\nlocations and selects `deploy.key` beside the config before readable standard\nuser identities for the direct deployment-host connection. A usable inherited\nagent remains available for onward authentication, or as the direct fallback\nwhen no identity file exists; otherwise Rampway owns a private agent for the\ncommand and loads the discovered identities. SSH-form `remote-git` repositories\nenable agent forwarding by default. Rampway pins the resolved socket with\n`IdentityAgent`; optional standard identities rejected by `ssh-add` are skipped\nafter the selected deploy identity loads. Local control-plane branch resolution\nuses the same strict known-host and agent profile, while pinned-revision HTTP\ndeploys do not require unused local SSH credentials. See the config reference\nfor deterministic identity, known-host, forwarding, and SSH-option overrides.\n\nGuard a recovery deploy against an unexpectedly changed active release with:\n\n```bash\nrampway production deploy CANDIDATE_FULL_SHA --expected-active-revision ACTIVE_FULL_SHA\n```\n\nBoth values must be full 40-character hexadecimal commit SHAs. The existing `before_deploy` and `before_lock` hooks still run before lock acquisition and remain outside the guard's protection. After Rampway acquires the normal deploy lock, its first locked operation strictly resolves `current` and reads that release's `REVISION`. A missing, unsafe, malformed, or mismatched current release fails before `after_lock` and all candidate/source, task, migration, backfill, runtime, and publication work. This option has no bootstrap semantics, and `--force` cannot bypass it. Deploys without the option retain the ordinary lifecycle.\n\nFull config reference: [docs/config-reference.md](docs/config-reference.md)\nMigrating from Capistrano: [docs/migration-from-capistrano.md](docs/migration-from-capistrano.md)\n\n## Docker development environment\n\nRampway's canonical development environment is one persistent `dev` service built from the root `Dockerfile`: digest-pinned Ubuntu 26.04 LTS, exact signed/checksummed NodeSource Node 24, the universal coding/debugging baseline, and the current OpenCode, Codex, Claude Code, and official Kimi Code CLIs. The image is source-independent and installs no project dependencies or Threadwire.\n\nCopy the portable environment template, prepare mount-target directories, start the service, and install locked dependencies inside it:\n\n```bash\ncp .env.example .env\nscripts/prepare-dev-home.sh\ndocker compose up --build --detach dev\nscripts/docker-run.sh npm ci\n```\n\nThe complete dedicated development home is mounted at `/home/dev`; GitHub CLI configuration mounts read-only, and Hermes' shared provider runtime supplies Codex, OpenCode, and Kimi authorization through UID/GID-1000 bootstrap links. `scripts/docker-run.sh` executes project commands through the already-running service. Use a distinct `COMPOSE_PROJECT_NAME` and `DEV_HOME_PATH` for each concurrent instance.\n\nSetup, credential boundaries, isolation, static checks, and Docker-capable coordinator validation are documented in [docs/docker-development-environment.md](docs/docker-development-environment.md).\n\n## Commands\n\n```bash\nrampway init\nrampway production validate\nrampway production plan\nrampway production plan <revision>\nrampway production plan --json\nrampway production deploy\nrampway production deploy <revision>\nrampway production deploy --transport=auto\nrampway production deploy --transport=http\nrampway production deploy --transport=ssh\nrampway production status\nrampway production releases\nrampway production releases --json\nrampway production task cache:warm\nrampway production task cache:warm --json\nrampway production tasks\nrampway production tasks --json\nrampway production rollback\nrampway production resume-publication <exact-release-id>\nrampway production cleanup-releases --expected-active-revision <active-full-sha>\nrampway production cleanup-releases --expected-active-revision <active-full-sha> --dry-run\nrampway production doctor\nrampway production doctor --json\n\n# Runtime maintenance for the current release\nrampway production runtime-validate\nrampway production runtime-status\nrampway production runtime-logs\nrampway production runtime-recover --yes\nrampway production runtime-recover-generation-transition <failed-release-id> --yes\n\n# Local foreground host-restart entrypoint for the last accepted release\nrampway production runtime-boot --config /absolute/path/rampway.config.mjs\n```\n\nThe older `rollbridge-validate`, `rollbridge-status`, `rollbridge-logs`, and\n`rollbridge-recover` names remain aliases for Rollbridge stages.\n\nUse [exact failed-generation recovery](docs/failed-generation-recovery.md) when\na Rollbridge deploy timed out or failed before publication and retained its\ncandidate transition fence. Recovery supports stages without an explicit\n`runtime.config`, and later successful Rollbridge deploys refresh live retained\nrelease pins before cleanup.\n\n### Post-publish cleanup recovery\n\nPublication and healthy runtime activation are the deploy success boundary. If\nonly Rampway's built-in release-retention cleanup fails after that boundary, the\ndeploy returns success as `deployed and active with cleanup pending`, persists a\nbounded `cleanupFailure`, and prints the exact revision-fenced recovery command:\n\n```bash\nrampway production cleanup-releases --expected-active-revision ACTIVE_FULL_SHA\n```\n\nThe recovery command takes the normal deploy lock and verifies the exact\npersisted revision from the `current` release while holding the lock. Its fence\nalso supports local-copy branch labels and full 64-character Git revisions;\ncanonical 40- and 64-character hexadecimal revisions compare case-insensitively,\nwhile other tokens compare exactly. A direct CLI deploy preserves its resolved\n`--config` path in the generated command. Rampway then inventories live\nrelease/runtime state, and removes only Rampway-managed releases that exceed\n`keepReleases` and have no current, active-runtime, draining-runtime, or durable\nruntime-pin protection. It replans before deletion and verifies by replanning\nafterward. Ambiguous remote deletion or listing failures cause live-state\nreadback; Rampway never infers whether a remote delete ran from exit status alone.\nRetries are idempotent. `--dry-run` holds the same fence and reports the plan but\ndoes not delete releases or append a cleanup report.\n\nCleanup recovery never deploys code, hands off or restarts a runtime, changes\n`current`, or runs application hooks. Failures from `before_cleanup`,\n`after_cleanup`, report persistence, and lock release remain ordinary nonzero\ndeploy failures rather than cleanup-pending successes.\n\n### Deploy transports\n\nDeploys run over one of three transports selected with `--transport`:\n\n- `http` — run the deploy through the authenticated Velocious control plane\n  (requires `stage.http`). Fails if the stage has no control-plane config.\n- `ssh` — run directly over the stage's SSH (or local) transport, bypassing the\n  control plane.\n- `auto` (default) — use the control plane when the stage configures\n  `stage.http`, and fall back to the direct transport only when the control\n  plane is unreachable or the project/stage is not deployed there. Never falls\n  back on authentication or validation errors, or once a run has been admitted.\n\nDry runs always use the direct transport and print a plan, regardless of\n`--transport`.\n\n### Readable deploy output and automation\n\nA normal deploy reports timed lifecycle progress and a concise result. Full\nshell commands and redacted child stdout/stderr are written to the per-deploy\nlog instead of flooding the terminal:\n\n```text\n$ rampway production deploy\nLogging deploy output to /srv/app/log/deploys/20260904123000-production.log\nDeploying app/production revision 4f31c21 as release 20260904123000\n→ Preparing deploy directories\n✓ Preparing deploy directories (0.1s)\n→ Task install\n✓ Task install (8.4s)\n✔ Deployed app/production revision 4f31c21 as release 20260904123000 in 12.7s\n  Deploy log: /srv/app/log/deploys/20260904123000-production.log\n```\n\nSet `deployLog: false` explicitly to disable the persistent transcript. Human\ndeploys then retain the previous fallback of streaming redacted child output to\nstderr so diagnostics are not discarded.\n\nUse `--json` when another program consumes the result. It suppresses lifecycle\nand child output and writes exactly one final JSON report, including for a\nfailed deploy:\n\n```bash\nrampway production deploy --json > deploy-report.json\n```\n\nFor local development without installing the package globally:\n\n```bash\nnode src/cli.js init\nnode src/cli.js local validate --config examples/local/rampway.config.mjs\nnode src/cli.js local plan --config examples/local/rampway.config.mjs\nnode src/cli.js local deploy --config examples/local/rampway.config.mjs\n\n# Monorepo example with backend + frontend stages\nnode src/cli.js local validate --config examples/monorepo/rampway.config.mjs\nnode src/cli.js local plan --config examples/monorepo/rampway.config.mjs\n```\n\n## Config example\n\nReusable Node package install helpers can be imported from `rampway/tasks` when writing `rampway.config.mjs`:\n\n```js\nimport {npmInstall, pnpmInstall, checkExpoWebArtifacts, velociousMigrate, onlyIfChanged} from \"rampway/tasks\"\n```\n\n```js\n// rampway.config.mjs\nexport default {\n  application: \"routergeist\",\n  stages: {\n    production: {\n      repo: \"git@github.com:kaspernj/routergeist.git\",\n      branch: \"master\",\n      deployTo: \"/home/dev/routergeist\",\n      strategy: \"remote-git\",\n      transport: {type: \"ssh\"},\n      hosts: [{host: \"server.example\", user: \"dev\", roles: [\"app\", \"web\", \"db\"]}],\n      keepReleases: 5,\n      linkedFiles: [\n        {path: \"backend/src/config/secrets.js\", required: true}\n      ],\n      linkedDirs: [\"log\", \"tmp/pids\", \"tmp/cache\", \"storage\"],\n      tasks: {\n        install: [\n          npmInstall({cwd: \"backend\", production: true}),\n          pnpmInstall({cwd: \"app\", production: true})\n        ],\n        migrate: [\n          velociousMigrate({cwd: \"backend\", env: {NODE_ENV: \"production\"}})\n        ],\n        build: [\n          \"cd app && npm run web:export\",\n          checkExpoWebArtifacts({dir: \"app/dist\"}),\n          {command: \"npm run assets:verify\", cwd: \"app\", env: {NODE_ENV: \"production\"}}\n        ]\n      },\n      operationalTasks: {\n        \"cache:warm\": {\n          command: \"npm run cache:warm\",\n          cwd: \"backend\",\n          env: {NODE_ENV: \"production\"},\n          forwardEnv: [\"CACHE_WARM_CREDENTIAL\"]\n        }\n      },\n      runtime: {\n        type: \"rollbridge\",\n        command: \"npx rollbridge\",\n        packageDir: \"backend\",\n        config: \"config/rollbridge.production.mjs\",\n        daemonLogPath: \"/home/dev/routergeist/shared/log/rollbridge.log\",\n        daemonPidPath: \"/home/dev/routergeist/shared/tmp/pids/rollbridge.pid\",\n        socketPath: \"/tmp/rollbridge-routergeist.sock\",\n        versionPath: \"/home/dev/routergeist/shared/tmp/rollbridge-version\"\n      }\n    }\n  }\n}\n```\n\nFor Rollbridge, an explicit `runtime.config` is resolved relative to\n`runtime.packageDir`, fingerprinted with the Rollbridge package version,\nruntime options, and environment values, then copied into immutable\nRampway-owned material under `shared/rampway/runtime/`. After runtime and health\nsucceed, Rampway atomically records only the known-good digest and secret-free\nactivation locators in `shared/rampway/state.json`, indexed by release. Secret\nenvironment values participate in change detection but are never stored or\nlogged. Keep the Rollbridge config self-contained; imported sibling files are\nnot copied.\n\nThat stable state lets rollback and runtime maintenance target a retained release\nwhose checkout has no Rampway helper or Rollbridge config. `packageDir` remains\nrelative to the selected application release, while the stored config comes from\ntrusted known-good material. A missing, malformed, mismatched, or config-less\nRollbridge state fails rollback before runtime or `current` changes. The first\nsuccessful Rampway deploy with an explicit config seeds this state.\n\nFor a candidate snapshot using Rollbridge 0.1.29 or newer, Rollbridge owns\nincompatible config, socket, package, and runtime-owner replacement inside\n`rollbridge deploy --ensure-daemon`. Rampway validates and deploys that candidate\nwithout first shutting down the incumbent, and it surfaces a failed replacement\nwithout the destructive legacy shutdown/retry fallback. When Rollbridge reports\nthat a rejected incompatible replacement left the incumbent authoritative,\nRampway also skips automatic previous-snapshot runtime restoration while keeping\nthe deploy or rollback failed, `current`, accepted runtime state, and the\noriginal causal error unchanged. Candidates older than 0.1.29 retain Rampway's\ncompatibility path, which shuts down a responsive daemon before deploying a\nchanged runtime contract and may retry a reported legacy runtime mismatch once\nafter known-good shutdown. The first transition from a pre-split Rollbridge\nowner to 0.1.29+ can still be disruptive while Rollbridge uses its documented,\nnarrowly authorized one-time pre-split bridge; Rampway does not preempt that\ntransaction or discard its guardian-owned process state.\n\nAfter a configured Rollbridge handoff and all required health checks succeed,\nRampway also atomically writes `shared/rampway/runtime-boot.json`. This\nversioned, integrity-protected record contains only application/stage identity,\nthe exact retained release and revision, the immutable config path and digest,\nthe secret-free full runtime contract digest, and its acceptance time. It\ncontains no runtime options, environment, commands,\ncredentials, or output. `runtime-boot` is local-only and verifies that record,\nthe retained release metadata, `REVISION`, `current`, the identical active and\nretained runtime snapshot, its rollback compatibility, and immutable config\nbytes before spawning Rollbridge 0.1.17 or newer in the foreground using:\n\n```text\nrollbridge daemon --config <absolute-config> --release-path <absolute-release> --release-id <id> --revision <revision>\n```\n\nThe command never deploys or selects a fallback release. Missing, corrupt,\nstale, mismatched, or config-less state fails closed. A service manager should\nsupervise `rampway`; Rampway does not supervise Rollbridge. A valid schema-1\nboot record is upgraded atomically after its matching runtime snapshot,\nmaterial, and rollback compatibility have been verified. An exact lock-bound\nexternal-owner handoff keeps its schema-1 record and attestation unchanged;\nthe next unlocked restart performs the migration.\n\nFor a persistent external foreground owner, opt in with\n`runtime.externalOwner: {type: \"foreground\"}` (Rollbridge 0.1.38+). Optional\n`handoffTimeoutMs` and `pollIntervalMs` positive integers bound the transition;\n`handoffTimeoutMs` is one deadline for the authenticated `retire-owner` socket\nround trip and the subsequent replacement polling after initial owner identity\nverification.\nThis mode requires an explicit `runtime.config` so Rampway can persist stable\nforeground boot material before any ownership transition.\nEach deploy or rollback must establish the newly accepted boot attestation. If\nthe current foreground owner already reports that exact identity, it remains\nuntouched. An unreadable status or a release/runtime identity mismatch fails\nclosed without shutdown. When only the bootstrap is absent or stale, Rampway\nsends one authenticated `retire-owner` control command — attested with the\naccepted boot-state digest — through the configured `runtime.socketPath`\ncontrol socket. Retirement quiesces the old owner and releases its\nproxy/control listeners promptly without waiting for long-draining workers,\nso a serial outer supervisor can start the ordinary attested `runtime-boot`\nreplacement while the retired owner finishes draining. A stalled, truncated,\nmalformed, or non-success retirement response fails the handoff\ndeterministically within `handoffTimeoutMs`, without retrying retirement or\ntaking over the owner. Deploying over a retained external owner running\nRollbridge older than 0.1.21 fails closed before any shutdown or deploy,\nbecause those versions cannot be retired without interrupting service while\nworkers drain; stage the migration through an intermediate 0.1.21+ release\nwith `runtime.externalOwner` disabled in an explicitly planned maintenance\nrestart, scheduled only after accepted long-running workers have drained, then\nupgrade to Rollbridge 0.1.38+ before re-enabling it. Rampway accepts only\nthe exact release, runtime, and boot-digest attestation; timeout or\nreplacement failure preserves the accepted boot state and handoff request for\nsupervisor retry. Rampway never signals a status-reported PID and does not\ninvoke the service manager.\n\n#### Required retained-runtime boundary\n\nA release-scoped background-jobs generation comprises that\nrelease's jobs-main and worker pool. The complete candidate generation starts\nbefore activation. Deployment success is reached when the candidate release is\nactivated and healthy; the previous jobs-main and workers then retire as one\ngeneration and drain asynchronously on their old release code and endpoint.\nExternal-owner handoff must return without waiting for that generation, its jobs,\nHTTP/WebSocket connections, or other retained services to exit. Those drains may\ncontinue after the deploy command returns and deploy lock is released, and later\ndeploys must not serialize behind them.\n\nRampway owns the activation transaction, lock,\naccepted runtime metadata, release-reference pins, and cleanup enforcement.\nRollbridge owns durable supervision of retained processes, including multiple\nconcurrently draining generations and recovery after an owner or host restart.\nRollbridge must report every referenced release directory, and Rampway must pin\nit against `keepReleases` cleanup until that generation has fully retired. HTTP/\nWebSocket drain completion or timeout does not end a jobs-generation reference.\n\nDuring external-owner handoff, Rampway persists Rollbridge's complete referenced-\nrelease set before cleanup while it still holds the deploy lock. Later deploys\nquery the durable supervisor again, so a release remains pinned across deploys\nuntil Rollbridge no longer reports it.\n\nWhen one project root has multiple independently deployed runtime owners, set a\npath-safe stage-level `namespace` on every participating stage. For example,\n`namespace: \"web\"` and `namespace: \"worker\"` under the same `deployTo`\nuse independent `releases/<namespace>`, `current/<namespace>`, shared content,\ndeploy locks, known-good runtime state and material, runtime boot state, owner\nhandoff requests, and reports. Each outer owner runs `runtime-boot` with the\nconfig and stage for its namespace. Omitting `namespace` retains the legacy\nsingle-runtime paths exactly. Do not mix namespaced and unnamespaced stages in\none `deployTo`; see [the config reference](docs/config-reference.md#deployment-namespaces).\n\n`npmInstall`, `pnpmInstall`, `yarnInstall`, `bunInstall`, and `nodePackageInstall` return normal task entries with the right install command for common Node package managers. They accept `cwd`, `env`, `optional`, `production`, and lockfile options such as `clean: false` for `npm install` instead of `npm ci`, or `frozenLockfile: false` for package managers that need explicit CI lockfile opt-outs (`--no-frozen-lockfile` for pnpm and `--no-immutable` for Yarn). Yarn production installs are intentionally not guessed; use a custom task command when that project needs a specific Yarn workspace/plugin flow.\n\n`checkExpoWebArtifacts` returns a task entry that fails if the Expo web build directory does not contain an `index.html`. It accepts `dir` (default `\"dist\"`), `cwd`, and `optional`.\n\n`velociousMigrate` returns a task entry that runs `npx velocious db:migrate`. It accepts `command` (override), `cwd`, `env`, and `optional`.\n\n`onlyIfChanged(paths, task)` wraps a task entry so it is skipped when none of the given relative paths have changed since the previous deploy. On the first deploy (no previous release), all tasks run regardless.\n\nTask entries can be strings or objects.\n\n- `command` — required shell command to run.\n- `cwd` — optional release-relative working directory.\n- `env` — optional environment variables passed to the command.\n- `optional` — when `true`, the deploy records the task failure and continues.\n\nTask groups run in config order. Required task failures stop the deploy before publish. If a candidate runtime handoff starts and then fails before publish, Rampway reactivates and health-checks the previous release using that release's known-good snapshot. Deploy failures include whether `current` changed and recovery hints for the affected stage, such as rerunning a before-publish failure, inspecting a newly created failed release directory, or inspecting `rampway status`, `rampway releases`, and `rampway rollback` after a failure that happened after publish. Existing release-id collisions do not suggest deleting the release directory.\n\nRollback runs under the same exclusive lock as deploy but never runs deploy task\ngroups, migrations, or candidate-local Rampway helpers. Rampway resolves one\nretained release directory, activates it with the installed runtime adapter,\nruns the configured health checks, and only then publishes `current`. If target\nactivation or health fails, Rampway reactivates and health-checks the prior\nrelease before returning the original failure. Use `--to <exact-release-id>` for\na retained Capistrano release. Unsafe, nested, temporary, escaping, and\noutside-symlink targets are rejected.\n\nRelease diagnostics include safe retained legacy directories. Cleanup ownership\ndoes not: only releases carrying valid Rampway metadata for the configured\napplication and stage count toward `keepReleases` or can be removed by Rampway.\nCleanup excludes the `current` release, keeps the configured number of newest\nmanaged releases, and excludes every release referenced by the runtime owner.\n\nStandalone operational tasks are configured separately under `operationalTasks` and run only when explicitly selected with `rampway <stage> task <exact-name>`. Rampway acquires the shared deploy lock, strictly resolves the active release, and runs every required entry against that immutable release path. `forwardEnv` names caller-supplied environment variables that must be present; their values are transported separately from ordinary `env` and redacted from output and errors. Operational tasks do not run during deploy, accept no command arguments or `--force`, and are not included in the plural `tasks` deploy-task inventory.\n\n## Callable deployments from Velocious\n\nVelocious applications can mount the authenticated control plane exported as\n`rampway/velocious`. The HTTP API accepts only allowlisted Rampway config/stage\ntargets, full Git commit SHAs reachable from an approved release branch, and\nidempotency keys. Each admitted run is handed to a detached package-owned Node\nworker, which reconstructs the backend Velocious context and executes Rampway's\nexisting deploy/rollback/status lifecycle; matching live revision/fence\nrequests coalesce onto that canonical worker, and a revision already active\nunder the deploy-host lock returns an explicit successful no-op before release\nor runtime lifecycle work. Velocious remains the framework and persistence\nruntime. See\n[Velocious callable deployment API](docs/velocious-deployment-api.md) for\nmounting, client calls, durable recovery behavior, and token\nrotation/revocation.\n\n## Deployment reports\n\nEvery successful deploy, rollback, or resumed publication appends one JSON object per line to `shared/log/rampway-deployments.jsonl`. Deploy events include:\n\n- `event: \"deploy\"`\n- `application`, `stage`, `releaseId`, `revision`, and `branch`\n- `deployedAt` and `durationMs`\n- `previousRelease`\n- `healthChecks: \"passed\"`\n- sanitized runtime status\n- `cleanupRemoved` release IDs\n- `cleanupStatus: \"completed\"` after ordinary cleanup, or `\"pending\"` when only\n  built-in post-publish retention cleanup failed\n- for pending cleanup, bounded `cleanupFailure` process status and confirmed\n  partial-removal count plus the exact `cleanupRecoveryCommand`; these fields\n  never contain commands, remote output, credentials, or deployment destinations\n- optional `warnings` for non-fatal maintenance failures after runtime acceptance\n\nRollback events include `event: \"rollback\"`, target `releaseId` and `revision`,\n`rolledBackAt`, `durationMs`, `previousRelease`, `healthChecks: \"passed\"`, and a\nsanitized runtime result. Reports intentionally record runtime result summaries,\nnot runtime configuration or secrets. A provisional cleanup-pin removal failure\nis reported as a warning and retained for later reconciliation; it does not turn\nan already-accepted runtime activation into a failed deploy or rollback. Rampway\nstores provisional pins outside accepted runtime state and clears only the pins\nowned by the exact runtime configuration that positively reports its live\nrelease references. Runtime changes preserve the previous owner's pins, and\nruntimes without reference reporting retain their unresolved pins.\n\nResumed-publication events use `event: \"resume-publication\"`, `resumedAt`, the\nexact target and previous release identities, `healthChecks: \"passed\"`, the\nalready-committed runtime summary, and normal cleanup results.\n\nSuccessful non-dry-run `cleanup-releases` commands append\n`event: \"cleanup-releases\"` reports with the revision fence, initial live plan,\nexplicit protection reasons, confirmed removals, final remaining releases, and\nmanaged/protected/removable/removed/remaining counts. Dry runs print the same\nshape without appending it.\n\nWhen a remote-git deploy finds the requested revision already active under the\ndeploy lock, it appends the same bounded deploy event with `idempotent: true`,\nthe active `releaseId` and canonical `revision`, and `healthChecks: \"unchanged\"`\n— no runtime result or health success is invented for work that did not run.\n\n## Releasing\n\nPatch releases are cut synchronously from a clean checkout with publish access to\nnpm:\n\n```bash\nnpm run release:patch\n```\n\nThe release script runs Rampway's lint, typecheck, and test suite before starting\nthe shared `release-patch` command. That command syncs `master`, derives the next\npatch version from the latest published annotated `vX.Y.Z` tag, installs\ndependencies, builds, and checks the package with a publish dry run. It then\ncommits the version files, creates an annotated tag, atomically pushes `master`\nand that tag, publishes to npm, and verifies the published version before\nreturning. The Git push is atomic, but npm publication is a subsequent operation\nand cannot be rolled back by that push. The command requires an npm login with\npublish rights; publishing is not delegated to GitHub Actions.\n\nIf publishing fails after the commit and tag were pushed, inspect the failure and\nresume that exact tagged release with `npx release-patch --resume`. The release\ntool supports patch releases only; minor and major releases require a separately\ndefined process.\n\n## Runtime adapters\n\nRampway resolves runtimes through a small adapter registry. Built-in adapters are\n`compose`, `none`, and `rollbridge`; future adapters can register a runtime type without\nchanging the deploy lifecycle core. Runtime adapters implement `plan()` and\n`deploy(...)`. Optional `prepare(...)` and `commit(...)` methods participate in\nsecret-free known-good state, and optional `validate`, `status`, `logs`, and\n`recover` methods are exposed by the generic runtime commands.\n\nRollbridge runtime options:\n\n- `command` — shell command used to invoke Rollbridge, defaulting to `npx rollbridge`.\n- `packageDir` — release-relative directory where Rollbridge commands run.\n- `config` — optional Rollbridge config path passed as `--config`.\n- `daemonLogPath`, `daemonPidPath`, and `daemonStartTimeoutMs` — optional daemon flags forwarded to `rollbridge deploy`.\n- `versionPath` — optional shared file where Rampway records the deployed Rollbridge package version.\n- `socketPath` — optional Rollbridge socket removed after a version-change shutdown if a stale daemon leaves it behind.\n\nWhen `versionPath` is configured, Rampway reads the release's installed Rollbridge package version before deploy. If it differs from the recorded version and the current runtime is responsive, Rampway shuts down the current Rollbridge daemon, removes configured stale daemon artifacts, deploys the new release, and records the new version.\n\n### Compose runtime\n\nUse `runtime: {type: \"compose\", composeRoot, handoffCommand, healthCommand}`\nwhen an application is managed by a trusted, fixed Docker Compose deployment.\nRampway executes the static handoff command and then the static health command\nfrom the absolute `composeRoot`. It records only a digest and the root in\nknown-good runtime state, never command text or secrets. See the\n[config reference](docs/config-reference.md#compose) for the strict field\ncontract and rollback behavior.\n\n## Safety model\n\nRampway prepares a complete release before flipping `current`. If a deploy fails before publish, `current` remains unchanged. Rollbridge runtime deploys are validated and health-checked with `rollbridge status` before `current` is updated. Cleanup never removes the `current` release or a release referenced by active or draining runtime processes. Long-running drains remain Rollbridge-owned background work outside deploy completion and the Rampway deploy lock. Rollback changes `current` to a previously prepared release and records a deployment event.\n","readmeFilename":"README.md"}