Commit graph

9992 commits

Author SHA1 Message Date
Katie Byers
c03fa72c99
Add tracing to with-sentry example for Next.js 11 (#30401) 2021-11-29 17:02:00 -06:00
Maedah Batool
2781b8eb87
Improve Middleware Set Cookie API documentation (#31707) 2021-11-29 16:44:58 -06:00
Maia Teegarden
7be75bbf2f
Try fix (#31943) 2021-11-29 14:31:19 -08:00
JJ Kasper
3b089ae18f
v12.0.5-canary.11 2021-11-29 16:18:39 -06:00
Thibaut SABOT
922a1fd005
include no-document-import-in-page rule in plugin index (#31890)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-11-29 16:09:17 +01:00
Jiachi Liu
6920c0201b
Remove unpurpose test (#31898)
The test from #31784 can pass with or without the source code change in that PR.
I cannot repro it. The writable is true on build in the provided case
2021-11-29 15:03:13 +00:00
Michel Krämer
c8457e3abf
Fix disabling of built-in CSS support if there is a custom loader (#31078)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Lee Robinson <me@leerob.io>
2021-11-29 15:19:39 +01:00
Leonardo Ortiz
0202bb0a99
Docs(React 18): remove unnecessary React import (#31900)
In the `Server Components APIs (Alpha)` code sample, importing `React` is unnecessary. People may think that having `react`'s default export imported is needed to use `Suspense`
2021-11-29 01:21:06 +00:00
Leonardo Ortiz
efd5d03a8c
Docs(React 18): add missing Suspense import (#31897)
This PR adds a missing import in React 18 documentation's sample code, where `Suspense` is used without being imported.

_(edit: fix typo)_
2021-11-29 00:46:26 +00:00
Vincent Voyer
127b92b102
docs(examples): add secure flag explanation to with-iron-session (#31896)
Following comment on the project here: https://github.com/vvo/iron-session/issues/425
2021-11-28 18:35:39 -06:00
Steven
b1be180d7d
Fix: Cannot assign to read only property 'children' (#31784)
- Closes #28498 

Co-authored-by: Jesse Jafa <12380586+awareness481@users.noreply.github.com>
2021-11-28 21:19:57 +00:00
Javi Velasco
85cc454023
Add port and hostname options to Next Server (#31858)
A middleware can work as a proxy intercepting requests and then performing a `fetch` to the destination adding headers to the request / response as a "man in the middle". When using `fetch` from a middleware we are not in the context of a browser so we can't really use relative URLs, they must be always absolute.

Now consider the previous case when middleware is running in *server mode*. Typically in order to know the host where we are fetching we can use the `request.nextUrl` which is given to the middleware but in this case the invoker (which is next-server) has no context of the hostname, nor the port. To solve this use case we must make the invoker of the middleware aware of the origin hostname and port.

This PR: 

- Introduces `hostname` and `port` as options for `NextServer`.
- Refactors types in `NextServer` and `NextDevServer` moving type only imports to the top of the file.
- Refactors `startServer` to do a best guess on the `hostname` and `port`, passing them down.
- Exposes `.port` and `.hostname` to be retrieved from the `app`.

In an upcoming PR we will pass the host guess to the middleware to solve the relative URL issue.
2021-11-28 16:48:43 +00:00
Austin P
c10a841620
docs(middleware): file extension consistency (#31879)
Almost every one of the examples for middleware specific a `.ts` file extension, this PR just makes it consistent.
2021-11-28 15:56:31 +00:00
Jiachi Liu
cf64e9130e
fix: rsc headers (#31854)
`headers` type should align with `NodeHeaders`
2021-11-26 18:04:36 +00:00
Maia Teegarden
112ca407c0
Do not load external binding if local was found (#31853) 2021-11-26 17:39:05 +01:00
Jeremy Monson
9b9023b304
bugfix: href value is not defined when typing out the href (#31813) 2021-11-26 17:32:52 +01:00
Shu Ding
d577edd206
Fix auto export condition in edge SSR (#31845)
`isAutoExport` should be `false` when `concurrentFeatures` is enabled.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-26 15:53:38 +00:00
Juny
4c05de3c7e
fix amp validator message format (#31018)
## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

fixes https://github.com/vercel/next.js/issues/31012

I referred to the previous code.

```
    if (errors == null) {
      if (Object.keys(amp).length > 0) {
        warnings = (warnings || []).concat(formatAmpMessages(amp) || [])
        if (!warnings.length) warnings = null
      }
    }
```

https://github.com/vercel/next.js/pull/29753/files
2021-11-26 15:13:09 +00:00
Tim Neutkens
e9e8e8b423
Move require.resolve into the module scope (#31799)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-11-26 15:30:32 +01:00
Hannes Bornö
466687e88e
SWC: Add error checks and tests to next-dynamic (#31683)
fixes #31520

## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-26 14:22:28 +00:00
Luis Alvarez D
77150dac79
Include submodules in exported type definition (#28316) 2021-11-26 14:46:56 +01:00
Heyang Zhou
809d0155ff
Add support for removing React properties. (#31606) 2021-11-26 14:45:03 +01:00
Samuli Asmala
ed1d0241db
Docs(router): Add type for url parameter (#31737)
Update documentation to have proper type for the url parameter of router.push method. Also add link to Node.JS documentation for full explanation of the UrlObject properties.
2021-11-26 13:37:46 +00:00
Gerrit Alex
d38dd3d7e6
fix: support function components in _document in no-page-custom-font (#31560) 2021-11-26 14:27:13 +01:00
Javi Velasco
2e5218c778
Fix hydration middleware effects (#31800)
Whenever we trigger a route change in the client we check if there route we are navigating to is affected by a middleware. When this is the case we run a preflight and in case there is an effect that tells us that the middleware is responding with content we force a _refresh_. This is fine for navigation in general but it is not ok when the change is triggered for hydration. For example, in cases where the rendered page is a dynamic page this triggers an infinite reload.

In this PR we add a test where we add a `_middleware` that proxies to a dynamic path. When making a request to `/interface/root-subrequest` there will be a middleware that simply performs a fetch against localhost for the same `/interface/root-subrequest`. The new request will skip the middleware to avoid loops and then render the dynamic page. Then client will force a change for hydration resulting in a preflight request that tells that the client must refresh because for that path there is a middleware writing content.

Then we add a fix which simply consist of checking the internal option that tells when a change is triggered for hydration and skip the preflight in such scenario.

## Bug

- [ ] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-26 12:46:57 +00:00
Javi Velasco
e52bee37af
Refactor sandbox module cache (#31822)
To run middleware we are using a **sandbox** that emulates the web runtime and keeps a module cache. This cache is shared for all of the modules that we run using the sandbox while there are some module-level APIs that must be scoped depending on the module we are running.

One example of this is `fetch` where we want to always inject a special header that indicate the module that is performing the fetch and use it to avoid getting into infinite loops for middleware. For those cases the cached implementation will be the first one that instantiates the module and therefore we can actually get into infinite loops. This is the reason why #31800 is failing.

With this PR we refactor the sandbox so that the module cache is scoped per module name. This means that one execution of a middleware will preserve its cache only for that module so that each execution will still have its own `fetch` implementation, fixing this issue. Also, with this refactor the code is more clear and we also provide an option to avoid using the cache.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-26 12:06:41 +00:00
Abir
d72e429a73
[Docs][Fix] Broken Link to API Reference (#31820)
## Documentation / Examples
- [x] Make sure the linting passes by running `yarn lint`

## Steps to Reproduce

1. Go to https://nextjs.org/docs/advanced-features/debugging#debugging-with-vs-code

2. Click on the link as shown in red underlined in below image.
<img width="835" alt="image" src="https://user-images.githubusercontent.com/53480076/143548215-ee75deac-3e8b-42b3-ba72-fae0b76b30a3.png">

3. Ending up with the **404 Error** screen
<img width="835" alt="image" src="https://user-images.githubusercontent.com/53480076/143548364-7ddf45c9-4e69-44eb-9217-3547419e103a.png">

## Fixing Steps

Replace the broken link with correct one.
2021-11-26 09:13:01 +00:00
Donny/강동윤
cfe561eae2
Update swc (#31816) 2021-11-26 10:01:30 +01:00
Tim Neutkens
b2acdbb788 v12.0.5-canary.10 2021-11-25 20:45:30 +01:00
Javi Velasco
f536376f03
Ensure middleware order is preserved (#31801)
The order in which middleware must be invoked conditions its behaviour. Currently, this is not being taken into consideration for server since we are generating the array of middleware based on an arbitrary order of the middleware existing in the filesystem. This PR ships a change to generate the array of middleware preserving the order defined in the manifest.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-25 19:13:27 +00:00
Tobias Koppers
db099c5668
update webpack (#31798)
https://github.com/webpack/webpack/releases/tag/v5.64.4
2021-11-25 18:31:25 +00:00
Tim Neutkens
92b397f2b7
Lazy-load postcss (#31762)
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
2021-11-25 18:41:20 +01:00
Tobias Koppers
a4159321b2
read file in swc when no loaders follow the next-swc-loader (#31682)
Fixes #31685


## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`


Co-authored-by: Tim Neutkens <6324199+timneutkens@users.noreply.github.com>
2021-11-25 14:00:14 +00:00
Gergely Gazda
b71f9d9475
docs(next-config): extend phase lines reference (#31711)
Next config `phase` attribute's default value list has been extended. This PR extends the number of referenced lines in the documentation.

## Documentation / Examples

- [x] Make sure the linting passes by running `yarn lint`
2021-11-25 10:37:18 +00:00
Javi Velasco
d1a1a4c0f7
Improve and refactor some types (#31704) 2021-11-25 10:46:00 +01:00
Tobias Koppers
03ecbcf182
Remove some watcher hacks and update version (#31768)
## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-25 08:31:20 +00:00
Maia Teegarden
1bc9b1ac02
Fix wasm loading (#31772)
* Fix wasm loading

* Remove consoles
2021-11-24 15:33:34 -08:00
Tobias Koppers
719fe5291c
update webpack (#31759)
https://github.com/webpack/webpack/releases/tag/v5.64.2
https://github.com/webpack/webpack/releases/tag/v5.64.3
2021-11-24 15:22:24 +00:00
Tim Neutkens
ff816d4bb0
Remove noop import (#31722) 2021-11-24 15:40:58 +01:00
Tim Neutkens
a4cd48e51a
Lazily init getStaticPathsWorker (#31760) 2021-11-24 13:40:08 +01:00
Rich Haines
a371447555
Added note on env vars (#31237)
This PR adds a note on how to access env vars in middleware

## Bug

- [x] Related issues linked using fixes: #30612
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`


Co-authored-by: Steven <229881+styfle@users.noreply.github.com>
2021-11-23 20:55:17 +00:00
Tim Neutkens
e95c9caca3 v12.0.5-canary.9 2021-11-23 18:51:52 +01:00
Tim Neutkens
fccaa8e27f
Fix initial compile timing incorrect measurment (#31733)
Co-authored-by: Tobias Koppers <1365881+sokra@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-11-23 18:47:36 +01:00
wendell
226944d3d3
Fix pwa demo (#31734)
* Fix pwa demo

* Revert unnecessary change
2021-11-23 11:17:56 -05:00
JJ Kasper
4b538e9879
Add error link when hydration error occurs (#31519)
This adds an error document/link for hydration errors to help users debug these easier. While looking at adding this also noticed a typo in the dev-overlay which is fixed. 

<details>

<summary>screenshot</summary>

<img width="1109" alt="Screen Shot 2021-11-16 at 15 56 29" src="https://user-images.githubusercontent.com/22380829/142078200-6c036ed9-ca7f-4d26-ae07-eb9bd89e991a.png">

</details>

## Documentation / Examples

- [x] Make sure the linting passes by running `yarn lint`


Co-authored-by: Tim Neutkens <6324199+timneutkens@users.noreply.github.com>
2021-11-23 13:10:56 +00:00
Ben Schwarz
98227b273f
Fix typo in MDX guide (#31709)
In this PR:

- [x] Fixes a 1 character typo in the newly merged MDX guide
2021-11-22 23:35:25 +00:00
Francisco Moretti
b4699b860e
'imgix.cosmicjs.com' image domain in cms-cosmic example (#31703)
## Bug-fix: 'imgix.cosmicjs.com' image domain is needed for the cms-cosmic example

- Fixes #31702
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

### Solution 
As suggested by the output I got while running the exapmle, I've added the domain to `next.config.js`
```
event - compiled successfully in 129 ms (552 modules)
error - node_modules\next\dist\client\image.js (660:33) @ defaultLoader
Error: Invalid src prop (https://imgix.cosmicjs.com/8efcc570-9a21-11ea-bf2a-2b6ff88d4f06-e73aee30-1db0-11ea-a594-a170ead8b2cb-12.jpg?auto=format,compress,enhance&w=100&h=100) on `next/image`, hostname "imgix.cosmicjs.com" is not configured under images in your `next.config.js`
See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host
null
```


## Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-22 22:52:44 +00:00
Francisco Moretti
075fd44ab7
Update README of cms-cosmic example (#31701)
## Documentation / Examples - Update COSMIC_BUCKET_SLUG location in cms-cosmic example
While trying the cms-cosmic example I realized that COSMIC_BUCKET_SLUG  is actually in the **API Access** menu and it's not in the **Basic Settings** menu.
### Screenshots
Here are some screenshots from the two sections:
#### Basic Settings
![basic_settings](https://user-images.githubusercontent.com/16997807/142915282-49fb8321-a01e-4478-9047-29274da36852.png)
#### API Access
![API_access](https://user-images.githubusercontent.com/16997807/142915289-74967622-adbb-405c-a1c8-5c02c2249675.png)

### Testing
I've tried the example using the COSMIC_BUCKET_SLUG from API Access and it worked without issues.
2021-11-22 22:40:16 +00:00
Tim Neutkens
f584722fcb
Remove trace_target env var in favor of .next/trace (#31697) 2021-11-22 20:58:49 +01:00
Jiachi Liu
7f58a2e49f
Add cookies and headers for request using in RSC (#31623)
* Passdown the request with richer information
* test: access request header as prop from gSSP
2021-11-22 18:53:22 +00:00