Commit graph

19811 commits

Author SHA1 Message Date
Balázs Orbán
18200a849b
Revert "fix(build-output): show stack during CSR bailout warning" (#62592)
Closes NEXT-2623
2024-02-27 16:56:41 +01:00
Balázs Orbán
629cb14855 fix(build-output): show stack during CSR bailout warning 2024-02-27 16:44:36 +01:00
vercel-release-bot
eb6867fdad v14.1.1-canary.74 2024-02-26 23:22:03 +00:00
nhducit
0fe68736ce
Fix typo in the GTM URL (#62436)
<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->
TODO: update description

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-02-26 18:21:12 +00:00
Shu Ding
4f46fab088
Improve TS plugin options (#62438)
The `experimental-edge` config is no longer needed:


![CleanShot-2024-02-23-xxccX9gb@2x](https://github.com/vercel/next.js/assets/3676859/8a75143d-630e-4eae-a323-a78fd11e83ce)

This PR:


![CleanShot-2024-02-23-EmCglptd@2x](https://github.com/vercel/next.js/assets/3676859/0cacd221-1c4a-4b30-afde-19eb9b4883de)


Closes NEXT-2580
2024-02-26 18:02:50 +00:00
Jiachi Liu
87015acead
Upgrade vendored react (#62549)
### React upstream changes

- https://github.com/facebook/react/pull/28438
- https://github.com/facebook/react/pull/28436
- https://github.com/facebook/react/pull/25954
- https://github.com/facebook/react/pull/28434
- https://github.com/facebook/react/pull/28433
- https://github.com/facebook/react/pull/28432
- https://github.com/facebook/react/pull/28415
- https://github.com/facebook/react/pull/27903
- https://github.com/facebook/react/pull/28430
- https://github.com/facebook/react/pull/28424
- https://github.com/facebook/react/pull/28400
- https://github.com/facebook/react/pull/28422
- https://github.com/facebook/react/pull/28423
- https://github.com/facebook/react/pull/28412
- https://github.com/facebook/react/pull/28418
- https://github.com/facebook/react/pull/28421
- https://github.com/facebook/react/pull/28417
- https://github.com/facebook/react/pull/28399
- https://github.com/facebook/react/pull/28408
- https://github.com/facebook/react/pull/28350
- https://github.com/facebook/react/pull/28387
- https://github.com/facebook/react/pull/28403
- https://github.com/facebook/react/pull/28384
- https://github.com/facebook/react/pull/28409
- https://github.com/facebook/react/pull/28398
- https://github.com/facebook/react/pull/28405
- https://github.com/facebook/react/pull/28328
- https://github.com/facebook/react/pull/28402
- https://github.com/facebook/react/pull/28386
- https://github.com/facebook/react/pull/28388
- https://github.com/facebook/react/pull/28379
- https://github.com/facebook/react/pull/28383
- https://github.com/facebook/react/pull/28390
- https://github.com/facebook/react/pull/28389
- https://github.com/facebook/react/pull/28382
- https://github.com/facebook/react/pull/28348



Closes NEXT-2600
2024-02-26 18:53:56 +01:00
dongwon kim
e35ace6575
examples: add favicon.ico for to avoid browser requests (#62511)
## What?

To avoid the default `favicon.ico` request by the browser, we are adding
a vercel `favicon.ico` to the project.
Currently, we handle exceptions for `favicon.ico` entering the Dynamic
Route `[lang]` in the following manner, but in this case, favicon.ico
renders the entire page.


[example:app-dir-i18n-routing](https://github.com/vercel/next.js/blob/canary/examples/app-dir-i18n-routing/get-dictionary.ts#L12)
```ts
export const getDictionary = async (locale: Locale) =>
  dictionaries[locale]?.() ?? dictionaries.en();
```


Instead of `favicon.ico`, the full HTML of the default language 'en' is
rendered.
![스크린샷 2024-02-26 오전 1 17
56](https://github.com/vercel/next.js/assets/59330828/ea46b75b-ae93-4db4-9b4b-db33fb5d5709)

In the correct case
![스크린샷 2024-02-26 오전 1 24
49](https://github.com/vercel/next.js/assets/59330828/7faabec1-1fc7-4330-a5c3-30449efcace6)

Fixes https://github.com/vercel/next.js/issues/46918

Co-authored-by: Sam Ko <sam@vercel.com>
2024-02-26 17:29:27 +00:00
Ye Zhu
0d1b11fba3
docs: Remove superfluous <PagesOnly> tags in api-reference/components/link.mdx (#62501)
Within the document
[docs/02-app/02-api-reference/01-components/link.mdx](https://github.com/zhuyedev/next.js/blob/canary/docs/02-app/02-api-reference/01-components/link.mdx#L327),
there is an unnecessary set of `<PagesOnly>` tags, which prevents a few
sections from being displayed correctly.This issue particularly affects
the section starting with "### If the child is a custom component that
wraps an <a> tag" (in line 327) and ending just before "### Middleware"
(in line 458).

Co-authored-by: Sam Ko <sam@vercel.com>
2024-02-26 17:20:41 +00:00
Natt Nguyen ツ
e60cb36d54
chore: update non-interactive snippet in README.md (#62493)
Updated the code snippet in the `README.md` to reflect information on
the documentation website.

Reference:
https://nextjs.org/docs/app/api-reference/create-next-app#non-interactive

Co-authored-by: Sam Ko <sam@vercel.com>
2024-02-26 17:13:38 +00:00
Jiachi Liu
c1980ce7b9
Display only one hydration error when there's few in error overlay (#62448)
## What & Why

When there's a bad nesting HTML tags occurred, we want to show the
hydration mismatch with the warning of bad nesting.

Multiple hydration errors emitted from `onRecoverableError` as react is
trying re-render on client, and few more errors could throw from
different places. But for alert the issue, we only need to know one
hydration mismatch error instead of


### After
Show the toast with error number first and only show one hydration error
when you open
<img width="200"
src="https://github.com/vercel/next.js/assets/4800338/b57e73b9-60a6-4f09-9b71-e052121666f2"><img
width="500"
src="https://github.com/vercel/next.js/assets/4800338/9d409422-d513-4da0-ad6c-002c1ba7c497">

### Before

Mutiple hydration errors are displayed
<img width="200"
src="https://github.com/vercel/next.js/assets/4800338/8d6696a8-30de-496f-a9c4-bafb7d1f1d4c"><img
width="500"
src="https://github.com/vercel/next.js/assets/4800338/bc72bea9-85be-4bb2-b007-b88e655ade4e">


Closes NEXT-2315
2024-02-26 18:02:07 +01:00
Jiachi Liu
2776b431b7
test: also check source code for node:internal related errors (#62542)
* Still check if the origin line thrown nodejs errors could still
display source code
* Need to separate the different error into different test otherwise the
previous error will be preserved

Closes NEXT-2597

---------

Co-authored-by: Balázs Orbán <info@balazsorban.com>
2024-02-26 17:47:42 +01:00
Miroslav Petrov
47d2dfdb54
Update examples/active-class-name (#62506)
### Description
The current implementation of the activeClassName example doesn't
support the `UrlObject` type for the "href" Link prop.
For example
```
<ActiveLink
  activeClassName="active"
  className="nav-link"
  href={{
    pathname: "/[slug]",
    query: {
      slug: "dynamic-route",
    },
  }}
>
  Dynamic Route
</ActiveLink>
```
won't work.

### Suggestion
We can use the `resolveHref` function to handle all cases.

Co-authored-by: Sam Ko <sam@vercel.com>
2024-02-26 16:40:16 +00:00
Dima Voytenko
fb14590b4a
OTEL: Ensure that RSC:1 requests get the next.route attr (#62464) 2024-02-26 08:39:12 -08:00
JINSOUL KIM
7727c5c411
docs: fix typo (#62543)
### What?
I found a small typo in the docs.(analytics.mdx)
Missing ")" in the end of function.

### How?
Add ")" in the end.

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-02-26 16:15:40 +00:00
Jiachi Liu
14e93ed813
test: separate mui barrel optimization test (#62545)
Separate mui tests as the modules will increase for all in general, so
it's easily to hit the 1500 limitation

Closes NEXT-2598
2024-02-26 16:59:35 +01:00
bestlyg
0f4e3eeece
docs: update app router link (#62533) 2024-02-26 09:03:47 -06:00
Tim Neutkens
bbf6dfac61
Add IssueKey type (#62526)
## What?

Ensures there's a stricter type for the issues map.

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2590
2024-02-26 14:21:21 +01:00
Jiachi Liu
c221fc4508
Create react server condition alias for next/navigation api (#62456)
### What

Introduce a `react-server` export condition of `next/navigation`, which
only take effects in RSC layer. And it will only contain `notFound` and
`redirect` related APIs, which can be shared in both server components
and client components environment. This export excludes those APIs
working with React context which are only working in client components.

### Why

We fixed an issue bad alias for react-server condition of react itself
in
https://github.com/vercel/next.js/pull/61522/files#diff-ecb951c8d26893f6d1e4425a873b399d52346ef63eb90fba79d980cef2fabe8cL35
, this was a good fix. But we found that if you're using edge runtime
with `next/navigation` it will error with bundling that you're attempted
to import some client component hooks such as `useContext` from react.

So we introduced a `react-server` version of `next/navigation` that
doesn't interoplate with any client hooks, can we'll bundle that one
instead of original `next/navigation` when you're using it in server
components or app routes.

Closes NEXT-2583
Closes NEXT-2519
Fixes #62187
2024-02-26 13:35:44 +01:00
Balázs Orbán
0fec89c0df
feat(error-overlay): hide Node.js internals (#62532)
### What?

Hide frames that start with `node:internal`.

### Why?

These are usually unactionable anyway. 

### How?

Filter these lines the same way we filtered `stringify <anonymous>` in
#62325

Closes NEXT-2593
2024-02-26 13:29:54 +01:00
Tim Neutkens
b2a2e6e550
Revert "Update Turbopack test manifest" (#62534)
Reverts vercel/next.js#62476

Closes NEXT-2595
2024-02-26 12:27:30 +01:00
vercel-release-bot
0fcb946eca v14.1.1-canary.73 2024-02-26 10:40:07 +00:00
Tobias Koppers
110fc47f7c
add plugin to avoid too many css requests (#62530)
### What?

Reduces the number of css chunks per entrypoint by merging chunks.

### Why?

In larger application the total CSS deduplication approach falls short
in a sense of it's causing way too many separate chunks, which results
in way to many requests. That affects page load performance.


Closes PACK-2598
2024-02-26 11:36:46 +01:00
Tobias Koppers
d9b2a4baea
update turbopack (#62523)
* https://github.com/vercel/turbo/pull/7437 <!-- Tobias Koppers - report
relative start/end and fix start time for events -->
* https://github.com/vercel/turbo/pull/7446 <!-- Tobias Koppers - allow
to aggregate all spans -->
* https://github.com/vercel/turbo/pull/6651 <!-- max -
fix(postcss_configs): support for resolve `postcss.config.json` file -->
* https://github.com/vercel/turbo/pull/7448 <!-- Leah - chore: remove
"rust" npm package -->
* https://github.com/vercel/turbo/pull/7436 <!-- Leah -
refactor(turbo-tasks-fs): move file watching into separate file -->
* https://github.com/vercel/turbo/pull/7396 <!-- Donny/강동윤 -
feat(turbopack): Apply critical ES lint rules -->
* https://github.com/vercel/turbo/pull/7421 <!-- Donny/강동윤 -
fix(turbopack): Use different title for non-parsing issues -->
* https://github.com/vercel/turbo/pull/7501 <!-- Tobias Koppers -
Tracing: Report progress on initial read -->
* https://github.com/vercel/turbo/pull/7508 <!-- Donny/강동윤 -
fix(turbopack): Fix CSS Modules of turbopack in swc mode -->
* https://github.com/vercel/turbo/pull/7424 <!-- Donny/강동윤 -
fix(turbopack): Analyze for-of stmts to allow using `sharp` -->
* https://github.com/vercel/turbo/pull/7510 <!-- Tobias Koppers - dedupe
primary_modules to avoid deduping in chunking, reduce memory usage -->
* https://github.com/vercel/turbo/pull/7509 <!-- Tobias Koppers - split
graph_node_to_referenced_nodes into cacheable and non-cacheable parts
-->
* https://github.com/vercel/turbo/pull/7516 <!-- Tobias Koppers - fix
ignore in package.json -->
* https://github.com/vercel/turbo/pull/7500 <!-- Tobias Koppers - add
span count to trace-server -->
* https://github.com/vercel/turbo/pull/7507 <!-- Donny/강동윤 -
fix(turbopack): Fix CSS module purity validator -->
2024-02-26 11:19:31 +01:00
Tim Neutkens
4ebeace3d2
Rename currentIssues to currentEntryIssues (#62524)
## What?

Renaming this as a follow-up PR is going to introduce top-level errors.

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2589
2024-02-26 10:43:17 +01:00
Vercel Release Bot
222a773d56
Update Turbopack test manifest (#62476)
This auto-generated PR updates the integration test manifest used when
testing Turbopack.
2024-02-26 10:04:45 +01:00
vercel-release-bot
bef716ad03 v14.1.1-canary.72 2024-02-24 23:22:11 +00:00
bestlyg
e98978033f
feat(docs): update 14-internationalization.mdx (#62484)
### Improving Documentation

follow the
[example](https://github.com/vercel/next.js/blob/canary/examples/app-dir-i18n-routing/middleware.ts#L53),
it is better to use NextResponse instead of Response.
2024-02-24 15:11:19 +00:00
Arya Emami
7d4821de6f
examples: Update with-redux example to match the guide in Redux Toolkit docs (#59864) 2024-02-24 15:08:56 +00:00
Jiachi Liu
aa914eea73
[turbopack] update edge alias (#62461)
Use public api alias for turbopack edge runtime, aligning with webpack

Closes NEXT-2584
2024-02-24 01:25:16 +01:00
vercel-release-bot
8166c15973 v14.1.1-canary.71 2024-02-23 22:55:51 +00:00
Dima Voytenko
00f300a020
Telemetry: ensure the ClientComponentLoad metric is only reported when available (#62459) 2024-02-23 14:51:13 -08:00
Leah
dcf8f04135
fix(turbopack): deal with eventual consistency in get_directory_tree (#62444)
### What?

The file watcher might invalidate the (moved / deleted) directory before
the parent task can mark it as no longer needed.

Closes PACK-2588
2024-02-23 17:12:53 +01:00
Delba de Oliveira
01c1bfa325
Docs: Add CORS examples (#62439) 2024-02-23 09:11:57 -06:00
Ryo H
ae524fb244
Fixed typo. (#62440)
### What?

I fixed the typo from `occured` to `occurred`.

Co-authored-by: Ryo H <49798519+ryobs@users.noreply.github.com>
2024-02-23 14:58:41 +01:00
Will Binns-Smith
b4231c0318
Turbopack: skip tests for import trace links (#61831)
Some tests in `test/development/acceptance-app/editor-links.test.ts`
test that links in the import trace can be clicked. This is currently
deprioritized with Turbopack, so skip them.


Closes PACK-2450
2024-02-23 13:07:57 +01:00
Tobias Koppers
1d2225eab7
Turbopack: reduce memory usage (#62432)
### What?

Avoid cloning a bit

### Why?

less allocations and memory usage

### How?


Closes PACK-2584
2024-02-23 13:04:06 +01:00
Jiachi Liu
e5d604f33b
Upgrade vendored react (#62326)
### React upstream changes

- https://github.com/facebook/react/pull/28333
- https://github.com/facebook/react/pull/28334
- https://github.com/facebook/react/pull/28378
- https://github.com/facebook/react/pull/28377
- https://github.com/facebook/react/pull/28376
- https://github.com/facebook/react/pull/28338
- https://github.com/facebook/react/pull/28331
- https://github.com/facebook/react/pull/28336
- https://github.com/facebook/react/pull/28320
- https://github.com/facebook/react/pull/28317
- https://github.com/facebook/react/pull/28375
- https://github.com/facebook/react/pull/28367
- https://github.com/facebook/react/pull/28380
- https://github.com/facebook/react/pull/28368
- https://github.com/facebook/react/pull/28343
- https://github.com/facebook/react/pull/28355
- https://github.com/facebook/react/pull/28374
- https://github.com/facebook/react/pull/28362
- https://github.com/facebook/react/pull/28344
- https://github.com/facebook/react/pull/28339
- https://github.com/facebook/react/pull/28353
- https://github.com/facebook/react/pull/28346
- https://github.com/facebook/react/pull/25790
- https://github.com/facebook/react/pull/28352
- https://github.com/facebook/react/pull/28326
- https://github.com/facebook/react/pull/27688
- https://github.com/facebook/react/pull/28329
- https://github.com/facebook/react/pull/28332
- https://github.com/facebook/react/pull/28340
- https://github.com/facebook/react/pull/28327
- https://github.com/facebook/react/pull/28325
- https://github.com/facebook/react/pull/28324
- https://github.com/facebook/react/pull/28309
- https://github.com/facebook/react/pull/28310
- https://github.com/facebook/react/pull/28307
- https://github.com/facebook/react/pull/28306
- https://github.com/facebook/react/pull/28315
- https://github.com/facebook/react/pull/28318
- https://github.com/facebook/react/pull/28226
- https://github.com/facebook/react/pull/28308
- https://github.com/facebook/react/pull/27563
- https://github.com/facebook/react/pull/28297
- https://github.com/facebook/react/pull/28286
- https://github.com/facebook/react/pull/28284
- https://github.com/facebook/react/pull/28275
- https://github.com/facebook/react/pull/28145
- https://github.com/facebook/react/pull/28301
- https://github.com/facebook/react/pull/28224
- https://github.com/facebook/react/pull/28152
- https://github.com/facebook/react/pull/28296
- https://github.com/facebook/react/pull/28294
- https://github.com/facebook/react/pull/28279
- https://github.com/facebook/react/pull/28273
- https://github.com/facebook/react/pull/28269
- https://github.com/facebook/react/pull/28376
- https://github.com/facebook/react/pull/28338
- https://github.com/facebook/react/pull/28331
- https://github.com/facebook/react/pull/28336
- https://github.com/facebook/react/pull/28320
- https://github.com/facebook/react/pull/28317
- https://github.com/facebook/react/pull/28375
- https://github.com/facebook/react/pull/28367
- https://github.com/facebook/react/pull/28380
- https://github.com/facebook/react/pull/28368
- https://github.com/facebook/react/pull/28343
- https://github.com/facebook/react/pull/28355
- https://github.com/facebook/react/pull/28374
- https://github.com/facebook/react/pull/28362
- https://github.com/facebook/react/pull/28344
- https://github.com/facebook/react/pull/28339
- https://github.com/facebook/react/pull/28353
- https://github.com/facebook/react/pull/28346
- https://github.com/facebook/react/pull/25790
- https://github.com/facebook/react/pull/28352
- https://github.com/facebook/react/pull/28326
- https://github.com/facebook/react/pull/27688
- https://github.com/facebook/react/pull/28329
- https://github.com/facebook/react/pull/28332
- https://github.com/facebook/react/pull/28340
- https://github.com/facebook/react/pull/28327
- https://github.com/facebook/react/pull/28325
- https://github.com/facebook/react/pull/28324
- https://github.com/facebook/react/pull/28309
- https://github.com/facebook/react/pull/28310
- https://github.com/facebook/react/pull/28307
- https://github.com/facebook/react/pull/28306
- https://github.com/facebook/react/pull/28315
- https://github.com/facebook/react/pull/28318
- https://github.com/facebook/react/pull/28226
- https://github.com/facebook/react/pull/28308
- https://github.com/facebook/react/pull/27563
- https://github.com/facebook/react/pull/28297
- https://github.com/facebook/react/pull/28286
- https://github.com/facebook/react/pull/28284
- https://github.com/facebook/react/pull/28275
- https://github.com/facebook/react/pull/28145
- https://github.com/facebook/react/pull/28301
- https://github.com/facebook/react/pull/28224
- https://github.com/facebook/react/pull/28152
- https://github.com/facebook/react/pull/28296
- https://github.com/facebook/react/pull/28294
- https://github.com/facebook/react/pull/28279
- https://github.com/facebook/react/pull/28273
- https://github.com/facebook/react/pull/28269

Closes NEXT-2542


Disable ppr test for strict mode for now, @acdlite will check it and
we'll sync again
2024-02-23 12:46:58 +01:00
Shu Ding
b0c6b00643
Fix module-level Server Action creation with closure-closed values (#62437)
With Server Actions, a module-level encryption can happen when you do:

```js
function wrapAction(value) {
  return async function () {
    'use server'
    console.log(value)
  }
}

const action = wrapAction('some-module-level-encryption-value')
```

...as that action will be created when requiring this module, and it
contains an encrypted argument from its closure (`value`). This
currently throws an error during build:

```
Error: Missing manifest for Server Actions. This is a bug in Next.js
    at d (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/chunks/1772.js:1:15202)
    at f (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/chunks/1772.js:1:16917)
    at 714 (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/app/encryption/page.js:1:2806)
    at t (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/webpack-runtime.js:1:127)
    at 7940 (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/app/encryption/page.js:1:941)
    at t (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/webpack-runtime.js:1:127)
    at r (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/app/encryption/page.js:1:4529)
    at /Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/app/encryption/page.js:1:4572
    at t.X (/Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/webpack-runtime.js:1:1181)
    at /Users/shu/Documents/git/next.js/test/e2e/app-dir/actions/.next/server/app/encryption/page.js:1:4542
```

Because during module require phase, the encryption logic can't run as
it doesn't have Server/Client references available yet (which are set
during the rendering phase).

Since both references are global singletons to the server and are
already loaded early, this fix makes sure that they're registered via
`setReferenceManifestsSingleton` before requiring the module.

Closes NEXT-2579
2024-02-23 12:00:24 +01:00
Vercel Release Bot
301dd70ac7
Update Turbopack test manifest (#62433)
This auto-generated PR updates the integration test manifest used when
testing Turbopack.
2024-02-23 10:27:49 +01:00
Masato Nakamura
946c15fb2c
chore: Bump actions/cache (#62422)
<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->

GitHub is [planning to upgrade to Node
20](https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/).
Versions prior to actions/cache v3 use an outdated version of node, so
we will upgrade to actions/cache v4, where [Node 20 is the
default](https://github.com/actions/cache/releases/tag/v4.0.0).

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-02-23 08:05:17 +00:00
Ethan Arrowood
f520111c9f
update configSchema.ts with experimental#useEarlyImport (#62408)
Follow up to #61168 that adds the `useEarlyImport` to `experimental`
config section.

Closes NEXT-2573
2024-02-23 02:19:01 +00:00
JJ Kasper
dfaa9efb5d
Simplify node/edge server chunking some (#62424)
This continues https://github.com/vercel/next.js/pull/62336 and ensures
we chunk fully but removes the cache groups as that introduces some
un-necessary duplication. With this configuration we ensure we split
chunks of all types which fixes the OOM/cache size issue and also avoids
overall chunk size increase.

Closes NEXT-2577
2024-02-22 17:45:02 -08:00
Will Binns-Smith
749e3c4e85
Turbopack react-refresh: perform full reload on runtime error (#62359)
Previously, runtime errors would not be recovered from. Like the webpack
implementation, this addresses the issue by performing a full page
reload when recovering from a runtime error.

Test Plan: `test/development/acceptance-app/error-recovery.test.ts --
Error recovery app default stuck error`


Closes PACK-2569
2024-02-22 17:15:36 -08:00
Dima Voytenko
2451af931c
OTEL: Add top span for middleware (#62421)
Without this, any spans added by the middleware implementation would be
orphaned and create extra traces.
2024-02-23 01:08:29 +00:00
Sam Ko
ad48047beb
docs(link): update docs around link prefetch: false (#62414)
## Changes

Better clarify the differences between App and Pages Router around
`prefetch: false`.

Closes NEXT-2575
2024-02-23 01:34:25 +01:00
vercel-release-bot
1aaa40c781 v14.1.1-canary.70 2024-02-22 23:23:39 +00:00
Sam Ko
e64dbaa3eb
chore(cli): add clarifying comment (#62418)
## Changes

- Add clarifying comment around why we're `process.exit(1)` at the end
of `runLintCheck`
- Related → https://github.com/vercel/next.js/pull/62378

Closes NEXT-2576
2024-02-22 22:23:32 +00:00
Jiwon Choi
5a4b56fb0f
chore(docs): mention that next.config.js must have default export (#62341)
### What?

When the next config has no default export, it does not inform the user
correctly, but as:

```ts
// next.config.mjs

/** @type {import('next').NextConfig} */
export const config = {
  // ...
}
```

```sh
⚠ Invalid next.config.mjs options detected: 
⚠     Unrecognized key(s) in object: 'config'
⚠ See more info here: https://nextjs.org/docs/messages/invalid-next-config
```

### Why?

The options within the named exported config may be inactivated without
notice.

### How?

Since we use dynamic import for the config, check if `userConfigModule`
has a `default` export, and if not, throw an error.
Also, added to the docs to address by text that the config needs a
default export.
2024-02-22 15:37:13 -05:00
Mehran Farahani
0b346c28bc
docs: add current state argument to authenticate function (#62399)
### What?
Added a `_currentState` argument to the `authenticate` function in the
'Building Your Application' authentication documentation.

### Why?
The `useFormState` hook's first argument is a function that requires two
arguments. This adjustment ensures the `authenticate` function aligns
with the expected structure used by `useFormState`. For more details,
refer to the React documentation: [useFormState
Hook](https://react.dev/reference/react-dom/hooks/useFormState).
2024-02-22 19:24:41 +00:00
Sam Ko
ec2c8ae891
Revert "docs(errors): fix typo" (#62411)
Reverts vercel/next.js#61957
2024-02-22 11:09:02 -08:00