Commit graph

7052 commits

Author SHA1 Message Date
Jesse Zhu
aeef38e80e
Use withoutEnlargement instead of sharp.metadata() (#44890) 2023-01-17 10:56:53 -08:00
Shu Ding
3a9bfe60d2
Fix CSS imports being tracked multiple times (#44938)
Currently the way our renderer injects CSS is to first track CSS imports on the module level, and then render these links on each layer. However, in a complex application it's possible that one CSS being imported in many modules, and in multiple layouts. This causes an issue of duplication. And if there are many rules the order could be messed up by that. 

This PR deduplicates CSS resources used by one entry (layout, page, error, ...) and all its parent layouts. If an entry is rendered, all its ancestors are rendered too.

See test case for more details. Currently those two tests will all fail.

Fixes #42862.

## Bug

- [ ] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-17 18:36:00 +00:00
Hannes Bornö
5b5cc33991
Fix force-static description in next-typescript (#44951) 2023-01-17 08:52:50 -08:00
Tim Neutkens
4f410e43fb v13.1.3-canary.2 2023-01-17 15:47:33 +01:00
Tim Neutkens
66094ef6da
Ensure rootLayoutIncluded is set on partial render (#44958) 2023-01-17 15:21:49 +01:00
JJ Kasper
8a8a70e428
v13.1.3-canary.1 2023-01-16 16:13:09 -08:00
Wyatt Johnson
e78c6ec2a5
Replace eslint rule for no-shadow with typescript-eslint/no-shadow (#44936) 2023-01-16 16:02:59 -08:00
Hannes Bornö
d45d0f96f5
Custom RSC compiler error message in pages/ (#44865)
Change the error message when the RSC compiler errors are caused by a
`/pages` page.
 
Fixes NEXT-371

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ]
[e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

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

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-01-16 14:47:18 +01:00
Diptesh Choudhuri
869aab39f1
fix standalone wrong url being logged (#44887)
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2023-01-15 18:10:26 -08:00
JJ Kasper
969cca878c
Move server-external-packages to JSON (#44910)
This migrates the server component external packages list to a JSON file so it can be loaded by turbopack without booting node. 

x-ref: [slack thread](https://vercel.slack.com/archives/C03EWR7LGEN/p1673738166096439)
2023-01-16 01:38:39 +00:00
GJunior
196957fd68
Next/Script documentation beforeInteractive inconsistency (#44898)
Co-authored-by: JJ Kasper <jj@jjsweb.site>
Closes https://github.com/vercel/next.js/issues/43566
2023-01-15 17:08:11 -08:00
LongYinan
d61b0761ef
Use sequentialRead while encoding images with sharp (#44881)
This can reduce memory usage and might improve performance on some systems.

Related: https://github.com/Brooooooklyn/Image/pull/34#issuecomment-1382182686
2023-01-14 10:34:42 +00:00
JJ Kasper
d4a3c66479
Update pre-compiled (#44874) 2023-01-13 17:52:35 -08:00
JJ Kasper
62bbbfb6e5
v13.1.3-canary.0 2023-01-13 17:04:09 -08:00
JJ Kasper
a72a9f2225
Prompt for custom import alias and store preferences in CNA (#44872) 2023-01-13 16:51:25 -08:00
Jiachi Liu
375871620a
Handle empty module from the next dynamic loader (#44873) 2023-01-13 16:48:29 -08:00
Jiachi Liu
ff19e7ad30
Add built-in server-only and client-only (#44861) 2023-01-13 14:55:34 -08:00
Jiachi Liu
98df70e233
Refactor next dynamic (#44832)
* Convert `loadable` to tsx for convenience
* Merge `NoSSR` into `loadable`
* Address the missing `preload` method mentioned in
https://github.com/vercel/next.js/pull/42589#issuecomment-1353226954

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-01-13 14:47:07 +01:00
JJ Kasper
5f2809f40f
v13.1.2 2023-01-12 15:24:15 -08:00
JJ Kasper
be2d286cee
v13.1.2-canary.8 2023-01-12 13:16:02 -08:00
Jiachi Liu
6fcb518f31
Fix image emittion for pure client image (#44831)
Fixes https://github.com/vercel/next.js/issues/44068
Fixes https://github.com/vercel/next.js/issues/44143
Fixes https://github.com/vercel/next.js/issues/44658
2023-01-12 11:24:59 -08:00
Jimmy Lai
9255da2525 v13.1.2-canary.7 2023-01-12 18:52:25 +01:00
Hannes Bornö
a0b45c3301
Correctly handle @next/font/google fonts without any preloadable subsets (#44809) 2023-01-12 08:23:09 -08:00
Hannes Bornö
0b36a526c7
Fix capitalization in formatted server errors (#44798) 2023-01-12 08:15:28 -08:00
Tim Neutkens
2b7e32c3f1 v13.1.2-canary.6 2023-01-12 15:58:54 +01:00
Tim Neutkens
223c974774
Fix router.refresh() resetting state and Suspense boundaries (#44775)
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2023-01-12 15:48:59 +01:00
JJ Kasper
12bfabd179
Update to latest version of pnpm (#44791) 2023-01-11 17:36:52 -08:00
JJ Kasper
2a53cbcc65
v13.1.2-canary.5 2023-01-11 16:03:19 -08:00
JJ Kasper
25b5845a0a
Fix app ISR handling with no generateStaticParams (#44787) 2023-01-11 15:28:03 -08:00
Tapas Kumar
52c22de790
Exposing NextFont types (#44772)
Now we can import { NextFont } from '@next/font';  instead of
import { NextFont } from '@next/font/dist/types';



## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-11 21:21:04 +00:00
chencheng (云谦)
86f384fc5f
chore: fix typo (#44761) 2023-01-10 19:41:23 -08:00
JJ Kasper
fd873a610a
Revert "chore: Update swc_core to v0.53.0" (#44760) 2023-01-10 16:49:32 -08:00
Donny/강동윤
477d081341
chore: Update swc_core to v0.53.0 (#44707)
This PR updates SWC crates to
a225efe363


Blocked by https://github.com/vercel/turbo/pull/3210
2023-01-10 16:37:58 -08:00
Ian Luca
eab68a9f81
Ensure folder exists for standalone server (#44745)
When using standalone output in a monorepo, nextjs will sometimes throw:

`> NX ENOENT: no such file or directory, open
'/dist/apps/my-app/.next/standalone/apps/my-app/server.js'`

next.config.js:
```js
const { withNx } = require("@nrwl/next/plugins/with-nx");
const path = require("path");

/**
 * @type {import('@nrwl/next/plugins/with-nx').WithNxOptions}
 **/
const nextConfig = {
  output: "standalone",
  experimental: {
    outputFileTracingRoot: path.join(__dirname, "../../"),
  },
};

module.exports = withNx(nextConfig);
```

## Bug

- [x] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

Fixes https://github.com/nrwl/nx/issues/14112,
https://github.com/nrwl/nx/issues/9017

This `mkdir` instruction is the same as done for other parts of the
`copyTracedFiles` function. E.g. middlewares or pages.

Tested via publishing to an internal npm registry and pnpm overrides:
```json
  "pnpm": {
    "overrides": {
      "next": "npm:@internal/next@13.1.3-dev"
    }
  }
```
2023-01-10 13:37:39 -08:00
Hannes Bornö
b6f6179d5d
@next/font: Add preconnect tag when fonts are used but not preloaded in app-dir (#44746)
Add a preconnect tag to self with `crossorigin=anonymous` if fonts are used but not preloaded. This is already done in [`/pages`](https://github.com/vercel/next.js/blob/canary/packages/next/src/pages/_document.tsx#L384) but not yet for `/app`. 

Fixes NEXT-337

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-10 19:07:26 +00:00
Jan Kaifer
24a531a69b
Update jsonwebtoken (#44748)
Patches https://github.com/advisories/GHSA-27h2-hvpr-p74q

Shouldn't affect us, but good to patch anyway.
2023-01-10 16:06:36 +01:00
Hannes Bornö
9a5c8cebf0
Improve errors caused by Class Component rendered in a server component. (#44726)
Co-authored-by: Tim Neutkens <tim@timneutkens.nl>
Co-authored-by: Steven <steven@ceriously.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-01-10 14:47:20 +01:00
Hannes Bornö
03e5f5e18d
Hydration error link is appended multiple times in app-dir (#44741)
It looks like we get the same error each time when React is retrying. This adds a check so the link is only appended the first time.

Before
![image](https://user-images.githubusercontent.com/25056922/211514056-d34ab8bc-65ec-42ea-a891-ca1ce5fd07de.png)

After
![image](https://user-images.githubusercontent.com/25056922/211514266-181b8fd4-cc72-42c9-b3fb-53cb6a326fee.png)

Fixes NEXT-356

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-10 10:33:24 +00:00
Akshit Sinha
9dedc94500
Fix IPv6 hostname formatting in CLI (#43491)
Co-authored-by: Jan Kaifer <jan@kaifer.cz>
Fixes https://github.com/vercel/next.js/issues/21979
2023-01-10 11:06:25 +01:00
JJ Kasper
c7162c42b2
v13.1.2-canary.4 2023-01-09 16:55:34 -08:00
JJ Kasper
c9141cf131
land(Fix: Add trailing slash to locale redirect based on next config) (#44735)
Lands https://github.com/vercel/next.js/pull/44562 with lint fixes

Closes: https://github.com/vercel/next.js/pull/44562

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ]
[e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

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

Co-authored-by: Mateusz Lesiak <mateusz.lesiak@columbusglobal.com>
2023-01-09 16:04:55 -08:00
JJ Kasper
893328905f
Update prompts for CNA and add default @/* alias (#44672)
This adds prompts for using a `src/` directory and experimental `app/`
directory with create-next-app. Also adds `jsconfig` and `tsconfig`
options to alias `@/*` by default.

x-ref: [slack
thread](https://vercel.slack.com/archives/C03KAR5DCKC/p1672856097701429)


## 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`
- [ ]
[e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
tests added
- [x] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)
2023-01-09 15:41:12 -08:00
Hannes Bornö
cdfc484ba5
@next/font/google unknown font error (#44713)
I messed up the unknown font error in
https://github.com/vercel/next.js/pull/44594. Restore the original
error.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ]
[e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-09 10:15:45 -08:00
Jimmy Lai
2d0323728f
fix: support runtime value when using multiple declarations per export (#44732)
Fixes a bug where the export syntax with multiple declarations didn't
work. I.e. this now works:

```
export const foo = 'bar', runtime = 'edge'
```


[x-slack-ref](https://vercel.slack.com/archives/C03LF48T3B7/p1673152323630709)

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/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`
- [ ]
[e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see
[`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md)

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
2023-01-09 18:58:31 +01:00
Tim Neutkens
c9564849d4
Start client compiler when server components are finished compiling (#44716) 2023-01-09 14:55:09 +01:00
Tim Neutkens
8266bc280a v13.1.2-canary.3 2023-01-09 09:08:50 +01:00
Markus Gritsch
ee7f5ae33d
Add required default value for the ids parameter (#44694)
Before migrating "loadable" the from js to ts, the reload-ready function initialized its "ids" parameter with an empty array. The migration step added the parameter type but removed the initialization.

Providing an empty array as the default value for the ids parameter is necessary; otherwise, the ids variable in the createLoadableComponent function, line 102, gets undefined, and the loading of components fails.

fixes #44695
2023-01-08 12:40:29 +00:00
Wyatt Johnson
56b201e2e7
Refactor use of AsyncLocalStorage (#44668)
Previously we were targeting lower versions of Node.js for `app` directory support, but a higher version of Node.js (with support for `AsyncLocalStorage`) was made required to use `undici` instead of `node-fetch`. This PR serves to:

1. Simplify the usage of those storage objects by removing the unnecessary fallback code. Everything now just uses the native `AsyncLocalStorage` interface.
2. Isolates the initialization of each store within it's own bound context to prevent leakage.
3. Adds immutibility flags to variables that should only be initlaized once upon store creation to prevent errors. This actually revealed some bugs in the implementation that were corrected.

In the event that this was in error, the following adapter could be used to simulate the previous beheviour with minor changes to the present implementation ([see this gist](https://gist.github.com/wyattjoh/6f3dffb99a4ac1a8254c90284f05026a)).

[Slack Reference](https://vercel.slack.com/archives/C04DUD7EB1B/p1673030967568029)
2023-01-07 03:55:48 +00:00
JJ Kasper
bc90465fb8
Fix check-precompiled for next-server (#44669)
Since this needs to updated quite often this moves it out of the
`compiled` folder and pre-compiles on package build instead.

x-ref:
https://github.com/vercel/next.js/actions/runs/3858962360/jobs/6578078564
2023-01-06 14:58:17 -08:00
JJ Kasper
526c7cd535
v13.1.2-canary.2 2023-01-06 14:25:16 -08:00