{"_id":"@agencyhandy/tunneler","_rev":"9-712026435438c736e7ec2d990a92f6e4","name":"@agencyhandy/tunneler","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@agencyhandy/tunneler","version":"0.1.0","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.1.0","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"c20509e0a45a37c113a410334d12e35d87369d35","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.1.0.tgz","fileCount":3,"integrity":"sha512-/vVdZdS0UUefWOa2z14MpgMcgmHoOQuJcFzBKqfOppv9t6w0xH6hP3uxEwUIgXYs3jZKxXxZyGdPVfWGkbHCrw==","signatures":[{"sig":"MEYCIQC0YdEQOmc4Xen+APCuMUPKvMTyMOhjgIM4KSgTVJ3VDwIhAIwk1CdKRXphnOzhIgb79I95CDj53UyV7VXHOv+sEiXT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5827},"gitHead":"3ca9ee0447f2da89b5979dc525cc49cd4728b75a","scripts":{"build":"tsc","start":"ts-node bin/index.ts"},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.x","typescript":"^5.x","@types/node":"^24.0.12"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.1.0_1752218953400_0.4603246481376222","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agencyhandy/tunneler","version":"0.2.0","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.2.0","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"ac8a2057cc26eae63b9cb3ae11591236b9146d23","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.2.0.tgz","fileCount":6,"integrity":"sha512-KTtqPzhtFJ3GlUFfzNdC0qCzPt9ucOT2Oz0VI3+iXXvJ4iZ7xidMiPfS75I4ECcJsthDQvN+xxvdqpmZYC76iQ==","signatures":[{"sig":"MEUCIGwrj7SYLQXj9xcr+POAu3QOBnuE7LIHFouLXhuFiFvNAiEAms4lVM95LHRNe0I6FPD63WP0bSp/oj32ksJ0qxvLLlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11373},"gitHead":"a8e7dc2341fa8902e2a5aff8c3ed4b2ba742176f","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.2.0_1752411484485_0.6626218249142077","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@agencyhandy/tunneler","version":"0.2.1","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.2.1","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"bb0ed59e61a313bc9c2e9325e01ca187b45f8a1c","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.2.1.tgz","fileCount":6,"integrity":"sha512-0LMLnJEYvFlfp4i1kqsqMVoB/c0FXS/2mfAxNq9QzOhejHJ4rQnVmBQRf2J29fMXEX0ioBPy3qs/boPZiwe8OA==","signatures":[{"sig":"MEUCIGe4JAqyleNMJ4oCfJ4/W2XeV323rV5VONLEdAvpypLLAiEAuN6oi+vZnz+MvM6jGMpLulKFRF9d2cZyVpm1SiYXWRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11818},"gitHead":"36deea1d077564308c4b1f4b7819792fd7d10e5b","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.2.1_1752411809486_0.08907370294869787","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@agencyhandy/tunneler","version":"0.2.2","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.2.2","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"1f786f61472c0c2ba3182e5af414d9f3ee9603d3","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.2.2.tgz","fileCount":5,"integrity":"sha512-LXz9ZH9+x7jezI702nUilJG4FgSLmC3DyyPUZMzpI1rpoUpKN/ssSxZddHQPXz9Sk0SZdXJdnxFILvUQrYveYA==","signatures":[{"sig":"MEUCIQC/7FceRs4T1yHq8mPWRPhYJuhIqKGCgpioowXwWcNq3wIgelrCvAGzxGN8vP53zU+AzNOMO3v+3fyGrKr8WZKBXoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11041},"gitHead":"86d77f3a0d9d9e049dc002cc3a40b5dd28d66c66","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.2.2_1752412198300_0.34057747769369207","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@agencyhandy/tunneler","version":"0.2.3","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.2.3","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"21dd568bdc7e1bded5230121f5fd18f637a63b5f","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.2.3.tgz","fileCount":4,"integrity":"sha512-oyM+3C4uby2KjdPX/mtKcNzJST75MNeSNOLIjTSs6CsLk7cnCULvEeHs+c4Qn+zdCAHEPuM/JZ0zJppNGKnKhA==","signatures":[{"sig":"MEUCIHXs1i2nVNuwWqVihq9TZSQGyUZSeaUXtHor99y/dJnYAiEAnMF4/abZ6f5Fzh+x6Rzxtqmy3K3R7XzWET/WhHj/61Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9756},"gitHead":"35b02616cfa7b8b55c5d5359a11470d572019cf6","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.2.3_1752412475247_0.32348136163770946","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@agencyhandy/tunneler","version":"0.2.4","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.2.4","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"6a6a4921e772ed9a3f58f60fd3e7322fdfa05e57","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.2.4.tgz","fileCount":5,"integrity":"sha512-nL0Yx+WFpErmaVpmaQ9SSQ6PC2u+V4PDrzz06A45uv6sq+LL4cai/2nYjr7PhiXsHv1nvMDn6LfLftxIk0Eu7A==","signatures":[{"sig":"MEUCIHdZ96euejkM9m3RPDRMpqEOMRspdwqKf35Kum5Yr1v3AiEAvr5Jhc/e6OKXSN5kSLAD+/E7dmVJ42uZ/xtSBw3wh2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11140},"gitHead":"0acd3fc7e7437201177e468046510729f5bd33de","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.2.4_1752412847918_0.9201623065379048","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agencyhandy/tunneler","version":"0.3.0","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@agencyhandy.com"},"license":"MIT","_id":"@agencyhandy/tunneler@0.3.0","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"0b1231a4a8545d0af9ba0966ea8a261949f5a734","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.3.0.tgz","fileCount":27,"integrity":"sha512-NfqVE2Ax05S207rmZ1kHpQw670+BKgS7g0KSjdHKvlOTHLbQsrtlzjB2xB5mWC1Urz2oC5uOvBoT5gD1ls2K7Q==","signatures":[{"sig":"MEYCIQCpamaYAvRkdAsmnI98z7QIaF5gJppqgHB0YWSWZh5rYQIhAJoKKJjBMUyBRGJwNeSqpkyBIbnquPpcN7nOpywpTgt3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63562},"gitHead":"44d9bc4fd9c2713643c88e8dbff8075552fcea3b","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.3.0_1752413438469_0.6483757447984557","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@agencyhandy/tunneler","version":"0.3.1","keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@smmh.xyz"},"license":"MIT","_id":"@agencyhandy/tunneler@0.3.1","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"homepage":"https://github.com/agencyhandy/tunneler#readme","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"bin":{"tunneler":"dist/bin/index.js"},"dist":{"shasum":"21fafd0128482d862fce04b41308a9095d963be9","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.3.1.tgz","fileCount":27,"integrity":"sha512-4PTrqFdqcXa0BFWD2OS2DqAJX+rJ6d/4+qi8XVY+OwM4pg0e1H6rtIKLzEZkn+wO4GX08nSOm0cufxNFCveMkA==","signatures":[{"sig":"MEUCIQDQcg+C/PhKtsfp4yvp5TeaPF2zl6bW+oV0wlZ1QJwHSAIgOcvNiEyGPdauP5mgEGyrqR+tpLM/9PryxQU0POPsWlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63796},"gitHead":"e0b1f9efbcd2ba1a97bd2409f2b1d05023ecef6f","scripts":{"lint":"eslint . --ext .ts","build":"tsc","start":"ts-node bin/index.ts","format":"prettier --write ."},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"repository":{"url":"git+https://github.com/agencyhandy/tunneler.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","directories":{},"_nodeVersion":"22.17.0","dependencies":{"yaml":"^2.8.0","axios":"^1.10.0","chalk":"^5.x","dotenv":"^17.2.0","ps-list":"^8.1.1","inquirer":"^9.x","commander":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.4.2","eslint":"^9.31.0","ts-node":"^10.x","prettier":"^3.6.2","typescript":"^5.x","@types/node":"^24.0.12","@types/inquirer":"^9.0.8","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^7","@typescript-eslint/eslint-plugin":"^7"},"_npmOperationalInternal":{"tmp":"tmp/tunneler_0.3.1_1752485393741_0.027674404372029837","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agencyhandy/tunneler","version":"0.4.0","description":"CLI tool to manage Cloudflare tunnels and related DNS operations","bin":{"tunneler":"dist/bin/index.js"},"scripts":{"build":"tsc","start":"ts-node bin/index.ts","lint":"eslint . --ext .ts","format":"prettier --write ."},"dependencies":{"axios":"^1.10.0","chalk":"^5.x","commander":"^14.0.0","dotenv":"^17.2.0","inquirer":"^9.x","ps-list":"^8.1.1","yaml":"^2.8.0"},"devDependencies":{"@types/inquirer":"^9.0.8","@types/node":"^24.0.12","@typescript-eslint/eslint-plugin":"^7","@typescript-eslint/parser":"^7","eslint":"^9.31.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","jiti":"^2.4.2","prettier":"^3.6.2","ts-node":"^10.x","typescript":"^5.x"},"repository":{"type":"git","url":"git+https://github.com/agencyhandy/tunneler.git"},"keywords":["cloudflare","cli","tunnel","dns","devops"],"author":{"name":"S M Mahmudul Hasan","email":"hasan@smmh.xyz"},"license":"MIT","gitHead":"03eb7f58617630f433195f4c413bc06f54de760b","bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"homepage":"https://github.com/agencyhandy/tunneler#readme","_id":"@agencyhandy/tunneler@0.4.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tGuNyx6HSFlSufUWKQ5tO8IcZqN0v6jTC+2LOhHJYPxXW7H80dzPSAJLFgNHkDA73upFzI9RY9w4sQDzYdl/GA==","shasum":"ab42dfded42e29e20c09fb6cd56fe9ec94d8c36f","tarball":"https://registry.npmjs.org/@agencyhandy/tunneler/-/tunneler-0.4.0.tgz","fileCount":31,"unpackedSize":68896,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDK4plGVzUFVjKhjAcFdPs/Bw9XZw2n6l/Lh8YoLYOq6wIgetjxKZbLU0WMEq81qEOrkD7Juzk2o3eafeje8bJvGWg="}]},"_npmUser":{"name":"iamlizu","email":"he@smmahmudulhasan.com"},"directories":{},"maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tunneler_0.4.0_1753356362072_0.44829787024171"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-11T07:29:13.331Z","modified":"2025-07-24T11:26:02.461Z","0.1.0":"2025-07-11T07:29:13.569Z","0.2.0":"2025-07-13T12:58:04.673Z","0.2.1":"2025-07-13T13:03:29.661Z","0.2.2":"2025-07-13T13:09:58.495Z","0.2.3":"2025-07-13T13:14:35.426Z","0.2.4":"2025-07-13T13:20:48.118Z","0.3.0":"2025-07-13T13:30:38.660Z","0.3.1":"2025-07-14T09:29:53.929Z","0.4.0":"2025-07-24T11:26:02.251Z"},"bugs":{"url":"https://github.com/agencyhandy/tunneler/issues"},"author":{"name":"S M Mahmudul Hasan","email":"hasan@smmh.xyz"},"license":"MIT","homepage":"https://github.com/agencyhandy/tunneler#readme","keywords":["cloudflare","cli","tunnel","dns","devops"],"repository":{"type":"git","url":"git+https://github.com/agencyhandy/tunneler.git"},"description":"CLI tool to manage Cloudflare tunnels and related DNS operations","maintainers":[{"name":"iamlizu","email":"he@smmahmudulhasan.com"}],"readme":"# @agencyhandy/tunneler\n\nA CLI tool to manage Cloudflare Tunnels and DNS records without leaving your terminal.\n\n## About\n\nTunneler is not just another wrapper around cloudflared or Cloudflare's APIs. It is a genuine solution to a genuine problem: simplifying and automating the management of Cloudflare Tunnels and DNS records for developers and teams. Unlike basic wrappers, Tunneler provides a seamless, end-to-end experience for authentication, tunnel lifecycle management, DNS automation, and system service integration—all from your terminal. Whether you need to quickly expose a local service, automate ingress rules, or run tunnels as a system service, Tunneler is designed to make these workflows effortless, reliable, and secure.\n\n## Installation\n\n```bash\nnpm install -g @agencyhandy/tunneler\n```\n\n## Requirements\n\n- [cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/) must be installed and available in your PATH.\n- Node.js 16+\n\n## Environment Variables\n\nBefore using the CLI, create a **Cloudflare API token** and note your **Zone ID**.\n\n### Required Environment Variables\n\n| Variable               | Description                                           |\n| ---------------------- | ----------------------------------------------------- |\n| `CLOUDFLARE_API_TOKEN` | API Token with permissions (Zone:DNS Edit & Read, Zone:Edit & Read) |\n| `CLOUDFLARE_ZONE_ID`   | Zone ID for the domain you will create records in     |\n\n\nYou can set these variables in your shell or in a `.env` file in your working directory:\n\n```env\nCLOUDFLARE_API_TOKEN=cf_test_ABC123xyz\nCLOUDFLARE_ZONE_ID=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n```\n\n> 💡 **Tip**: `tunneler login` will prompt you to authenticate via your browser, but you still need a Zone in Cloudflare beforehand.\n\n## Usage\n\n### Authenticate with Cloudflare\n\n```bash\ntunneler login\n```\n\nThis opens a browser window to complete authentication. You must select your zone to complete setup.\n\n### Logout and Clean Up Credentials\n\n```bash\ntunneler logout\n```\n\nRemoves all local credentials and configuration. You may also want to revoke your Cloudflare API token in your dashboard.\n\n---\n\n## Tunnel Management\n\n### Create a Tunnel\n\n```bash\ntunneler tunnel create --name <tunnel-name>\n```\n\nCreates a new tunnel and saves configuration locally.\n\n### List Tunnels\n\n```bash\ntunneler tunnel list\n```\n\nShows all configured tunnels.\n\n### Delete a Tunnel\n\n```bash\ntunneler tunnel delete --name <tunnel-name>\n```\n\nDeletes a tunnel from Cloudflare and removes local configuration (with confirmation prompt).\n\n### Run a Tunnel in Foreground\n\n```bash\ntunneler tunnel run --tunnel <tunnel-name>\n```\n\nRuns the tunnel in the foreground. Leave this running to keep the tunnel active.\n\n---\n\n## Ingress Route Management\n\n### Add an Ingress Rule\n\n```bash\ntunneler route add --tunnel <tunnel-name> --hostname <hostname> --service <ip:port> [--overwrite]\n```\n\n- `--overwrite`: Overwrite existing CNAME if it exists.\n- This also creates or updates the CNAME in Cloudflare pointing to the tunnel endpoint.\n\n### Remove an Ingress Rule\n\n```bash\ntunneler route remove --tunnel <tunnel-name> --hostname <hostname>\n```\n\nRemoves both the ingress rule and the CNAME record in Cloudflare.\n\n### List Ingress Rules\n\n```bash\ntunneler route list --tunnel <tunnel-name>\n```\n\nShows all ingress rules for the tunnel.\n\n---\n\n## Tunnel as a System Service (Linux/macOS only)\n\n### Install as a Service\n\n```bash\ntunneler tunnel service install --tunnel <tunnel-name>\n```\n\nInstalls the tunnel as a system service (systemd on Linux, LaunchAgent on macOS).\n\n### Start the Service\n\n```bash\ntunneler tunnel service start --tunnel <tunnel-name>\n```\n\n### Stop the Service\n\n```bash\ntunneler tunnel service stop --tunnel <tunnel-name>\n```\n\n### Check Service Status\n\n```bash\ntunneler tunnel service status --tunnel <tunnel-name>\n```\n\n### Uninstall the Service\n\n```bash\ntunneler tunnel service uninstall --tunnel <tunnel-name> [--force]\n```\n\n- `--force`: Skip confirmation prompt.\n\n> **Note:** Service management is not supported on Windows. Use `tunneler tunnel run` to run in foreground mode on Windows.\n\n---\n\n## Examples\n\n```bash\n# Authenticate with Cloudflare\ntunneler login\n\n# Create a tunnel\ntunneler tunnel create --name my-tunnel\n\n# Add an ingress rule\ntunneler route add --tunnel my-tunnel --hostname app.example.com --service localhost:3000\n\n# Run the tunnel in foreground\ntunneler tunnel run --tunnel my-tunnel\n\n# Install as a system service (Linux/macOS)\ntunneler tunnel service install --tunnel my-tunnel\n\n# Start the service\ntunneler tunnel service start --tunnel my-tunnel\n\n# Check service status\ntunneler tunnel service status --tunnel my-tunnel\n\n# Stop the service\ntunneler tunnel service stop --tunnel my-tunnel\n\n# Uninstall the service\ntunneler tunnel service uninstall --tunnel my-tunnel --force\n\n# Remove an ingress rule\ntunneler route remove --tunnel my-tunnel --hostname app.example.com\n\n# List ingress rules\ntunneler route list --tunnel my-tunnel\n```\n\n---\n\n## Help\n\nFor detailed help on any command, run:\n\n```bash\ntunneler --help\ntunneler tunnel --help\ntunneler tunnel service --help\ntunneler route --help\n```\n\n---\n\n## Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines before submitting a pull request.\n\n---\n\n## License\n\nMIT\n\n## Maintainer\n\nS M Mahmudul Hasan  \n[hasan@smmh.xyz](mailto:hasan@smmh.xyz)  \n[GitHub: @IamLizu](https://github.com/IamLizu)\n","readmeFilename":"README.md"}