Commit graph

5264 commits

Author SHA1 Message Date
Alex Castle
76bad07bdf
Add new 'raw' image layout (#34339)
This PR adds a new layout mode for images called `raw`, as discussed with the core team a while back. This mode has the following characteristics:
 - No wrapper `span` around the `img` element
 - No sizer svg
 - Almost no styles automatically added to the `img` element
 - `style` parameter is allowed and is passed through to the underlying `img` element

This also adds documentation changes to describe the new component.

There are a few tradeoffs and DX decisions that may warrant discussion/revision before merging. I'll add a few comments to highlight those issues.

- Related to #18637
2022-03-14 10:25:23 -04:00
Jiachi Liu
edce68b40c
Bump styled-jsx to 5.0.1 (#35290)
x-ref: https://github.com/vercel/next-react-server-components/issues/35
x-ref: https://github.com/vercel/styled-jsx/pull/788

## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
2022-03-13 20:31:53 +00:00
Houssein Djirdeh
79016b879f
Adds web worker support to <Script /> using Partytown (#34244)
## Summary

This PR adds a new `worker` strategy to the `<Script />` component that automatically relocates and executes the script in a web worker.

```jsx
<Script 
  strategy="worker"
  ...
/>
```

[Partytown](https://partytown.builder.io/) is used under the hood to provide this functionality.

## Behavior

- This will land as an experimental feature and will only work behind an opt-in flag in `next.config.js`:

  ```js
  experimental: {
    nextScriptWorkers: true
  }
  ```

- This setup use a similar approach to how ESLint and Typescript is used in Next.js by showing an error to the user to install the dependency locally themselves if they've enabled the experimental `nextScriptWorkers` flag.

  <img width="1068" alt="Screen Shot 2022-03-03 at 2 33 13 PM" src="https://user-images.githubusercontent.com/12476932/156639227-42af5353-a2a6-4126-936e-269112809651.png">
- For Partytown to work, a number of static files must be served directly from the site (see [docs](https://partytown.builder.io/copy-library-files)). In this PR, these files are automatically copied to a `~partytown` directory in `.next/static` during `next build` and `next dev` if the `nextScriptWorkers` flag is set to true.

## Checklist

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

This PR fixes #31517.
2022-03-11 22:26:46 +00:00
Shu Ding
3b9864d4f4
Remove the special _document-concurrent component (#35242)
This PR removes the `` const documentPage = `_document${globalRuntime ? '-concurrent' : ''}` `` condition from the config resolution phrase, and only use the built-in one. And later when rendering, we can conditionally convert the default class component into a function component. This change is necessary for the switchable runtime feature (#31506).

## 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`
2022-03-11 20:38:09 +00:00
C. T. Lin
bc0816f936
fix(Script): allow passing defer=false to Script component (#34850)
## Bug

```jsx
<Script
  async
  defer={false}
  strategy='beforeInteractive'
  src='https://securepubads.g.doubleclick.net/tag/js/gpt.js'
/>
```

output:

```html
<script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" async="" defer="" data-nscript="beforeInteractive"></script>
```

The `defer` prop is overridden by `!disableOptimizedLoading`, so can't disable it on the particular script.
2022-03-11 16:53:09 +00:00
Balázs Orbán
91455653fe
chore: upgrade cssnano-simple (#35258)
Fixes #35219

## 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`
2022-03-11 16:25:18 +00:00
JJ Kasper
d7deb852bd
v12.1.1-canary.10 2022-03-11 08:53:10 -06:00
Shu Ding
2b13c2f7fa
Ensure that pages manifest contains pages of both runtimes (#35243)
Previously we only run `PagesManifestPlugin` in the Node server runtime, because the Edge target doesn't need it as the web server and middleware SSR loader specially handled pages manifest. This cases entrypoints with the Edge runtime configured being missing from there and this PR fixes it.

Part of #31317 and #31506.

## 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`
2022-03-11 13:33:40 +00:00
Donny/강동윤
e57d621fb3
feat(next-swc): Update crates (#35133)
This PR updates crates related to ecmascript to d62ef6498d

I'll update css crates separately.


This PR also reduces the size of binary.
2022-03-11 04:58:01 +00:00
Jiachi Liu
088354d4f7
Render resolved streaming content for static render result (#35221)
* Fix the static streaming render result isn't the resolved streaming rendering content (resolve suspense)
* Update readable stream polyfill to fit the w3c standard
2022-03-10 21:34:40 +00:00
Steven
ceb7bfb29d v12.1.1-canary.9 2022-03-10 08:22:40 -08:00
Huzaifa Arif
ea87415fd9
[Fix] Adds try/catch to gracefully handle performance observer exception (#35202)
* fix: add try/catch to gracefull handle performance observer exception on older browsers

* fix: run prettier

Co-authored-by: Steven <steven@ceriously.com>
2022-03-10 11:06:50 -05:00
Steven
0355e5f63f
Fix next/image when src is webp but browser doesnt support it (#35190)
* Fix `next/image` when src is webp but browser doesnt support it

* Exclude old sharp since it doesnt support AVIF
2022-03-10 15:02:13 +01:00
Eric Ponto
84720697e4
Convert server.js to module.exports (#35181)
If different contexts (using Jest, using Nx, etc), server.js is getting imported when using middleware and throwing the error: "SyntaxError: Unexpected token 'export'".

fixes #32848



## Bug

- [x] 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: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-03-09 22:50:07 +00:00
Jiachi Liu
9bff48b9d5
Adopt react 18 rc2 (#35161)
* Adopt react 18 rc2

* execute shouldUseReactRoot only once

* update test

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-03-09 21:12:36 +01:00
Jiachi Liu
81276e213d
Disable the functions manifest plugin (#35155)
Disable the plugin introduced in #33770, will rewrite when manifest consuimg part becomes stable
2022-03-09 15:22:54 +00:00
Jiachi Liu
21994ce591 v12.1.1-canary.8 2022-03-09 14:06:29 +01:00
JJ Kasper
acbd54322f
Ensure mjs files are transformed with jest (#34698)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-03-09 13:49:58 +01:00
Jiachi Liu
6646ffad75
Change to loadBindings for swc parse (#35171)
CI test `TEST_WASM=true xvfb-run node run-tests.js test/integration/production/test/index.test.js` is aways failing in recent PRs

`loadBindingsSync` does not import `next-swc/wasm` unlike `loadBindings`

x-ref: https://github.com/vercel/next.js/runs/5479076388?check_suite_focus=true
x-ref: https://github.com/vercel/next.js/runs/5471650765?check_suite_focus=true
2022-03-09 12:21:01 +00:00
Jiachi Liu
55c063eaac
Delay prefix flushing (#35170)
Only happened with SSR without suspense case

Similar reason to #34474, the prefix (script parts) might be flushed during the render stream causing bad HTML. Use the same tricky to delay the prefix flushing

#### Expected
```html
<div>content</div> <!-- render stream --> 
<script>...</script> <!-- prefix --> 
```


#### Observed
```html
<!-- prefix choked the render stream --> 
<div <script>...</script> >content</div>
```


Test sample:
https://next-react-server-components-r5xocii9r-huozhi.vercel.app/ssr
2022-03-09 11:06:37 +00:00
Shu Ding
201f98e81a
Per-page runtime (#35011)
Partially implements #31317 and #31506. There're also some trade-offs made with this PR: since we can't know if a certain runtime will be used or not beforehand, we have to start both runtime compilers (Node.js and Edge) and then generate entrypoints correspondingly.

Note that with this PR, the global runtime is still required to use the per-page runtime.

## 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`
2022-03-08 20:55:14 +00:00
Naoyuki Kanezawa
9e4724dea2
fix: hard-navigate when preflight request fails (#35145)
fixes https://github.com/vercel/next.js/issues/34199

Also fixes response code to return `500` when showing error page of preflight request failure on dev mode

## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
2022-03-08 19:51:08 +00:00
Naoyuki Kanezawa
eb878459de
fix post request hangs when no body is consumed on middleware (#35131)
fixes https://github.com/vercel/next.js/issues/34966

Wait for reading original request body before overwriting the request properties with `originalBody?.finalize()` call since it caused the problem when middleware does not read request body

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
2022-03-08 19:24:58 +00:00
Naoyuki Kanezawa
d141376772
[next] Fix to not call middleware with shallow push, fix middleware call wit… (#35047)
…h query parameter

Fixes https://github.com/vercel/next.js/issues/32655 and fixes https://github.com/vercel/next.js/issues/35006

## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
2022-03-08 19:03:14 +00:00
OJ Kwon
8d0561ebf8
feat(trace): postprocess trace reporter for datadog (#35032)
* feat(trace): include clocktime for span

* build(package): bump up devdependencies

* feat(trace): postprocess trace reporter for datadog

* build(package): update precompile pkgs

* update compiled

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2022-03-08 08:15:09 -08:00
Tobias Koppers
292636d249
watch node_modules (#35140)
next.js doesn't HMR when installing node_modules.

This fixes it.

## Bug

- [x] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
2022-03-08 14:12:50 +00:00
Jiachi Liu
c130fd67be v12.1.1-canary.7 2022-03-07 22:47:55 +01:00
Steven
b25f7f84b1
Fix animated png bypass from Image Optimization API (#35120)
- Fixes #34807
- Related commit 69dad3cdf9

Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-03-07 20:29:11 +00:00
Artur Kornakov
0e5e8881c0
Normalize root path according to trailingSlash option in default next/image loader #21337 (#22453)
* fix(next/image): normalize root path according to trailingSlash option in defaul loader

* test(image-optimizer): trailingSlash support

* chore(next/image): prettier

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2022-03-07 18:55:39 +01:00
Gerald Monaco
a666591555
Split up & tweak next/client initialization (#33838)
For streaming, we want the main bundle to be loaded with `async` rather than `defer`. As the first step to doing that, we need an explicit initialization step, rather than occurring as a side effect of being loaded.

For now, I've just split the logic into a `initialization` and `hydrate` (previously `initNext`) functions and called them as a side effect of `next/client/next` and `next/client/next-dev` as before. A follow-up PR will move that to a separate script tag [as recommended](https://github.com/reactwg/react-18/discussions/114).
2022-03-07 17:09:55 +00:00
Jiachi Liu
ff6b75027b
Enable import assertion syntax parsing (#33750)
## Feature

Enable import assertion syntax parsing for ecmascript/typescript. Since webpack has already supported it, enable import assertion parsing and leave them to webpack to handle

#### Upgration
* tooling: `@swc/core`, `@swc/cli`, prettier to support importAssertion related flags
* typescript related: `typescript` >= 4.5
* babel related: `@babel/plugin-syntax-import-assertions`
* lint parser: `@typescript-eslint/parser`


Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-03-06 20:41:22 +00:00
Jiachi Liu
7083dcfe44
Generate static html for bots (#35004)
* Generate static html for bots

* fix lint

* refactor error handling against comment

* fix streaming on edge for bots

* inline doResolve
2022-03-03 23:39:26 -08:00
Balázs Orbán
62c33c1eb7
feat: support pnpm with create-next-app (#34947)
* feat: support `pnpm` with `create-next-app`

* test: add `--use-pnpm` tests

* docs: mention `--use-pnpm` flag in docs

* test: remove `only`

* Update test/integration/create-next-app/index.test.ts

Co-authored-by: Steven <steven@ceriously.com>

* chore: add pnpm action setup to tests

* chore: use latest pnpm

* chore: debug

* chore: debug

* fix: fall back to `yarn` instead of `npm`

* test: run all tests

Co-authored-by: Steven <steven@ceriously.com>
2022-03-04 00:49:24 +01:00
io
2c7f8b3d7b
Support colons in Middleware NextResponse.rewrite path (#32543)
* Add failing colon rewrite test

* add test fixture

* better colon rewrite tests

* middleware rewrite colon tests with query parameters

* fix #31523

this addresses the symptom but the real systemic issue is that prepareDestination is called on rewrite/redirect URLs, which have no defined special behavior for colons and they should not be compiled at all

* hack around prepareDestination to skip compiling x-middleware-rewrite

this is a bit nicer than just escaping colons, but ideally we find a way to obviate prepareDestination

* obviate prepareDestination for x-middleware-rewrite handling

* don't clobber rewrite query data

* omit redundant type

* catch up to main

* It looks like newUrl should contain only pathname

Co-authored-by: Naoyuki Kanezawa <naoyuki.kanezawa@gmail.com>
2022-03-03 11:36:53 -08:00
Balázs Orbán
728d82663c
feat: allow dotenv default expansion (#34765)
We currently use `dotenv-expand@5` in `@next/env`, which does not support default expansion. It was added in v6 (https://github.com/motdotla/dotenv-expand/pull/39).

Upgrading to the latest version of `dotenv-expand` and fixing an import, the added test passed.

Fixes #34718

## 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`
2022-03-03 16:52:20 +00:00
JJ Kasper
81c50f4a87
Handle de-duping revalidations in minimal mode (#34935)
* Handle de-duping revalidations in minimal mode

* fix type

* remove header check

* update other tests

* update test
2022-03-02 15:06:54 -08:00
JJ Kasper
e51d2627d0
Update to re-use cache while revalidate is erroring (#34931) 2022-03-02 14:09:40 -08:00
Steven
937ab16b78
Fix typescript 4.6.2 randomUUID() (#34976)
This PR fixes the latest version of `typescript` (4.6.2) that was failing with the following:

```
Type error: Overload signatures must all be optional or required.
  207 |       array: T
  208 |     ): T
> 209 |     randomUUID?(): string
      |     ^
  210 |   }
  211 | }
```

https://github.com/vercel/next.js/runs/5376232868?check_suite_focus=true#step:8:106

- Related to https://github.com/PeculiarVentures/webcrypto/issues/44

Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-03-02 21:51:15 +00:00
Jiachi Liu
e3d0d645af
Adopt react 18 rc1 (#34972)
### Changes

* Remove top-level suspense boundary
* Pipe stream resolved from returned promimse of `renderToReadableStream`
* Remove jsx-runtime alias hack

### Test Changes

Since top level suspense boundary is removed, now content are filled in 1st SSR
2022-03-02 21:21:18 +00:00
Shu Ding
1f1632979c
Fix named export missing from client components (#34974)
Closes #33538.

## Bug

- [x] 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`
2022-03-02 20:57:50 +00:00
JJ Kasper
1b17070a29
v12.1.1-canary.6 2022-03-02 12:12:15 -08:00
Steven
65e704daa4
Fix next/image noscript when blur and priority (#34973)
Fixes a bug where browsers with scripts disabled did not work with `<Image placeholder="blur" priority />`.

- Introduced in #32918
2022-03-02 19:59:02 +00:00
Shu Ding
a518036246
Refactor export marks of server components (#34945)
* refactor rsc export marks

* fix failed test
2022-03-02 19:29:54 +01:00
Jiachi Liu
d9d494adaf
Provide page runtime parsing utils (#34922)
* parse runtime config

* add test

* fix typing

* fix lint warning

* change branch purging condition

* dont fallback to global runtime
2022-03-02 09:41:41 -08:00
Gal Schlezinger
7b2fb70a67
Expose WASM bindings in Middleware (#34437)
This PR introduces a way to use WASM in middlewares.
Next.js will find all `.wasm` imports in middlewares and load them as `WebAssembly.Module` objects, which then can be later instantiated.
The metadata will be stored in `middleware-manifest.json`

## 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`
2022-03-02 15:09:36 +00:00
Shu Ding
9c0c93eb16
Optimize component type filters (#34941)
Since we are applying this loader to more files, and these two simple RegExp filters will be executed ~70 times per entry, it's an easy optimization to move the RegExp creation outside and merge related testers into the RegExp.

## 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`
2022-03-01 23:28:34 +00:00
JJ Kasper
b6b5250c46
Ensure non-matching API routes can be rewritten (#33966)
This ensures non-matching API routes can be rewritten with i18n configured as currently we bail and render the 404 page when a locale prefixed API route is requested. 

## Bug

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

x-ref: [slack thread](https://vercel.slack.com/archives/CGU8HUTUH/p1643930049224689)
closes: https://github.com/vercel/next.js/issues/28921
2022-03-01 15:53:25 -05:00
Jiachi Liu
7c1a51a94f
Refactor next-flight-server-loader (#34902) 2022-03-01 10:27:59 -08:00
JJ Kasper
abed2f7334
v12.1.1-canary.5 2022-03-01 09:56:23 -08:00
Donny/강동윤
6814852ffa
feat(next-swc): Update swc (#34878)
* Update swc

* lockfile

* Update more swc crates

* Update minifier

* chore: update types

* style: fix

* Update deps

Co-authored-by: evilebottnawi <sheo13666q@gmail.com>
2022-03-01 09:41:31 -08:00
Steven
0816b775b8
Fix image optimization invalid internal upstream image (#34899)
This gracefully handles errors when the `url` query string param looks like an internal image because it starts with `/` but it is not pointing to an internal image.

Previously, this was printing an unnecessary stack trace when the upstream content-type was undefined.

Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-03-01 16:38:51 +00:00
Jiachi Liu
57702cb2a9
Only warn styles and scripts under next head in concurrent mode (#34897)
x-ref: #34021 , #34004

Only log each warning once and only trigger in concurrent mode


## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
2022-02-28 22:39:51 +00:00
Jiachi Liu
8e3b6fc4b9
Fix only byte stream writing is allowed in CF workers (#34893)
CF worker doesn't allow to use `writer.write(string)` but only byte stream, we have to transform the Uint8Array stream

![image](https://user-images.githubusercontent.com/4800338/156043536-25fcdb15-3f69-427e-9e31-97169609eb7a.png)
2022-02-28 21:57:08 +00:00
Sukka
7ca78dd036
refactor: re-use existed escapeRegex (#34470)
## 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

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

`escape-regex.ts` will always be included in the bundle, so not re-using it actually makes the size larger.
2022-02-28 19:50:57 +00:00
Shu Ding
8ba2aec022
Fix flight loader for shared components (#34692)
* fix flight loader for shared components

* add tests

* fix condition
2022-02-28 16:00:28 +01:00
JJ Kasper
ed43c03ebb
Add CLI command typo detection (#34836)
* Add CLI command typo detection

* Apply suggestions from code review

Co-authored-by: Steven <steven@ceriously.com>

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Steven <steven@ceriously.com>
2022-02-26 07:05:26 -08:00
JJ Kasper
ec2a88516d
v12.1.1-canary.4 2022-02-25 18:48:08 -08:00
Alex Kolarski
89c9ce8edf
Update eslint-plugin-react to latest version (#34819)
* Update eslint-plugin-react to latest version

There is currently a bug in eslint-plugin-react https://github.com/yannickcr/eslint-plugin-react/issues/3215.
The bug was just fixed in 7.29.1

* update lockfile

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2022-02-25 18:22:41 -08:00
JJ Kasper
c947c93206
Ensure unstable_revalidate does not error from notFound: true (#34826)
* Ensure unstable_revalidate does not error from notFound: true

* add more cache header tests
2022-02-25 14:17:07 -08:00
JJ Kasper
d118d024f7
Clean-up error when starting next with non-existent dir (#34830) 2022-02-25 14:08:08 -08:00
JJ Kasper
1cf2cc8809
lock eslint-config-next dependencies (#34823) 2022-02-25 12:21:01 -08:00
JJ Kasper
d09fb1dc08
Add warning for Yarn PnP v3 with Node.js < 16.14 (#34818)
* Add warning for Yarn PnP v3 with Node.js < 16.14

* Apply suggestions from code review

Co-authored-by: Steven <steven@ceriously.com>

* Apply suggestions from code review

Co-authored-by: Steven <steven@ceriously.com>

* lint-fix

Co-authored-by: Steven <steven@ceriously.com>
2022-02-25 11:54:12 -08:00
JJ Kasper
e6f14fa456
Update to ncc dev overlay during build instead of pre-compile (#34813)
* Update to ncc dev overlay during build instead of pre-compile

* update config
2022-02-25 11:02:48 -08:00
Eugene
3d5dd58251
fix: #34711 ensure distDir inside project folder (#34795)
Fixes https://github.com/vercel/next.js/issues/34711
2022-02-25 12:40:24 +00:00
Tim Neutkens
aecfe4dc49 v12.1.1-canary.3 2022-02-25 11:15:18 +01:00
Thibaut SABOT
99713baf3f
fix eslint-plugin-react version to avoid jsx-key error (#34800)
Fixes https://github.com/vercel/next.js/discussions/34797.

Context: https://github.com/yannickcr/eslint-plugin-react was released in 7.29.0 2h ago and breaks the linting of a default create-next-app.

See: https://github.com/yannickcr/eslint-plugin-react/issues/3215

This PR locks the version to the latest working one.
2022-02-25 10:12:38 +00:00
Sukka
3ee458e376
fix(#34030): ignore non-checkable jsx spread attribute (#34473)
## Bug

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

Fixes #34030.

The PR is still WIP as the test case hasn't been added, help or change is welcome.

cc @no-ya @ijjk 

Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-02-25 04:15:25 +00:00
Colin Rice
079b507327
Add API config to allow disabling response size warning (#34700)
Adds an API config option that disables warning a user when their API response body is over 4 megs. This has been added for users who'd like to stream larger amounts of data from their API acknowledging the drawbacks. This config mirrors the existing [`externalResolver` config](https://nextjs.org/docs/api-routes/api-middlewares#custom-config).

Closes: [#33162](https://github.com/vercel/next.js/issues/33162)

Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-02-25 02:04:02 +00:00
Justin Goping
ce4923c659
Integrate tsec into the linting process (#33746)
* Integrate tsec into the linting process

* Update tsec-exemptions.json
2022-02-24 16:59:18 -08:00
Shu Ding
ceecf91225
Refactor entries generation in hot-reloader (#34733)
* refactor entries generation of hot-reloader

* change parameter name
2022-02-24 14:19:53 -08:00
Keen Yee Liau
fbb8536956
collect telemetry for ESLint rules (#34564)
This commit adds functionality to track usage of `@next/next/*` ESLint rules and their severity levels.

## 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`
- [x] Integration tests added
- [ ] Documentation added
- [x] 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`
2022-02-24 20:43:28 +00:00
Eungyeol
58ab94bef7
feat(create-next-app): add @types/react-dom to TS template (#34623)
* Add @types/react-dom devDependencies

* fix: eslint error

* fix: eslint error 2
2022-02-24 21:04:15 +01:00
Shu Ding
c9863c8794
Reduce the size of web server (#34767)
By moving `setRevalidateHeaders` to a separate file we can shake off the dependency of `etag` and a polyfill for `Buffer` from the web server (which brings hundreds of kilobytes).

## 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`
2022-02-24 19:53:17 +00:00
Gal Schlezinger
1a0d149c9f
produce source maps for middlewares (#34409)
This PR will generate source maps for middlewares. It's not under any flag (should it be?)

Closes #34523
2022-02-24 15:56:40 +00:00
Shu Ding
cc5345bba8
Add proper headers to responses in web server (#34723)
This PR adds the `X-Powered-By` and `Content-Type` headers to responses sent by the web server. The latter enables compression for the Edge runtime. Still, the web server doesn't have `Content-Length` and `ETag` as the response is usually dynamic.

Part of #31506.

## Bug

- [x] 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`
2022-02-24 12:43:22 +00:00
LongYinan
5d7c4dce9f
Upgrade @napi-rs/triples to support android arm platform (#34752)
Fix https://github.com/vercel/next.js/discussions/33530

`Android arm` is supported in https://github.com/vercel/next.js/pull/34481, but `@napi-rs/triples` was forgotten to upgrade in the previous pull request.
2022-02-24 10:15:51 +00:00
JJ Kasper
b8b9d3f663
v12.1.1-canary.2 2022-02-23 18:34:34 -08:00
Lengxu
c74d76540e
Fix create-next-app Multiple calls to the function 'makeDir' (#34669)
This PR fixes the Fix the create-next-app Multiple calls to the function 'makeDir'.
Currently, no execution errors are generated, but redundant execution exists.

## 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`
2022-02-23 13:00:26 +00:00
Reuben
70cd01015d
Fix CSS Loader Detection False Positives (#34584)
`test.css`, `test.scss` etc. will falsely match on a loader that searches for the string `test`


fixes #34583



## Bug

- [x] Related issues linked using `fixes #number`
- [ ] 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`
2022-02-23 12:28:17 +00:00
JJ Kasper
99ee2225c1
Normalize image optimizer error status codes (#34699) 2022-02-22 19:29:53 -06:00
Balázs Orbán
6178e7cf6d
fix: make sure image-config gets transpiled (#34677) 2022-02-22 09:27:18 -05:00
Balázs Orbán
30b434b533
fix: match redirect and rewrite destination types (#34617) 2022-02-21 12:21:54 -06:00
Jiachi Liu
f110a3735b
Fix rsc bootstrap buffer missing in the future renders (#34631)
## Bug

If there's upcoming streaming data from server components, should safely skip the bootstrap process. Previously we deleted the buffer then it will cause the buffer is missing in the later re-renders. Now we mark it as empty array, so it can safely skip the boostrap phase

x-ref: #34475

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
2022-02-21 12:40:59 +00:00
LongYinan
0243e6e95d
Add cargo clippy and cargo fmt to CI (#34625)
Run `cargo fmt` and `cargo clippy` and add them to CI.
2022-02-21 09:24:49 +00:00
Tobias Koppers
94ad03385b
remove commons chunk config (#34445)
This removes the config for the `commons` chunk.

I think the idea was that modules are that in all pages are put into a `commons` chunk, but that breaks when next/dynamic comes into play, which also creates chunks. So the `totalPages` condition is broken and could lead to too many modules placed into the commons chunk.

Example: 2 pages, each has one next/dynamic. Both on demand chunks include module A. page 1 includes module B and next/dynamic on page 2 includes module B. A and B are placed into commons. commonjs chunk is loaded in page 1 and both next/dynamic. Page 1 would load module A even while it doesn't need it.

## 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`
2022-02-19 22:26:54 +00:00
Shu Ding
b701de60cd
Improve type imports in server/render and optimize the Edge SSR loader (#34552)
* reorganize imports

* code refactoring

* remove unused variables

* fix test

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-02-19 22:13:48 +01:00
Luis Alvarez D
27affb4141
Don't import internally from types in next-env.d.ts (#34394)
* Move type to image component

* Add types/global.d.ts to excludes too

* Undo global exclude as it's using internally

* Don't add root imports for module augmentations
2022-02-19 04:25:49 +01:00
JJ Kasper
4613e3be62
v12.1.1-canary.1 2022-02-18 17:19:57 -06:00
JJ Kasper
46d7f45dea
Update to latest version of jscodeshift (#34563)
* Update to latest version of jscodeshift

* update-compiled
2022-02-18 17:15:54 -06:00
Jiachi Liu
6ed281df8e
Support trailingSlash in middleware SSR (#34544)
## Bug

Fixes #34527 

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
2022-02-18 22:39:28 +00:00
Steven
a4f5463eb5
Improve next/image warnings to avoid printing more than once (#34562)
Currently, we print warnings during `next dev` for every render of `next/image`, which can quickly fill the console making it really unfriendly to developers trying to read the logs.

This PR changes the behavior so that each unique warning prints at most once.

- Related to #33007 
- Related to #31340
2022-02-18 22:02:03 +00:00
Ephraim Atta-Duncan
2c80444f87
Simplify .env.local gitignores (#34471)
* ignore all .env files in default template

* ignore all .env files in typescript template

* ignore all local .env files in default template

Co-authored-by: Balázs Orbán <info@balazsorban.com>

* ignore all local .env files in typescript template

Co-authored-by: Balázs Orbán <info@balazsorban.com>
2022-02-18 15:26:17 -06:00
Nate Wienert
97b964a18f
feat(react-dev-overlay): export getErrorByType and add preventDisplay prop (#34237)
Report full parsed runtime errors over error bus, accepts preventDisplay prop to avoid showing error messages inline, while still reporting errors over the bus.

Basically, we want to handle the parsed error/stack differently in Next Live, showing a modal that sits above the content and allows users to report the issue to us. We want to have that stack trace in the issue report, so I added a new event `unhandled-error-full`.

The `preventDisplay` prop then just lets us output our own modal instead of showing the error inline, but still renders the `<RuntimeErrors />` component so it can fetch the stack and report it over the bus.

This isn't *beautiful* code per-se, but I think doing it really right would require a pretty intense re-structure of this module. I think ideally we'd have export a function to fetch of the stack that we can just expose separately - that fetch currently happens in a sub-sub-component (DevOverlay > Errors > RuntimeError). But that re-write is pretty high effort, would still require much of what we do here anyway, and would just to get a slightly less awkward API in a not very high-use area. So leaving it as-is for now, happy to revisit though if we want.

## Feature

- [x] Related issues linked using `fixes #number`

Fixes an issue with Next Live #290.

## Documentation / Examples

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


Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
2022-02-18 21:09:09 +00:00
JJ Kasper
271dff5be8
Update swc crates (#34491)
* Revert "Revert swc css bump temporarily (#34440)"

This reverts commit 01524ef20f.

* Update css crates

Co-authored-by: Donny/강동윤 <kdy1997.dev@gmail.com>
2022-02-18 14:02:54 -06:00
Javi Velasco
8752464816
Allow reading request bodies in middlewares (#34294) (#34519)
This PR brings back @Schniz awesome contribution to bring in bodies to middleware. It was reverted to leave it out of the stable release and to have some time to test it out in canary before officially releasing it. This PR is simply a `cherry-pick` of his original work.

Closes: #30953 
Closes: https://github.com/vercel/next.js/pull/34490

Co-authored-by: Gal Schlezinger <2054772+Schniz@users.noreply.github.com>
2022-02-18 19:43:43 +00:00
Gerald Monaco
204a95586d
Remove useMaybeDeferContent hook (#34506) 2022-02-18 13:07:19 -06:00
Steven
9e77ef4ec6
Fix next/image incorrectly warning for position: absolute parent (#34551)
- Fixes #33007 
- Fixes #31340
2022-02-18 18:44:32 +00:00
JJ Kasper
44bc4d92f5
v12.1.1-canary.0 2022-02-18 12:02:13 -06:00
LongYinan
924b71ccc1
build(next-swc): linux glibc compatible issue (#34481)
Fix `GLIBC` compatible issues:

- Fixes https://github.com/vercel/next.js/issues/33854
- All `CentOS 7` related issues in https://github.com/vercel/next.js/discussions/30468

Should also fix:

- https://github.com/vercel/next.js/discussions/33530

Refactored jobs tested in https://github.com/Brooooooklyn/next.js/runs/5233199833?check_suite_focus=true

### `objdump` in `next@12.0.10`

<details>
  <summary>Symbols</summary>
node_modules/@next/swc-linux-x64-gnu/next-swc.linux-x64-gnu.node:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000000      D  *UND*	0000000000000000              napi_resolve_deferred
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __xpg_strerror_r
0000000000000000      D  *UND*	0000000000000000              napi_typeof
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_setspecific
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.4   __stack_chk_fail
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_GetRegionStart
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memset
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fputs
0000000000000000      DF *UND*	0000000000000000  GCC_3.3     _Unwind_FindEnclosingFunction
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_GetTextRelBase
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setgroups
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 stdout
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 madvise
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   realpath
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_adddup2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pow
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigaltstack
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_self
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 trunc
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __strncat_chk
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_setstacksize
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigemptyset
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_detach
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __fxstat64
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_broadcast
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strtol
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __cxa_atexit
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 round
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigaddset
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_RaiseException
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.15  posix_spawnp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memcmp
0000000000000000      D  *UND*	0000000000000000              napi_queue_async_work
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_wrlock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 floor
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __vsnprintf_chk
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_key_create
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 close
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_destroy
0000000000000000      D  *UND*	0000000000000000              napi_throw_error
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   __ctype_toupper_loc
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 poll
0000000000000000      D  *UND*	0000000000000000              napi_reject_deferred
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 signal
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getcwd
0000000000000000  w   D  *UND*	0000000000000000              __gmon_start__
0000000000000000      D  *UND*	0000000000000000              napi_get_value_string_utf8
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setsigmask
0000000000000000      D  *UND*	0000000000000000              napi_create_promise
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dup2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_getguardsize
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __xstat64
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_getstack
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strerror
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getenv
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 read
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memrchr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_rdlock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fmod
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fork
0000000000000000      DF *UND*	0000000000000000  GCC_3.3     _Unwind_Backtrace
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_destroy
0000000000000000      D  *UND*	0000000000000000              napi_get_value_bool
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setuid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.9   pipe2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __snprintf_chk
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_SetIP
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dlsym
0000000000000000      D  *UND*	0000000000000000              napi_create_error
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 access
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 ioctl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strncpy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 localtime_r
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memmove
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 syscall
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 readlink
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fma
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getuid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sin
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strlen
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setflags
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strstr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_key_delete
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_getattr_np
0000000000000000      D  *UND*	0000000000000000              napi_get_buffer_info
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 stderr
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_Resume
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_signal
0000000000000000  w   DF *UND*	0000000000000000  GLIBC_2.18  __cxa_thread_atexit_impl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_trylock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 writev
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 clock_gettime
0000000000000000      D  *UND*	0000000000000000              napi_delete_async_work
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_getspecific
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_condattr_destroy
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_DeleteException
0000000000000000      D  *UND*	0000000000000000              napi_create_function
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 prctl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 waitpid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 lseek64
0000000000000000      D  *UND*	0000000000000000              napi_set_named_property
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 cos
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_init
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_GetIP
0000000000000000  w   D  *UND*	0000000000000000              _ITM_registerTMCloneTable
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 execvp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 ceil
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 environ
0000000000000000      D  *UND*	0000000000000000              napi_get_cb_info
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_init
0000000000000000      D  *UND*	0000000000000000              napi_coerce_to_object
0000000000000000      D  *UND*	0000000000000000              napi_throw
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 mprotect
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.14  memcpy
0000000000000000  w   D  *UND*	0000000000000000              _ITM_deregisterTMCloneTable
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fcntl
0000000000000000      DF *UND*	0000000000000000  GCC_4.2.0   _Unwind_GetIPInfo
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 free
0000000000000000  w   DF *UND*	0000000000000000  GLIBC_2.2.5 __cxa_finalize
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_unlock
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_GetDataRelBase
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_lock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dl_iterate_phdr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 sched_getaffinity
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_SetGR
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memchr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 open
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   __tls_get_addr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log10
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_wait
0000000000000000      D  *UND*	0000000000000000              napi_create_async_work
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sysconf
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 munmap
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.3 pthread_condattr_setclock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 bcmp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_create
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setsigdefault
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 abort
0000000000000000      D  *UND*	0000000000000000              napi_create_string_utf8
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_condattr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_sigmask
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_settype
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 __environ
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 mmap
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __errno_location
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 _exit
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 write
0000000000000000      DF *UND*	0000000000000000  GCC_3.3     _Unwind_GetCFA
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getrusage
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_unlock
0000000000000000      DF *UND*	0000000000000000  GCC_3.0     _Unwind_GetLanguageSpecificData
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sched_yield
0000000000000000      D  *UND*	0000000000000000              napi_create_object
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setgid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 chdir
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 open64
000000000039bbd0 g    DF .text	000000000000032a  Base        napi_register_module_v1
0000000001ddd750 g    DF .text	00000000000002e5  Base        rust_eh_personality
</details>

There is `0000000000000000  w   DF *UND*	0000000000000000  GLIBC_2.18  __cxa_thread_atexit_impl` introduced by https://github.com/rust-lang/rust/issues/36826

### `objdump` in current branch

<details>
  <summary>Symbols</summary>
  next-swc.linux-x64-gnu.node:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000000  w   D  *UND*	0000000000000000  Base        __gmon_start__
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memcpy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 trunc
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   __tls_get_addr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 bcmp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memmove
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memset
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_lock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_trylock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memcmp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_unlock
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_function
0000000000000000      D  *UND*	0000000000000000  Base        napi_set_named_property
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_string_utf8
0000000000000000      D  *UND*	0000000000000000  Base        napi_coerce_to_object
0000000000000000      D  *UND*	0000000000000000  Base        napi_get_cb_info
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_error
0000000000000000      D  *UND*	0000000000000000  Base        napi_throw
0000000000000000      D  *UND*	0000000000000000  Base        napi_throw_error
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fma
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_object
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_promise
0000000000000000      D  *UND*	0000000000000000  Base        napi_create_async_work
0000000000000000      D  *UND*	0000000000000000  Base        napi_queue_async_work
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strlen
0000000000000000      D  *UND*	0000000000000000  Base        napi_get_value_string_utf8
0000000000000000      D  *UND*	0000000000000000  Base        napi_get_value_bool
0000000000000000      D  *UND*	0000000000000000  Base        napi_typeof
0000000000000000      D  *UND*	0000000000000000  Base        napi_get_buffer_info
0000000000000000      D  *UND*	0000000000000000  Base        napi_reject_deferred
0000000000000000      D  *UND*	0000000000000000  Base        napi_resolve_deferred
0000000000000000      D  *UND*	0000000000000000  Base        napi_delete_async_work
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 close
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pow
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 round
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 localtime_r
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log10
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 cos
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sin
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fmod
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 ceil
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_wait
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 sched_getaffinity
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sysconf
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.4 __xpg_strerror_r
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 syscall
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __errno_location
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 read
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 open64
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 poll
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 munmap
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 mmap
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dl_iterate_phdr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 clock_gettime
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getrusage
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 snprintf
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 access
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 vsnprintf
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 madvise
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strerror
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 mprotect
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_setspecific
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memchr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   realpath
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getenv
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_key_create
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 stderr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fputs
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strncat
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 environ
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3   __ctype_toupper_loc
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strncpy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strstr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 strtol
0000000000000000      DO *UND*	0000000000000000  GLIBC_2.2.5 stdout
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_unlock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sched_yield
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getcwd
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_rdlock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_rwlock_wrlock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 getuid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 write
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fcntl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 lseek64
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 writev
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 memrchr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 ioctl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 waitpid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_broadcast
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_condattr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.3 pthread_condattr_setclock
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_condattr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_signal
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigaltstack
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 abort
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 signal
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_self
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_getattr_np
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_getstack
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 malloc
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 free
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.3.2 pthread_cond_destroy
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutexattr_settype
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_mutex_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_getspecific
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_key_delete
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dlsym
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 readlink
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 chdir
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.9   pipe2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_setstacksize
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_create
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 prctl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_detach
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_attr_getguardsize
0000000000000000  w   D  *UND*	0000000000000000  Base        __cxa_thread_atexit_impl
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_init
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawn_file_actions_adddup2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigemptyset
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setsigmask
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 sigaddset
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setsigdefault
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnattr_setflags
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fork
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 posix_spawnp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 _exit
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dup2
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setgroups
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setgid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 setuid
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 pthread_sigmask
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 execvp
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fprintf
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fflush
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 dladdr
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 fwrite
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 __cxa_atexit
0000000002830dc0 g    DF .text	00000000000002e5  Base        rust_eh_personality
0000000000e10380 g    DF .text	000000000000032a  Base        napi_register_module_v1
</details>

No more `GLIBC_2.18` symbols.

Confirm it works on `centos:7` docker image.
2022-02-18 16:04:43 +00:00
Jiachi Liu
ce76d1712e
Leverage existing component checking warning for streaming (#34526)
## Bug

Fixes: #31993

* Remove the simple component checking in middleware ssr
* Leverage existing components checking for Component / App / Document, if any of these component is not valid react type or is undefined nextjs will error in dev mode with redbox. Like above.

<img width="826" alt="image" src="https://user-images.githubusercontent.com/4800338/154668945-bcee24ee-17aa-4afd-acda-9f8b249891ac.png">


- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
2022-02-18 15:25:10 +00:00