{"_id":"@alminabrulic/deploykit","_rev":"25-99052636aac0d7c4d0fcf17f97fdde14","name":"@alminabrulic/deploykit","dist-tags":{"latest":"1.1.19"},"versions":{"1.0.0":{"name":"@alminabrulic/deploykit","version":"1.0.0","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.0.0","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"3a69aa487aa6314b29cc6898a50f5e02c3f5bc4d","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.0.0.tgz","fileCount":4,"integrity":"sha512-kfBEmMvl7l2EiW59mWoaHtexuXHnSff58u8+OdZSAyMkjNYesmfBlBr+ecXZXjf6BBUU+MI2sB+U+nAmo+1POA==","signatures":[{"sig":"MEQCIE9qEn/PE3l0aqKRIrUcnSORihDRnqSx0Ghkmj4LtwTuAiADULABTI82+eVSEcEUdJ11xblusEZ/l7e4mOoCZS9zlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51926},"type":"module","engines":{"node":">=20"},"gitHead":"a57467963324d6c20291cc6119da34e80887b0da","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"11.6.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.0.0_1784311106804_0.8041957645853994","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alminabrulic/deploykit","version":"1.0.1","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.0.1","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"32902a902fbe0c8da4a2d62da988d727cc172dcc","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.0.1.tgz","fileCount":4,"integrity":"sha512-4ndZ1whgQIOrHs2152gi/K6vhc28Gaco2rJSBI907mnJ2VREilXNcQHuxSYxvy+dB6gtEGOgJgMOyfPbzQhUjg==","signatures":[{"sig":"MEQCIG5uyqihM8P3oMccDhTRmgd9ujQhzhM1PSaLqEzqIVdaAiAK0zwsHDuGWOcMJjeYjFguCwQQ8QDL1g3reBXv3yNmqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57580},"type":"module","engines":{"node":">=20"},"gitHead":"56be57237daf12bda7ccfe0cf1c85ac992124a5b","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.0.1_1784368713457_0.7093510745150162","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alminabrulic/deploykit","version":"1.0.2","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.0.2","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"1af8d1846b9a44c085de38628f5cdf409bd7eef3","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.0.2.tgz","fileCount":4,"integrity":"sha512-yStGX6iLVBLxCf2zuNiReUT2ZGWHm6y03mIRlm7HFV/EhPG29TDpiO1gOsolnfktkb1quZNyLP9MX/hZYJHjFw==","signatures":[{"sig":"MEUCIQCTUPczTAtiwh1LXWZnAOaQRB0h79n30YSepxg0ve0pXwIgPXnjexLMbmRJNiUr0m8Oj7jad0LF0gonxdRqAk1zRpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62494},"type":"module","engines":{"node":">=20"},"gitHead":"fd4b02c9391d623e9b43625666f6474c4bbe2fb7","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.0.2_1784370744125_0.2475501484018081","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alminabrulic/deploykit","version":"1.0.3","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.0.3","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"bc3f3c0d77740905a1831a058b7a85e7b1833a3f","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.0.3.tgz","fileCount":4,"integrity":"sha512-Ke3cx//B1kr9nG/j2d88egDZWEh5XCY2QyIKsuKWaGVmPiqNscmzBJhW9Lh4W7K3aDEw6cyL3RuJfR6gBDvs3w==","signatures":[{"sig":"MEQCIGufJVyptb12twB1gwbh4uGsSi1d6VKJ8K+igaC/XYHYAiBcJOjUj0nJjknoW5mj4F9vm+D4lyj7ULgOFy5f6+2tnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69624},"type":"module","engines":{"node":">=20"},"gitHead":"4c8fa3ac664dc75d5398a7a52d478deed936dbc4","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.0.3_1784373093429_0.586296621768758","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alminabrulic/deploykit","version":"1.0.4","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.0.4","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"ab2e6e39c8516ecde0610105eb7767554f86aeda","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.0.4.tgz","fileCount":4,"integrity":"sha512-IimP8VkhTfpS08v1oxrwdVxhqgg+A+o5QJXo4mEMs9AnK01YZU3ZkF3li5d9M9R6GeWKlZTM15q0iEYfvET4Yw==","signatures":[{"sig":"MEYCIQDB8MzAuAt7oAriZqljXUZWdNIps0BCZhX5w74o1SbnJgIhAIPZh33QcLlxvd5G5JWBy8aa7pt9gKPc7Lk/HsgOqKeX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69624},"type":"module","engines":{"node":">=20"},"gitHead":"6996422875a2a5b959d216e02a49a1bc79704140","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.0.4_1784374390487_0.3957746191517464","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alminabrulic/deploykit","version":"1.1.0","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.0","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"5d70df858383b029865296667411f68bc9b90d36","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.0.tgz","fileCount":4,"integrity":"sha512-GmRETszCNsJ2X/5cNy9IYUt+kfUMxFgS5Q13wq2IIFzxGezdkRL0rWeJWqZon/Ce+o5b3/L2SMKZ5fHHE+yb9Q==","signatures":[{"sig":"MEUCIDufgIQB0fqjsHJtPeKfTc+Bfp+VY8xsew/UVDC0MXAyAiEAuF1S4VOHMyYedxD0dXSqFXeAaHrOCM5RJ0TgBR4sLq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82758},"type":"module","engines":{"node":">=20"},"gitHead":"4d9cd41b9538be033e8b5750b0cabb948db37ba9","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.0_1784377316474_0.7693226560123598","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alminabrulic/deploykit","version":"1.1.1","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.1","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"0415db38d539f2919d076089503358e8a1be472f","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.1.tgz","fileCount":4,"integrity":"sha512-y9Heou1cq2Nuy9p5XvdCnUBWyQ+kOwURmvVTFOe4OhjFIN2pI93KkHx1W4dye8rE1VZ5ypqpEjOKD0kC/L6HDw==","signatures":[{"sig":"MEUCIQCm8ifFv9Kr3DcdbOMQjQSY3UQ6AJ82l2EXGZiVad9kiAIgS9oljRxexcBKVaEfGNRqArNdQsriOfqCDmzK3NBQrqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87812},"type":"module","engines":{"node":">=20"},"gitHead":"65ca180113b10afdeddc5b741d57b6e341ac4fa4","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.1_1784403771759_0.48120667943412343","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alminabrulic/deploykit","version":"1.1.2","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.2","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"fa8ff4907ae5116f7945b11d1087b5b220655d42","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.2.tgz","fileCount":4,"integrity":"sha512-bj5zuuOa8ecM2FYk0CfyFijzT4NsfJ6+9Efa6qSTYxWPlc0nFaGqnG8DRaUo9IjUejxRBQolyBU5F/Dh/0B34A==","signatures":[{"sig":"MEYCIQDFrOgMqVX4UXLU33Cz6u42lMMC0dddZnHvhcq9UgvjQwIhAJkTdlQ/qhr5QWXszT3BPU/tT+E1rvSarNhFvJKx+QhQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94449},"type":"module","engines":{"node":">=20"},"gitHead":"f0ea5ddc3ab30d0e90268a60110ec906e493f7c5","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.2_1784407678444_0.0981201598233874","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@alminabrulic/deploykit","version":"1.1.3","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.3","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"9c930d50b00cb3f6e08562b8fcc7b7c2253aa73a","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.3.tgz","fileCount":4,"integrity":"sha512-l4m9DMVaMQsp+ky8lnNdek3D9vPnQCnQO6/asPajYnAd1+WoSTLCrKOWotO737Nylz8RQC7qGIprPffdONVaqw==","signatures":[{"sig":"MEUCICuEeMmP6pgIn5IBLmskCUP3BFk/pk5r4van8Xbqw+WWAiEAte+1JLM68Wmz7nZOoQAYTpK//AHTLDLiWxNA3Vjiljg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94585},"type":"module","engines":{"node":">=20"},"gitHead":"fae3d380457fe2b7dca83ce7ed4553a1e4495ed5","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.3_1784409178931_0.35108627347011523","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@alminabrulic/deploykit","version":"1.1.4","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.4","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"8193fd89cbb54d2ea73a5c75ceb654378532a8ab","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.4.tgz","fileCount":4,"integrity":"sha512-aFH+QnAx1dR3LWhpGpI6yVFavSrlIs0Bt13CQ44IX1i4IamgsM2RpsZm1cm+O9LJsFUx2TxA5duS86ScK19bWw==","signatures":[{"sig":"MEUCIDfiKptioKdnbF5o5JmkQ+eizOwTTBeaAcD9Xcnkdk4PAiEAxi6uCNZRTDd2Pr7LN56eWYEux7OLeUbMj4x0gnV8tWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93830},"type":"module","engines":{"node":">=20"},"gitHead":"fe38fbfe2f50d20e9723d205dea9795e8b33e6b9","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.4_1784412456050_0.11085838019973648","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@alminabrulic/deploykit","version":"1.1.5","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.5","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"2c9f688b0ab4a3ac8070d7721dc5d5f39c2176ef","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.5.tgz","fileCount":4,"integrity":"sha512-pzSj0/cjZew8n1/ZW4h2ShfWDQ05xUCCT5ZwhQ9kX7SZc0FBxP84XKJeCuA50jfjSFTotAYW5OpwbIbwlHbd5g==","signatures":[{"sig":"MEQCICfmJga+mmiZCVdcIMCRLtGRi30RHAlj1MfRVPBF7tD+AiBuMwxr2U7CcSIqyJD7ZE97/75Cqnopcizk0Xe4c+Tk7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106036},"type":"module","engines":{"node":">=20"},"gitHead":"c87d4bf9c2e10b90bb9a5ee39bb2501526033cfa","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","start":"node dist/index.js","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","vitest":"^2.1.9","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.5_1784456604850_0.23964103463706454","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@alminabrulic/deploykit","version":"1.1.6","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.6","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"b4ad124e39d2b7e234c91c52a264edb16cc1d934","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.6.tgz","fileCount":4,"integrity":"sha512-NIkNvf9WGPPiQo2YDwacQ6eNveOmfYcgOzm1OO+S7QyUTdbZSBl+Qakxf9C7zLmCpHTWqu0+gDMV0BDFH29M8A==","signatures":[{"sig":"MEYCIQCmqKyRyrn03Sy3H3rpxlxRIxhwdlQvNVpndMyC3EOQTQIhAIt2pbTkV1z7J8ykaIKtVYGr7rRFkh9DWH99rK0D4/tK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108240},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"c6a3762fd1f3fd4552570cca78feaddca8ccc8b9","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.6_1784461000522_0.498088584961057","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@alminabrulic/deploykit","version":"1.1.7","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.7","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"445fca6229d24fb10fc4325cdd1405d74f7a6c91","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.7.tgz","fileCount":4,"integrity":"sha512-oPe7rW1AtJha/4nnWSGPY1xaFuiVmJYSGI3EToZZ9Ozmg/TnB+ebBhTKf5bIFjU/AxJk+pK8++3FrANBRkjRjw==","signatures":[{"sig":"MEQCICEx1lkxKwuGUE9G5a3mLVKzGY5ijBHq4N4rw9dwik1/AiBYe6iB2Nzig6ncWaUl3kmT2mxCNNqL9irgst9iehPeUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120283},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"c3d7dd96a486c8a8ba8540486464332b11cfc84b","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.7_1784465681099_0.2474512386463783","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@alminabrulic/deploykit","version":"1.1.8","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.8","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"257d8585943beb31a0cc4ee0021f8ce5ec962366","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.8.tgz","fileCount":4,"integrity":"sha512-tiB6Zdj4xnzdtprGesA1n2NeDiRr+4EzAftcFf+03vJL30vQyp7Va8wsXsgAiUMELrxuqOCEMorkOXDzcSEqDA==","signatures":[{"sig":"MEUCIQDcxutc5Bk7gR6IdsvpzCyiYsWpq907Fy0KmD8WU3VXmgIgArEGZggS607H3rLkFLK9F3ABuJtg/EZErdMXWZtI3KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125723},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"88dc9a2719d38d6817b1a5d75ef91f6a0a8cdb9d","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.8_1784472997572_0.020573567643771273","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@alminabrulic/deploykit","version":"1.1.9","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.9","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"0eb7b7a99d2621e9878caaae54d30fd1e93d3ea7","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.9.tgz","fileCount":4,"integrity":"sha512-sq0ndWaueiERjkZNKTW45Lr6pTEfhBf6cDFZLNtiVbzRoyc9XoiHwWExYHsTD1W/FRZigtGtnMjCLmDYMTVTDA==","signatures":[{"sig":"MEYCIQCncknabTmk2Z+dbPFNTePZbkydjXbe7/DS3+0QG+LScAIhAKofsprmTlKh2ltFk7tOauXKCPcvKg3F9GzHvYM1g4F/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125723},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"03f3a610b60d1da3a14a4fc2ed942041d805b3de","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.9_1784473708074_0.07293427782050466","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@alminabrulic/deploykit","version":"1.1.10","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.10","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"07e00ad0d60d8e3a0accccd991d4019488dd4509","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.10.tgz","fileCount":4,"integrity":"sha512-mRlxwhV8sODAbgjUvz2Gnaxm9U4fgJyQqHcSmTzjjvEKw8MXzPukbXgXRguZqTRAfXvURlrcltgiZFDq/PYHvw==","signatures":[{"sig":"MEUCIQCc1YQxGA0HBAG8m+6JP4Iw2eKvoBti00QD187I2i2WbAIgf3Tzgf+KwgD1bpgDOmZIfgp+8HDVf1z9LXCVumosSaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140913},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"4c0f8536c8ac38e219cc64ab97f2627679e15447","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.10_1784488514510_0.7602175528623409","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@alminabrulic/deploykit","version":"1.1.11","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.11","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"f432e0286928995809043607a85bd30e80b1c47b","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.11.tgz","fileCount":4,"integrity":"sha512-lMCSS+N9gnZ1wYAh/egxLeMNbW/UkLShwzbMLC70PbmZ3s9naUHspzvDJjt8ocfQzA/MnRRWkOLjJ81CCW0jqQ==","signatures":[{"sig":"MEQCIBeSbvh+YLI4iq5scrMeRQ36BACUnxUj4aJjGR0BGHuvAiBlUr58+dut9preA6eBB639/k3xyrjEMH0rANp0BkJBog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154286},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"3d7082e9aecc75d52d8d55e06e8d645d32928e09","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.11_1784501148892_0.41389312829520564","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@alminabrulic/deploykit","version":"1.1.12","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.12","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"f4ea49aa064e9341bfcdaf4704aadf3b264bec62","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.12.tgz","fileCount":4,"integrity":"sha512-LnlZLADbeR7iB9IixKLKN8CYu8CX2yANqsR5BIfaQ3b93gM2gBYSzToWzMMM4n2tGeAF7mc1C1N+YoVO53uD3Q==","signatures":[{"sig":"MEYCIQDNbZOH1PslE8IzGU+x5h6JXkGbFWKqU1zPBd8q0fl1BwIhANeMdYNtzZLJalm4kHbrFjZaXyEPxTNpQVFxvLA3g31h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154286},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"ddec0fc29bde5119e23a461fec1b9000631d05ef","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.12_1784503789412_0.6268084639458431","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@alminabrulic/deploykit","version":"1.1.13","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.13","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"7f7c27df18be8a2217640aad437f5a7926357a58","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.13.tgz","fileCount":4,"integrity":"sha512-JUIXlMF0cjBtNvBiOpUIdiA3/fKz/oAqkSjwXYsEnFQ4sxMesauRaeVYIgoY6tVKDBRi7Q2CQ2ZmB63aYRH4CA==","signatures":[{"sig":"MEUCIQCOOS8BrNvhFjZIthYVWPlVMGF1ntyyq/UZsp+A0uGxwQIgReqFDLEwXoOzgsI2Z/IPFvbpw1EWJQlk7jYdm+TgEm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154286},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"057b035472c73229bd0adb9f3842b9fbc69ba01a","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.13_1784578735501_0.14755952047591592","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@alminabrulic/deploykit","version":"1.1.14","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.14","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"ec5099dc6fcef7302cef9da84fde5d44c469169d","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.14.tgz","fileCount":4,"integrity":"sha512-Oh/JKVVcnHSazCKq/R6qqUcIARDVomUcUnViZw7slWIq6THXsPmPadIN6dJlWoe6D2pG9I+Xixi/7eOQif8FQw==","signatures":[{"sig":"MEQCIHFA7QB3TJA7feEEDNxmp9ogRTNE7QwareB0wiVwBhPqAiBRcQMOubG76BvvrYwChG9RgonH5O5rieLcifdMkwMn9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163361},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"fb2af4a2ac7ea0904a88b079ee5185d39011fcb7","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.14_1784658137197_0.7719004640369038","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@alminabrulic/deploykit","version":"1.1.15","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.15","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"9471105d275a099b0f31ea46bb9c6ed9a1cb0323","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.15.tgz","fileCount":4,"integrity":"sha512-oqgP4gSRj5tudOo6zCGR2fOQ3J6rlo8+3tenssLOAwrim0yeUN4x87nhgRRvPQzWALygLShHe4/RJcTkMCCKPA==","signatures":[{"sig":"MEUCIHY/ExFW+JpiFYRLsSa82YyaGV09hswrwCJjY51lxUFQAiEAs56AREpBrFIueq/HSgngME2ZAdn/PVbGYZ/whGCGpIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164163},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","engines":{"node":">=20"},"gitHead":"2643804e39777f6bf71ede1de405daf43e50b99e","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.15_1784665412303_0.369123025187168","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@alminabrulic/deploykit","version":"1.1.16","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.16","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"7222077deba89189c25a1e2e8a1a0d16bac6c527","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.16.tgz","fileCount":6,"integrity":"sha512-ozIExUFTZY+rQz1n1xJeO2gPNaZ1BI0kmLLT45lumjSFA4rRToFHnlEBdRLXzR6GCusm/OwqiZNrbxGTdOIPAw==","signatures":[{"sig":"MEQCIGYliVi8/DHL8AmucGgFXwcAnBtSbB5qlI1yaZwLApSXAiBntwvmkIRsQDuNz/SJcqNbAGJFrXdJC8820HZRlX+NQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180017},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","types":"./dist/config.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"./package.json":"./package.json"},"gitHead":"e5695e14fd6da84841abeb10d834ce719f0fdc28","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^5.5.0","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.16_1784673712009_0.5420729440828433","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@alminabrulic/deploykit","version":"1.1.17","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.17","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"c6f4c2cb5ac146bc471e213ffb4fec3d3c4e64c3","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.17.tgz","fileCount":6,"integrity":"sha512-7BKTYbWAHxNsK17DflhbhX8Yi7Onmy2knTtEp+R6IJUiP2EK8p8fCa7NsNb2GKmm5bBXezQmRahkcOYjms5r0w==","signatures":[{"sig":"MEUCIQC5kmln04KgPvmpdaGQM9bLKM6SiX+J9iJwjWzjnDmx7gIgDREJDDWaejACZIDtIokDx/X5S1NGxsVhjn+4NcHmozA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179859},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","types":"./dist/config.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"./package.json":"./package.json"},"gitHead":"31e40ba620cf56c597a7d902e2a60ae52176eb25","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.17_1784982117269_0.6994885650269014","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@alminabrulic/deploykit","version":"1.1.18","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","_id":"@alminabrulic/deploykit@1.1.18","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"bin":{"deploykit":"dist/index.js"},"dist":{"shasum":"ed6edd27e3472543eac225fe55c39bfab60ce49f","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.18.tgz","fileCount":6,"integrity":"sha512-5t+92ES+iLCZQBIqnuOUhNE4xvaKmSepA3bI/bWlSWeg7h6zX2bS1vUCM/jnZV0VqiHJzRkbmhcb9fjWkxULcw==","signatures":[{"sig":"MEUCIQDs+RRIwULzMTBasTHzlilRqNAzueQy6Hy120N5oxVyZAIgBIxWAga5LEgnZaqDZyLKm66dJbB8KATEeMk6ERpqQ4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185133},"pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"type":"module","types":"./dist/config.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"./package.json":"./package.json"},"gitHead":"d4ef4e6ebd71365d98b0c6773a7ab8dcea5aab80","scripts":{"dev":"tsx src/index.ts","knip":"knip","lint":"biome check","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","start":"node dist/index.js","format":"biome format --write","prepare":"lefthook install","lint:fix":"biome check --write","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"repository":{"url":"git+https://github.com/abrulic/deploykit.git","type":"git"},"_npmVersion":"10.8.2","description":"Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.4.5","picocolors":"^1.0.1","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.1","devDependencies":{"tsx":"^4.16.0","knip":"^6.27.0","tsup":"^8.1.0","vitest":"^2.1.9","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^20.14.0","@biomejs/biome":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/deploykit_1.1.18_1784991436729_0.502993950756973","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"@alminabrulic/deploykit","version":"1.1.19","publishConfig":{"access":"public"},"description":"Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","type":"module","bin":{"deploykit":"dist/index.js"},"types":"./dist/config.d.ts","exports":{".":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"./package.json":"./package.json"},"engines":{"node":">=20"},"packageManager":"pnpm@10.28.1","pnpm":{"onlyBuiltDependencies":["esbuild","lefthook"]},"scripts":{"build":"tsup && tsc -p tsconfig.dts.json","dev":"tsx src/index.ts","start":"node dist/index.js","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","lint":"biome check","lint:fix":"biome check --write","format":"biome format --write","knip":"knip","prepare":"lefthook install","prepublishOnly":"pnpm run build"},"keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"license":"BUSL-1.1","author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"repository":{"type":"git","url":"git+https://github.com/abrulic/deploykit.git"},"homepage":"https://github.com/abrulic/deploykit#readme","bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"dependencies":{"@clack/prompts":"^0.7.0","picocolors":"^1.0.1","yaml":"^2.4.5"},"devDependencies":{"@biomejs/biome":"2.5.4","@types/node":"^20.14.0","knip":"^6.27.0","lefthook":"^2.1.10","tsup":"^8.1.0","tsx":"^4.16.0","typescript":"^7.0.2","vitest":"^2.1.9"},"_id":"@alminabrulic/deploykit@1.1.19","gitHead":"be1c2ce55da4064b013f0187313b77ee4e22b96f","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-oL3v655jOZyF2Fd8VoOkneU94WuRu9vYlA40/Qn0vgp+0bMegh20fgQUeAucKRpCCQTZIpwRwtosZ/de0mJJaA==","shasum":"05bb079ad259bc8941cdacf87b322814581c7dc0","tarball":"https://registry.npmjs.org/@alminabrulic/deploykit/-/deploykit-1.1.19.tgz","fileCount":6,"unpackedSize":188077,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEvdTNi7/mauKdbePMVMVLOsvS48YxG/vVOp2J0zTCdhAiEAmPQE/Q7HKsqNpbCS+zy85y8A7W7zd9PQD2VyXErY3sI="}]},"_npmUser":{"name":"alminabrulic","email":"contact@alminabrulic.com"},"directories":{},"maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/deploykit_1.1.19_1785003462658_0.5162713937991741"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-17T17:58:26.673Z","modified":"2026-07-25T18:17:43.059Z","1.0.0":"2026-07-17T17:58:27.035Z","1.0.1":"2026-07-18T09:58:33.589Z","1.0.2":"2026-07-18T10:32:24.258Z","1.0.3":"2026-07-18T11:11:33.568Z","1.0.4":"2026-07-18T11:33:10.630Z","1.1.0":"2026-07-18T12:21:56.666Z","1.1.1":"2026-07-18T19:42:51.894Z","1.1.2":"2026-07-18T20:47:58.597Z","1.1.3":"2026-07-18T21:12:59.063Z","1.1.4":"2026-07-18T22:07:36.187Z","1.1.5":"2026-07-19T10:23:24.968Z","1.1.6":"2026-07-19T11:36:40.665Z","1.1.7":"2026-07-19T12:54:41.234Z","1.1.8":"2026-07-19T14:56:37.720Z","1.1.9":"2026-07-19T15:08:28.203Z","1.1.10":"2026-07-19T19:15:14.651Z","1.1.11":"2026-07-19T22:45:49.009Z","1.1.12":"2026-07-19T23:29:49.673Z","1.1.13":"2026-07-20T20:18:55.647Z","1.1.14":"2026-07-21T18:22:17.422Z","1.1.15":"2026-07-21T20:23:32.462Z","1.1.16":"2026-07-21T22:41:52.291Z","1.1.17":"2026-07-25T12:21:57.416Z","1.1.18":"2026-07-25T14:57:16.871Z","1.1.19":"2026-07-25T18:17:42.819Z"},"bugs":{"url":"https://github.com/abrulic/deploykit/issues"},"author":{"name":"Almina Brulic","email":"contact@alminabrulic.com"},"license":"BUSL-1.1","homepage":"https://github.com/abrulic/deploykit#readme","keywords":["ci","cd","monorepo","turborepo","fly","deployment"],"repository":{"type":"git","url":"git+https://github.com/abrulic/deploykit.git"},"description":"Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io — detect apps, generate Dockerfiles/workflows, wire up per-environment deploys.","maintainers":[{"name":"alminabrulic","email":"contact@alminabrulic.com"}],"readme":"<div align=\"center\">\n\n<img src=\"public/assets/images/deploykit-logo.png\" alt=\"deploykit\" width=\"180\" height=\"180\" />\n\n# deploykit\n\n**Automate CI/CD for Turbo & Nx monorepos deploying to Fly.io.**\n\nRun one command in your monorepo and get a reviewable PR that wires up PR previews, staging, and production — as files you own.\n\n[![npm version](https://img.shields.io/npm/v/@alminabrulic/deploykit?color=cb3837&logo=npm)](https://www.npmjs.com/package/@alminabrulic/deploykit)\n[![license: BUSL-1.1](https://img.shields.io/badge/license-BUSL--1.1-blue.svg)](LICENSE)\n[![node >= 20](https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white)](package.json)\n[![built with TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n\n</div>\n\n---\n\ndeploykit reads your workspace graph, figures out which apps are deployable, and generates the Dockerfiles, `fly.toml` files, and a GitHub Actions workflow — all landed as files you own and can edit. There is **no runtime, no backend, and no lock-in**: once the files are in your repo, deploykit is optional.\n\n- **PR preview environments** — every pull request gets its own deployed app, with the URL commented on the PR and torn down automatically when the PR closes.\n- **Staging** — deploys on merge to `main`.\n- **Production** — deploys behind a manual approval gate (GitHub Environment protection).\n\n## Contents\n\n- [Requirements](#requirements)\n- [Quick start](#quick-start)\n- [How it works](#how-it-works)\n- [Commands & flags](#commands--flags)\n- [What it generates](#what-it-generates)\n- [The config file](#the-config-file)\n- [Environments](#environments)\n- [Secrets & environment variables](#secrets--environment-variables)\n- [Health checks & automatic rollback](#health-checks--automatic-rollback)\n- [Rolling back a release](#rolling-back-a-release)\n- [Multiple regions](#multiple-regions)\n- [Custom domains (Cloudflare)](#custom-domains-cloudflare)\n- [Database migrations](#database-migrations)\n- [Provisioning & opening a PR](#provisioning--opening-a-pr)\n- [Framework & monorepo support](#framework--monorepo-support)\n- [Security & privacy](#security--privacy)\n- [Development](#development)\n- [License](#license)\n\n## Requirements\n\n| Need | For |\n|------|-----|\n| A **git repository** | deploykit opens a PR with the generated files. |\n| A **Turbo** (`turbo.json`) or **Nx** (`nx.json`) monorepo | The workspace deploykit reads and deploys. |\n| **Node.js ≥ 20** | Running the CLI. |\n| [`gh`](https://cli.github.com/) — authenticated | Only for `--pr` and `--provision` (opening the PR, setting Actions secrets). |\n| [`flyctl`](https://fly.io/docs/flyctl/install/) — authenticated | Only for `--provision` / `--deploy` and `deploykit rollback`. |\n| `CLOUDFLARE_API_TOKEN` | Only if you wire custom domains through Cloudflare. |\n\nDetection, planning, and file generation work with **none** of the CLIs signed in — you only need `gh`/`flyctl` when you opt into provisioning, a PR, or a deploy.\n\n## Quick start\n\n```bash\nnpx @alminabrulic/deploykit init\n```\n\nPrefer a global install (gives you the shorter `deploykit` command used throughout these docs)?\n\n```bash\nnpm i -g @alminabrulic/deploykit\ndeploykit init\n```\n\n`init` is interactive: it detects everything it can, asks a handful of questions (each pre-filled from detection), shows you the exact plan, and does nothing until you confirm.\n\n### Non-interactive\n\n```bash\n# Accept every detected default, print the plan, write nothing:\ndeploykit init --yes --org my-org --region iad --dry-run\n\n# Write the files for just preview + staging:\ndeploykit init --yes --org my-org --envs preview,staging\n\n# The full deal: provision Fly apps + secrets and open a PR:\ndeploykit init --yes --org my-org --region iad --provision --pr\n```\n\n## How it works\n\n`deploykit init` runs five phases, and **nothing is written or provisioned until you confirm the plan**:\n\n1. **Preflight** — verifies you're in a git repo with a Turbo or Nx monorepo, and checks whether `gh` / `flyctl` are available and authenticated.\n2. **Detect** — reads your package manager, workspace packages, each app's framework, ports, internal dependencies, Prisma schemas, and the env-var names it references.\n3. **Ask** — a few questions, each pre-filled from detection: which apps, which environments, Fly org and region(s).\n4. **Plan** — shows exactly which files will be written (new / unchanged / **overwrite** if you hand-edited one) and what will be provisioned.\n5. **Emit** — writes the files and, if you opted in, provisions Fly apps, sets GitHub secrets, opens a PR, and/or deploys staging.\n\n## Commands & flags\n\n```\ndeploykit init [options]      Detect the monorepo and set everything up\ndeploykit generate [options]  Regenerate Dockerfiles/workflow/fly.toml from\n                              deploykit.config.ts (overwrites them)\ndeploykit rollback [options]  Redeploy a prior image for one environment's Fly app\n```\n\n- **`init`** — the full detect → ask → plan → emit flow above. Run it once to set up, or again any time (it's re-runnable and never silently clobbers your edits).\n- **`generate`** — reads [`deploykit.config.ts`](#the-config-file) and re-emits every Dockerfile, `fly.toml`, and the workflow from it. Use it after you edit the config by hand. Regenerating is the point, so this **overwrites those files even if you've customized them** — it lists what it will overwrite and asks first (pass `--yes` to skip the prompt, or `--dry-run` to just see the list). The config file itself is never touched; it's the input.\n- **`rollback`** — see [Rolling back a release](#rolling-back-a-release).\n\n| Flag | Applies to | Description |\n|------|-----------|-------------|\n| `-y`, `--yes` | init, generate | Accept detected defaults, no prompts. |\n| `--org <slug>` | init | Fly organization slug. |\n| `--region <list>` | init | Fly region(s), comma-separated. The first is the **primary**; any others are extra [stateless regions](#multiple-regions) (e.g. `iad,lhr,fra`). Default: `iad`. |\n| `--envs <list>` | init | Environments to configure: `preview,staging,production` (default: all). |\n| `--dry-run` | init, generate | Detect and print the plan, but write nothing. |\n| `--provision` | init | Create Fly apps, set the `FLY_API_TOKEN` secret, and create GitHub environments (each step confirmed). Forces provisioning in `--yes` mode; interactive runs offer it inline. |\n| `--deploy` | init | Deploy the staging app(s) to Fly at the end of the run. |\n| `--pr` | init | Commit the generated files on a branch and open a PR. |\n| `--force` | init | Overwrite existing generated files instead of skipping them. (`generate` always overwrites.) |\n| `--cwd <dir>` | all | Run against a different directory. |\n| `--app <name>` | rollback | App to roll back (defaults to the sole app). |\n| `--env <kind>` | rollback | Environment: `staging` or `production`. |\n| `--to <version>` | rollback | Release version to redeploy (non-interactive). |\n| `-h`, `--help` | — | Show help. |\n| `-v`, `--version` | — | Show version. |\n\n## What it generates\n\n```\ndeploykit.config.ts             source of truth — every other file regenerates from this\n.dockerignore                   repo-root; keeps secrets & junk out of the build context\n.github/workflows/deploy.yml    changes → preview / teardown / staging / production jobs\napps/<app>/Dockerfile           multi-stage, turbo-prune (or nx build) based\napps/<app>/fly.toml             per-app Fly config with a health check\nDEPLOYMENTS.md                  the map: every URL, plus deep links into Fly /\n                                Cloudflare / GitHub — see below\n```\n\n`DEPLOYMENTS.md` is written for the teammate who didn't run `deploykit init`: a table of every app environment (URL, Fly app, what deploys it), a mermaid diagram of the pipeline, and a link straight to each Fly app's logs, Cloudflare's DNS page for your zone, and the GitHub environments/secrets screens — so nothing has to be hunted down console by console. It lists secret **names** and where they're wired, never values, which is why it's a committed file rather than a gitignored one. See [`examples/DEPLOYMENTS.md`](examples/DEPLOYMENTS.md) for a real one.\n\n> **See it for real:** the [`examples/`](examples/) directory contains the **actual, byte-for-byte output** deploykit produces for a two-app Turbo monorepo (a React Router SSR `web` app with Prisma + a custom domain + multi-region, and a static Astro `marketing` app). Every file there is generated from a single [`examples/deploykit.config.ts`](examples/deploykit.config.ts).\n\nEvery file carries a `# Generated by deploykit` header and is **yours to edit and commit**. Re-running `init` skips files you've changed unless you pass `--force`, so a hand-edited Dockerfile is never overwritten by surprise. `generate` is the deliberate exception — it re-emits everything from the config, so it overwrites your edits (after showing you the list and asking).\n\n## The config file\n\n`deploykit.config.ts` is the single source of truth. It's a typed TypeScript file, but its payload is a plain object literal so `deploykit generate` can read it back — as data, without ever executing your config — and regenerate everything. Edit it, then run `deploykit generate`.\n\n```ts\nimport { defineConfig } from \"@alminabrulic/deploykit\";\n\nexport default defineConfig({\n  \"tool\": \"turbo\",\n  \"packageManager\": \"pnpm\",\n  \"nodeVersion\": \"20\",\n  \"namePrefix\": \"acme\",              // prefixes every global Fly app name → acme-web-staging\n  \"provider\": {\n    \"type\": \"fly\",\n    \"org\": \"acme\",\n    \"region\": \"iad\",\n    \"regions\": [\"iad\", \"lhr\"]        // extra stateless regions (optional)\n  },\n  \"apps\": {\n    \"web\": {\n      \"root\": \"apps/web\",\n      \"packageName\": \"@acme/web\",\n      \"framework\": \"react-router\",\n      \"serve\": \"server\",\n      \"port\": 3000,\n      \"healthCheckPath\": \"/\",\n      \"vm\": { \"memory\": \"512mb\" },       // asked at init; edit to resize the VM\n      \"internalDeps\": [\"@acme/ui\", \"@acme/database\"],\n      \"secrets\": [\"DATABASE_URL\", \"SESSION_SECRET\"],   // runtime env vars\n      \"buildEnv\": [\"VITE_API_URL\"],                    // baked in at build time\n      \"environments\": {\n        \"preview\":    { \"name\": \"web-pr-{pr}\", \"trigger\": \"pr\" },\n        \"staging\":    { \"name\": \"web-staging\", \"trigger\": \"push:main\" },\n        \"production\": { \"name\": \"web-prod\", \"trigger\": \"manual\", \"hostname\": \"shop.example.com\" }\n      }\n    }\n    // ... more apps\n  }\n});\n```\n\nThe full file — including the Prisma target, the `marketing` app, and the Cloudflare block — is at [`examples/deploykit.config.ts`](examples/deploykit.config.ts).\n\nThe one rule is that every value must be **literal data**: strings, numbers, booleans, arrays, objects. Variables, imports, spreads and template placeholders are rejected (with the offending line) rather than guessed at. Everything else is fair game — quoted or bare keys, single or double quotes, `//` and `/* */` comments, trailing commas — so running Prettier, Biome, or your editor's formatter over the file is safe.\n\n## Environments\n\ndeploykit models three environments; you choose which with `--envs`.\n\n| Environment | Trigger | Fly app name | Lifecycle |\n|-------------|---------|-------------|-----------|\n| **preview** | every pull request | `…-<app>-pr-<number>` | Created/updated on each push; **URL commented on the PR** (one comment, updated in place); **destroyed when the PR closes**. Single machine, single region. |\n| **staging** | push to `main` | `…-<app>-staging` | Deployed automatically. Uses the GitHub `staging` environment. |\n| **production** | manual (`workflow_dispatch`) | `…-<app>-prod` | Deployed only when you dispatch the workflow; gated by the GitHub `production` environment (add required reviewers there for an approval gate). Runs HA (two machines). |\n\nOnly the apps whose files actually changed get deployed on a given run — the workflow's `changes` job uses [`dorny/paths-filter`](https://github.com/dorny/paths-filter) against each app's own directory plus its internal dependencies' directories.\n\nThe generated workflow: [`examples/.github/workflows/deploy.yml`](examples/.github/workflows/deploy.yml).\n\n## Secrets & environment variables\n\ndeploykit detects the env-var **names** your apps reference (never values) and wires them through GitHub Actions secrets. It distinguishes two kinds:\n\n- **Runtime secrets** (`secrets`) — set on the Fly app via `flyctl secrets set` at deploy time (e.g. `DATABASE_URL`, `SESSION_SECRET`). Read by the running process.\n- **Build-time vars** (`buildEnv`) — baked into the bundle during `docker build` via `--build-arg` + Dockerfile `ARG`/`ENV`. These are client-exposed prefixes (`NEXT_PUBLIC_`, `VITE_`, …) and every var of a static app (which has no runtime to read env from).\n\nYou add the values once as **repository secrets** in GitHub (`Settings → Secrets and variables → Actions`); the workflow references them by name. Values containing quotes or `$` are passed through shell variables, never interpolated into the script — so they can't break or inject into the deploy step.\n\n## Health checks & automatic rollback\n\nEvery generated `fly.toml` includes an HTTP health check:\n\n```toml\n[[http_service.checks]]\n  method = \"GET\"\n  path = \"/\"\n  interval = \"15s\"\n  timeout = \"5s\"\n  grace_period = \"10s\"\n```\n\nFly waits for this check to pass before shifting traffic to a new release, and **keeps the old machines running if it fails** — so a bad deploy rolls itself back. If your app's `/` returns a 404 (e.g. an API with no root route), set `healthCheckPath` for that app in `deploykit.config.ts` to a lightweight endpoint like `/health`, or the deploy would wedge.\n\n## VM sizing, concurrency & build cache\n\ndeploykit shapes these per app from the workload rather than hardcoding one size for everything:\n\n- **VM memory** — because memory maps directly to cost and to whether an app OOMs, `deploykit init` **asks per app**, pre-filled with a workload-aware suggestion (static `256mb`, Next SSR `1024mb` — Next commonly OOMs at 512mb — other servers `512mb`). Hit Enter to accept, or type another value like `2gb`. Your choice is recorded in the config, so regeneration never resizes the VM under you. `--yes` takes the suggestion for every app; CPU stays `shared-cpu-1x`.\n- **Concurrency** — the thresholds at which Fly load-balances to and cold-starts another machine. Fly's own default is a low `20/25`; deploykit emits a workload-aware `[http_service.concurrency]` instead — servers cap by `requests` (SSR is CPU-bound), static apps by `connections` (cheap to serve many).\n- **Build cache** — every generated Dockerfile mounts a per-manager BuildKit cache on the install layer (`RUN --mount=type=cache …`), so re-installs reuse already-downloaded packages across builds. The `# syntax=docker/dockerfile:1` directive that enables it is always emitted; without BuildKit the mount is ignored, not an error.\n\nThese are starting points — the right numbers come from real traffic. Override memory, CPU or concurrency per app in `deploykit.config.ts` (regeneration keeps your values):\n\n```ts\n\"web\": {\n  // …\n  \"vm\": { \"size\": \"shared-cpu-2x\", \"memory\": \"2048mb\" },\n  \"concurrency\": { \"type\": \"requests\", \"softLimit\": 300, \"hardLimit\": 400 }\n}\n```\n\n## Rolling back a release\n\nWhen a release deployed cleanly but turned out bad, redeploy a previous image:\n\n```bash\ndeploykit rollback --app web --env production\n```\n\nIt lists that environment's Fly releases, lets you pick one, shows the exact `flyctl deploy --image …` it will run, and asks before doing it. Script it with `--to <version> --yes`:\n\n```bash\ndeploykit rollback --app web --env production --to 41 --yes\n```\n\n> ⚠️ This rolls back the **app image only** — it does **not** undo database migrations. An older image may not run against a schema a newer release migrated, so prefer additive (expand/contract) migrations.\n\n## Multiple regions\n\nPass more than one region and the extras become **stateless** regions the app is scaled into after each staging/production deploy (previews stay single-region):\n\n```bash\ndeploykit init --region iad,lhr,fra      # primary iad, plus lhr and fra\n```\n\nYou can also set `regions` under `provider` in `deploykit.config.ts`. Each extra region gets one machine via `flyctl scale count 1 --region <r>` after the deploy (best-effort — a transient scale failure warns but doesn't fail an already-successful deploy).\n\n> This is for **stateless** apps. deploykit does not model database locality, so a far-region machine still talks to whatever single-region `DATABASE_URL` you set — expect high write latency. Read replicas / `fly-replay` are out of scope.\n\n## Custom domains (Cloudflare)\n\nSet a `hostname` on a staging/production environment and add a `cloudflare` block to the config, and deploykit issues a Fly certificate and wires the Cloudflare DNS records for you (previews stay on `*.fly.dev`). The Cloudflare block controls proxying, SSL mode, minimum TLS, an \"Always Use HTTPS\" edge redirect, a security baseline, and static-asset cache rules:\n\n```ts\n\"cloudflare\": {\n  \"zone\": \"example.com\",\n  \"proxied\": true,\n  \"ssl\": \"strict\",\n  \"alwaysUseHttps\": true,\n  \"minTlsVersion\": \"1.2\",\n  \"security\": true,\n  \"cache\": true\n}\n```\n\nThis is entirely optional — omit it and deploykit leaves DNS alone. The Cloudflare token stays in the git-ignored `.deploykit/credentials` file (mode `0600`) or the `CLOUDFLARE_API_TOKEN` env var, and is never committed.\n\n## Database migrations\n\ndeploykit does **not** run migrations — a bad one causes irreversible data loss, and owning that is out of scope. Instead, when it detects a Prisma schema in an app it writes a **commented-out** hook into that app's `fly.toml`:\n\n```toml\n# [deploy]\n#   release_command = \"(cd packages/database && npx prisma migrate deploy --schema ./prisma/schema.prisma)\"\n```\n\n`[deploy].release_command` is Fly's idiomatic migration hook: it runs once per release, before new machines take traffic. Uncomment it only against a database you own, and make sure the Prisma CLI and schema are present in your runtime image. Note that `deploykit rollback` reverts the **image only** — it does not undo a migration this hook applied, so prefer additive (expand/contract) migrations. Using another tool (Drizzle, Knex, …)? Uncomment and swap the command for its migrate step.\n\n## Build-time codegen (Prisma & anything else)\n\nSome apps need a codegen step between install and build — a Prisma/Drizzle client, GraphQL or protobuf types. deploykit models this as a generic list of **`buildSteps`**, run in the build stage after install and before the framework build. Nothing is hardcoded to one tool:\n\n```ts\n\"buildSteps\": [\n  { \"run\": \"pnpm exec drizzle-kit generate\", \"workdir\": \"packages/db\" },\n  { \"run\": \"pnpm codegen\" }\n]\n```\n\n**Prisma is just the auto-detected default.** When deploykit finds a Prisma schema it fills in the right step for you — `prisma generate` for every Prisma package in the app's dependency closure (it isn't generated on install under pnpm 10 / Prisma 7, so it has to run before the build). It's recorded under `prisma` in your config; detected targets render first, then your own `buildSteps`. Nothing forces Prisma — remove the `prisma` block to opt out, or add your own steps for a different stack. deploykit itself pulls in **no** database or ORM dependency; these are just commands it writes into the Dockerfile.\n\n## Provisioning & opening a PR\n\nBy default `init` only writes files. Opt into the side effects:\n\n- **`--provision`** — for each environment's app: `flyctl apps create` (if missing), set the `FLY_API_TOKEN` repository secret, and create the GitHub `staging`/`production` environments. Each step is confirmed; in interactive mode it's offered inline.\n- **`--pr`** — commit the generated files on a `deploykit/setup` branch and open a pull request. Re-runnable: it reuses the branch and an existing open PR, and skips committing when nothing changed.\n- **`--deploy`** — after generating (and provisioning), deploy the staging app(s) to Fly directly, so you can see it live without waiting for a merge.\n\n## Framework & monorepo support\n\n**Monorepo tools**\n\n- **Turbo** — full support via `turbo prune` multi-stage Docker builds.\n- **Nx** — supported via `nx build` + `dist/<projectRoot>` output. Node-server and static (Vite/Astro) apps are solid; Next/SSR Dockerfiles follow Nx conventions but are worth a glance before your first deploy.\n\n**App types** — the runner is chosen per app from a `serve` model, not hardcoded per framework:\n\n- **Server** apps (Next, Remix, React Router, Astro-node, or any `node-server`) run their long-running process. The CMD is package-manager-free so it works in the slim runtime image. Generic server apps (everything but Next's standalone output) copy the built workspace into the runner, so the build stage runs a `prune --prod` first — the toolchain (vite, typescript, …) is dropped and only production dependencies ship. pnpm and npm prune in place (preserving the generated Prisma client); yarn/bun keep the full copy.\n- **Static** apps (Vite, Astro static, plain static) are served with `serve` (SPA history fallback available via `spa`).\n\n**Deploy target** — Fly.io.\n\n**Not in scope (v1)** — deploykit provisions **no database** (it detects Prisma and writes the opt-in, commented migration hook above; the database itself is yours to create and own), and does not model stateful multi-region.\n\n## Security & privacy\n\ndeploykit is a **local CLI with no backend** — it never sends your credentials anywhere except directly to GitHub, Fly, and Cloudflare to do the work you ask for, and it collects **no telemetry**.\n\n- **GitHub** sign-in uses the OAuth device flow; the token is stored by the official `gh` CLI (your OS keychain or `~/.config/gh/hosts.yml`) — deploykit keeps no copy.\n- **Fly** is handled by `flyctl`; the CI deploy token is written only as your repo's `FLY_API_TOKEN` GitHub Actions secret.\n- **Cloudflare** tokens (optional) stay in the git-ignored `.deploykit/credentials` file (mode `0600`) or an env var — never committed.\n\nYou can verify all of this: the code is source-available (see [`src/auth.ts`](src/auth.ts) and [`src/secrets-file.ts`](src/secrets-file.ts)), and releases ship with npm provenance. Full details, exactly what each provider accesses, and revocation steps are in **[SECURITY.md](SECURITY.md)**.\n\nTo report a vulnerability, please use [GitHub's private vulnerability reporting](https://github.com/abrulic/deploykit/security/advisories/new) rather than a public issue.\n\n## Development\n\n```bash\npnpm install\npnpm dev init --dry-run       # run the CLI from source (tsx)\npnpm build                    # bundle to dist/ (tsup) + emit config.d.ts (tsc)\npnpm test                     # vitest\npnpm typecheck                # tsc --noEmit\npnpm lint                     # biome check\n```\n\nThe generated config is the source of truth: every Dockerfile, `fly.toml`, and workflow is regenerable from `deploykit.config.ts`. When you change generation logic, add a Vitest test covering the output (generated shell/YAML must stay safe against injection from repo-derived values). See [REVIEW.md](REVIEW.md) for the review guidelines.\n\n## License\n\ndeploykit is **source-available** under the [Business Source License 1.1](LICENSE) (`BUSL-1.1`).\n\n- ✅ Free to read, modify, self-host, and use for **non-production** and **non-commercial production** purposes.\n- 💳 Using deploykit in production **for a commercial purpose** (building, deploying, or operating software that is sold or offered as a paid service) requires a **commercial license** — [get in touch](mailto:contact@alminabrulic.com).\n- 🔓 Each released version automatically converts to the **Apache License 2.0** four years after its release (its Change Date).\n\nSee [LICENSE](LICENSE) for the full terms.\n","readmeFilename":"README.md"}