{"_id":"@apiclient.xyz/cloudflare","_rev":"10-a47509fcb7ad345a68c4468208e20d19","name":"@apiclient.xyz/cloudflare","dist-tags":{"latest":"8.0.0"},"versions":{"6.0.2":{"name":"@apiclient.xyz/cloudflare","version":"6.0.2","keywords":["Push.Rocks","cloudflare"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.0.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/pushrocks/cflare#readme","bugs":{"url":"https://gitlab.com/pushrocks/cflare/issues"},"dist":{"shasum":"14967467e4538ff59bb15e202cfa20ed284f6822","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.0.2.tgz","fileCount":46,"integrity":"sha512-jo2OPN7Ov6gtBvpSwm3pqdCFCN1DN3y/JyE2UoZ8BLsReaTS/KYIcBc/A+LLzWMruK/nCyk/ngnn9Hw6iOHCfw==","signatures":[{"sig":"MEUCIQDzrYxPtjf+Gi+L2y+uv1NezPG1Mwx9f0wEprv/OZQKAQIgNfq1gc/G+0ID74jdCQQDQpCmgLi5nktJFrpjBiMeC/U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69738},"main":"dist_ts/index.js","type":"module","gitHead":"b9f0b798c9f5f580271f6f390580269b9f6bb1f0","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://gitlab.com/pushrocks/cflare.git","type":"git"},"_npmVersion":"9.7.1","description":"easy cloudflare management","directories":{},"_nodeVersion":"18.16.0","browserslist":["last 1 chrome versions"],"dependencies":{"@tsclass/tsclass":"^4.0.42","@pushrocks/smartlog":"^3.0.2","@pushrocks/smartdelay":"^3.0.1","@pushrocks/smartstring":"^4.0.5","@pushrocks/smartpromise":"^4.0.2","@pushrocks/smartrequest":"^2.0.15"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.3.1","@gitzone/tsrun":"^1.2.42","@gitzone/tstest":"^1.0.74","@pushrocks/qenv":"^5.0.2","@gitzone/tsbuild":"^2.1.66","@pushrocks/tapbundle":"^5.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.0.2_1686675580932_0.052809800441388166","host":"s3://npm-registry-packages"}},"6.0.3":{"name":"@apiclient.xyz/cloudflare","version":"6.0.3","keywords":["Push.Rocks","cloudflare"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.0.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/pushrocks/cflare#readme","bugs":{"url":"https://gitlab.com/pushrocks/cflare/issues"},"dist":{"shasum":"412f9d690f056cc3ed0f64b85910d577e0876696","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.0.3.tgz","fileCount":46,"integrity":"sha512-NOPHFrKVxfkrRn9lVBLCdo0Ibm08PuaJe3A1K6TmXWxgbeJSqGkgVMGRwLilnol/062v6/1w2ZFO6f3fAxk5Gw==","signatures":[{"sig":"MEUCICVM90s1bcFY3rrC1q/Yvgufb9GSwemZu9SRxXGgf4wUAiEAz+h1lgViNdLKb6DO3Sth0bIVPo2Ykfo4OSFcLmZRVKY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69738},"main":"dist_ts/index.js","type":"module","gitHead":"42feb09b4f10995f030e798abc1544640b7b512c","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"git+https://gitlab.com/pushrocks/cflare.git","type":"git"},"_npmVersion":"9.7.1","description":"easy cloudflare management","directories":{},"_nodeVersion":"18.16.0","browserslist":["last 1 chrome versions"],"dependencies":{"@tsclass/tsclass":"^4.0.42","@pushrocks/smartlog":"^3.0.2","@pushrocks/smartdelay":"^3.0.1","@pushrocks/smartstring":"^4.0.5","@pushrocks/smartpromise":"^4.0.2","@pushrocks/smartrequest":"^2.0.15"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.3.1","@gitzone/tsrun":"^1.2.42","@gitzone/tstest":"^1.0.74","@pushrocks/qenv":"^5.0.2","@gitzone/tsbuild":"^2.1.66","@pushrocks/tapbundle":"^5.0.4"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.0.3_1686676101778_0.754296322136641","host":"s3://npm-registry-packages"}},"6.3.0":{"name":"@apiclient.xyz/cloudflare","version":"6.3.0","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.3.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/pushrocks/cflare#readme","bugs":{"url":"https://gitlab.com/pushrocks/cflare/issues"},"dist":{"shasum":"0ed54c73ff11a4bd75d85e0c350aa5ed247c2f4d","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.3.0.tgz","fileCount":76,"integrity":"sha512-cWV1AZs2DEjp3lB2zwYQdK/4KiOuebwUITiFlDjVQiFfQ1WDRTfNsIE4X0jT1s38ceJsBQ04XQMN/H7UgHC9Ig==","signatures":[{"sig":"MEQCIC5QhW5acfzw4XeI2NTn7OPeoJJFPTfsYLcvAhcGAEu8AiBAiE3MU2b9yCgL6Hpad87umL3EYrFjYdHoeVChmqpm7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223595},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-6.3.0.tgz","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/6f653695e10ba901992f01b0b664cd95/apiclient.xyz-cloudflare-6.3.0.tgz","_integrity":"sha512-cWV1AZs2DEjp3lB2zwYQdK/4KiOuebwUITiFlDjVQiFfQ1WDRTfNsIE4X0jT1s38ceJsBQ04XQMN/H7UgHC9Ig==","repository":{"url":"git+https://gitlab.com/pushrocks/cflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^4.2.0","@tsclass/tsclass":"^5.0.0","@push.rocks/smartlog":"^3.0.2","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.0.5","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^2.0.23"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10","@git.zone/tsrun":"^1.3.3","@git.zone/tstest":"^1.0.96","@push.rocks/qenv":"^6.1.0","@git.zone/tsbuild":"^2.2.7","openapi-typescript":"^7.6.1","@push.rocks/tapbundle":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.3.0_1745669729523_0.32303717576115276","host":"s3://npm-registry-packages-npm-production"}},"6.3.2":{"name":"@apiclient.xyz/cloudflare","version":"6.3.2","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.3.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/pushrocks/cflare#readme","bugs":{"url":"https://gitlab.com/pushrocks/cflare/issues"},"dist":{"shasum":"0a44b7d85a5025db8d0a076d33073ef622b60b31","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.3.2.tgz","fileCount":76,"integrity":"sha512-u5ud25tR1epNVgAPtL2t1qZ7FOGsLhID4zAzwcIQQTqmBb43US0fkI/I+JjIW0uyHi12AI4gWez2ke2nAR4+pw==","signatures":[{"sig":"MEQCIHQYNq9Jaat63z48IDbarBplVEhu/giRWV+BxoFy9sz4AiARKfDLsLaUvhhkTe7Esac2RRr1f5mLIZvEvBwEhTzMTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225295},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-6.3.2.tgz","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/cd865e51827b3f4518abf972272bd33d/apiclient.xyz-cloudflare-6.3.2.tgz","_integrity":"sha512-u5ud25tR1epNVgAPtL2t1qZ7FOGsLhID4zAzwcIQQTqmBb43US0fkI/I+JjIW0uyHi12AI4gWez2ke2nAR4+pw==","repository":{"url":"git+https://gitlab.com/pushrocks/cflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^4.2.0","@tsclass/tsclass":"^5.0.0","@push.rocks/smartlog":"^3.0.2","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.0.5","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^2.0.23"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.13.10","@git.zone/tsrun":"^1.3.3","@git.zone/tstest":"^1.0.96","@push.rocks/qenv":"^6.1.0","@git.zone/tsbuild":"^2.2.7","openapi-typescript":"^7.6.1","@push.rocks/tapbundle":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.3.2_1745671357576_0.9599667572676573","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"@apiclient.xyz/cloudflare","version":"6.4.0","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.4.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/pushrocks/cflare#readme","bugs":{"url":"https://gitlab.com/pushrocks/cflare/issues"},"dist":{"shasum":"f7dcc83d3b4aca1b0e1ff5c8ced663b8a74636ef","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.4.0.tgz","fileCount":76,"integrity":"sha512-go5VNRKDJccVJteEU+FcbSk5eGMlQLGc+2tcmQ8DH+Np8ehMFpNkNAa1bU0JlEKDyc+CdvJCvNfzFIyUCqo6Bg==","signatures":[{"sig":"MEUCIQCbbU4jZ/uz9u1KpSiwakfY9zFElM0cyw9zPzwkfSxFzgIgTiOpvXyoW9HdYwMCNfDRRvqYkKymWD7++1HEyff+eGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228328},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-6.4.0.tgz","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/d3f7e8e55f88b08c588f8bfaf3b04684/apiclient.xyz-cloudflare-6.4.0.tgz","_integrity":"sha512-go5VNRKDJccVJteEU+FcbSk5eGMlQLGc+2tcmQ8DH+Np8ehMFpNkNAa1bU0JlEKDyc+CdvJCvNfzFIyUCqo6Bg==","repository":{"url":"git+https://gitlab.com/pushrocks/cflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^4.2.0","@tsclass/tsclass":"^9.1.0","@push.rocks/smartlog":"^3.0.2","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.0.5","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.3","@git.zone/tsrun":"^1.3.3","@git.zone/tstest":"^1.0.96","@push.rocks/qenv":"^6.1.0","@git.zone/tsbuild":"^2.3.2","openapi-typescript":"^7.6.1","@push.rocks/tapbundle":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.4.0_1746014738128_0.30900544157080745","host":"s3://npm-registry-packages-npm-production"}},"6.4.1":{"name":"@apiclient.xyz/cloudflare","version":"6.4.1","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.4.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/mojoio/cloudflare#readme","bugs":{"url":"https://gitlab.com/mojoio/cloudflare/issues"},"dist":{"shasum":"6c4c422b8c6c82db2c7d3ef1b337cd97036457ce","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.4.1.tgz","fileCount":76,"integrity":"sha512-RYFphnbunjK+Imq/3ynIQpAvIGBJ38kqSZ2nrpTm26zsBIxW7S6xEe3zhXfVMtUIgC99OL3Xr/SGXl3CNBwCug==","signatures":[{"sig":"MEUCIQCY3YC6UAFyk9aaYIUIKh5T4s76o/dpPVH6LiSfGsXs4wIgGSiO6lGXH7bzxWCbNj83VBz4bLuW0tHIE074wd+lkRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228480},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-6.4.1.tgz","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/3a5b6f6c39f06bd92b19e556ccd26e98/apiclient.xyz-cloudflare-6.4.1.tgz","_integrity":"sha512-RYFphnbunjK+Imq/3ynIQpAvIGBJ38kqSZ2nrpTm26zsBIxW7S6xEe3zhXfVMtUIgC99OL3Xr/SGXl3CNBwCug==","repository":{"url":"git+https://gitlab.com/mojoio/cloudflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^4.2.0","@tsclass/tsclass":"^9.1.0","@push.rocks/smartlog":"^3.0.2","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.0.5","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.3","@git.zone/tsrun":"^1.3.3","@git.zone/tstest":"^1.0.96","@push.rocks/qenv":"^6.1.0","@git.zone/tsbuild":"^2.3.2","openapi-typescript":"^7.6.1","@push.rocks/tapbundle":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.4.1_1746014965374_0.9171881406066513","host":"s3://npm-registry-packages-npm-production"}},"6.4.3":{"name":"@apiclient.xyz/cloudflare","version":"6.4.3","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@6.4.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/mojoio/cloudflare#readme","bugs":{"url":"https://gitlab.com/mojoio/cloudflare/issues"},"dist":{"shasum":"909672128a55591f3bdf481575df6aa6b198c829","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-6.4.3.tgz","fileCount":76,"integrity":"sha512-ztegUdUO3Zd4mUoTSylKlCEKPBMHEcggrLelR+7CiblM4beHMwopMVlryBmiCY7bOVbUSPoK0xsVTF7VIy3p/A==","signatures":[{"sig":"MEUCIDK+fuhSeFh9uRx9OJhg/J9vcFAG8DaE7/GOcg/0LhBVAiEAkrGPpvEyLNfloPekqRlnOk2kIN/ee9Qx/p8fTkp+xPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230755},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-6.4.3.tgz","private":false,"scripts":{"test":"(tstest test/)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/4994b65c0c83d16dfe41e7d600c7751a/apiclient.xyz-cloudflare-6.4.3.tgz","_integrity":"sha512-ztegUdUO3Zd4mUoTSylKlCEKPBMHEcggrLelR+7CiblM4beHMwopMVlryBmiCY7bOVbUSPoK0xsVTF7VIy3p/A==","repository":{"url":"git+https://gitlab.com/mojoio/cloudflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^5.2.0","@tsclass/tsclass":"^9.3.0","@push.rocks/smartlog":"^3.1.10","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.1.0","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.3","@git.zone/tsrun":"^2.0.0","@git.zone/tstest":"^2.8.2","@push.rocks/qenv":"^6.1.3","@git.zone/tsbuild":"^3.1.0","openapi-typescript":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_6.4.3_1763421734154_0.5413559534911232","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@apiclient.xyz/cloudflare","version":"7.0.0","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@7.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/mojoio/cloudflare#readme","bugs":{"url":"https://gitlab.com/mojoio/cloudflare/issues"},"dist":{"shasum":"c484d768f6382cea7be55864bc7ce031d53ce5d6","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-7.0.0.tgz","fileCount":82,"integrity":"sha512-VLqhvSmizUnhxnJTqi9bo9s6G5GUWlvLSQ3NPXS7igvNdVPBFwEe5TXBakClvNakvDBTWTg2xl+5RMGxaxCkuQ==","signatures":[{"sig":"MEUCIQDMiBAl+uSBLVpzkofDRtv/iAOeBMofcpKVuyK/Lcj4AwIgPKLlKQrf/UCA5frpah7qiE1qBrp7Vcqlq70xl485O0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287357},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-7.0.0.tgz","private":false,"scripts":{"test":"(tstest test/ --verbose --timeout 600)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/ebf9957058e41364c2ac4bb5069fd90d/apiclient.xyz-cloudflare-7.0.0.tgz","_integrity":"sha512-VLqhvSmizUnhxnJTqi9bo9s6G5GUWlvLSQ3NPXS7igvNdVPBFwEe5TXBakClvNakvDBTWTg2xl+5RMGxaxCkuQ==","repository":{"url":"git+https://gitlab.com/mojoio/cloudflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^5.2.0","@tsclass/tsclass":"^9.3.0","@push.rocks/smartlog":"^3.1.10","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.1.0","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.3","@git.zone/tsrun":"^2.0.0","@git.zone/tstest":"^2.8.2","@push.rocks/qenv":"^6.1.3","@git.zone/tsbuild":"^3.1.0","openapi-typescript":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_7.0.0_1763498361021_0.5453205347601857","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"@apiclient.xyz/cloudflare","version":"7.1.0","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":{"name":"Lossless GmbH"},"license":"MIT","_id":"@apiclient.xyz/cloudflare@7.1.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://gitlab.com/mojoio/cloudflare#readme","bugs":{"url":"https://gitlab.com/mojoio/cloudflare/issues"},"dist":{"shasum":"ba72352db35df75ff1e07c136b5eeee0f5631e27","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-7.1.0.tgz","fileCount":82,"integrity":"sha512-qb+PWcE5OjOCPO0+4rexOgtEf9Q1VOIHfrGmav/gXAtkdNL5omifSxPbUseyFKsZrxnRv4rLzvjckUCj0hkvFw==","signatures":[{"sig":"MEYCIQCnxYObsSJ1OIqYe1uztjglIyx+A7OgfDuVHEB8NlnGdAIhAKsEoqfBW9HVApXrAZjO6dS9IGV8nNmxfA5BFqQnNbNB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288016},"main":"dist_ts/index.js","type":"module","_from":"file:apiclient.xyz-cloudflare-7.1.0.tgz","private":false,"scripts":{"test":"(tstest test/ --verbose --timeout 600)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"_resolved":"/tmp/a8bff03be38f4fd94f5e7f26ef319e2d/apiclient.xyz-cloudflare-7.1.0.tgz","_integrity":"sha512-qb+PWcE5OjOCPO0+4rexOgtEf9Q1VOIHfrGmav/gXAtkdNL5omifSxPbUseyFKsZrxnRv4rLzvjckUCj0hkvFw==","repository":{"url":"git+https://gitlab.com/mojoio/cloudflare.git","type":"git"},"_npmVersion":"11.3.0","description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","directories":{},"_nodeVersion":"23.8.0","browserslist":["last 1 chrome versions"],"dependencies":{"cloudflare":"^5.2.0","@tsclass/tsclass":"^9.3.0","@push.rocks/smartlog":"^3.1.10","@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartstring":"^4.1.0","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.3","@git.zone/tsrun":"^2.0.0","@git.zone/tstest":"^2.8.2","@push.rocks/qenv":"^6.1.3","@git.zone/tsbuild":"^3.1.0","openapi-typescript":"^7.10.1"},"_npmOperationalInternal":{"tmp":"tmp/cloudflare_7.1.0_1763498860154_0.6495490229452396","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@apiclient.xyz/cloudflare","version":"8.0.0","private":false,"description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","main":"dist_ts/index.js","typings":"dist_ts/index.d.ts","type":"module","repository":{"type":"git","url":"https://code.foss.global/apiclient.xyz/cloudflare.git"},"keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"author":"Task Venture Capital GmbH","license":"MIT","bugs":{"url":"https://code.foss.global/apiclient.xyz/cloudflare/issues"},"homepage":"https://code.foss.global/apiclient.xyz/cloudflare#readme","dependencies":{"@push.rocks/smartdelay":"^3.0.1","@push.rocks/smartlog":"^3.1.10","@push.rocks/smartpromise":"^4.2.3","@push.rocks/smartrequest":"^5.0.1","@push.rocks/smartstring":"^4.1.0","@tsclass/tsclass":"^9.3.0","cloudflare":"^5.2.0"},"devDependencies":{"@git.zone/tsbuild":"^3.1.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^3.6.7","@push.rocks/qenv":"^6.1.3","@types/node":"26.1.1","openapi-typescript":"^7.10.1"},"browserslist":["last 1 chrome versions"],"scripts":{"test":"(tstest test/ --verbose --timeout 600)","build":"(tsbuild --web --allowimplicitany)","buildDocs":"tsdoc","updateOpenapi":"openapi-typescript https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.yaml --output ts/openapi.spec.ts"},"_nodeVersion":"22.22.1","_id":"@apiclient.xyz/cloudflare@8.0.0","dist":{"integrity":"sha512-kIgaRPFi9zgAy2aoHLsnVasS3wE0y6QQB9DkuC6OjTl2nTcl3eVeq0R2TzKRsT8dSqMVQVrkc+zPEuDR9Xkrzw==","shasum":"55fa9710d93510f78a703a9d011cbd501ac66e5a","tarball":"https://registry.npmjs.org/@apiclient.xyz/cloudflare/-/cloudflare-8.0.0.tgz","fileCount":56,"unpackedSize":243717,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8z7pA0N+ipe5z2o9nKZqb0uqYZzczEMXlcwGf2J5N7gIhAOJKkbAYc2Gv4wax0rqCei9+LcKT8hjRhnVCUOv3uzEI"}]},"_npmUser":{"name":"lossless","email":"hello@lossless.com"},"directories":{},"maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cloudflare_8.0.0_1785442199139_0.4693611533757345"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-13T16:59:40.830Z","modified":"2026-07-30T20:09:59.515Z","6.0.2":"2023-06-13T16:59:41.137Z","6.0.3":"2023-06-13T17:08:21.940Z","6.3.0":"2025-04-26T12:15:29.726Z","6.3.2":"2025-04-26T12:42:37.795Z","6.4.0":"2025-04-30T12:05:38.352Z","6.4.1":"2025-04-30T12:09:25.586Z","6.4.3":"2025-11-17T23:22:14.385Z","7.0.0":"2025-11-18T20:39:21.224Z","7.1.0":"2025-11-18T20:47:40.363Z","8.0.0":"2026-07-30T20:09:59.274Z"},"bugs":{"url":"https://code.foss.global/apiclient.xyz/cloudflare/issues"},"author":"Task Venture Capital GmbH","license":"MIT","homepage":"https://code.foss.global/apiclient.xyz/cloudflare#readme","keywords":["Cloudflare","DNS management","zone management","worker management","TypeScript","API client","cloud infrastructure","automated DNS","CDN management","open source"],"repository":{"type":"git","url":"https://code.foss.global/apiclient.xyz/cloudflare.git"},"description":"A TypeScript client for managing Cloudflare accounts, zones, DNS records, and workers with ease.","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"readme":"# @apiclient.xyz/cloudflare\n\n> 🚀 A modern, elegant TypeScript client for the Cloudflare API with clean manager-based architecture\n\n[![npm version](https://badge.fury.io/js/%40apiclient.xyz%2Fcloudflare.svg)](https://www.npmjs.com/package/@apiclient.xyz/cloudflare)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nStop fighting with the Cloudflare API. This library gives you an intuitive, type-safe way to manage zones, DNS records, and Workers—all with clean, predictable method names and excellent IDE support.\n\n## Issue Reporting and Security\n\nFor reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.\n\n## ✨ Why This Library?\n\n- **🎯 Logical & Consistent**: Manager-based architecture with predictable method naming (`listZones()`, `listRecords()`, `listWorkers()`)\n- **💪 Strongly Typed**: Full TypeScript support with excellent autocompletion\n- **🔌 Framework Integration**: Built-in `IConvenientDnsProvider` adapter for third-party modules\n- **⚡ Modern**: Uses async/await, ES modules, and the official Cloudflare SDK\n- **🛡️ Reliable**: Comprehensive error handling and detailed logging\n- **📦 Zero Config**: Works out of the box with just your API token\n\n## 🚀 Quick Start\n\n```bash\npnpm add @apiclient.xyz/cloudflare\n```\n\n```typescript\nimport { CloudflareAccount } from '@apiclient.xyz/cloudflare';\n\nconst cf = new CloudflareAccount('your-api-token');\n\n// Manage DNS records with ease\nawait cf.recordManager.createRecord('api.example.com', 'A', '192.0.2.1');\nawait cf.recordManager.updateRecord('api.example.com', 'A', '203.0.113.1');\n\n// Work with zones\nconst zones = await cf.zoneManager.listZones();\nawait cf.zoneManager.purgeZone('example.com');\n\n// Deploy workers\nawait cf.preselectAccountByName('Production Account');\nconst workerScript = 'addEventListener(\"fetch\", event => event.respondWith(fetch(event.request)));';\nconst worker = await cf.workerManager.createWorker('my-api', workerScript);\nawait worker.setRoutes([{ zoneName: 'example.com', pattern: 'api.example.com/*' }]);\n```\n\n## 📚 Core Concepts\n\n### Managers: Your Gateway to Cloudflare\n\nThe library is organized around **managers**—specialized classes that handle specific Cloudflare resources:\n\n- **`recordManager`** - DNS record operations\n- **`zoneManager`** - Zone (domain) management\n- **`workerManager`** - Cloudflare Workers deployment\n\nEach manager provides consistent, predictable methods that feel natural to use.\n\n## 🎓 Complete Guide\n\n### Account Setup\n\n```typescript\nimport { CloudflareAccount } from '@apiclient.xyz/cloudflare';\n\nconst cf = new CloudflareAccount(process.env.CLOUDFLARE_API_TOKEN);\n\n// If you have multiple accounts, select one\nawait cf.preselectAccountByName('Production Account');\n```\n\n### 🌐 Zone Management\n\nZones are your domains in Cloudflare.\n\n```typescript\n// List all zones\nconst zones = await cf.zoneManager.listZones();\n\n// Find a specific zone\nconst zone = await cf.zoneManager.getZoneByName('example.com');\n\n// Get zone ID for API calls\nconst zoneId = await cf.zoneManager.getZoneId('example.com');\n\n// Create a new zone\nawait cf.zoneManager.createZone('newdomain.com');\n\n// Purge entire zone cache\nawait cf.zoneManager.purgeZone('example.com');\n\n// Work with zone objects\nif (zone?.isActive()) {\n  await zone.purgeCache();\n  await zone.purgeUrls(['https://example.com/css/app.css']);\n\n  // Development mode (bypasses cache for 3 hours)\n  await zone.enableDevelopmentMode();\n  await zone.disableDevelopmentMode();\n}\n```\n\n### 📝 DNS Records\n\nThe `recordManager` gives you complete control over DNS records.\n\n```typescript\n// List all records for a domain\nconst records = await cf.recordManager.listRecords('example.com');\n\n// Create different record types\nawait cf.recordManager.createRecord('www.example.com', 'CNAME', 'example.com', 3600);\nawait cf.recordManager.createRecord('api.example.com', 'A', '192.0.2.1', 300);\nawait cf.recordManager.createRecord('_dmarc.example.com', 'TXT', 'v=DMARC1; p=reject', 3600);\n\n// Get a specific record\nconst record = await cf.recordManager.getRecord('api.example.com', 'A');\nconsole.log(record.content); // \"192.0.2.1\"\n\n// Update or create (upsert behavior)\nawait cf.recordManager.updateRecord('api.example.com', 'A', '203.0.113.1');\n\n// Delete a record\nawait cf.recordManager.deleteRecord('old.example.com', 'A');\n\n// Clean up all records of a type (useful for wildcard cleanup)\nawait cf.recordManager.cleanRecords('example.com', 'TXT');\n```\n\n### ⚙️ Cloudflare Workers\n\nDeploy and manage serverless functions at the edge.\n\n```typescript\n// Worker code\nconst workerScript = `\naddEventListener('fetch', event => {\n  event.respondWith(handleRequest(event.request));\n});\n\nasync function handleRequest(request) {\n  return new Response('Hello from the edge!', {\n    headers: { 'content-type': 'text/plain' }\n  });\n}\n`;\n\n// Create/update a worker\nconst worker = await cf.workerManager.createWorker('my-api-worker', workerScript);\n\n// List all workers\nconst workers = await cf.workerManager.listWorkers();\n\n// Get existing worker\nconst existingWorker = await cf.workerManager.getWorker('my-api-worker');\n\n// Set up routes\nawait worker.setRoutes([\n  { zoneName: 'example.com', pattern: 'api.example.com/*' },\n  { zoneName: 'example.com', pattern: 'example.com/api/*' }\n]);\n\n// Check worker routes\nawait worker.listRoutes();\nconsole.log(worker.routes); // Array of routes\n\n// Update worker script\nawait worker.updateScript(updatedWorkerScript);\n\n// Delete worker\nawait worker.delete();\n// or\nawait cf.workerManager.deleteWorker('my-api-worker');\n```\n\n### 🔐 ACME DNS Challenges (Let's Encrypt)\n\nUse the `ConvenientDnsProvider` adapter for certificate automation.\n\n```typescript\nconst dnsProvider = cf.getConvenientDnsProvider();\n\n// Set DNS challenge\nawait dnsProvider.acmeSetDnsChallenge({\n  hostName: '_acme-challenge.example.com',\n  challenge: 'your-validation-token'\n});\n\n// Remove challenge after validation\nawait dnsProvider.acmeRemoveDnsChallenge({\n  hostName: '_acme-challenge.example.com',\n  challenge: 'your-validation-token'\n});\n```\n\n### 🔌 Third-Party Module Integration\n\nIf you're using a framework or library that expects `IConvenientDnsProvider`, use the adapter:\n\n```typescript\nimport { CloudflareAccount } from '@apiclient.xyz/cloudflare';\n\nconst cf = new CloudflareAccount(process.env.CLOUDFLARE_API_TOKEN);\nconst dnsProvider = cf.getConvenientDnsProvider();\n\n// Now pass this to any library expecting IConvenientDnsProvider\nawait someFramework.setDnsProvider(dnsProvider);\n```\n\n## 🎯 Real-World Example\n\nHere's a complete example showing a typical deployment workflow:\n\n```typescript\nimport { CloudflareAccount } from '@apiclient.xyz/cloudflare';\n\nasync function deployApplication() {\n  const cf = new CloudflareAccount(process.env.CLOUDFLARE_API_TOKEN);\n  await cf.preselectAccountByName('Production');\n\n  // 1. Set up DNS\n  console.log('📝 Configuring DNS...');\n  await cf.recordManager.createRecord('app.example.com', 'A', '192.0.2.10');\n  await cf.recordManager.createRecord('www.example.com', 'CNAME', 'example.com');\n\n  // 2. Deploy API worker\n  console.log('⚙️ Deploying API worker...');\n  const apiWorker = await cf.workerManager.createWorker('api-handler', `\n    addEventListener('fetch', event => {\n      const response = new Response(JSON.stringify({ status: 'ok' }), {\n        headers: { 'content-type': 'application/json' }\n      });\n      event.respondWith(response);\n    });\n  `);\n\n  await apiWorker.setRoutes([\n    { zoneName: 'example.com', pattern: 'api.example.com/*' }\n  ]);\n\n  // 3. Configure security headers worker\n  console.log('🛡️ Setting up security...');\n  const securityWorker = await cf.workerManager.createWorker('security-headers', `\n    addEventListener('fetch', event => {\n      event.respondWith(addSecurityHeaders(event.request));\n    });\n\n    async function addSecurityHeaders(request) {\n      const response = await fetch(request);\n      const newHeaders = new Headers(response.headers);\n      newHeaders.set('X-Frame-Options', 'DENY');\n      newHeaders.set('X-Content-Type-Options', 'nosniff');\n\n      return new Response(response.body, {\n        status: response.status,\n        headers: newHeaders\n      });\n    }\n  `);\n\n  await securityWorker.setRoutes([\n    { zoneName: 'example.com', pattern: 'example.com/*' }\n  ]);\n\n  // 4. Verify and purge cache\n  console.log('🔄 Purging cache...');\n  const zone = await cf.zoneManager.getZoneByName('example.com');\n  if (!zone) throw new Error('Cloudflare zone example.com was not found');\n  await zone.purgeCache();\n\n  console.log('✅ Deployment complete!');\n}\n\ndeployApplication().catch(console.error);\n```\n\n## 📖 API Reference\n\n### CloudflareAccount\n\nMain entry point for all operations.\n\n```typescript\nclass CloudflareAccount {\n  constructor(apiToken: string)\n\n  // Managers\n  readonly recordManager: RecordManager\n  readonly zoneManager: ZoneManager\n  readonly workerManager: WorkerManager\n\n  // Methods\n  async preselectAccountByName(name: string): Promise<void>\n  getConvenientDnsProvider(): ConvenientDnsProvider\n\n  // Official Cloudflare SDK client (for advanced use)\n  readonly apiAccount: Cloudflare\n}\n```\n\n### RecordManager\n\nDNS record management with clean, predictable methods.\n\n```typescript\nclass RecordManager {\n  async listRecords(domain: string): Promise<CloudflareRecord[]>\n  async getRecord(domain: string, type: string): Promise<CloudflareRecord | undefined>\n  async createRecord(domain: string, type: string, content: string, ttl?: number): Promise<CloudflareRecord>\n  async updateRecord(domain: string, type: string, content: string, ttl?: number): Promise<CloudflareRecord>\n  async deleteRecord(domain: string, type: string): Promise<void>\n  async cleanRecords(domain: string, type: string): Promise<void>\n}\n```\n\n### ZoneManager\n\nZone (domain) management operations.\n\n```typescript\nclass ZoneManager {\n  async listZones(name?: string): Promise<CloudflareZone[]>\n  async getZoneById(id: string): Promise<CloudflareZone>\n  async getZoneByName(name: string): Promise<CloudflareZone | undefined>\n  async getZoneId(domain: string): Promise<string>\n  async createZone(name: string): Promise<CloudflareZone | undefined>\n  async deleteZone(id: string): Promise<boolean>\n  async purgeZone(domain: string): Promise<void>\n}\n```\n\n### CloudflareZone\n\nZone instance with convenience methods.\n\n```typescript\nclass CloudflareZone {\n  readonly id: string\n  readonly name: string\n  readonly status: string\n\n  async purgeCache(): Promise<boolean>\n  async purgeUrls(urls: string[]): Promise<boolean>\n  isActive(): boolean\n  isUsingCloudflareNameservers(): boolean\n  async enableDevelopmentMode(): Promise<CloudflareZone>\n  async disableDevelopmentMode(): Promise<CloudflareZone>\n}\n```\n\n### WorkerManager\n\nCloudflare Workers deployment and management.\n\n```typescript\nclass WorkerManager {\n  async listWorkers(): Promise<unknown[]>\n  async getWorker(name: string): Promise<CloudflareWorker | undefined>\n  async createWorker(name: string, script: string): Promise<CloudflareWorker>\n  async deleteWorker(name: string): Promise<boolean>\n}\n```\n\n### CloudflareWorker\n\nWorker instance for route management and updates.\n\n```typescript\nclass CloudflareWorker {\n  readonly id: string\n  readonly script: string\n  readonly routes: IWorkerRoute[]\n\n  async listRoutes(): Promise<void>\n  async setRoutes(routes: IWorkerRouteDefinition[]): Promise<void>\n  async updateScript(script: string): Promise<CloudflareWorker>\n  async delete(): Promise<boolean>\n}\n\ninterface IWorkerRouteDefinition {\n  zoneName: string\n  pattern: string\n}\n```\n\n### ConvenientDnsProvider\n\nAdapter for third-party modules requiring `IConvenientDnsProvider`.\n\n```typescript\nclass ConvenientDnsProvider implements IConvenientDnsProvider {\n  async createRecord(domain: string, type: string, content: string, ttl?: number): Promise<any>\n  async updateRecord(domain: string, type: string, content: string, ttl?: number): Promise<any>\n  async removeRecord(domain: string, type: string): Promise<any>\n  async getRecord(domain: string, type: string): Promise<any | undefined>\n  async listRecords(domain: string): Promise<any[]>\n  async cleanRecord(domain: string, type: string): Promise<void>\n  async isDomainSupported(domain: string): Promise<boolean>\n  async acmeSetDnsChallenge(challenge: DnsChallenge): Promise<void>\n  async acmeRemoveDnsChallenge(challenge: DnsChallenge): Promise<void>\n}\n```\n\n## 🔄 Migration from 6.x\n\nVersion 7.0 introduces a cleaner architecture while maintaining **full backward compatibility**.\n\n### What Changed\n\n✅ **New manager-based API** - Clean, logical organization\n✅ **Consistent naming** - All list operations use `list*()`\n✅ **IConvenientDnsProvider support** - Better third-party integration\n⚠️ **Deprecated `convenience` namespace** - Still works, but use managers instead\n\n### Migration Examples\n\n```typescript\n// ❌ Old (deprecated but still works)\nawait cf.convenience.createRecord('example.com', 'A', '1.2.3.4');\nawait cf.convenience.listZones();\nawait cf.workerManager.listWorkerScripts();\nawait worker.getRoutes();\n\n// ✅ New (recommended)\nawait cf.recordManager.createRecord('example.com', 'A', '1.2.3.4');\nawait cf.zoneManager.listZones();\nawait cf.workerManager.listWorkers();\nawait worker.listRoutes();\n```\n\n**No Breaking Changes**: Your existing code will continue to work. The old `convenience` namespace methods now show deprecation warnings in TypeScript with clear migration paths.\n\n## 🛠️ Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Build\npnpm build\n\n# Run tests\npnpm test\n```\n\n## 📝 TypeScript Configuration\n\nThis library is written in TypeScript and provides complete type definitions. No `@types` package needed!\n\n```typescript\nimport { CloudflareAccount, CloudflareZone, CloudflareRecord } from '@apiclient.xyz/cloudflare';\n\n// Full type inference and autocompletion\nconst cf = new CloudflareAccount(token);\nconst zones: CloudflareZone[] = await cf.zoneManager.listZones();\nconst record: CloudflareRecord = await cf.recordManager.createRecord(/* ... */);\n```\n\n## 🤔 FAQ\n\n**Q: Can I use this with the official Cloudflare SDK?**\nA: Yes! The library wraps the official SDK. You can access it directly via `cfAccount.apiAccount` for advanced operations.\n\n**Q: Does this support Cloudflare Workers KV, R2, D1?**\nA: Currently focuses on zones, DNS, and Workers. Additional features coming in future releases.\n\n**Q: How do I handle errors?**\nA: Provider failures from zone/record listing and composed record operations are thrown rather than converted into empty or missing results. Some mutation helpers retain the boolean or `undefined` result documented in their signatures. Wrap provider-dependent calls in `try`/`catch`.\n\n```typescript\ntry {\n  await cf.recordManager.createRecord('example.com', 'A', 'invalid-ip');\n} catch (error: unknown) {\n  console.error('Failed to create record:', error instanceof Error ? error.message : String(error));\n}\n```\n\n**Q: Is this production-ready?**\nA: Absolutely! Used in production environments. Comprehensive error handling and logging built-in.\n\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the repository [license](license) file.\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH<br>\nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n","readmeFilename":""}