{"_id":"@dictu/nextjs-redis-sentinel-cache-handler","_rev":"2-4e1c2a7793dab83f80a7fbd2f1042163","name":"@dictu/nextjs-redis-sentinel-cache-handler","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dictu/nextjs-redis-sentinel-cache-handler","version":"0.1.0","keywords":["nextjs","cache-handler","redis","ioredis","sentinel","isr","rijksoverheid"],"license":"EUPL-1.2","_id":"@dictu/nextjs-redis-sentinel-cache-handler@0.1.0","maintainers":[{"name":"dictu-admin","email":"drupalbeheer@dictu.nl"},{"name":"rikkert86","email":"rikkertsteenbergen@gmail.com"}],"homepage":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler#readme","bugs":{"url":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler/issues"},"dist":{"shasum":"13c0508b76a54809db24073265561a9d13b80514","tarball":"https://registry.npmjs.org/@dictu/nextjs-redis-sentinel-cache-handler/-/nextjs-redis-sentinel-cache-handler-0.1.0.tgz","fileCount":8,"integrity":"sha512-k0o2UOyA2lsMxKw2OUgn6K0GEbYreVq2gbrMKA19zVFe1zibE730/3zsqRD/Qe5kMaUlQex3cIHCbewOGUCVHQ==","signatures":[{"sig":"MEUCIQCj8kanQTlzctl0RN7EngcuUbCYZEdi2CxMQhH3dbptVwIgdRURuUvOL7Ez9dGEObgVhTrC+wHT+3nx7ybe9RM4HQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dictu%2fnextjs-redis-sentinel-cache-handler@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158205},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"25dc5fc19f9eecdd39f04f16d46ce75435bd2adc","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"tsup"},"_npmUser":{"name":"dictu-admin","email":"drupalbeheer@dictu.nl"},"repository":{"url":"git+https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler.git","type":"git"},"_npmVersion":"10.8.2","description":"Next.js cache handler backed by ioredis with Redis Sentinel support.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","ioredis":"^5.10.0","typescript":"^5.9.3","@types/node":"^25.6.0"},"peerDependencies":{"next":">=14.0.0","ioredis":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs-redis-sentinel-cache-handler_0.1.0_1776349614089_0.8045307066867278","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dictu/nextjs-redis-sentinel-cache-handler","version":"0.1.1","description":"Next.js cache handler backed by ioredis with Redis Sentinel support.","repository":{"type":"git","url":"git+https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler.git"},"homepage":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler#readme","bugs":{"url":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler/issues"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.cjs","import":"./dist/index.js"}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","format":"prettier --write .","format:check":"prettier --check .","prepublishOnly":"tsup"},"engines":{"node":">=18"},"peerDependencies":{"ioredis":">=5.0.0","next":">=14.0.0"},"devDependencies":{"@types/node":"^25.6.0","ioredis":"^5.10.0","prettier":"^3.4.2","tsup":"^8.5.1","typescript":"^5.9.3"},"license":"EUPL-1.2","keywords":["nextjs","cache-handler","redis","ioredis","sentinel","isr","rijksoverheid"],"_id":"@dictu/nextjs-redis-sentinel-cache-handler@0.1.1","gitHead":"44ecccb5de114ba42d4d2ead5ff5367313d04008","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-6H+pQpM14cSonfSvU+VRJOwqV4iM48esJm4CXdwdNsl9cc5PVPCz6eizFJv4vIIl47+qWY59nhNYlLYEEHQfLg==","shasum":"1be6b1095c29697f7694d05ebdcd196b902b63ba","tarball":"https://registry.npmjs.org/@dictu/nextjs-redis-sentinel-cache-handler/-/nextjs-redis-sentinel-cache-handler-0.1.1.tgz","fileCount":8,"unpackedSize":160071,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dictu%2fnextjs-redis-sentinel-cache-handler@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGDRZO+5t3zAPngksY75gla5HytVfMml1vnvmMw89GlJAiBwonizOGuBHvm0CqQWNkGUP/S9oBrF7a7OQH7LZDqMJg=="}]},"_npmUser":{"name":"dictu-admin","email":"drupalbeheer@dictu.nl"},"directories":{},"maintainers":[{"name":"dictu-admin","email":"drupalbeheer@dictu.nl"},{"name":"rikkert86","email":"rikkertsteenbergen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nextjs-redis-sentinel-cache-handler_0.1.1_1783433830595_0.902059064353568"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T14:26:53.993Z","modified":"2026-07-07T14:17:11.074Z","0.1.0":"2026-04-16T14:26:54.276Z","0.1.1":"2026-07-07T14:17:10.756Z"},"bugs":{"url":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler/issues"},"license":"EUPL-1.2","homepage":"https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler#readme","keywords":["nextjs","cache-handler","redis","ioredis","sentinel","isr","rijksoverheid"],"repository":{"type":"git","url":"git+https://github.com/drupalgovnl/nextjs-redis-sentinel-cache-handler.git"},"description":"Next.js cache handler backed by ioredis with Redis Sentinel support.","maintainers":[{"name":"dictu-admin","email":"drupalbeheer@dictu.nl"},{"name":"rikkert86","email":"rikkertsteenbergen@gmail.com"}],"readme":"# `@dictu/nextjs-redis-sentinel-cache-handler`\n\nNext.js cache handler backed by `ioredis`, with support for Redis Sentinel, direct Redis connections, tag revalidation, replica reads, and a filesystem fallback when Redis is unavailable.\n\n## Features\n\n- Redis Sentinel support for master/replica setups\n- Direct Redis mode for simpler deployments\n- Filesystem fallback when Redis is unavailable\n- Tag-based invalidation via `revalidateTag()`\n- Circuit breaker to avoid repeated failures during Redis outages\n\n## Install\n\n```bash\nnpm install @dictu/nextjs-redis-sentinel-cache-handler ioredis\n```\n\n`next` is a peer dependency and is expected to already be present in your Next.js app.\n\n## Usage\n\nConfigure your Next.js app to use the package as its cache handler:\n\n```js\n// next.config.js\nmodule.exports = {\n  cacheHandler: require.resolve('@dictu/nextjs-redis-sentinel-cache-handler'),\n  cacheMaxMemorySize: 0,\n}\n```\n\n## Configuration\n\n### Sentinel mode\n\n```bash\nREDIS_SENTINEL_URL=redis://sentinel-1:26379,redis://sentinel-2:26379,redis://sentinel-3:26379\nREDIS_SENTINEL_MASTER_NAME=myprimary\nREDIS_PASSWORD=your-password\nREDIS_CACHE_PREFIX=cache:\nREDIS_CACHE_DEBUG_LEVEL=0\nREDIS_ENABLE_AUTOPIPELINING=0\n```\n\n### Direct Redis mode\n\n```bash\nREDIS_URL=redis://redis-host:6379\nREDIS_PASSWORD=your-password\nREDIS_CACHE_PREFIX=cache:\nREDIS_CACHE_DEBUG_LEVEL=0\n```\n\n## Environment variables\n\n| Variable                      | Required      | Description                                              |\n| ----------------------------- | ------------- | -------------------------------------------------------- |\n| `REDIS_SENTINEL_URL`          | Sentinel mode | Comma-separated Redis Sentinel URLs.                     |\n| `REDIS_SENTINEL_MASTER_NAME`  | No            | Sentinel master name. Defaults to `myprimary`.           |\n| `REDIS_URL`                   | Direct mode   | Direct Redis connection URL.                             |\n| `REDIS_PASSWORD`              | No            | Password used for Redis and Sentinel.                    |\n| `REDIS_CACHE_PREFIX`          | No            | Key prefix. Defaults to `cache:`.                        |\n| `REDIS_CACHE_DEBUG_LEVEL`     | No            | `0` = silent, `1` = errors, `2` = warnings, `3` = debug. |\n| `REDIS_ENABLE_AUTOPIPELINING` | No            | `0` = disabled, `1` = enabled                            |\n\nUse either Sentinel mode or direct mode. If neither `REDIS_SENTINEL_URL` nor `REDIS_URL` is configured, the handler will fall back to the Next.js filesystem cache only.\n\n## Development\n\n```bash\nnpm install\nnpm run typecheck\nnpm run build\n```\n\n## License\n\nEUPL-1.2\n","readmeFilename":"README.md"}