Releases: opennextjs/opennextjs-cloudflare
Release list
@opennextjs/cloudflare@1.20.2
Patch Changes
-
#1312
38ea40bThanks @james-elicx! - fix: handle encoded middleware and cache paths safelyUpgrade
@opennextjs/awsto prevent encoded paths from bypassing middleware matching or selecting partially decoded cache entries. -
#1313
766eee9Thanks @james-elicx! - chore: bump the Next.js peer dependency to 15.5.21 / 16.2.11 -
#1306
97ef330Thanks @james-elicx! - fix: normalize Windows paths when patching the Turbopack runtimeEnsure traced Turbopack chunks are included in the generated runtime loaders when builds run on Windows.
@opennextjs/cloudflare@1.20.1
Patch Changes
-
#1297
780a21cThanks @james-elicx! - fix: disable response compression for skew protection API requestsAvoid truncated compressed Cloudflare API responses causing worker version lookups to fail during deployment.
@opennextjs/cloudflare@1.20.0
Minor Changes
-
#1290
46c50fcThanks @james-elicx! - feature: add opt-in batch upload viarclonefor fast R2 cache population.Key Changes:
-
Optional
rcloneUpload: Install the optionalrclone.jspeer dependency and pass--rcloneto opt in torclonebased batch uploads.R2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEYCF_ACCOUNT_ID
-
Explicit Opt-in: The existing worker-based population path remains the default.
rcloneis only loaded when--rcloneis used for a remote cache. -
Clear Errors: The CLI reports missing credentials or a missing
rclone.jsinstallation when the option is used.
Usage:
Install
rclone.js, then add the secrets in a.env/.dev.varsfile in your project root:pnpm add rclone.js pnpm approve-builds # select rclone.js pnpm rebuild rclone.js R2_ACCESS_KEY_ID=your_key R2_SECRET_ACCESS_KEY=your_secret CF_ACCOUNT_ID=your_account opennextjs-cloudflare deploy --rcloneYou can also set the environment variables for CI builds.
Notes:
- You can follow documentation https://developers.cloudflare.com/r2/api/tokens/ for creating API tokens with appropriate permissions for R2 access.
rclonemay not be supported on all platforms.
-
Patch Changes
-
#1289
eef243fThanks @thatssoheil! - fix: spread SQLite bindings in BucketCachePurge alarm so tag purges runBucketCachePurge.alarm()passed its tag bindings toSqlStorage.execas a
single array.exec(query, ...bindings)is variadic over its bindings, so for a
multi-tagDELETE ... WHERE tag IN (?, ?, …)the binding count (1) disagreed
with the placeholder count (N) andexecthrew "Wrong number of parameter
bindings" on every flush. On-demandrevalidateTagpurges therefore never
reached the Cloudflare cache, and withbypassTagCacheOnCacheHitenabled pages
served stale until the ISR TTL expired.Spread the bindings, normalise the
INSERTto the same variadic form, and
tighten the drain loop's guard fromwhile (tags.length >= 0)(which never
exits via the condition) towhile (tags.length > 0). -
#1291
51439b1Thanks @james-elicx! - fix: disable response compression when provisioning R2 cache bucketsAvoid truncated compressed Cloudflare API responses causing R2 cache bucket provisioning to fail.
@opennextjs/cloudflare@1.19.11
Patch Changes
-
#1270
802047eThanks @alex-all3dp! - fix: skip non-upload-triggered worker versions when building skew-protection deployment mappingWorker versions created by metadata-only operations (e.g. Cloudflare API secret updates) do not include the static assets bundle. Previously, such versions could become the "latest" target in the skew-protection mapping, causing
/_next/static/*requests to return 404 on past deployments. Versions are now filtered to those withworkers/triggered_byin{upload, version_upload}.Closes #1230
@opennextjs/cloudflare@1.19.10
Patch Changes
-
#1261
780dd4fThanks @vicb! - Allow populating R2 when the domain is protected by Cloudflare AccessYou need to:
- create a "Service Auth" policy for "open-next-cache-populate..workers.dev"
- add an "Include" rule for "Any Access Service Token" or for a given service token ("Service Token")
- populate the env variables CLOUDFLARE_ACCESS_CLIENT_ID and CLOUDFLARE_ACCESS_CLIENT_SECRET
@opennextjs/cloudflare@1.19.9
Patch Changes
- #1259
3b35c6eThanks @vicb! - chore: bump Next.js to 15.5.18 / 16.2.6 and @opennextjs/aws to 4.0.2
@opennextjs/cloudflare@1.19.8
Patch Changes
-
#1256
9696cd0Thanks @vicb! - bump@opennextjs/awsto 4.0.1See details at https://github.com/opennextjs/opennextjs-aws/releases/tag/v4.0.1
@opennextjs/cloudflare@1.19.7
@opennextjs/cloudflare@1.19.6
Patch Changes
-
#1246
5d2014fThanks @vicb! - fix: do not log expected expected D1 errorsThe
populateCachecommand adds columns to the D1 tag cache for SWR support.
This is required for older deployments made before those column were added.
SQLite errors when the columns exist and we should not log those errors. -
#1244
01babceThanks @tahmid-23! - fix: drop streaming wasm calls in Turbopack runtimeTurbopack replaces wasm imports using
WebAssembly.compileStreamingand
WebAssembly.instantiateStreaming. These functions are not available in
the workerd runtime.We add a helper
loadWasmChunkFn. This is a generated switch statement
that contains an import for each wasm chunk. We use static strings for
all imports to ensure that all necessary wasm chunks will be detected
and bundled for the final build.The Turbopack patcher replaces the invocations in
loadWebAssemblyand
loadWebAssemblyModule, using the synchronousWebAssembly.instantiate
and redirecting toloadWasmChunkFn. -
#1243
1c815deThanks @tahmid-23! - fix: detect object-valued conditionsThe pre-existing build condition transform logic had subtle errors:
- failed to recognize object conditions
(e.g. "workerd": { "import": ..., "require": ... }) - sibling pruning only applied to strings, not objects
Now, we fully support object conditions. Furthermore, we prune siblings,
unless its subtree also contains the build condition. - failed to recognize object conditions