{"_id":"@airdraft/cloud","_rev":"24-78cc810da7a1ebf85c12d664393a5099","name":"@airdraft/cloud","dist-tags":{"latest":"0.1.25"},"versions":{"0.1.0":{"name":"@airdraft/cloud","version":"0.1.0","license":"MIT","_id":"@airdraft/cloud@0.1.0","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"fdc57b5882ddfeec11222cf721977ce1f0c9bc85","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.0.tgz","fileCount":58,"integrity":"sha512-8hQJ/FlNXLenkeTl6gJMNk4yLkGTl9SAtB39DiBOm5uUHfgq41df27h9rUo5oXKT/RkI1MjVTqJP/S5PaR6aBw==","signatures":[{"sig":"MEUCIQDE0F8ndVQqSwwuEA5ofmTRDNFRvz3gPzKfGVuzRqXFnwIgF7lpVoKUOyrEdphtGcHTnURghzhs8vh3UcAwne6ZUwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141876},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d6c85dfed37f11c42151c93b49a80ede90699616","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.0_1779387926843_0.9354901162797353","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@airdraft/cloud","version":"0.1.1","license":"MIT","_id":"@airdraft/cloud@0.1.1","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"b936845ff11cc46d2dd114874919d24393e20284","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.1.tgz","fileCount":58,"integrity":"sha512-dLOg5e1sxFrHfWmBFaMwPznaXW4spVAbpobj3o95Z2oTiswtByGli3CTwU8KFUSbdSsfBTPFspK2qNkSWuk9lA==","signatures":[{"sig":"MEYCIQCPy8BUZJMfchxpagDK6IlBp2/3bOiw+3pkji9/OgERvAIhAOi0JwJzPF0s5Rb6QzqD4GoQnidXwQ902QfTKbHTxY6P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147171},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d622b73f447d10060444b636bdf87357f1018907","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.1_1779438599762_0.04965777630528789","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@airdraft/cloud","version":"0.1.3","license":"MIT","_id":"@airdraft/cloud@0.1.3","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"17d1f606ae42474b8a09cbb41b1ff39fca947a00","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.3.tgz","fileCount":58,"integrity":"sha512-kVU5rVPRaI6atPRzYXOT4DbBu21BzfGACBaygfpxpH93dM2I7Ldmgcj7Qei4T5guZubCFz6KutaHZ0s8ljGtaA==","signatures":[{"sig":"MEQCIBX8homUysi76EEsYGzdfaADH8KIA8bmEMcekNsJK5wlAiBbUiYt61bEPBYFuHEmYk5kWgdp9LIaWmUqYEAvn0m+HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147869},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e6be9169d9565aee9ac79604348c40f02f248094","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.3_1779440566111_0.6558427136146985","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@airdraft/cloud","version":"0.1.5","license":"MIT","_id":"@airdraft/cloud@0.1.5","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"2d5932144e1556f50fc484a49ec7e729439b1588","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.5.tgz","fileCount":58,"integrity":"sha512-uy15+QIUsGYfy/wO12BAbh0U8JlaSs0Ce7MtJxyVxdTh+jyu4gLLpBXCOy8/up9vEEh6vvRJ8FWI+htJZ7VRBQ==","signatures":[{"sig":"MEUCIQDySzdporAWbDtc+KyH94x5jXjtDNn5+N0rtikyUJCDFwIgKxaMmheazXSBQbb+fg/Xo4/Ndd0X1iiD5TBUqhYEf58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153812},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3664603898fe6d3638bc9968054cbb5f8d9c8491","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.5_1779446727375_0.7863152965606981","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@airdraft/cloud","version":"0.1.6","license":"MIT","_id":"@airdraft/cloud@0.1.6","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"433893919514eb9fd3642f474f0a96887e38d624","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.6.tgz","fileCount":58,"integrity":"sha512-NToRRDNSBK/BcAv2ahC743enwIWcq+iJHOWMxqFq/giQKaKdmxTR5lDGAZcnZ/L3i3H/TeuQIBnuVuH7yP3moQ==","signatures":[{"sig":"MEYCIQCkYzJnocDj5FePCvsRSYmsgltcmXxUutrMoe5G5xuOwAIhAJQODZdFbwnt+8zE2NjcNsXFJyKHkE4NNNKXUlJGyqDh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155519},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"277e16b37c997996b49d90ec64fa3f5c023f4d0a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.6_1779521522665_0.33037251398787526","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@airdraft/cloud","version":"0.1.7","license":"MIT","_id":"@airdraft/cloud@0.1.7","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"3a07db4671ad812f23ba48558fb4810d68f876f9","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.7.tgz","fileCount":58,"integrity":"sha512-NNnLY9psUEae/hCn3RvqcToxs90d5F4tGu9IxRpJPvrqdDCO2xcYWMq4pBClwg+fzzHR0X+TjdAEyGP8ovlPaA==","signatures":[{"sig":"MEUCIQCuqafEXXu2+o8+gMMkDit2JrB0B04tlTImLqHvAO0/tAIgWw/TJTVjnABsz/esJnul9lYLT+IxFetpOMefyhsTGdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156853},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d692f6e9c48b0c7886d404b7bbc9f1b0a79ca7b","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.7_1779557371955_0.6089846136158599","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@airdraft/cloud","version":"0.1.8","license":"MIT","_id":"@airdraft/cloud@0.1.8","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"004ce0cacfb3c695b1f201d35e78e04bc25e058b","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.8.tgz","fileCount":58,"integrity":"sha512-nz5FPl4iHerxo02DHlZQKD0md4XpuXVzQbjVxId6i/WSwKwTKBabyN1nKbul0fm3QMO03cj0sZMsp3emn3EB0Q==","signatures":[{"sig":"MEYCIQD35z8pZAcHMCuVvCmN66DFYdV1zhPdJ4L5cXMQ0RfGIQIhAM4xqLpQdn9lQ0PLoi0ggVBKJhtXRZv3XBmCuEAeAMLW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157648},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"88185ba7e7a5ed54561a09a53f6d13367587bbfb","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.8_1779564374368_0.010732275228929833","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@airdraft/cloud","version":"0.1.9","license":"MIT","_id":"@airdraft/cloud@0.1.9","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"662606b4b672f355277fc517fe588ae1c80986f7","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.9.tgz","fileCount":58,"integrity":"sha512-zsysL2HGY+Hlpm3Ek36/mCFbEcboJXswukrF401Eco/5cg0KhVB5S9q91iNM2BhaMTYZwVX1pCXZ3x/VAxv0gQ==","signatures":[{"sig":"MEUCIQCn8bfF+mqXiSa5pM8YOIqu7s9i+nN+uogRnSJ3Ua7IqQIgQ9S/7Mr4WHTK0ywQ90xOa7SXU4rNzf1eNpuo8vn1BmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158320},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"829aab190f831c8d252be75e35c26b42715babe2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.9_1779570845751_0.6371344529182317","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@airdraft/cloud","version":"0.1.10","license":"MIT","_id":"@airdraft/cloud@0.1.10","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"38009da13e5c0c69e6437729b0f883a5af5de4d9","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.10.tgz","fileCount":58,"integrity":"sha512-oQWr/r38iHr+tb/QrlQpcM8OYnWCN9Y6DWzudIQkn6vCIP3JzI00wfMl8/xlN+0C/O5EkxZxvFR9rZS/GQnMwg==","signatures":[{"sig":"MEUCIQC9GE1dDjz5Dx/DH1Ay3fgg02eLP9V7vau8i0dJQpZ0swIgUtVNGUjeaTuo+pg2BZEHVK++hGZVO06m4hbbtDhY8do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c9931ce9ad5a297c92130086240cf7afbbc40974","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.10_1779777158472_0.32690085270997016","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@airdraft/cloud","version":"0.1.11","license":"MIT","_id":"@airdraft/cloud@0.1.11","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"c2c0134c2e936fbcfd4fc7fadf29a56c88146efd","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.11.tgz","fileCount":58,"integrity":"sha512-hwElK3FHZtVFAgXwaeoIP3BDGVd7FoW4lMNn/0eYJuOEb1L9Iaixi6V+rE5sMJujW5uMBdtHCNCj1Nn1bcUr1Q==","signatures":[{"sig":"MEUCIBg97ojaV6sy2J9aMpqnBD+kzdm1SA7EuX7q/NioEEE1AiEA03z7AbqoxO8mOOcx6ldN7Uf7kZ8EXfk6o5cGlX87828=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169828},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1862697e3906368f48694a827bf38127fab68e10","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.11_1779781315498_0.07335472070654547","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@airdraft/cloud","version":"0.1.12","license":"MIT","_id":"@airdraft/cloud@0.1.12","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"5721a2a2090be343c908d2145560cc92c21d3e4a","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.12.tgz","fileCount":58,"integrity":"sha512-/Bl3Ezb9CPI/Ejvdoyer/IKt/qzOwfuG8FV45eWG2AD3qVviW5i7tw/WrfYegD5GRtShtxBkdJh+pOeuBOnKpQ==","signatures":[{"sig":"MEUCIQD5z7Nyfb6Jae3rooO5bwoSF5zjv5sDr8ECuqL0JncFPwIgOSvfsWE/uCq1MlDGLAQDBi6yaV6lFSqsfw3U5YDnFaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184147},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dab72d1be509e9dc69f496c5876f948dbed28994","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.12_1779886240936_0.02698407576008144","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@airdraft/cloud","version":"0.1.13","license":"MIT","_id":"@airdraft/cloud@0.1.13","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"15dae576b26b9e27ba47dbb7ac75553bc5563c16","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.13.tgz","fileCount":58,"integrity":"sha512-GEiGZOrenCUNZyyYvJ6IVIJEM5pSJztYgBIrbNpTwGMXA4gXPY+Gke1jM8xznSQ/1qVhLWxlaP/lCH72M8z3lw==","signatures":[{"sig":"MEUCIFh5ytDM+OlWmkqTQBFETGv6cN/odPnqVgG1FZ40VCVAAiEAtg2DBEmh8LBRNty/spknGz6zMyrrHJPuu7poCbJomSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185239},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8c9d4744b92db08fa725d40bc50f9ef0f1392e59","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.13_1780221048761_0.041561729014183646","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@airdraft/cloud","version":"0.1.14","license":"MIT","_id":"@airdraft/cloud@0.1.14","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"f4c196ef2c1270abfda4f98b84aae3b3211a1bb5","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.14.tgz","fileCount":58,"integrity":"sha512-aVzsm/16k6i2/2jbn5r8JaAHGE6vWWiEyItgelDtSPmSYPvfbgHSmH35AVbPSRfsBM2arwmSdsDP6Anco6YE5g==","signatures":[{"sig":"MEYCIQDVFt+aPCljGd96bnZ+Ra4xUrfM9DAwvIjgtYG5jUwbjwIhAOrb4MFtsAs26CNdNl8fuxSTuZ76WOxkUp6djcXfWh72","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192119},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"487fa21cb4354fe9f328783fc337269784e1262c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.14_1780295148116_0.4922361782716702","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@airdraft/cloud","version":"0.1.15","license":"MIT","_id":"@airdraft/cloud@0.1.15","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"f2da4ed4796d8fdacca275547a812fd3ed09531e","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.15.tgz","fileCount":58,"integrity":"sha512-0oFj9AQfR8b9t2TmuOuFRQVmyF4YlqwhqEh5c9gBYLniGbr5UDDnAthPmRs0O2ype5yFn8Ne0+EJ+Pz6Hr/ojQ==","signatures":[{"sig":"MEYCIQDRO1Dl4ies9BydV7sE9JLFYbfDaV2MtAA5bOI2Oxa2AgIhAOZ/QW/W4lntvxwUfMZJ0QM0HuX0eRQERWA1D5w7H8UG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4d70e482082fc1a95cf93353d663ad714c800256","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.15_1780310435913_0.8818037760115034","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@airdraft/cloud","version":"0.1.16","license":"MIT","_id":"@airdraft/cloud@0.1.16","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"353f23e90e13dedd10ba4e936253620c6b5ebc6b","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.16.tgz","fileCount":58,"integrity":"sha512-4TJFTu8B0IBDph5TnKcO8nL9UilKUsu1fARpCF9AJtIAV5sw1/Dd3HqsWL+pDVbE40P/kabqqWQ8lfjKFehRfQ==","signatures":[{"sig":"MEQCIGZWhclL3P1ykBRSDgoIYJv8r6PFrycz2dNWNxmrxBLnAiABDmbCOH/x1vQUPKEgEXFuR5v3kKboEQvIVJxWr5NHZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207354},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"95d9703b927c5f963958a3dcea3abf8e7cb22168","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"*","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.16_1782363240973_0.5734647862591735","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@airdraft/cloud","version":"0.1.17","license":"MIT","_id":"@airdraft/cloud@0.1.17","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"8ebdfa110328ca99c5c7386b213f0e3f88f1d480","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.17.tgz","fileCount":59,"integrity":"sha512-bStb2KvECJTTMmjyj/UHEOWlfcruRIeNSywIO+83+Bef7Cx0iNuvPf/QkdZbYrfYbN+oPztxRM+rJKFKhg903w==","signatures":[{"sig":"MEQCIEMPZRtR2+j2wzkX4gFfbLaNtncrlaJnmQUAeUUQZOERAiAynfdl8rERp6KB/UtRRU1RpfSW/tnIDPiG6dNxmKgQBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217563},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"783247fb1ef10d1101f9237fdb2d80522ff4f938","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.19","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.17_1782364719056_0.5308863297921367","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@airdraft/cloud","version":"0.1.18","license":"MIT","_id":"@airdraft/cloud@0.1.18","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"a74f6f5872ab3e54a6ca7709ae006f4208b2749d","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.18.tgz","fileCount":59,"integrity":"sha512-wIvU/G+etFz2ulplxfuClVHxyekS4s5PCofe5HJAbMpQ+734/yGL6+3xbl5B75TXI6XCN3G6GHESe5pbA1Pe1g==","signatures":[{"sig":"MEYCIQCpqYnojTA8HjNGZXoNe7YhrpyXmdCeVzvpwfgFAkX7cwIhAI1cXwfiYQPyyvZ+kNuCaTnfqd9oPEheKKQ4END6NWxV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218386},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9fdb3e0fbca1e58bb84aca8dd92155d0057ca4b1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.19","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.18_1782407217099_0.4332349372930555","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@airdraft/cloud","version":"0.1.19","license":"MIT","_id":"@airdraft/cloud@0.1.19","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"99d24fa1f1772ae13d0eb04bdc0c8cff5b5c098d","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.19.tgz","fileCount":59,"integrity":"sha512-RyOnJgNIBmJ0kdr20L/H0Lcb/J3CI1V0Lu3Ap2JTU7od5bti0UGT8OeVXsjaaQNLck1nZcaJ3cmxuXUSVsWB2Q==","signatures":[{"sig":"MEYCIQDQhAJVJKjMOhW27gyTLk2460JVByUpo9daFbdbaEn3xgIhAOTpLiUevbPUAJK35EHs5xjfb4NfqdlHkIXhLcRwwNay","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAySMw0Gn4dhYFZfnx0fIHuGIUDTv9goHWrTwtQ/BYo1AiEAwGtGifPVpSVAXJB5rLOTIOSh1vr9eiUUmIBgkDrxUTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234044},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6616eb58b725c8104eb5c121c8b4fbfa2bfbdfea","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.19","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.19_1789345068636_0.20363193982365524","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@airdraft/cloud","version":"0.1.20","license":"MIT","_id":"@airdraft/cloud@0.1.20","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"319d465ff72bea955928b2dafe71b3b2270fa5be","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.20.tgz","fileCount":59,"integrity":"sha512-plxFcPIrtSibiQWayQhVK5k04X+bCTJtw5qQKGwvcVn4YbXm+3C1FLe6/YxH3AaqnnacJ1e+mBlHJpOBAZtPDQ==","signatures":[{"sig":"MEYCIQDDMmnTTHOu7fXnl7MIXKhcwFyRR/pdECE5FnUJggY4fAIhAKYSzn8uMQ9SGf1VdAn4OcKbYCHptwMEpdbg7LvzdEfl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCb0r1hvSWBd7lB8Wa21+ns0OJ943QuelMxmmU01at0zQIgeuCkd3sQf7ZqCwnfM8zz2vvIX1VX8Qqu47TQfUU/TJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235160},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ef106909f8a04ac250067d415bc7a87ede89b917","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.24","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.20_1789368055636_0.2389203559925337","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@airdraft/cloud","version":"0.1.21","license":"MIT","_id":"@airdraft/cloud@0.1.21","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"3d0f179b5fcea160c9a457937b1abbb10f44783f","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.21.tgz","fileCount":59,"integrity":"sha512-U09YLdX6snuaIj/nUSYAY/iSOIAKKTghMmLshSeEn+z7w91hbBO/pIg2Ryg308o0A23zt/hBMl8/K6DnFXAcpw==","signatures":[{"sig":"MEYCIQDvcJHYhigJ/BZKN5mzwXcFKTjf8x8MlINIHJDY4e56bwIhAIGTGS8HlmoNUW8U5ZRDky260Nezs9rA/bBNpTihFt9N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCUCXnWedpdtllUe/QGot/Ml33W6ZC1lq8+KkBGO9Vo4wIhANLq4ws3FmFuUrTBrpmBql9ZAf0rDf/38GR5qm3xkcI6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236163},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ef106909f8a04ac250067d415bc7a87ede89b917","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.24","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.21_1789368367466_0.8386176428748624","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@airdraft/cloud","version":"0.1.22","license":"MIT","_id":"@airdraft/cloud@0.1.22","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"b42c4d39794b901d2cd31d2158f1423c9ae56173","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.22.tgz","fileCount":59,"integrity":"sha512-oo6km1f0FyK5+Geo2lblh5u1HZMFT7uN+mu0tVqq2QhdekzVOabzDNFTGMQL4FIwTCes2/abtdmmoU6iXn926w==","signatures":[{"sig":"MEYCIQC59rOzzRHX8kDOgzIg+gTT3FtPR+bNizGoKCGIsnDQ1gIhANMaDCEcnmlU0SrhnBwzeHZIDpCDCoIGGRySZxQIwqxm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDCbSz9e+eLFtqgkSftecovJA1T99hKJlBCZrc8ujKm7QIgOQsF4XWcf9xbp5PDwE410EF5gpILZQ+CZOd16fHNH1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239811},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"228838a5c34dc3641c4c0d6d0730cfb4f1d4b3f2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.26","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.22_1789376160569_0.7931915364184037","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@airdraft/cloud","version":"0.1.23","license":"MIT","_id":"@airdraft/cloud@0.1.23","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"cc1bd0177dfe455606461524037e36ae1374671d","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.23.tgz","fileCount":59,"integrity":"sha512-I3sqPY25jXdx43ymNR7GIJDr3H8PNhrwxjjh+RICd6hxORp1YLPczGjF+pL3fh9K5Ure6nBPaXEBJzlQySZ15Q==","signatures":[{"sig":"MEUCIB1tsu0HT8lrm0BAHw9bM83spsNb1CKHdCMYxlATBWSbAiEAp1QaF70Y5TY07VjIms8YJbONKOAniyZ6WfnTxOB4Ox8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCEoONQgMSilwtevheuWRixo0Sw8OIp1IZa8zTVnaERmwIhALWcgSEa6LiOcrEYDk4l/QUPTEVekY9b4k9/fK65Hs0g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241380},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"059d014b021e4453e1a5cf42bf77fa1ee20be94f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.26","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.23_1789377039796_0.6775154740302376","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@airdraft/cloud","version":"0.1.24","license":"MIT","_id":"@airdraft/cloud@0.1.24","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"113606e027725d2f099e16cf6af583ef0f346c94","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.24.tgz","fileCount":59,"integrity":"sha512-nNomTcdhuKeIi5orq0PQBsGjW6aNwuMC9Os2+fAXyKmaV4U5hlga/59k8ydAUjOfcReOx4vuQraJ1plo62h+Gg==","signatures":[{"sig":"MEQCIB6b3UrqzJS66ZHeLs9xpv0HmKDMlr9ql5AuWA9HVR/OAiBS9hCeilMhpCrtXy7lauRefQ2obAf6SGwBX8Fa8DxuAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCwqa1b6OPMnV2pFF8yPeuDMSNzdTTPGIRUXscg0qo9nAIgKifrHih4QlgZnxIKzlOgGkYMQcnqOUIa1vUa23TUY18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241469},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"059d014b021e4453e1a5cf42bf77fa1ee20be94f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.26","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cloud_0.1.24_1789377834566_0.26320934958986575","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"_id":"@airdraft/cloud@0.1.25","dist":{"shasum":"c4ee64a4ccbb89ab308196608b849d80a5cdecef","tarball":"https://registry.npmjs.org/@airdraft/cloud/-/cloud-0.1.25.tgz","fileCount":63,"integrity":"sha512-wB88HhxBQDWe5+KLvXzTGjUGF3uh+1Xsi+tkXSu6tLZwLuE1nm4IJO+AMSooV9ZT/pBGVDuD+LsvB+iTwDDSpg==","signatures":[{"sig":"MEQCIFfkBJ7lioPDKDlKuu5cA8XJmJj5NLqZMNdjMdHpy0bJAiBxmgzAaDAcxaf4huxU1YW7PFJflKacUw7F+8IT5Y/eRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDp0NGp8fpkCwAtb8jNBMUF7rdEwCH7gtAI0gCZUxlkHwIhAJIRb+RkVQuwUlpZ7gIt0xhRbBZRPULZSeWs45H0RuOV"}],"unpackedSize":257956},"main":"./dist/index.js","name":"@airdraft/cloud","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b1f87e9ff84be997bf5677f4d616418bef10e557","license":"MIT","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"version":"0.1.25","_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"10.9.8","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","directories":{},"maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"mongodb":"^6.0.0","@airdraft/auth":"*","@airdraft/core":"^0.1.26","@airdraft/next":"*","@airdraft/cloud-auth":"*","@airdraft/plugin-auth":"*","@airdraft/plugin-media":"*","@airdraft/plugin-audit-log":"*","@airdraft/media-adapter-github":"*","@airdraft/plugin-schema-editor":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cloud_0.1.25_1789508193786_0.2285138121419208"}}},"time":{"created":"2026-05-21T18:25:26.708Z","modified":"2026-09-15T21:36:34.077Z","0.1.0":"2026-05-21T18:25:27.101Z","0.1.1":"2026-05-22T08:29:59.909Z","0.1.3":"2026-05-22T09:02:46.246Z","0.1.5":"2026-05-22T10:45:27.515Z","0.1.6":"2026-05-23T07:32:02.816Z","0.1.7":"2026-05-23T17:29:32.090Z","0.1.8":"2026-05-23T19:26:14.522Z","0.1.9":"2026-05-23T21:14:05.887Z","0.1.10":"2026-05-26T06:32:38.609Z","0.1.11":"2026-05-26T07:41:55.640Z","0.1.12":"2026-05-27T12:50:41.081Z","0.1.13":"2026-05-31T09:50:48.912Z","0.1.14":"2026-06-01T06:25:48.318Z","0.1.15":"2026-06-01T10:40:36.056Z","0.1.16":"2026-06-25T04:54:01.115Z","0.1.17":"2026-06-25T05:18:39.181Z","0.1.18":"2026-06-25T17:06:57.242Z","0.1.19":"2026-09-14T00:17:48.749Z","0.1.20":"2026-09-14T06:40:55.749Z","0.1.21":"2026-09-14T06:46:07.559Z","0.1.22":"2026-09-14T08:56:00.671Z","0.1.23":"2026-09-14T09:10:39.889Z","0.1.24":"2026-09-14T09:23:54.651Z","0.1.25":"2026-09-15T21:36:33.891Z"},"license":"MIT","description":"Airdraft Cloud — MongoDB schemas, GitHub App handlers (relay, callback, webhook)","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"readme":"# `@airdraft/cloud`\n\nPure business-logic handlers for the Airdraft Cloud dashboard. All handlers are framework-agnostic async functions that accept a `Request` and return a `Response` — wire them into Next.js route handlers, Express routes, or any HTTP server.\n\n> **Design principle:** Zero framework coupling. The cloud app (`aevrHQ/airdraft-cloud`) is a thin glue layer that imports these handlers and re-exports them from 5–10 line route files. All business logic lives here.\n\n---\n\n## Installation\n\n```bash\nnpm install @airdraft/cloud\n# or\npnpm add @airdraft/cloud\n```\n\n---\n\n## Usage\n\n```ts\n// app/api/v1/teams/[teamSlug]/invites/route.ts (Next.js example)\nimport { handleInviteMember } from '@airdraft/cloud'\nimport { cloudDb } from '@/lib/db'\nimport { authAdapter } from '@/lib/auth'\n\nexport async function POST(req: Request, ctx: { params: Promise<{ teamSlug: string }> }) {\n  const { teamSlug } = await ctx.params\n  return handleInviteMember(req, cloudDb, authAdapter, teamSlug)\n}\n```\n\n---\n\n## Setup\n\n### 1. Create the DB instance\n\n```ts\nimport { MongoClient } from 'mongodb'\nimport { createCloudDb } from '@airdraft/cloud'\n\nconst client = new MongoClient(process.env.MONGODB_URI!)\nexport const cloudDb = createCloudDb(client)\n```\n\n`createCloudDb` returns a typed `CloudDb` with collection handles for `teams`, `projects`, `memberships`, `invites`, `customDomains`, `embedTokens`, `plans`, `auditEvents`.\n\n### 2. Create the auth adapter\n\n```ts\nimport { betterAuth } from 'better-auth'\nimport { createBetterAuthAdapter } from '@airdraft/cloud-auth/better-auth'\n\nconst auth = betterAuth({ /* ... */ })\nexport const authAdapter = createBetterAuthAdapter(auth)\n```\n\nSee [`@airdraft/cloud-auth`](../cloud-auth/README.md) for the full adapter interface.\n\n---\n\n## API\n\n### Team management — `team.ts`\n\n| Function | Route | Description |\n|---|---|---|\n| `handleListTeams(req, db, auth)` | `GET /teams` | Teams the caller belongs to |\n| `handleCreateTeam(req, db, auth)` | `POST /teams` | Create a team — body: `{ name: string }` |\n| `handleGetTeam(req, db, auth, teamSlug)` | `GET /teams/:slug` | Team details |\n| `handleUpdateTeam(req, db, auth, teamSlug)` | `PATCH /teams/:slug` | Update team name/settings |\n\n### Project management — `project.ts`\n\n| Function | Route | Description |\n|---|---|---|\n| `handleListProjects(req, db, auth, teamSlug)` | `GET /teams/:slug/projects` | Projects in a team |\n| `handleCreateProject(req, db, auth, teamSlug)` | `POST /teams/:slug/projects` | Create project — body: `{ name }` |\n| `handleGetProject(req, db, auth, projectSlug)` | `GET /projects/:slug` | Project details |\n| `handleGenerateApiKey(req, db, auth, projectSlug)` | `POST /projects/:slug/api-key` | Rotate API key, returns plaintext once |\n| `handleUpdateProjectSettings(req, db, auth, projectSlug)` | `PATCH /projects/:slug` | Update project settings |\n\n### Invite & membership — `invite.ts`\n\n| Function | Route | Description |\n|---|---|---|\n| `handleInviteMember(req, db, auth, teamSlug)` | `POST /teams/:slug/invites` | Send invite — body: `{ email, role }` |\n| `handleAcceptInvite(req, db, auth, token)` | `POST /invites/:token/accept` | Accept invite (email must match session) |\n| `handleRevokeInvite(req, db, auth, teamSlug, token)` | `DELETE /teams/:slug/invites/:token` | Revoke pending invite |\n| `handleRemoveMember(req, db, auth, teamSlug, userId)` | `DELETE /teams/:slug/members/:userId` | Remove a member (hierarchy enforced) |\n| `handleUpdateMemberRole(req, db, auth, teamSlug, userId)` | `PATCH /teams/:slug/members/:userId` | Change role — body: `{ role }` |\n| `handleLeaveTeam(req, db, auth, teamSlug)` | `DELETE /teams/:slug/members/me` | Leave a team (last owner blocked) |\n\n**Role hierarchy:** `owner > admin > editor > viewer`\n\n- Callers can only remove or reassign members at a strictly lower tier than themselves\n- The last `owner` of a team cannot be removed or leave\n- The `owner` role cannot be assigned via `handleUpdateMemberRole` — ownership transfer is out of scope\n\n**Note:** `handleInviteMember` creates the invite and returns the token — it does **not** send email. Sending email is the app layer's responsibility (clone the response, read the token, call `sendEmail`).\n\n### Billing — `billing.ts`\n\n| Function | Description |\n|---|---|\n| `handleGetPlans(req, db)` | List active `PlanDoc` entries |\n| `handleUpgradePlan(req, db, auth, pay)` | Create a `@untools/pay` checkout session |\n| `handleWebhookSettlement(req, provider, db, pay)` | Verify provider webhook + update `TeamDoc.planSlug` |\n| `handleGetUsage(req, db, auth, teamSlug)` | Current usage vs plan limits |\n| `checkLimit(db, teamId, key)` | Resolve plan (Redis-cached) → `{ allowed, current, max }` |\n| `checkFeature(db, teamId, key)` | Return a feature flag/value from the active plan |\n\n### Cloud CMS runtime — `runtime.ts`\n\n```ts\nimport { createCloudCmsHandler } from '@airdraft/cloud'\n\nconst { GET, POST, PUT, PATCH, DELETE } = createCloudCmsHandler({\n  db: cloudDb,\n  schemaCache: tokenCache,   // TokenCache (Redis or any get/set/del)\n  githubAppId: process.env.GITHUB_APP_ID!,\n  githubAppPrivateKey: process.env.GITHUB_APP_PRIVATE_KEY!,\n})\n\n// Mount at: /cms/[projectSlug]/api/cms/[...route]\nexport { GET, POST, PUT, PATCH, DELETE }\n```\n\nHandles per-project CMS requests — resolves the project from the slug, reads `airdraft.schema.json` from GitHub (Redis-cached), builds a `CmsEngine`, and delegates the request. Auth is resolved via project API key or team membership JWT.\n\nUse `bustEngineCache(projectId)` from a webhook handler to invalidate the in-memory engine cache on push events.\n\n### GitHub — `relay.ts`, `callback.ts`, `webhook.ts`\n\n| Function | Description |\n|---|---|\n| `handleTokenRelay(req, db, opts)` | Relay GitHub installation tokens to dashboard clients |\n| `handleCallback(req, opts)` | Process GitHub App OAuth callback + store installation ID |\n| `handleWebhook(req, opts)` | Handle GitHub webhook events (push → bust schema cache) |\n\n### State / JWT utilities — `state.ts`, `jwt.ts`, `cli.ts`\n\n| Function | Description |\n|---|---|\n| `signState(payload, secret)` | Sign CSRF state token for OAuth flows |\n| `verifyState(token, secret)` | Verify + decode CSRF state token |\n| `signGitHubAppJwt(appId, privateKey)` | Sign a GitHub App JWT for API calls |\n| `signCliToken(userId, secret)` | Sign a 15-min CLI JWT |\n| `verifyCliToken(token, secret)` | Verify CLI JWT → `userId` or null |\n\n---\n\n## Error response shape\n\nAll handlers return errors in the format used by `AirdraftClient`:\n\n```json\n{ \"error\": { \"code\": \"FORBIDDEN\", \"message\": \"Requires owner or admin role\" } }\n```\n\nCommon error codes: `UNAUTHORIZED` (401), `FORBIDDEN` (403), `NOT_FOUND` (404), `CONFLICT` (409), `LAST_OWNER` (403), `EMAIL_MISMATCH` (403), `INVITE_EXPIRED` (410).\n\n---\n\n## Types\n\n```ts\nimport type {\n  CloudDb, TeamDoc, ProjectDoc, MembershipDoc, InviteDoc,\n  PlanDoc, AuditEventDoc, TokenCache,\n} from '@airdraft/cloud'\n```\n\n---\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md).\n","readmeFilename":"README.md"}