@leejpsd/nextjs-cache-handler 0.4.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +16 -12
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`199d7d8`](https://github.com/leejpsd/nextjs-cache-handler/commit/199d7d853c5a57973d344066b495bd8b00417560) Thanks [@leejpsd](https://github.com/leejpsd)! - Docs: describe the 24h staging run and the Redis-reboot drill as separate checks in the README.
|
|
8
|
+
|
|
9
|
+
## 1.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- [`3c064b5`](https://github.com/leejpsd/nextjs-cache-handler/commit/3c064b549778833a85e817885ff9fd6dde85d66e) Thanks [@leejpsd](https://github.com/leejpsd)! - 1.0 — the public API is now stable under semver.
|
|
14
|
+
|
|
15
|
+
Nothing changes for existing 0.4.x users: there are no breaking changes in this release. The version bump is a commitment, not a rewrite. From here, anything that would break a working setup waits for 2.0.
|
|
16
|
+
|
|
17
|
+
What that commitment covers:
|
|
18
|
+
- The eight entry points and everything they export, all of which are now documented in [`docs/api.md`](./docs/api.md) — including the SWR helpers (`partitionEntry`, `shouldServeStale`) that had been exported since 0.1 without being written down.
|
|
19
|
+
- `CacheHandlerOptions` and its twelve options.
|
|
20
|
+
- Redis key shapes and the tag-marker wire format, so mixed-version fleets stay readable in both directions during a rolling deploy.
|
|
21
|
+
- Metric event names.
|
|
22
|
+
|
|
23
|
+
Why now: the handler has been running against a real multi-instance deployment (24h live-traffic soak, plus a Redis-reboot drill with zero 5xx), both cache interfaces are exercised end-to-end against Next.js 16.3 stable, and the tag-invalidation semantics were re-derived from the Next.js source and corrected in 0.4.2. The remaining roadmap items (Vercel KV / Upstash adapters, `'use cache: remote'` multi-tier, a `neshClassicCache` equivalent) are additive and do not need a breaking change to land.
|
|
24
|
+
|
|
3
25
|
## 0.4.2
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -3,20 +3,22 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@leejpsd/nextjs-cache-handler)
|
|
4
4
|
[](./LICENSE)
|
|
5
5
|
|
|
6
|
-
> **`
|
|
6
|
+
> **`v1.0.0`** — install with
|
|
7
7
|
> `npm install @leejpsd/nextjs-cache-handler`, or wire everything with
|
|
8
|
-
> `npx nextjs-cache-handler init --yes`.
|
|
9
|
-
> AWS ECS Fargate
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
8
|
+
> `npx nextjs-cache-handler init --yes`. Validated on a staging demo
|
|
9
|
+
> deployment (AWS ECS Fargate, two instances, ElastiCache Redis): a 24h
|
|
10
|
+
> observation run on `0.1.0-rc.1` with 0 errors, and a Redis-reboot drill
|
|
11
|
+
> under ~14 req/s with zero 5xx across 2,550 requests
|
|
12
|
+
> ([`docs/staging-verification-2026-08-01.md`](./docs/staging-verification-2026-08-01.md)).
|
|
13
|
+
> Exercised end-to-end against **Next.js 16.3** (both cache interfaces).
|
|
13
14
|
>
|
|
14
15
|
> v0.4 adds: **build-output cache seeding** (first request after deploy is a
|
|
15
16
|
> HIT), **pub/sub tag propagation** (~3ms cross-instance), **Redis Cluster**
|
|
16
17
|
> e2e in CI, a **CLI** (`init` / `doctor` / `seed`), and agent-native assets
|
|
17
18
|
> (skill, rules, [MCP server](https://www.npmjs.com/package/@leejpsd/nextjs-cache-handler-mcp)).
|
|
18
|
-
> 0
|
|
19
|
-
>
|
|
19
|
+
> 1.0 freezes the public API under semver — the eight entry points, the
|
|
20
|
+
> `CacheHandlerOptions` surface, the Redis key shapes and tag-marker format,
|
|
21
|
+
> and the metric event names. Upgrading from 0.4.x needs no changes.
|
|
20
22
|
|
|
21
23
|
## 🤖 For AI agents
|
|
22
24
|
|
|
@@ -109,7 +111,7 @@ plural interface as ❌ **"Not yet supported - Help needed"**:
|
|
|
109
111
|
| Redis Sentinel | ✅ (local failover drill) | ❌ | ❌ |
|
|
110
112
|
| OpenTelemetry | ✅ built-in `/otel` emitter + `onMetric` hook | ❌ | ❌ |
|
|
111
113
|
| Reconnect strategy | ✅ exponential backoff | client-level | error-threshold restart |
|
|
112
|
-
|
|
|
114
|
+
| Staging dogfood (24h observation) | ✅ AWS ECS Fargate | not published | not published |
|
|
113
115
|
|
|
114
116
|
PR [#207](https://github.com/fortedigital/nextjs-cache-handler/pull/207) on
|
|
115
117
|
`@fortedigital` (their `cacheHandlers` attempt) was held up in review over
|
|
@@ -269,7 +271,7 @@ Full reference: [`docs/api.md`](./docs/api.md).
|
|
|
269
271
|
|
|
270
272
|
| Service | How to use | Tested? |
|
|
271
273
|
|---|---|---|
|
|
272
|
-
| **Self-hosted Redis 7+** | `{ type: "redis", url }` or `{ type: "ioredis", url }` | ✅ AWS ElastiCache 24h
|
|
274
|
+
| **Self-hosted Redis 7+** | `{ type: "redis", url }` or `{ type: "ioredis", url }` | ✅ AWS ElastiCache (staging, 24h observation) |
|
|
273
275
|
| **Redis Cluster** | `{ type: "cluster", nodes }` + `hashTag: true` | ✅ e2e-tested against a real 3-master cluster (CI); not yet load-tested at scale |
|
|
274
276
|
| **Upstash Redis** | `{ type: "redis", url: "rediss://..." }` (TLS auto-detected) | not yet validated, expected to work via the standard Redis protocol |
|
|
275
277
|
| **AWS ElastiCache (replication group)** | `{ type: "redis", url: "rediss://..." }` | ✅ reference deployment (re-verified 2026-08-01, Seoul) |
|
|
@@ -431,8 +433,10 @@ ESM and CJS dual-published, full TypeScript types, validated via
|
|
|
431
433
|
`updateTags` is hard (`updateTag()` read-your-own-writes), profile
|
|
432
434
|
durations are soft with a real hard deadline; tag-stale entries are
|
|
433
435
|
served with `revalidate: -1` instead of a backdated timestamp ✅
|
|
434
|
-
- **
|
|
435
|
-
|
|
436
|
+
- **v1.0.0** *(2026-08)* — public API frozen under semver; every export
|
|
437
|
+
documented in [`docs/api.md`](./docs/api.md) ✅
|
|
438
|
+
- **Next** — Vercel KV / Upstash adapters, `'use cache: remote'` multi-tier
|
|
439
|
+
setup, `neshClassicCache` equivalent. All additive; no 2.0 needed.
|
|
436
440
|
|
|
437
441
|
---
|
|
438
442
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leejpsd/nextjs-cache-handler",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Redis cache handler for Next.js 15/16 — the only one shipping both cacheHandler (ISR) and cacheHandlers ('use cache') with built-in compression, Redis Sentinel, and OpenTelemetry. Production-validated on multi-instance AWS: reconnect backoff, cross-instance tag invalidation, zero-downtime Redis failover.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"next",
|