Commit graph

8284 commits

Author SHA1 Message Date
Maia Teegarden
7d27895c57
Fix typo in error overlay (#47762)
<!-- 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 or adding/fixing 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 #

-->
2023-03-31 19:08:01 -07:00
JJ Kasper
7f0638869c
Fix skipMiddlewareUrlNormalize with i18n (#47773)
This ensures we don't normalize locales in the URL with the
skipMiddlewareUrlNormalize flag enabled so that casing redirects can be
applied correctly for locales.
2023-03-31 18:24:20 -07:00
Justin Ridgewell
82787dba9d
turbopack: ensure ENV values are available in middleware (#47767)
Turbopack starts up the router process with all ENV values, but the edge
function definition didn't list any `env` keys for the function
invocation. So, middleware couldn't access any ENV values.

Turbopack doesn't currently have a way to determine what ENV keys are
actually used by the source program, so I'm just passing everything
defined. I'm not sure if that's an issue during dev (I could see it
being one for the build process, but that doesn't matter for this case).

Fixes #47766
Fixes WEB-831
Fixes WEB-834
2023-03-31 17:22:27 -07:00
Tobias Koppers
2820f07875
add consistent import sorting/grouping to rustfmt (#47745)
### What?

Better auto format

### Why?

imports are inconsistently grouped and ordered

### How?

configure cargo fmt
2023-03-31 22:12:54 +00:00
JJ Kasper
f798c95f72 v13.2.5-canary.24 2023-03-31 20:58:12 +00:00
Steven
3f35608fdc
fix: improve error message pages for output: export (#47765)
fix NEXT-928 ([link](https://linear.app/vercel/issue/NEXT-928))
2023-03-31 13:23:51 -07:00
JJ Kasper
53e4627ce5
Update app router filter handling (#47761)
This ensures we check if a path is `appRouter` during prefetching so
that we can trigger hard navigations quicker when routing from pages ->
app. An additional config is also exposed to allow configuring the
potential false positive rate for the client filter.

x-ref: [slack
thread](https://vercel.slack.com/archives/C017QMYC5FB/p1680225393243459)
2023-03-31 12:19:47 -07:00
Justin Ridgewell
0413fea8ea
Turobpack: Implement Streaming App/API rendering (#47476)
Paired with https://github.com/vercel/turbo/pull/4329, this implements
streaming responses for App and API renders. This is accomplished by
sending an initial `headers` message (carrying the status code and
headers list), N `body-chunk` messages of bytes, and a final `body-end`
message to signal completion.

Once sent to Turbopack, these chunk messages will be streamed out of the
node rendering process directly into the HTTP server's response.

Closes WEB-27

---------

Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-03-31 20:58:04 +02:00
Steven
4c60b7b6ae
feat: bump minimum ts version to 4.5.2 (#47712)
Fixes an issue with newer app directory usage:

```
Failed to compile.
../../node_modules/next/dist/server/future/route-handlers/app-route-route-handler.d.ts:11:15
Type error: ',' expected.
```

---------
2023-03-31 11:37:09 -07:00
Shu Ding
5ad1b77704
Restart static paths worker after finishing task (#47716)
Noticed this optimization when debugging something else - we restart
this worker if it's not fresh, to make sure module instances are new
created. This has some perf overhead and it happens right before running
the task and it's blocking the request. This PR changes that to be after
the old task, and the difference is noticeable on dev (~20ms).

Before:

<img width="1363" alt="CleanShot-2023-03-30-jTT9W48H@2x"
src="https://user-images.githubusercontent.com/3676859/228965542-e0d6892f-3989-4da5-96a4-5fc8b4155041.png">

After:

<img width="1363" alt="CleanShot-2023-03-30-PRrYQMg7@2x"
src="https://user-images.githubusercontent.com/3676859/228965566-42e04f8d-0cc3-447c-adc8-3840b23b9fa5.png">
2023-03-31 19:16:48 +02:00
Leah
5cb370f517
remove next-core package.json dev script (#47746)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-03-31 17:58:17 +02:00
Jiachi Liu
04bfb314e0
Support relative path for metadata alternates urls (#47743)
Allow to use relative paths which starting with dot (e.g. `./[paths]`) for urls under `metadata.alternates`.
This allow user to simplify setting `canonical` or other such like `languages` once in root layout with `metadataBase` and a simple relative path, then next.js will resolve it with current pathname of the page.

For example
```js
export const metadata = {
  metadataBase: new URL('https://mydomain.com'),
  alternates: {
    canonical: './'
  }
}
```
Then:
for page `/` it will generate `https://mydomain.com`;
for page `/about` it will generate `https://mydomain.com/about`

as your cononical url

Closes NEXT-897

### Minor changes

- always remove trailing slash for `URL.href`
2023-03-31 15:44:39 +00:00
Wyatt Johnson
e1a397d750
fix: correctly handle Set-Cookie headers (#47718)
## What

This fix serves to address issues where multiple `Set-Cookie` headers
were combined in some runtimes.

## Why

This is because `set-cookie` behaves differently than other headers in
some cases.

Eg. when iterating on a `Headers` instance, multiple set-cookie headers
are folded. To set them correctly, we need to split them. But it'd not
be enough to naively split on the first occurrence, because `,` is a
valid cookie value when for example it's used in `Expires` in a date
string.

So we use a method to correctly detect where to split the cookie.

This should fix all runtimes.

Note, the spec now has `Headers#getSetCookie` which should be preferred
if it's present. https://github.com/whatwg/fetch/pull/1346. We are using
the [`edge-runtime`](https://github.com/vercel/edge-runtime), so this
should be fixed upstream and then reused in Next.js in the future.

## How

Wherever we can, we reuse the `fromNodeHeaders` and `toNodeHeaders`
methods that have the correct implementation. This should be preferred
in the future in other parts of the codebase. We fixed some related TS
issues as well.

Fixes #46579, supersedes #40579
fix NEXT-735 ([link](https://linear.app/vercel/issue/NEXT-735))

---------

Co-authored-by: Balázs Orbán <info@balazsorban.com>
2023-03-31 16:35:47 +02:00
JJ Kasper
f090f321ee v13.2.5-canary.23 2023-03-31 13:53:10 +00:00
Alex Kirszenberg
5950e2b3b0
Small fixes to copy of Turbopack errors (#47734)
This also removes next-swc's Prettier configuration, which we weren't
following anyway.
2023-03-31 11:12:12 +00:00
Jiachi Liu
6563174176
Add NEXT_RUNTIME process env to turbopack (#47713)
Support `process.env.NEXT_RUNTIME` in turbopack, define it in node server / edge, leave client as undefined
2023-03-31 09:48:15 +00:00
OJ Kwon
a34f02b3d2
feat(next-swc): add compile-time heap profiler flag (#47729)
### What?

This PR adds an internal compile time flags for the `next-swc`, which exposes two runtime apis into next.js to initialize heap-profiling enabled memory allocator and teardown those once next.js exits. While there are newly added 2 js interfaces (`initHeapProfiler`, `teardownHeapProfiler`) underlying napi binary itself have compile time flags to actually  enable those feature: any user who runs npm-published next.js cannot enable this features with any kind of runtime configuration. Only manually built next-swc binary with specific flag can enable this. Since this is primarily for the CI testing workflow only, those flag / configs are not visibily exposed as well.


### Why?

It is for some experiments on the CI to see if it can observe some of memory pressure issues (WEB-593, WEB-804) while it is not easily reproducible on the local machines.
2023-03-31 08:37:17 +00:00
Wyatt Johnson
2642d0a83e
Combine Route Handlers with Route Modules (#47679)
Based on some suggestions from @sokra, this serves to unify the Route Handlers and Route Modules to provide a unified interface for defining route modules and handlers and defining their dependancies.
2023-03-31 04:52:48 +00:00
Steven
d83f68ccf7
chore(ci): fix codemod tests (#47710)
These tests were failing with the following error:

```
Failed to fetch origin/canary Error: Command failed: git fetch origin canary
fatal: could not read Username for 'https://github.com/': No such device or address
```

https://github.com/vercel/next.js/actions/runs/4220015224/jobs/7325960064#step:5:13

- Follow up to https://github.com/vercel/next.js/pull/46068
2023-03-31 04:27:16 +00:00
Justin Ridgewell
43872c7572
Turbopack: Fix images.remotePatterns port/protocol serialization (#47721)
By default, `serde-json` will transform a `None` into a `null` value, and Next's [default image loader][loader] will perform strict `=== undefined` [equality checks][checks] on the fields. Because `null !== undefined`, a missing `protocol` or `port` will always be checked, and `null` will never match either.

Fixes #46758
Fixes vercel/turbo#4347
Fixes WEB-770
fix NEXT-793 ([link](https://linear.app/vercel/issue/NEXT-793))

[loader]: 35cf930572/packages/next/src/shared/lib/image-loader.ts (L50)
[checks]: 35cf930572/packages/next/src/shared/lib/match-remote-pattern.ts (L5)
2023-03-31 03:26:38 +00:00
Jiachi Liu
d71cbe9116
Vendor @vercel/og and expose ImageResponse (#47715)
- Reverts #47711 
- Disable image response for turbopack
2023-03-31 02:29:10 +00:00
Steven
af49d5098b
chore(docs): update next export to output: 'export' (#47717)
fix NEXT-927 ([link](https://linear.app/vercel/issue/NEXT-927))
2023-03-31 02:04:23 +00:00
JJ Kasper
a6e504933b v13.2.5-canary.22 2023-03-31 00:57:10 +00:00
Jiachi Liu
2d796ed594
Fix duplicated default metadata tags (#47690)
Adding default metadata before causes duplicated metadata tags when
adding server inserted html. Remove the ones in the not found boundary
Now we use same way to render metadata to render the default metadata in
error html

Fixes the issue introduced in #47404

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2023-03-30 17:17:52 -07:00
Jiachi Liu
6dbb6318a1
Provide default metadataBase for local and vercel deployment (#47568)
### What?

- Provide a default `metadataBase` 
- Always resolve urls that could be resolved as absolute with
`metadataBase`, e.g. tw/og urls, canonical urls
- Give a warning in dev mode if user doesn't provide one in dev
- Error if you don't have it but it's required in production

On production it will leverage `VERCEL_URL` if users expose it to the
deployment

### Why?

OG image urls are required to be absolute urls instead of relative urls.
For metadata image conventions we let users don't have to provide
`metadataBase` explicitly when they expect it should be the origin of
their next app.

### How?

Closes NEXT-887

---------
2023-03-30 16:27:24 -07:00
Jiachi Liu
35cf930572
Update MetadataRoute to namespace (#47674)
### What?

Followup for #47630 , use ts namespace to group MetadataRoute.

`MetadataRoute['xxx']` -> `MetadataRoute.xxx`

### Why?

namespace is convenient to write for these grouped types such as
`MetadataRoute.Robots`. And `MetadataRoute` itself is not actually a
type. So it can be conveniently typed by ts users.

### How?

Closes NEXT-912

---------
2023-03-30 15:27:44 -07:00
Leah
97b158cc81
Fix turbopack _devPagesManifest.json on next-site (#47427)
just took a bit of banging my head against the wall 👀

the `'dynamic route/page check'` route resolves `fsRoutes` (which leads to an object with `{pages: undefined}` because the route doesn't have the list of pages(?))

that route only gets enabled if you have fallback rewrites though
2023-03-30 21:44:02 +00:00
Jiachi Liu
0616f1b432
Add not found boundary and move head cache to app router (#47688)
### What?

- Add not found boundary to app router
- Move `head` cache back to app router

### Why?

We want the head to be rendered separately from body, previously to be
able to use `redirect()` and `notFound()` in `generateMetadata` we move
the head cache into layout-router to be wrapped by not found and
redirect boundaries. Since redirect boudary is already moved to
app-router, so we only need to add not found boundary and move head
cache to app router.

Notice: there's a limitation that we can't find the corresponding not
found of page if you throw notFound in generateMetadata, the root layout
+ root/default not found will be used to generate the 404 page

### How?

Closes NEXT-864
Fixes #46738

fix NEXT-888 ([link](https://linear.app/vercel/issue/NEXT-888))

---------
2023-03-30 14:08:37 -07:00
Steven
b9d77321d2
fix: handle empty src prop on next/image (#47695)
Previously, `next start` was incorrectly trying to optimize an empty `src` prop.

This PR fixes the behavior so that empty `src` will automatically set `unoptimized` (same behavior as data urls).

fix NEXT-915 ([link](https://linear.app/vercel/issue/NEXT-915))
2023-03-30 20:02:47 +00:00
JJ Kasper
2ac022391c
Revert "Vendor @vercel/og and expose ImageResponse (#47657" (#47711)
Reverts vercel/next.js#47657
2023-03-30 12:24:02 -07:00
Shu Ding
6eaca5d5b2
Revert "Revert "Update vendored react to 18.3.0-next-85de6fde5-20230328"" (#47700
Reverts vercel/next.js#47687
2023-03-30 19:40:13 +02:00
Jan Kaifer
80ebfad19d
Handle async require when importing ESM in instrumentation.ts (#47658)
Fixed issue where `require` will return a Promise if (and only if) there
is an ESM module imported in `instrumentation.ts`:
61cd219f15/packages/next/src/server/next-server.ts (L212)

Had to move stuff to async function from constructor, but luckily we
already have `prepare`.
2023-03-30 16:05:26 +00:00
Karl Horky
e7371bc3b7
Fix next-types-plugin generated files for Node16/NodeNext (#47571)
### What / Why / How?

In a project with `"type": "module"` in `package.json` and a `compilerOptions.moduleResolution` of `Node16` or `NodeNext` in `tsconfig.json`, running `tsc` will yield errors like the following:

```
.next/types/app/[...not_found]/page.ts:1:40 - error TS2307: Cannot find module 'next/dist/lib/metadata/types/metadata-interface' or its corresponding type declarations.

1 import type { ResolvingMetadata } from 'next/dist/lib/metadata/types/metadata-interface';
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.next/types/app/layout.ts:2:24 - error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '../../../app/layout.jsx'?

2 import * as entry from '../../../app/layout'
                         ~~~~~~~~~~~~~~~~~~~~~

.next/types/app/layout.ts:3:40 - error TS2307: Cannot find module 'next/dist/lib/metadata/types/metadata-interface' or its corresponding type declarations.

3 import type { ResolvingMetadata } from 'next/dist/lib/metadata/types/metadata-interface'
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

These files are checked because of the following `tsconfig.json` line which Next.js adds:

```diff
{
  "include": [
+    ".next/types/**/*.ts",
  ]
}
```

Adding the extensions will make it work with these projects and still maintain backwards compatibility with other TypeScript / module configurations.
2023-03-30 14:43:27 +00:00
Jiachi Liu
99cdb36663
Vendor @vercel/og and expose ImageResponse (#47657
### What?

This PR vendors @vercel/og and export `ImageResponse` from
`next/server`. When you render a opengraph image the below code snippets
will be legit:

```tsx
import { ImageResponse } from 'next/server'

export default function og() {
  return new ImageResponse(<div style={{ width: '100%', height: '100%' }}>hello</div>)
}
```

### Why?

To make development more easier, user can directly use `@vercel/og`
Image Response with nextjs instead of install it and use it. This makes
building metadata icons, og or twitter images more convenient.

### How?

Closes NEXT-899
2023-03-30 13:06:30 +02:00
Shu Ding
90922acd73
Revert "Update vendored react to 18.3.0-next-85de6fde5-20230328" (#47687)
Reverts vercel/next.js#47675
2023-03-30 11:06:04 +00:00
JJ Kasper
4803102a24 v13.2.5-canary.21 2023-03-30 05:16:37 +00:00
JJ Kasper
6e8ee78dfa
Fix rust-check 2023-03-29 20:27:01 -07:00
OJ Kwon
7e70ac64b3
build(next-swc): introduce turbo-binding (#47512)
<!-- 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 or adding/fixing 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 #

-->

### What?

Part of WEB-736.

This PR refactors imports to turbopack to turbo-binding, as same as we
used to do with next-binding. Current next-binding in this repo doesn't
make sense anymore and removed. There are no functional changes. This'll
reducwe surface for the imports and also will make easier to run
integration test over latest turbopack.

Note swc dependency is not reflected in this PR yet - following PR will
update those imports.
2023-03-29 20:25:11 -07:00
Leah
0ed46203aa
resolve browser modules for edge api in turbopack (#47604) 2023-03-30 01:58:51 +00:00
Ngô Đức Anh
ca56e4fb26
Fix(next-types-plugin): remove unused imports (#47667)
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 or adding/fixing 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?

This PR fixes the issue where `next-types-plugin`'s typeguard files include unused imports, which was introduced by #47185 and might be problematic with certain configuration.

### Why?

We don't need `ResolvingMetadata` when `options.type` is `'route'` and `NextRequest` when `options.type` is `'page'`/`'layout'`, and so caused the issue.

### How?

Simply check whether `options.type` is `'route'` or `'page'`/`'layout'`.

Fixes #47646
2023-03-30 00:21:52 +00:00
Steven
b1cbb4c466
fix: improve type of ExportPathMap (#47676)
This is a new PR with only the typescript changes from previous closed
PR #47628
2023-03-29 16:35:31 -07:00
Jiachi Liu
0a94e2221f
Update vendored react to 18.3.0-next-85de6fde5-20230328 (#47675)
Changelog from react side

```
-  85de6fde5 Refactor DOM special cases per tags including controlled fields (#26501) (Sebastian Markbåge)
-  5cbe6258b Remove unnecessary CIRCLE_CI_API_TOKEN checks (#26499) (Mengdi Chen)
-  1f5cdf8c7 Update Suspense fuzz tests to use `act` (#26498) (Andrew Clark)
-  f62cb39ee Make disableSchedulerTimeoutInWorkLoop a static ff (#26497) (Ricky)
-  f71819931 [DevTools] browser extension: improve script injection logic (#26492) (Mengdi Chen)
-  41b4714f1 Remove disableNativeComponentFrames (#26490) (Ricky)
-  fc90eb636 Codemod more tests to waitFor pattern (#26494) (Andrew Clark)
-  e0bbc2662 Improve tests that deal with microtasks (#26493) (Andrew Clark)
-  8faf75193 Codemod some expiration tests to waitForExpired (#26491) (Andrew Clark)
-  8342a0992 Remove unused feature flag disableSchedulerTimeoutBasedOnReactExpirationTime (#26488) (Jan Kassens)
-  afea1d0c5 [flow] make Flow suppressions explicit on the error (#26487) (Jan Kassens)
-  768f965de Suspensily committing a prerendered tree (#26434) (Andrew Clark)
-  d12bdcda6 Fix Flow types of useEffectEvent (#26468) (Sebastian Silbermann)
-  73b6435ca [Float][Fiber] Implement waitForCommitToBeReady for stylesheet resources (#26450) (Josh Story)
-  175962c10 Fix remaining CommonJS imports after Rollup upgrade (#26473) (dan)
-  3fcf209ea React DevTools 4.27.3 -> 4.27.4 (#26470) (Mengdi Chen)
-  bde974ae4 [DevTools] missing file name in package.json (#26469) (Mengdi Chen)
-  909c6dacf Update Rollup to 3.x (#26442) (Mark Erikson)
-  9c54b29b4 Remove ReactFabricPublicInstance and used definition from ReactNativePrivateInterface (#26437) (Rubén Norte)
-  f77099b6f Remove layout effect warning on the server (#26395) (Ricky)
-  51a7c45f8 Bugfix: SuspenseList incorrectly forces a fallback (#26453) (Andrew Clark)
-  afb3d51dc Fix enableClientRenderFallbackOnTextMismatch flag (#26457) (Sebastian Markbåge)
-  8e17bfd14 Make InternalInstanceHandle type opaque in ReactNativeTypes (#26461) (Rubén Norte)
-  8bdf162bc React DevTools 4.27.2 -> 4.27.3 (#26459) (Mengdi Chen)
-  b93b4f074 Should not throw for children of iframe or object (#26458) (Sebastian Markbåge)
-  c0b34bc5f chore: update links of docs and api (#26455) (Leedom)
-  56f7a90e6 chore: update new docs links for react-dom (#26456) (Leedom)
-  bd5e32309 Small Flow upgrade to 0.202.0 (#26435) (Jan Kassens)
-  ffb6733ee fix docs link for useSyncExternalStore (#26452) (Valor(华洛))
-  0018cf224 Add REVISION file to react-fbsource-import (#26448) (Samuel Susla)
```

Also merge react and react-server-dom-webpack vendor job into one
2023-03-29 23:21:33 +00:00
Steven
d19617e9c7
fix: image loaderFile with edge runtime (#47659)
- Fixes #47168 
- fix NEXT-909 ([link](https://linear.app/vercel/issue/NEXT-909))
2023-03-29 15:08:36 -07:00
Tobias Koppers
f44e214ff1
provide Buffer polyfill to client and edge (#47610)
### What?

see also https://github.com/vercel/turbo/pull/4368

Polyfill Buffer

### Why?

Legacy reasons

fixes WEB-642
2023-03-29 21:33:30 +00:00
Steven
b55633fe1c
fix: handle output: export with use client (#47635)
This PR removes usage of `appPaths` in favor of `hasAppDir` to avoid the
issue where export does not read app manifest.

Fixes the error:

```
TypeError: Cannot read properties of undefined (reading 'cssModules')
```

fix NEXT-885 ([link](https://linear.app/vercel/issue/NEXT-885))
2023-03-29 13:55:32 -07:00
Wyatt Johnson
aca83d2a09
Move App Route handler logic into bundle (#47633)
Previously the app route handler was included in the server bundle, and called into user code to execute the underlying handler logic. This PR serves to move the handler code into the bundle so that the Node.js environment more closely matches the Edge environment.

This also updates the Rust code for the new loader.
fix NEXT-712 ([link](https://linear.app/vercel/issue/NEXT-712))
2023-03-29 19:31:30 +00:00
Leah
13f21520c2
show most recent error first in turbopack error overlay (#47414)
Also refactors the `Errors` state into a reducer, which makes things a bit easier to reason about (in my opinion)


I tried adding an ID to the issue, so we don't have to stringify the whole issue, but unfortunately that duplicates (parsing issues)

the reason is probably that files get parsed twice, once for the client and once for the server side
2023-03-29 16:05:31 +00:00
Jiachi Liu
facea99f0e
Expose metadata types (#47630)
### What?

- Besides existing `Metadata` type, expose `ResolvingMetadata` and `ResolvedMetadata` to `'next'`.
- Group `Robots` / `Sitemap` / `Manifest` these dynamic data routes types as `MetadataRoute` type and expose to `'next'`

### Why?

Allow users to type the more API easily, and grouping them to avoid type conflicts (e.g. we have `Robots` in metadata interface field, `MetadataRoute.Robots` can avoid conflicts)

### How?

Closes NEXT-908
2023-03-29 11:16:47 +00:00
Leah
46151dd68b
fix typescript errors in next-core (#47607)
Fixes WEB-809
2023-03-29 02:53:32 +00:00
Jiachi Liu
f6e6c2f01a
Fix robots.txt generation (#47625)
### What?
Fix robots.txt generation

### Why?

Should support multiple allow/disallow rules, they should be generated in different lines

### How?

Closes NEXT-905
Fixes #47224

fix NEXT-905 ([link](https://linear.app/vercel/issue/NEXT-905))
2023-03-28 21:22:37 +00:00