{"_id":"@anvil-cloud/sdk","_rev":"19-14564a1cd8d8ff7e6e816124e952be6d","name":"@anvil-cloud/sdk","dist-tags":{"latest":"0.1.8"},"versions":{"0.0.2":{"name":"@anvil-cloud/sdk","version":"0.0.2","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.2","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"f948e9aa4c7e67c0069643050e58ac62c7cff825","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.2.tgz","fileCount":53,"integrity":"sha512-lIDPSjb1VRXnXCoxmYJajyP5/SH9dmFir9lzQJ3s7+7RRxzUOqVwhe0Grcl7/8Ue27PNvQ2l87lyHxD27EubXA==","signatures":[{"sig":"MEQCIGolpLT7oAwBv+G+ZvgCab23RCaLDF0cf0KdxuwqmqUrAiA++B9ALZs3V2R8Wyy03/1lChnOexSEsfm5gROAO7WLrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166451},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"281011e38fb6db23257a2f68e84dbd461397b59d","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.2_1774088187836_0.6540146566795493","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@anvil-cloud/sdk","version":"0.0.3","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.3","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"e570d9ecce8871b9717b7b5fc44f59f47d4cf1e5","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.3.tgz","fileCount":53,"integrity":"sha512-Hvv/pAvAOmP0F/69YldFdo9bsp4LOVKAfEbfpyZKYDdw0+2RYQyAMerDraclUrI4U59tJ9/m0LU5WHywWfndJQ==","signatures":[{"sig":"MEUCIAhH3qsJOSh0XOhjsgmP+SUCtm3htnp2UPIkYqsq+DLJAiEA6o4baFqZo5N5jYE6LV7NXp6bi7b/rjmzuwQagoIAEGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167822},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"e29a855c67061fe2f1990ebad1e5ee07776dce10","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.3_1774089423768_0.16712046788346746","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@anvil-cloud/sdk","version":"0.0.4","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.4","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"8b4c43e9da4c8e836123c459675abc1a7af10170","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.4.tgz","fileCount":53,"integrity":"sha512-FdkflhJwXmsvmIrenWuZ9qc1gm0X+nEhRSE8hI1+vjGbuCEXqGGczAakUhAGCMCRZ3Vn/yM1RRuuq0Qmhn3+4g==","signatures":[{"sig":"MEUCIDQqlMV3Pqm/QARbgV5Grt60tRPBbBe2YVPgIHYbDBbwAiEAz05s2RhFeMK/nDgfSOYVA/2W2iSKwVrr0KgFZxE/naY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167822},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"ec374611a34c66554b9cb5640895acc6ef300d94","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.4_1774235820417_0.21948899871820204","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@anvil-cloud/sdk","version":"0.0.5","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.5","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"8f3b5e8635f0235d6268c443bd40d6b6b745ef85","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.5.tgz","fileCount":57,"integrity":"sha512-tuP09ikpVzFJA2RVmGyzHrVyPmUe9QjlH62FjTBdi362uZ8E6i0lW/G+Myqnyq6aa9Eptzoh3CwGjEmnSbYeQg==","signatures":[{"sig":"MEUCIQDJ6tmDEYFREn7W2hVgC+oHgus5uAIRIkIKMt4dM37chwIgKALRBQl0VuutN4jAN/GvxxQj6bAeMBacJCAcsF21JcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194090},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"b522ec85f5ef8977879b6b96170f859b51f81b94","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.5_1774342237156_0.2400820455539039","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@anvil-cloud/sdk","version":"0.0.6","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.6","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"7b808bbeccdbcbd94a39cb433030b4e1e0e5b493","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.6.tgz","fileCount":61,"integrity":"sha512-GZyPf0/+fSWiRX7blQvdh8uGq8M40UiB0gQUMyH1buo9yW8e/eXS3FqeMLcVmgY9IJSlyFPG1IzLy0yBDN3V7w==","signatures":[{"sig":"MEQCIBto84riwnbxtwAurFdKe+8rwZajYbfzIo4B1raCaPi2AiAy871veAGz+G/tZBKx+jsmiS25bm4yuVJit704OO8nCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199829},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"bda7c21d0e805f55202b261a170da98b6160a9d8","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.6_1774526913248_0.13568895642057544","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@anvil-cloud/sdk","version":"0.0.7","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.7","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"0d7445b23f9683bb7a3ee4ea8d5cf1d89cecea5e","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.7.tgz","fileCount":61,"integrity":"sha512-CYtLu/YkZGs3p597OEEn/unTMRxjBDDr0CXBUjhs2I9ZTvdXknORvPr+pFwb/yFz2osgjNMXnhgWwdry6CnoBg==","signatures":[{"sig":"MEUCIG0r+E9KCwSqdg5IQ8NPGv8bXBykF1JVxKB7e4inIHpHAiEAkNHqwOMYUczr0z1bxzyMfn6oqYnJayqX2CDlyCUBRfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202656},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"5ccf088891a28e01cbec92722d50ba8d46e8e71d","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.7_1774592546380_0.9902802022764103","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@anvil-cloud/sdk","version":"0.0.8","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.8","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"3fc1ff432a57a0b95b2eedf875fc4440c8737734","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.8.tgz","fileCount":65,"integrity":"sha512-ixMbZ7TEiRZk0CNWGHvMHI878jFd7eXMRdL0ABLqVhXVE6jdfPtu3ybBFeF4mZV3pGQW8YYuvLQAGuC222x13g==","signatures":[{"sig":"MEUCIDCZf9MrT7fgnAZLW4s6a/eC00vR+4NJj6CXDddFHCQ9AiEAsrucrpo6zM+oXnKfdDEsVLGXRcV9tBWY2CjHguhb8RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212298},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"885aabcc20dcb3970cde59b1033610bca7dbdb16","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.11.1","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"25.8.2","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.8_1774834997611_0.7093025461538611","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@anvil-cloud/sdk","version":"0.0.9","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.9","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"63286931b9b895638d2474c1bcabd23cb622ad2f","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.9.tgz","fileCount":69,"integrity":"sha512-TDmCfURW22TgTSzOe33GS5v8fb6AQ8qOOtGDr4pAjLHqOfP+qmNhnn+9MyfjwiVJMHzDEhFqb3sUCtMH0PRSbA==","signatures":[{"sig":"MEQCIHIke7/MDTpBeaHCuIMrMOTkaueg5zVrDjU7F0cJs+07AiAY/E/8Iyi+/63V75Tb8l8sckDoIT4MfMxqzdQJQn/OTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240784},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"0139315e1ba9c2e49d9e92cdbcee8c768f636451","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.9_1775004749582_0.14957302938431782","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@anvil-cloud/sdk","version":"0.0.10","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.10","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"6ab0c5c5884ee2c60df6600aed80dd5f79438f57","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.10.tgz","fileCount":69,"integrity":"sha512-5ZAk/MlPDxUABTRTe+EC/RcpWEZ9xA79H6ODvESF770BR2NQn49QYTzSAhjCd2GFXJ4nXt/B5bJTZCUmm3omhg==","signatures":[{"sig":"MEQCICA9Z6NIIr6/Ak5Q4PeR3478M5Om6uTZj2dDeEJtDeBiAiB1ZC1h1SyKMTM3kpVqNJAyEFk/ZeCEBIL9rYx1aFyjnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241536},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"3c0751bc20f7661329e2383be488068bb0432c02","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.10_1775044450326_0.01911760211491842","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@anvil-cloud/sdk","version":"0.0.11","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.11","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/anvil-cloud/anvil/issues"},"dist":{"shasum":"ee9d65846adbe79e3678e8c70deac773a4b3d65b","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.11.tgz","fileCount":69,"integrity":"sha512-KgHyB+stldPiq+nENYN2F/UCoqTQcZCezjZAIpPn82xVuO/OG00Ltfi4QWfJcPULuZIV6mJGw3kMvtgjdM0NCw==","signatures":[{"sig":"MEUCIQC0hv+u0TeHUlpR9qR1V2IXVFOfHAHZx54rS9URj0jLpgIgWV8VuEBHCT+BMgkPoMNQRPiT+6ymXUiM82aUGOb45/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241536},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"6026af8c512bc13cffb7e38e6c805632f5427b9b","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"git+https://github.com/anvil-cloud/anvil.git","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.11_1775045170034_0.728387824064548","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@anvil-cloud/sdk","version":"0.0.12","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.12","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","dist":{"shasum":"7fd85ceec34ea9a2bd2058215d9b9543dea4e4ae","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.12.tgz","fileCount":77,"integrity":"sha512-m3JfzB7cW0RSQcu8UHEi6IIYLyA8hddNQ2/DjIaFPruvzCNY/uxcgGckx2ks7Yz24WVtTCTw5nSvdt9jZf5uNQ==","signatures":[{"sig":"MEUCIBJMeidYmNfMskcT1mfmWBxvkffmxxrXHLzbFmdzpA/VAiEAjwI/Gmkw+b+anTN7VyuZXEMGAUk8Kb7vhbrjgnFyC5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265721},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"70f0c5e71cd6a82fa6af6a67f9d8fe03c12b1fb2","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"github.com/DamienPace15/anvil","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.12_1775605422519_0.6444626976031007","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@anvil-cloud/sdk","version":"0.0.13","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.13","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","dist":{"shasum":"16d57ad329502bba2309f81b308ee3afae58873a","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.13.tgz","fileCount":77,"integrity":"sha512-1VomeglZvLnLIn8//Y/N9QOhU8EQ5F2HDi7RvqxTMxI2RigIwP6aqgJLeNIE8EFHH9hyGNRRPud5Fw1M0Fj50A==","signatures":[{"sig":"MEQCIB5dOq72TqMLUOSeCKvyffOZeSrpAbDCxXeIdNayioSgAiA3g6zdwJAHFGUUrMSw1CdnwNl214Q+WkPInmTbZikF6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265721},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"c257602c532e36441521d0b1568254001995a6de","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"github.com/DamienPace15/anvil","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.13_1775610792822_0.10757153938699382","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@anvil-cloud/sdk","version":"0.0.14","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.14","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","dist":{"shasum":"db0151e5b393f4f285777694d25aa4c9ba4811d4","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.14.tgz","fileCount":85,"integrity":"sha512-rHv6jOhtaio4mrpzHxmE2+LJ/8ioerIKYaQJcVaCCLZPMwohDZLHm5NBKgaKdSbZ4+g438XtWKUxvXfu7X+Cxw==","signatures":[{"sig":"MEYCIQCneDfjiZbHi6nast//n8oJ4kRsROPrdnkFE6lCS4y8nAIhAI8Qx73e0LS/F+GGh+6r9Z5FioFcPbY0wwcG0B0JKWRt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314018},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"8e2f56752f1bfb30578d311b764a7baf2e1faf2a","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"github.com/DamienPace15/anvil","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.4.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.14_1775800206578_0.14856721003308815","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@anvil-cloud/sdk","version":"0.0.15","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.15","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","dist":{"shasum":"7993a834357f4de5861a49ffbe22998076b6147c","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.15.tgz","fileCount":113,"integrity":"sha512-AocxdP7Hfqm2Wo5ucO1aq0zJfqPDaxIoKIadMNvP9uldz2uZmx9NoiNOpgAnMxuqLmsWDd4s/1t8q4lyu2GELQ==","signatures":[{"sig":"MEYCIQC7HW0C08xDKtYQ7y7dZSZaNG/GmUZQqpOZ/ck3OrEA0QIhAN5v7z3sjueXjJ7sNFJHD0GaRv2lSD5O7Swm7W/LDIy2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":559967},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"dfabff17d44d137bc24169a0b0a82f936b2fe61e","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"github.com/DamienPace15/anvil","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.12.1","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.15_1778472577249_0.7902684990723081","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@anvil-cloud/sdk","version":"0.0.16","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.0.16","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","dist":{"shasum":"fb75080dd6bdcf71d9a2de05ab905074890b620a","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.0.16.tgz","fileCount":121,"integrity":"sha512-2EoGbJwSdPXEZfdUyNYAyow38JO5XejRYoWRA4wmFitSA2Pa8Fg4PZstzaCMnX+GioHHlr1yknGqCSQhBxYBkA==","signatures":[{"sig":"MEQCIF9DwX/E2sh/Wq2Ng8elXpkxVe2u7rmb+Hmne7EhRvhBAiAna0JQi8FY5atXYB/XZqTNFVBwT5W7am8lKDyvONEL2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618577},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"47d4e5153a60a47add11f688b57125011dd9d7e1","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"},"repository":{"url":"github.com/DamienPace15/anvil","type":"git","directory":"sdk/nodejs"},"_npmVersion":"11.12.1","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"23.6.0","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.3.5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.0.16_1782099978056_0.10397754707916862","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@anvil-cloud/sdk","version":"0.1.5","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.1.5","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/DamienPace15/anvil/issues"},"dist":{"shasum":"ed17ce1db215d079ebdce368ac1fd3566628e223","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.1.5.tgz","fileCount":190,"integrity":"sha512-szuCTI0HvM+nm4zr5e7FTCW8E7FlDtL1LCnZ9V3qVb8L4GTwGjVKfbD9dZFeJ9yM8Pr5+POWE0CF0hRcVPv/QQ==","signatures":[{"sig":"MEUCIQD6e18Ps77z3eDYmKicepbICgUg5R8cEfYSFncJHZjkggIgJiJbg3Ol9vhBK6xWhe+bPpl5LHrTafNiqFOHGQX/w/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDNk70w4rKkfxQNrtvjgdEBhU7TxeTR/wXtC5tgbuv7QwIhAKdT/DbDfqx7iqQiNZ02TbsK1lX42fWKKG/2jSzQHTcr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anvil-cloud%2fsdk@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":754240},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"47c523ab2e0a07b840a743f551402a6a5b7b68e9","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"42b1633d-e35e-40d5-9c8b-0f87b8544fba"}},"repository":{"url":"git+https://github.com/DamienPace15/anvil.git","type":"git"},"_npmVersion":"12.2.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.7.0","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.5_1791026506698_0.7511603735649159","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@anvil-cloud/sdk","version":"0.1.6","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.1.6","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/DamienPace15/anvil/issues"},"dist":{"shasum":"9d26a0fc6f62832c4941717f9597d2d612fc321d","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.1.6.tgz","fileCount":190,"integrity":"sha512-DOrbJaAAjVc87VyaBzIwpeVvW5iHkBet6yqM9ltF3jwhqzbVAycvwb09v1K2X6FIW/3ImHS6wgCO4kx4wxb+dg==","signatures":[{"sig":"MEQCIGymTyxHVCLp5fOPe4a2yigNDNu1z/+07lfxlQo6zSNRAiBihUXX3cyeXEkqF8ks0yTlTv0w40soeXql6+ytOdmSYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDvqtJAYOtJfXL/qi4Ss5QwymRO9h4+oMqG6gWHOkx/jwIhAKfgs5h5wyMM7lbveary4DoWpYTH9pZVrDyvHE4Kb8Ef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anvil-cloud%2fsdk@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":754240},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"e0459efe42ce21082af28a98081d6826cf6dba9d","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"42b1633d-e35e-40d5-9c8b-0f87b8544fba"}},"repository":{"url":"git+https://github.com/DamienPace15/anvil.git","type":"git"},"_npmVersion":"12.2.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.7.0","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.6_1791027481204_0.7159601349536961","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@anvil-cloud/sdk","version":"0.1.7","license":"Apache-2.0","_id":"@anvil-cloud/sdk@0.1.7","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"homepage":"https://github.com/anvil-cloud/anvil","bugs":{"url":"https://github.com/DamienPace15/anvil/issues"},"dist":{"shasum":"1095409eae6fb6ebc6932b7f390308b21f42c419","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.1.7.tgz","fileCount":190,"integrity":"sha512-uvFG+pb9hKSTMkrPdK6LobXnNT0kAvL9hSnNptsBL3vAvHvdejXo7eYYQbcIH5OPyuw4rJRSLQWJuPqA8WU38Q==","signatures":[{"sig":"MEUCIQC2LDMIZfizz6FCqnyO5r9OMMCvL5bHMMtWTEs8wxDL7wIgJ7qqmPtzxCvwl2N973TiNguvmTs/CL7+hrajTu3sR4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJrCXGT3bZH3mlOVuPA19OsvNBx+whiklDcYjliXlOcQIhAMZaXEonU6l7mnf0WhrL5MwquMIJpJSnvKFslX+6+Ik+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anvil-cloud%2fsdk@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":754240},"main":"bin/index.js","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"ce5a49ea015761c43a0f5b1a07e6cf2634ed9acf","scripts":{"build":"tsc && cp package.json bin/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"42b1633d-e35e-40d5-9c8b-0f87b8544fba"}},"repository":{"url":"git+https://github.com/DamienPace15/anvil.git","type":"git"},"_npmVersion":"12.2.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"_nodeVersion":"22.23.3","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.7.0","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.7_1791166252364_0.5763509690616209","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"_id":"@anvil-cloud/sdk@0.1.8","bugs":{"url":"https://github.com/DamienPace15/anvil/issues"},"dist":{"shasum":"e8dae472e460524e2381e91db680f0a81190b79d","tarball":"https://registry.npmjs.org/@anvil-cloud/sdk/-/sdk-0.1.8.tgz","fileCount":190,"integrity":"sha512-sMguqRyioydT5Pd7MscHqB/0G903JnIo7Cfh7CwaOuHxpkvnRC9xQEvKZjd7ogYDCY9P67/OfycN3+kqw9t+EA==","signatures":[{"sig":"MEYCIQCxfLNQ3ifA/+AVjyxJQD3o9nyeZr26kkb6WyLn92VGSwIhALwTOISHC7PC5mTAQlngT1kBIZqz8lBmAtiXTZNsyQbZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC85gCN25/SfdOHL+33ZYy8dty+inbqwPmxLoRz8fibAwIhAI4PoUiRzb8J3PnE9AcDY4GXxQYf5G27iG4ORDE++Wxb"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anvil-cloud%2fsdk@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":755024},"main":"bin/index.js","name":"@anvil-cloud/sdk","types":"bin/index.d.ts","pulumi":{"name":"anvil","resource":true},"gitHead":"ccce726a185bede3f6c3c366339b31954ae348cc","license":"Apache-2.0","scripts":{"build":"tsc && cp package.json bin/"},"version":"0.1.8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"42b1633d-e35e-40d5-9c8b-0f87b8544fba"}},"homepage":"https://github.com/anvil-cloud/anvil","repository":{"url":"git+https://github.com/DamienPace15/anvil.git","type":"git"},"_npmVersion":"12.2.0","description":"Anvil — secure-by-default cloud infrastructure components","directories":{},"maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"_nodeVersion":"22.23.3","dependencies":{"@pulumi/aws":"^7.21.0","@pulumi/gcp":"^9.0.0","@pulumi/pulumi":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.7.0","@types/node":"^20"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.8_1791180771059_0.08867835411676439"}}},"time":{"created":"2026-03-21T10:16:27.725Z","modified":"2026-10-05T06:12:51.492Z","0.0.2":"2026-03-21T10:16:27.990Z","0.0.3":"2026-03-21T10:37:03.965Z","0.0.4":"2026-03-23T03:17:00.563Z","0.0.5":"2026-03-24T08:50:37.302Z","0.0.6":"2026-03-26T12:08:33.579Z","0.0.7":"2026-03-27T06:22:26.527Z","0.0.8":"2026-03-30T01:43:17.774Z","0.0.9":"2026-04-01T00:52:29.742Z","0.0.10":"2026-04-01T11:54:10.474Z","0.0.11":"2026-04-01T12:06:10.182Z","0.0.12":"2026-04-07T23:43:42.696Z","0.0.13":"2026-04-08T01:13:12.985Z","0.0.14":"2026-04-10T05:50:06.721Z","0.0.15":"2026-05-11T04:09:37.404Z","0.0.16":"2026-06-22T03:46:18.174Z","0.1.5":"2026-10-03T11:21:46.822Z","0.1.6":"2026-10-03T11:38:01.323Z","0.1.7":"2026-10-05T02:10:52.487Z","0.1.8":"2026-10-05T06:12:51.186Z"},"bugs":{"url":"https://github.com/DamienPace15/anvil/issues"},"license":"Apache-2.0","homepage":"https://github.com/anvil-cloud/anvil","repository":{"url":"git+https://github.com/DamienPace15/anvil.git","type":"git"},"description":"Anvil — secure-by-default cloud infrastructure components","maintainers":[{"name":"anvil-cloud","email":"damienlpace+anvil@gmail.com"}],"readme":"# @anvil-cloud/sdk\n\n**Cloud infrastructure that's secure by default — not by accident.**\n\nAnvil wraps raw cloud resources into opinionated, production-ready components. No 200-line Terraform modules. No copy-pasting security configs. Just declare what you need and Anvil handles the rest.\n\nBuilt on [Pulumi](https://www.pulumi.com/).\n\n## Install\n\n```bash\nnpm install @anvil-cloud/sdk\n```\n\n## Secure by default\n\nEvery Anvil component ships with defaults aligned to production from day one — public access blocked, encryption enforced, cost tags applied. The goal isn't to make compliance automatic, but to make it a platform you can actually build on.\n\n## The App class\n\nEvery Anvil program starts with `new App()`. The `run` callback receives a `Context` with:\n\n- `ctx.stage` — current deployment stage (defaults to your OS username for dev isolation)\n- `ctx.project` — project name from `anvil.yaml`\n- `ctx.export(name, value)` — export stack outputs\n- `ctx.providers` — named cloud providers for multi-region / multi-account\n- `ctx.ref(id)` — reference a resource declared elsewhere (see below)\n\n## Forward references (`ctx.ref`)\n\nNormally you reference a resource through the variable it's assigned to, which\nmeans it must be declared first. `ctx.ref('id')` lets you reference a resource by\nits **logical name** — even one declared **later** in the program:\n\n```typescript\nexport default new App({\n  run(ctx) {\n    const fn = new anvil.aws.Lambda('processor', {\n      runtime: 'nodejs20.x',\n      handler: 'index.handler',\n      code: './src',\n      environment: {\n        // forward reference — `db` is declared below\n        DSQL_ENDPOINT: ctx.ref<anvil.aws.DSQL>('db').endpoint,\n      },\n    });\n\n    const db = new anvil.aws.DSQL('db', { /* ... */ });\n  },\n});\n```\n\n`ctx.ref('db').endpoint` resolves to the *same* output as `db.endpoint` — they're\ninterchangeable. The generic (`<anvil.aws.DSQL>`) is just for autocomplete.\n\nThis is an **escape hatch** for cases where declaration order is awkward; most\ncode references resources directly. Two things to know:\n\n- **Keep references flowing one direction.** Because you can point either way, you\n  can accidentally create a cycle (A references B's output *and* B references A's).\n  That deadlocks the deploy rather than erroring cleanly — so don't do it.\n- A typo or never-declared id fails with a clear error before anything deploys.\n\n## Grants\n\nGrants are how Anvil wires permissions between resources. Instead of writing IAM policies by hand, you call `.grant()` on a resource and Anvil handles both the IAM role policy and the environment variable injection automatically.\n\nA Lambda reading from a Bucket:\n\n```typescript\nexport default new App({\n  run(ctx) {\n    const bucket = new anvil.aws.Bucket('uploads', {\n      dataClassification: 'sensitive',\n    });\n\n    const fn = new anvil.aws.Lambda('processor', {\n      runtime: 'nodejs20.x',\n      handler: 'index.handler',\n      code: './src',\n    });\n\n    // Grants the Lambda read access to the bucket and scopes down to specific bucket paths\n    // Anvil creates the IAM policy and injects UPLOADS_BUCKET_NAME\n    // into the Lambda's environment automatically.\n    //\n    bucket.grant(fn, { actions: ['read'], path: ['user/*'] });\n  },\n});\n```\n\nWhat Anvil does under the hood:\n\n- Creates an IAM `RolePolicy` scoped to the exact actions requested\n- Injects the resource identifier as an environment variable on the target (e.g. `UPLOADS_BUCKET_NAME`)\n- No manual ARN wiring, no forgotten permissions\n\n## SvelteKit deployment\n\nDeploy a SvelteKit app to AWS with a single component. Anvil provisions S3, CloudFront, ACM, Lambda (via Lambda Web Adapter), and Route53 — with HTTPS and a custom domain out of the box:\n\n```typescript\nexport default new App({\n  run(ctx) {\n    const site = new anvil.aws.SvelteKitSite('web', {\n      domain: 'myapp.com',\n    });\n\n    ctx.export('url', site.url);\n  },\n});\n```\n\n## Overrides\n\nEvery component accepts a `transform` argument to override the underlying resource config when you need to break from the defaults:\n\n```typescript\nconst bucket = new anvil.aws.Bucket('custom', {\n  dataClassification: 'non-sensitive',\n  transform: {\n    bucket: { forceDestroy: true, tags: { env: 'dev' } },\n  },\n});\n```\n\n## Links\n\n- [Docs](https://anvilcloud.dev)\n- [GitHub](https://github.com/DamienPace15/anvil)\n- [Python SDK](https://pypi.org/project/anvil-cloud/)\n- [Go SDK](https://pkg.go.dev/github.com/DamienPace15/anvil/sdk/go/anvil)\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}