Skip to content

Commit 0dfbdf6

Browse files
Merge branch 'canary' into revert-56885-revert-56389-feat-dynamic-id
2 parents d92a18e + 975c999 commit 0dfbdf6

File tree

132 files changed

+3466
-2786
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+3466
-2786
lines changed

.github/actions/next-stats-action/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ RUN apt install unzip wget curl nano htop screen build-essential pkg-config libs
99

1010
RUN ln $(which python3) /usr/bin/python
1111

12-
RUN curl -sfLS https://install-node.vercel.app/v18.18.2 | bash -s -- -f
12+
RUN curl -sfLS https://install-node.vercel.app/v18.17.0 | bash -s -- -f
1313
RUN corepack enable
1414

1515
WORKDIR /next-stats

.github/actions/next-stats-action/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"typescript": "5.1.6"
1919
},
2020
"engines": {
21-
"node": ">=18.18.2",
21+
"node": ">=18.17.0",
2222
"pnpm": "8.9.0"
2323
},
2424
"packageManager": "[email protected]"

.github/workflows/build_and_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ jobs:
146146
group: [1, 2, 3, 4, 5]
147147
uses: ./.github/workflows/build_reusable.yml
148148
with:
149-
nodeVersion: 18.18.2
149+
nodeVersion: 18.17.0
150150
skipForDocsOnly: 'yes'
151151
afterBuild: RUST_BACKTRACE=0 NEXT_EXTERNAL_TESTS_FILTERS="$(pwd)/test/turbopack-tests-manifest.json" TURBOPACK=1 node run-tests.js --timings -g ${{ matrix.group }}/5 -c ${TEST_CONCURRENCY} --type integration
152152
secrets: inherit
@@ -211,7 +211,7 @@ jobs:
211211

212212
uses: ./.github/workflows/build_reusable.yml
213213
with:
214-
nodeVersion: 18.18.2
214+
nodeVersion: 18.17.0
215215
skipForDocsOnly: 'yes'
216216
afterBuild: node run-tests.js --timings -g ${{ matrix.group }}/12 -c ${TEST_CONCURRENCY} --type integration
217217
secrets: inherit

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pr:
3434
variables:
3535
PNPM_CACHE_FOLDER: $(Pipeline.Workspace)/.pnpm-store
3636
NEXT_TELEMETRY_DISABLED: '1'
37-
node_version: ^18.18.2
37+
node_version: ^18.17.0
3838

3939
stages:
4040
- stage: Test

