Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure has query encoding is normalized #25732

Merged
merged 5 commits into from Jun 17, 2021

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Jun 2, 2021

This ensures we normalize query values from has the same way we do in next-server so that hello%2fworld doesn't unexpectedly turn into hello/world when used in a route's destination.

Bug

  • Related issues linked using fixes #number
  • Integration tests added

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

timneutkens
timneutkens previously approved these changes Jun 17, 2021
…ry-encoding

# Conflicts:
#	test/integration/custom-routes/test/index.test.js
@ijjk
Copy link
Member Author

ijjk commented Jun 17, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
buildDuration 10.7s 10.9s ⚠️ +210ms
buildDurationCached 2.5s 2.6s ⚠️ +143ms
nodeModulesSize 46.4 MB 46.4 MB ⚠️ +1.38 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
/ failed reqs 0 0
/ total time (seconds) 1.845 1.854 ⚠️ +0.01
/ avg req/sec 1355.32 1348.31 ⚠️ -7.01
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.048 1.064 ⚠️ +0.02
/error-in-render avg req/sec 2386.31 2348.95 ⚠️ -37.36
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
framework-HASH.js gzip 42 kB 42 kB
main-HASH.js gzip 20.2 kB 20.2 kB
webpack-HASH.js gzip 804 B 804 B
Overall change 63 kB 63 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_app-HASH.js gzip 801 B 801 B
_error-HASH.js gzip 3.17 kB 3.17 kB
amp-HASH.js gzip 527 B 527 B
css-HASH.js gzip 329 B 329 B
hooks-HASH.js gzip 903 B 903 B
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.65 kB 1.65 kB
routerDirect..HASH.js gzip 322 B 322 B
withRouter-HASH.js gzip 320 B 320 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 8.41 kB 8.41 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_buildManifest.js gzip 391 B 391 B
Overall change 391 B 391 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
index.html gzip 523 B 523 B
link.html gzip 536 B 536 B
withRouter.html gzip 516 B 516 B
Overall change 1.57 kB 1.57 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
buildDuration 12.3s 13.1s ⚠️ +714ms
buildDurationCached 3.4s 3.6s ⚠️ +206ms
nodeModulesSize 46.4 MB 46.4 MB ⚠️ +1.38 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
framework-HASH.js gzip 42 kB 42 kB
main-HASH.js gzip 20.2 kB 20.2 kB
webpack-HASH.js gzip 804 B 804 B
Overall change 63 kB 63 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_app-HASH.js gzip 801 B 801 B
_error-HASH.js gzip 3.17 kB 3.17 kB
amp-HASH.js gzip 527 B 527 B
css-HASH.js gzip 329 B 329 B
hooks-HASH.js gzip 903 B 903 B
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.65 kB 1.65 kB
routerDirect..HASH.js gzip 322 B 322 B
withRouter-HASH.js gzip 320 B 320 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 8.41 kB 8.41 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_buildManifest.js gzip 391 B 391 B
Overall change 391 B 391 B
Serverless bundles
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_error.js 16.9 kB 16.9 kB
404.html 1.98 kB 1.98 kB
500.html 1.96 kB 1.96 kB
amp.amp.html 10.8 kB 10.8 kB
amp.html 1.17 kB 1.17 kB
css.html 1.35 kB 1.35 kB
hooks.html 1.23 kB 1.23 kB
index.js 17.2 kB 17.2 kB
link.js 17.5 kB 17.5 kB
routerDirect.js 17.3 kB 17.3 kB
withRouter.js 17.3 kB 17.3 kB
Overall change 105 kB 105 kB

Webpack 4 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
buildDuration 9.1s 9.4s ⚠️ +298ms
buildDurationCached 3.8s 3.7s -85ms
nodeModulesSize 46.4 MB 46.4 MB ⚠️ +1.38 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
/ failed reqs 0 0
/ total time (seconds) 1.927 1.99 ⚠️ +0.06
/ avg req/sec 1297.06 1256.26 ⚠️ -40.8
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.087 1.131 ⚠️ +0.04
/error-in-render avg req/sec 2300.6 2209.6 ⚠️ -91
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
677f882d2ed8..HASH.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 41.8 kB 41.8 kB
main-HASH.js gzip 7.99 kB 7.99 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 63.8 kB 63.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_app-HASH.js gzip 1.07 kB 1.07 kB
_error-HASH.js gzip 3.84 kB 3.84 kB
amp-HASH.js gzip 536 B 536 B
css-HASH.js gzip 333 B 333 B
hooks-HASH.js gzip 910 B 910 B
index-HASH.js gzip 227 B 227 B
link-HASH.js gzip 1.64 kB 1.64 kB
routerDirect..HASH.js gzip 295 B 295 B
withRouter-HASH.js gzip 292 B 292 B
e025d2764813..52f.css gzip 125 B 125 B
Overall change 9.28 kB 9.28 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
_buildManifest.js gzip 420 B 420 B
Overall change 420 B 420 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/has-query-encoding Change
index.html gzip 568 B 568 B
link.html gzip 579 B 579 B
withRouter.html gzip 561 B 561 B
Overall change 1.71 kB 1.71 kB
Commit: 0185e63

@ijjk

This comment has been minimized.

@ijjk ijjk merged commit ef379f1 into vercel:canary Jun 17, 2021
@ijjk ijjk deleted the normalize/has-query-encoding branch June 17, 2021 15:52
flybayer pushed a commit to blitz-js/next.js that referenced this pull request Jun 24, 2021
* Ensure has query encoding is normalized

* fix type error
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants