Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
"registry": "https://registry.npmjs.org/"
}
},
"version": "16.2.0-canary.13"
"version": "16.2.0-canary.14"
}
2 changes: 1 addition & 1 deletion packages/create-next-app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-next-app",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"keywords": [
"react",
"next",
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "eslint-config-next",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "ESLint configuration used by Next.js.",
"license": "MIT",
"repository": {
Expand All @@ -12,7 +12,7 @@
"dist"
],
"dependencies": {
"@next/eslint-plugin-next": "16.2.0-canary.13",
"@next/eslint-plugin-next": "16.2.0-canary.14",
"eslint-import-resolver-node": "^0.3.6",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.32.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-internal/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@next/eslint-plugin-internal",
"private": true,
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "ESLint plugin for working on Next.js.",
"exports": {
".": "./src/eslint-plugin-internal.js"
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/eslint-plugin-next",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "ESLint plugin for Next.js.",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/font/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@next/font",
"private": true,
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"repository": {
"url": "vercel/next.js",
"directory": "packages/font"
Expand Down
2 changes: 1 addition & 1 deletion packages/next-bundle-analyzer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/bundle-analyzer",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"main": "index.js",
"types": "index.d.ts",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-codemod/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/codemod",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"license": "MIT",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-env/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/env",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"keywords": [
"react",
"next",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-mdx/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/mdx",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-storybook/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-storybook",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"repository": {
"url": "vercel/next.js",
"directory": "packages/next-plugin-storybook"
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-module/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-module",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)",
"main": "dist/polyfill-module.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-nomodule/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-nomodule",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "A polyfill for non-dead, nomodule browsers.",
"main": "dist/polyfill-nomodule.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-routing/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/routing",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"keywords": [
"react",
"next",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-rspack/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "next-rspack",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"repository": {
"url": "vercel/next.js",
"directory": "packages/next-rspack"
Expand Down
2 changes: 1 addition & 1 deletion packages/next-swc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/swc",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"private": true,
"files": [
"native/"
Expand Down
14 changes: 7 additions & 7 deletions packages/next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "next",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "The React Framework",
"main": "./dist/server/next.js",
"license": "MIT",
Expand Down Expand Up @@ -97,7 +97,7 @@
]
},
"dependencies": {
"@next/env": "16.2.0-canary.13",
"@next/env": "16.2.0-canary.14",
"@swc/helpers": "0.5.15",
"baseline-browser-mapping": "^2.8.3",
"caniuse-lite": "^1.0.30001579",
Expand Down Expand Up @@ -162,11 +162,11 @@
"@modelcontextprotocol/sdk": "1.18.1",
"@mswjs/interceptors": "0.23.0",
"@napi-rs/triples": "1.2.0",
"@next/font": "16.2.0-canary.13",
"@next/polyfill-module": "16.2.0-canary.13",
"@next/polyfill-nomodule": "16.2.0-canary.13",
"@next/react-refresh-utils": "16.2.0-canary.13",
"@next/swc": "16.2.0-canary.13",
"@next/font": "16.2.0-canary.14",
"@next/polyfill-module": "16.2.0-canary.14",
"@next/polyfill-nomodule": "16.2.0-canary.14",
"@next/react-refresh-utils": "16.2.0-canary.14",
"@next/swc": "16.2.0-canary.14",
"@opentelemetry/api": "1.6.0",
"@playwright/test": "1.51.1",
"@rspack/core": "1.6.7",
Expand Down
5 changes: 2 additions & 3 deletions packages/next/src/server/response-cache/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,9 @@ const KEY_SEPARATOR = '\0'

/**
* Sentinel value used for TTL-based cache entries (when invocationID is undefined).
* Uses KEY_SEPARATOR prefix to guarantee uniqueness since null bytes cannot appear
* in HTTP headers (RFC 7230), making collision with real invocation IDs impossible.
* Chosen to be a clearly reserved marker for internal cache keys.
*/
const TTL_SENTINEL = `${KEY_SEPARATOR}ttl`
const TTL_SENTINEL = '__ttl_sentinel__'

/**
* Entry stored in the LRU cache.
Expand Down
2 changes: 1 addition & 1 deletion packages/react-refresh-utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/react-refresh-utils",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"description": "An experimental package providing utilities for React Refresh.",
"repository": {
"url": "vercel/next.js",
Expand Down
4 changes: 2 additions & 2 deletions packages/third-parties/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/third-parties",
"version": "16.2.0-canary.13",
"version": "16.2.0-canary.14",
"repository": {
"url": "vercel/next.js",
"directory": "packages/third-parties"
Expand All @@ -26,7 +26,7 @@
"third-party-capital": "1.0.20"
},
"devDependencies": {
"next": "16.2.0-canary.13",
"next": "16.2.0-canary.14",
"outdent": "0.8.0",
"prettier": "2.5.1",
"typescript": "5.9.2"
Expand Down
16 changes: 8 additions & 8 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 13 additions & 8 deletions turbopack/crates/turbo-persistence/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ The hashes are sorted.

#### Key Block

- 1 byte block type (1: key block)
- 1 byte block type (1: key block with hash, 2: key block without hash)
- 3 bytes entry count
- foreach entry
- 1 byte type
Expand All @@ -94,23 +94,30 @@ The hashes are sorted.

A Key block contains n keys, which specify n key value pairs.

The block type determines whether the key hash is stored per entry:

- Block type 1 (with hash): Full 8-byte hash stored per entry
- Block type 2 (no hash): No hash stored (for keys ≤ 32 bytes)

During lookup, if block type is 2, the full hash is recomputed from the key data.

Depending on the `type` field entry has a different format:

- 0: normal key (small value)
- 8 bytes key hash
- 8 bytes key hash (if block type 1)
- key data
- 2 byte block index
- 2 bytes size
- 4 bytes position in block
- 1: blob reference
- 8 bytes key hash
- 8 bytes key hash (if block type 1)
- key data
- 4 bytes sequence number
- 2: deleted key / tombstone (no data)
- 8 bytes key hash
- 8 bytes key hash (if block type 1)
- key data
- 3: normal key (medium sized value)
- 8 bytes key hash
- 8 bytes key hash (if block type 1)
- key data
- 2 byte block index
- 7: merge key (future)
Expand All @@ -119,14 +126,12 @@ Depending on the `type` field entry has a different format:
- 3 bytes size
- 4 bytes position in block
- 8..255: inlined key (future)
- 8 bytes key hash
- 8 bytes key hash (if block type 1)
- key data
- type - 8 bytes value data

The entries are sorted by key hash and key.

TODO: 8 bytes key hash is a bit inefficient for small keys.

#### Value Block

- no header, all bytes are data referenced by other blocks
Expand Down
Loading
Loading