docs/02-app/02-api-reference/01-components/image.mdx

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,24 @@ export default function Page() {
4040
Here's a summary of the props available for the Image Component:
4141

4242
<div style={{ overflowX: 'auto', width: '100%' }}>
43-
| Prop | Example | Type | Required |
44-
| ----------------------------------------- | ------------------------------------ | --------------- | -------- |
45-
| [`src`](#src) | `src="/profile.png"` | String | Yes |
46-
| [`width`](#width) | `width={500}` | Integer (px) | Yes |
47-
| [`height`](#height) | `height={500}` | Integer (px) | Yes |
48-
| [`alt`](#alt) | `alt="Picture of the author"` | String | Yes |
49-
| [`loader`](#loader) | `loader={imageLoader}` | Function | - |
50-
| [`fill`](#fill) | `fill={true}` | Boolean | - |
51-
| [`sizes`](#sizes) | `sizes="(max-width: 768px) 100vw"` | String | - |
52-
| [`quality`](#quality) | `quality={80}` | Integer (1-100) | - |
53-
| [`priority`](#priority) | `priority={true}` | Boolean | - |
54-
| [`placeholder`](#placeholder) | `placeholder="blur"` | String | - |
55-
| [`style`](#style) | `style={{objectFit: "contain"}}` | Object | - |
56-
| [`onLoadingComplete`](#onloadingcomplete) | `onLoadingComplete={img => done())}` | Function | - |
57-
| [`onLoad`](#onload) | `onLoad={event => done())}` | Function | - |
58-
| [`onError`](#onerror) | `onError(event => fail()}` | Function | - |
59-
| [`loading`](#loading) | `loading="lazy"` | String | - |
60-
| [`blurDataURL`](#blurdataurl) | `blurDataURL="data:image/jpeg..."` | String | - |
43+
| Prop | Example | Type | Status |
44+
| ----------------------------------------- | ------------------------------------ | --------------- | ---------- |
45+
| [`src`](#src) | `src="/profile.png"` | String | Required |
46+
| [`width`](#width) | `width={500}` | Integer (px) | Required |
47+
| [`height`](#height) | `height={500}` | Integer (px) | Required |
48+
| [`alt`](#alt) | `alt="Picture of the author"` | String | Required |
49+
| [`loader`](#loader) | `loader={imageLoader}` | Function | - |
50+
| [`fill`](#fill) | `fill={true}` | Boolean | - |
51+
| [`sizes`](#sizes) | `sizes="(max-width: 768px) 100vw"` | String | - |
52+
| [`quality`](#quality) | `quality={80}` | Integer (1-100) | - |
53+
| [`priority`](#priority) | `priority={true}` | Boolean | - |
54+
| [`placeholder`](#placeholder) | `placeholder="blur"` | String | - |
55+
| [`style`](#style) | `style={{objectFit: "contain"}}` | Object | - |
56+
| [`onLoadingComplete`](#onloadingcomplete) | `onLoadingComplete={img => done())}` | Function | Deprecated |
57+
| [`onLoad`](#onload) | `onLoad={event => done())}` | Function | - |
58+
| [`onError`](#onerror) | `onError(event => fail()}` | Function | - |
59+
| [`loading`](#loading) | `loading="lazy"` | String | - |
60+
| [`blurDataURL`](#blurdataurl) | `blurDataURL="data:image/jpeg..."` | String | - |
6161
</div>
6262

6363
## Required Props
@@ -286,6 +286,8 @@ Remember that the required width and height props can interact with your styling
286286
<Image onLoadingComplete={(img) => console.log(img.naturalWidth)} />
287287
```
288288

289+
> **Warning**: Deprecated since Next.js 14 in favor of [`onLoad`](#onload).
290+
289291
A callback function that is invoked once the image is completely loaded and the [placeholder](#placeholder) has been removed.
290292

291293
The callback function will be called with one argument, a reference to the underlying `<img>` element.
@@ -302,9 +304,9 @@ The callback function will be called with one argument, a reference to the under
302304
<Image onLoad={(e) => console.log(e.target.naturalWidth)} />
303305
```
304306

305-
A callback function that is invoked when the image is loaded.
307+
A callback function that is invoked once the image is completely loaded and the [placeholder](#placeholder) has been removed.
306308

307-
The load event might occur before the image placeholder is removed and the image is fully decoded. If you want to wait until the image has fully loaded, use [`onLoadingComplete`](#onloadingcomplete) instead.
309+
The callback function will be called with one argument, the Event which has a `target` that references the underlying `<img>` element.
308310

309311
<AppOnly>
310312

@@ -445,7 +447,7 @@ The `**` syntax does not work in the middle of the pattern.
445447

446448
### `domains`
447449

448-
> **Warning**: We recommend configuring strict [`remotePatterns`](#remotepatterns) instead of `domains` in order to protect your application from malicious users. Only use `domains` if you own all the content served from the domain.
450+
> **Warning**: Deprecated since Next.js 14. We recommend configuring strict [`remotePatterns`](#remotepatterns) instead of `domains` in order to protect your application from malicious users. Only use `domains` if you own all the content served from the domain.
449451
450452
Similar to [`remotePatterns`](#remotepatterns), the `domains` configuration can be used to provide a list of allowed hostnames for external images.
451453

examples/auth-with-stytch/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Stytch + Next.js example app on Vercel
22

3-
This is a [Stytch](https://stytch.com) + [Next.js](https://nextjs.org/) project that showcases how to enable elegant authentication in your applicaiton.
3+
This is a [Stytch](https://stytch.com) + [Next.js](https://nextjs.org/) project that showcases how to enable elegant authentication in your application.
44

55
<p align="center"><img src="./public/example-app-image.png" alt="stytch" width="50%"/></p>
66

examples/with-cloudinary/components/SharedModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export default function SharedModal({
8181
height={navigation ? 853 : 1280}
8282
priority
8383
alt="Next.js Conf image"
84-
onLoadingComplete={() => setLoaded(true)}
84+
onLoad={() => setLoaded(true)}
8585
/>
8686
</motion.div>
8787
</AnimatePresence>

examples/with-sfcc/components/ProductCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export default function ProductCard({ product }) {
2222
? 'scale-110 blur-2xl grayscale'
2323
: 'scale-100 blur-0 grayscale-0'
2424
)}
25-
onLoadingComplete={() => setLoading(false)}
25+
onLoad={() => setLoading(false)}
2626
/>
2727
</div>
2828
<div className="mt-4 flex items-center justify-between text-base font-medium text-gray-900">

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
"registry": "https://registry.npmjs.org/"
1717
}
1818
},
19-
"version": "13.5.6-canary.1"
19+
"version": "13.5.6-canary.5"
2020
}

package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,16 @@
193193
"random-seed": "0.3.0",
194194
"react": "18.2.0",
195195
"react-17": "npm:[email protected]",
196-
"react-builtin": "npm:[email protected]09fbee89d-20231013",
196+
"react-builtin": "npm:[email protected]a41957507-20231017",
197197
"react-dom": "18.2.0",
198198
"react-dom-17": "npm:[email protected]",
199-
"react-dom-builtin": "npm:[email protected]09fbee89d-20231013",
200-
"react-dom-experimental-builtin": "npm:[email protected]09fbee89d-20231013",
201-
"react-experimental-builtin": "npm:[email protected]09fbee89d-20231013",
202-
"react-server-dom-turbopack": "18.3.0-canary-09fbee89d-20231013",
203-
"react-server-dom-turbopack-experimental": "npm:[email protected]09fbee89d-20231013",
204-
"react-server-dom-webpack": "18.3.0-canary-09fbee89d-20231013",
205-
"react-server-dom-webpack-experimental": "npm:[email protected]09fbee89d-20231013",
199+
"react-dom-builtin": "npm:[email protected]a41957507-20231017",
200+
"react-dom-experimental-builtin": "npm:[email protected]a41957507-20231017",
201+
"react-experimental-builtin": "npm:[email protected]a41957507-20231017",
202+
"react-server-dom-turbopack": "18.3.0-canary-a41957507-20231017",
203+
"react-server-dom-turbopack-experimental": "npm:[email protected]a41957507-20231017",
204+
"react-server-dom-webpack": "18.3.0-canary-a41957507-20231017",
205+
"react-server-dom-webpack-experimental": "npm:[email protected]a41957507-20231017",
206206
"react-ssr-prepass": "1.0.8",
207207
"react-virtualized": "9.22.3",
208208
"relay-compiler": "13.0.2",
@@ -212,8 +212,8 @@
212212
"resolve-from": "5.0.0",
213213
"sass": "1.54.0",
214214
"satori": "0.10.6",
215-
"scheduler-builtin": "npm:[email protected]09fbee89d-20231013",
216-
"scheduler-experimental-builtin": "npm:[email protected]09fbee89d-20231013",
215+
"scheduler-builtin": "npm:[email protected]a41957507-20231017",
216+
"scheduler-experimental-builtin": "npm:[email protected]a41957507-20231017",
217217
"seedrandom": "3.0.5",
218218
"selenium-webdriver": "4.0.0-beta.4",
219219
"semver": "7.3.7",
@@ -249,7 +249,7 @@
249249
"@types/react-dom": "18.2.13"
250250
},
251251
"engines": {
252-
"node": ">=18.18.2",
252+
"node": ">=18.17.0",
253253
"pnpm": "8.9.0"
254254
},
255255
"packageManager": "[email protected]"

packages/create-next-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "create-next-app",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"keywords": [
55
"react",
66
"next",
@@ -52,6 +52,6 @@
5252
"validate-npm-package-name": "3.0.0"
5353
},
5454
"engines": {
55-
"node": ">=18.18.2"
55+
"node": ">=18.17.0"
5656
}
5757
}

packages/eslint-config-next/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-config-next",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"description": "ESLint configuration used by Next.js.",
55
"main": "index.js",
66
"license": "MIT",
@@ -10,7 +10,7 @@
1010
},
1111
"homepage": "https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-config",
1212
"dependencies": {
13-
"@next/eslint-plugin-next": "13.5.6-canary.1",
13+
"@next/eslint-plugin-next": "13.5.6-canary.5",
1414
"@rushstack/eslint-patch": "^1.3.3",
1515
"@typescript-eslint/parser": "^5.4.2 || ^6.0.0",
1616
"eslint-import-resolver-node": "^0.3.6",

packages/eslint-plugin-next/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/eslint-plugin-next",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"description": "ESLint plugin for Next.js.",
55
"main": "dist/index.js",
66
"license": "MIT",

packages/font/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/font",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"repository": {
55
"url": "vercel/next.js",
66
"directory": "packages/font"

packages/next-bundle-analyzer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/bundle-analyzer",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"main": "index.js",
55
"types": "index.d.ts",
66
"license": "MIT",

packages/next-codemod/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/codemod",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"license": "MIT",
55
"repository": {
66
"type": "git",

packages/next-env/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/env",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"keywords": [
55
"react",
66
"next",

packages/next-mdx/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/mdx",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"main": "index.js",
55
"license": "MIT",
66
"repository": {

packages/next-plugin-storybook/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/plugin-storybook",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"repository": {
55
"url": "vercel/next.js",
66
"directory": "packages/next-plugin-storybook"

packages/next-polyfill-module/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/polyfill-module",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)",
55
"main": "dist/polyfill-module.js",
66
"license": "MIT",

packages/next-polyfill-nomodule/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/polyfill-nomodule",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"description": "A polyfill for non-dead, nomodule browsers.",
55
"main": "dist/polyfill-nomodule.js",
66
"license": "MIT",

packages/next-swc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@next/swc",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"private": true,
55
"scripts": {
66
"clean": "node ../../scripts/rm.mjs native",

packages/next/cache.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache'
22
export { revalidatePath } from 'next/dist/server/web/spec-extension/revalidate-path'
33
export { revalidateTag } from 'next/dist/server/web/spec-extension/revalidate-tag'
4+
export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store'

packages/next/cache.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ const cacheExports = {
55
.revalidateTag,
66
revalidatePath: require('next/dist/server/web/spec-extension/revalidate-path')
77
.revalidatePath,
8+
unstable_noStore:
9+
require('next/dist/server/web/spec-extension/unstable-no-store')
10+
.unstable_noStore,
811
}
912

1013
// https://nodejs.org/api/esm.html#commonjs-namespaces
@@ -15,3 +18,4 @@ module.exports = cacheExports
1518
exports.unstable_cache = cacheExports.unstable_cache
1619
exports.revalidatePath = cacheExports.revalidatePath
1720
exports.revalidateTag = cacheExports.revalidateTag
21+
exports.unstable_noStore = cacheExports.unstable_noStore

packages/next/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "next",
3-
"version": "13.5.6-canary.1",
3+
"version": "13.5.6-canary.5",
44
"description": "The React Framework",
55
"main": "./dist/server/next.js",
66
"license": "MIT",
@@ -90,7 +90,7 @@
9090
]
9191
},
9292
"dependencies": {
93-
"@next/env": "13.5.6-canary.1",
93+
"@next/env": "13.5.6-canary.5",
9494
"@swc/helpers": "0.5.2",
9595
"busboy": "1.6.0",
9696
"caniuse-lite": "^1.0.30001406",
@@ -144,11 +144,11 @@
144144
"@mswjs/interceptors": "0.23.0",
145145
"@napi-rs/cli": "2.16.2",
146146
"@napi-rs/triples": "1.1.0",
147-
"@next/polyfill-module": "13.5.6-canary.1",
148-
"@next/polyfill-nomodule": "13.5.6-canary.1",
149-
"@next/react-dev-overlay": "13.5.6-canary.1",
150-
"@next/react-refresh-utils": "13.5.6-canary.1",
151-
"@next/swc": "13.5.6-canary.1",
147+
"@next/polyfill-module": "13.5.6-canary.5",
148+
"@next/polyfill-nomodule": "13.5.6-canary.5",
149+
"@next/react-dev-overlay": "13.5.6-canary.5",
150+
"@next/react-refresh-utils": "13.5.6-canary.5",
151+
"@next/swc": "13.5.6-canary.5",
152152
"@opentelemetry/api": "1.4.1",
153153
"@playwright/test": "^1.35.1",
154154
"@taskr/clear": "1.1.0",
@@ -316,6 +316,6 @@
316316
"zod": "3.22.3"
317317
},
318318
"engines": {
319-
"node": ">=18.18.2"
319+
"node": ">=18.17.0"
320320
}
321321
}

packages/next/src/build/utils.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import '../server/require-hook'
2121
import '../server/node-polyfill-fetch'
2222
import '../server/node-polyfill-crypto'
2323
import '../server/node-environment'
24-
import '../lib/polyfill-promise-with-resolvers'
2524

2625
import { green, yellow, red, cyan, bold, underline } from '../lib/picocolors'
2726
import getGzipSize from 'next/dist/compiled/gzip-size'

packages/next/src/client/components/static-generation-async-storage.external.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export interface StaticGenerationStore {
1212
readonly isOnDemandRevalidate?: boolean
1313
readonly isPrerendering?: boolean
1414
readonly isRevalidate?: boolean
15+
readonly isUnstableCacheCallback?: boolean
1516

1617
forceDynamic?: boolean
1718
fetchCache?:

0 commit comments

Comments
 (0)