Commit graph

15249 commits

Author SHA1 Message Date
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
Shu Ding
a52ebf4089
Add tests for Suspensey CSS (#47708)
This PR adds a test to confirm that the component will be committed
after the stylesheet is loaded, by delaying the CSS request in
middleware and then check the active style in `useEffect` (technically
it should be `useLayoutEffect`). Since our current timeout for that is
set to 500ms, I also added a test with 1000ms delay to rule out false
negative cases.
2023-03-31 10:06:17 +02:00
Rishabh Poddar
c9c8f6cde0
Updates with-supertokens example app (#47701)
Co-authored-by: NkxxkN <kevin@supertokens.io>
Co-authored-by: NkxxkN <kevin.antoine@protonmail.com>
Co-authored-by: Lee Robinson <me@leerob.io>
Co-authored-by: Rishabh <rishabh@supertokens.io>
Co-authored-by: Bhumil Sarvaiya <sarvaiyabhumil@gmail.com>
Co-authored-by: jscyo <joelsteve97@hotmail.com>
Co-authored-by: Mihaly Lengyel <mihaly.lengyel@tresorit.com>
Co-authored-by: Balázs Orbán <info@balazsorban.com>
Co-authored-by: Mihaly Lengyel <mihaly@lengyel.tech>
Co-authored-by: Alisher <alisher@supertokens.com>
Co-authored-by: Nemi Shah <nemishah1212@gmail.com>
2023-03-31 05:38:58 +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
Insik-Han
47152638d4
Replace AWS Serverless to SST in Serverless (#47725)
AWS Serverless(a.k.a Serverless Next.js) is not suitable for versions of
Next.js 12 or higher. As an alternative, I recommend SST.

<!-- 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-30 21:45:05 -05: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
Leah
614a14bc6c
Update CODEOWNERS to override image wildcard (#47722) 2023-03-31 00:07:22 +00: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
dbc4320035
test: remove unreliable font test (#47714)
x-ref:
https://github.com/vercel/next.js/pull/47674#issuecomment-1490914270

as discussed with @ijjk , we decided to remove the test as it's not
reailable due to random updates from google endpoint
2023-03-30 14:16:05 -07: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
Tobias Koppers
ebe0686a9d
Run turbopack integration tests for next.js changes too (#47608)
### What?

Turbopack tests need to run on any change

### Why?

Next.js changes might break turbopack and we want to avoid that.

### How?

Change CI job

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-03-30 18:21:19 +02:00
Balázs Orbán
cbb8486afa
docs: clarify returning response in Middleware (#47696)
I noticed that the wording was still suggesting that you needed to
"enable" this, but since
[`13.1`](https://nextjs.org/blog/next-13-1#nextjs-advanced-middleware),
`experimental.allowMiddlewareResponseBody` is not needed anymore.

Ref: #44224
2023-03-30 09:13:14 -07: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
Jiachi Liu
16badb40c1
test: disable the flaky test for parallel-routes-and-interception (#47694)
x-ref: https://github.com/vercel/next.js/actions/runs/4548265038/jobs/8019160929?pr=47630
2023-03-30 15:25:51 +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
ed156fa18f
Update pnpm version for trigger release 2023-03-29 22:01:40 -07: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
isaackatayev
e9085efe47
Grammar fix (#47600)
<!-- 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 #

-->
Change are -> is in docs (check commits).

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2023-03-29 16:43:26 -07: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
Max Gudkov
9d9bd8be15
Fix typo (#47634) 2023-03-28 23:08:40 +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
Shu Ding
54fce53dd9
Make sure the global not found route doesn't conflict with existing /not-found route (#47619)
In #47328 we made the root level `/not-found.js` a special entry, to
override the page 404 during builds. However, it's possible that the
user has a valid `/not-found/page.js` route that might conflict with
this special entry. This PR changes the entry to be `/_not-found` so it
will never conflict with existing valid entries.
2023-03-28 21:54:58 +02:00
JJ Kasper
28d56ec95f
Update test create-next-app running (#47611)
This re-enables running the CNA tests for all non-docs changes as it's now ensuring we don't regress on turbopack or our default templates. 

Also fixes the main repo's package.json files from being modified during tests.
2023-03-28 17:39:00 +00:00
JJ Kasper
4d0f5a0503
Revert "Move App Route handler logic into bundle" (#47614)
Reverts vercel/next.js#47582

This breaks turbopack support so we should address that before landing.
Potentially we can re-use the same loader for both which would eliminate
this issue.

x-ref:
https://github.com/vercel/next.js/actions/runs/4544370605/jobs/8010399819
x-ref:
https://github.com/vercel/next.js/actions/runs/4545240650/jobs/8012475072?pr=47611
fix NEXT-712 ([link](https://linear.app/vercel/issue/NEXT-712))
2023-03-28 10:12:03 -07:00
Wyatt Johnson
5dc31354b9
Move App Route handler logic into bundle (#47582)
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.
fix NEXT-712 ([link](https://linear.app/vercel/issue/NEXT-712))
2023-03-28 16:38:17 +02:00