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

[Turbopack] add aggregation graph to new backend #68895

Closed
wants to merge 4 commits into from

Conversation

sokra
Copy link
Member

@sokra sokra commented Aug 14, 2024

Why?

The need the task aggregation to implement strongly consistent reads

@ijjk ijjk added the created-by: Turbopack team PRs by the Turbopack team. label Aug 14, 2024
Copy link
Member Author

sokra commented Aug 14, 2024

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@sokra sokra changed the title initial aggregation update [Turbopack] add aggregation graph to new backend Aug 14, 2024
@sokra sokra force-pushed the sokra/new-backend-fixes branch from 12bee4b to 955ba03 Compare August 14, 2024 20:35
@sokra sokra force-pushed the sokra/new-backend-aggregation branch from 2b52166 to e80a813 Compare August 14, 2024 20:36
@sokra sokra force-pushed the sokra/new-backend-fixes branch from 955ba03 to 90be19b Compare August 14, 2024 20:58
@sokra sokra force-pushed the sokra/new-backend-aggregation branch from e80a813 to 70ac924 Compare August 14, 2024 20:58
@ijjk
Copy link
Member

ijjk commented Aug 14, 2024

Failing test suites

Commit: b8e98fe

TURBOPACK=1 pnpm test-dev test/development/acceptance-app/ReactRefreshModule.test.ts (turbopack)

  • ReactRefreshModule app > should allow any variable names
Expand output

● ReactRefreshModule app › should allow any variable names

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-dev test/development/acceptance/hydration-error.test.ts (turbopack)

  • Error overlay for hydration errors > should show correct hydration error when client and server render different text
Expand output

● Error overlay for hydration errors › should show correct hydration error when client and server render different text

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-dev test/development/app-dir/edge-errors-hmr/index.test.ts (turbopack)

  • develop - app-dir - edge errros hmr > should recover from build errors when server component error
  • develop - app-dir - edge errros hmr > should recover from build errors when client component error
Expand output

● develop - app-dir - edge errros hmr › should recover from build errors when server component error

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

● develop - app-dir - edge errros hmr › should recover from build errors when client component error

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-dev test/development/acceptance-app/editor-links.test.ts (turbopack)

  • Error overlay - editor links > should be possible to open source file on build error
Expand output

● Error overlay - editor links › should be possible to open source file on build error

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-dev test/development/acceptance/ReactRefreshModule.test.ts (turbopack)

  • ReactRefreshModule > should allow any variable names
Expand output

● ReactRefreshModule › should allow any variable names

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/build-trace-extra-entries-turbo/test/index.test.js

  • build trace with extra entries > production mode > should build and trace correctly
Expand output

● build trace with extra entries › production mode › should build and trace correctly

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: null

  18 |         })
  19 |         console.log(result)
> 20 |         expect(result.code).toBe(0)
     |                             ^
  21 |
  22 |         const appTrace = await fs.readJSON(
  23 |           join(appDir, '.next/server/pages/_app.js.nft.json')

  at Object.toBe (integration/build-trace-extra-entries-turbo/test/index.test.js:20:29)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/api-catch-all/test/index.test.js (turbopack)

  • API routes > dev support > should return data when catch-all
  • API routes > dev support > should return redirect when catch-all with index and trailing slash
  • API routes > dev support > should return data when catch-all with index and trailing slash
  • API routes > dev support > should return data when catch-all with index and no trailing slash
Expand output

● API routes › dev support › should return data when catch-all

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  52 | describe('API routes', () => {
  53 |   describe('dev support', () => {
> 54 |     beforeAll(async () => {
     |     ^
  55 |       appPort = await findPort()
  56 |       app = await launchApp(appDir, appPort)
  57 |     })

  at beforeAll (integration/api-catch-all/test/index.test.js:54:5)
  at describe (integration/api-catch-all/test/index.test.js:53:3)
  at Object.describe (integration/api-catch-all/test/index.test.js:52:1)

● API routes › dev support › should return redirect when catch-all with index and trailing slash

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  52 | describe('API routes', () => {
  53 |   describe('dev support', () => {
> 54 |     beforeAll(async () => {
     |     ^
  55 |       appPort = await findPort()
  56 |       app = await launchApp(appDir, appPort)
  57 |     })

  at beforeAll (integration/api-catch-all/test/index.test.js:54:5)
  at describe (integration/api-catch-all/test/index.test.js:53:3)
  at Object.describe (integration/api-catch-all/test/index.test.js:52:1)

● API routes › dev support › should return data when catch-all with index and trailing slash

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  52 | describe('API routes', () => {
  53 |   describe('dev support', () => {
> 54 |     beforeAll(async () => {
     |     ^
  55 |       appPort = await findPort()
  56 |       app = await launchApp(appDir, appPort)
  57 |     })

  at beforeAll (integration/api-catch-all/test/index.test.js:54:5)
  at describe (integration/api-catch-all/test/index.test.js:53:3)
  at Object.describe (integration/api-catch-all/test/index.test.js:52:1)

● API routes › dev support › should return data when catch-all with index and no trailing slash

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  52 | describe('API routes', () => {
  53 |   describe('dev support', () => {
> 54 |     beforeAll(async () => {
     |     ^
  55 |       appPort = await findPort()
  56 |       app = await launchApp(appDir, appPort)
  57 |     })

  at beforeAll (integration/api-catch-all/test/index.test.js:54:5)
  at describe (integration/api-catch-all/test/index.test.js:53:3)
  at Object.describe (integration/api-catch-all/test/index.test.js:52:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/404-page-ssg/test/index.test.js (turbopack)

  • 404 Page Support SSG > development mode > should respond to 404 correctly
  • 404 Page Support SSG > development mode > should render error correctly
  • 404 Page Support SSG > development mode > should not show an error in the logs for 404 SSG
  • 404 Page Support SSG > development mode > should render index page normal
Expand output

● 404 Page Support SSG › development mode › should respond to 404 correctly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  117 |     'development mode',
  118 |     () => {
> 119 |       beforeAll(async () => {
      |       ^
  120 |         appPort = await findPort()
  121 |         stderr = ''
  122 |         stdout = ''

  at beforeAll (integration/404-page-ssg/test/index.test.js:119:7)
  at integration/404-page-ssg/test/index.test.js:116:58
  at Object.describe (integration/404-page-ssg/test/index.test.js:78:1)

● 404 Page Support SSG › development mode › should render error correctly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  117 |     'development mode',
  118 |     () => {
> 119 |       beforeAll(async () => {
      |       ^
  120 |         appPort = await findPort()
  121 |         stderr = ''
  122 |         stdout = ''

  at beforeAll (integration/404-page-ssg/test/index.test.js:119:7)
  at integration/404-page-ssg/test/index.test.js:116:58
  at Object.describe (integration/404-page-ssg/test/index.test.js:78:1)

● 404 Page Support SSG › development mode › should not show an error in the logs for 404 SSG

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  117 |     'development mode',
  118 |     () => {
> 119 |       beforeAll(async () => {
      |       ^
  120 |         appPort = await findPort()
  121 |         stderr = ''
  122 |         stdout = ''

  at beforeAll (integration/404-page-ssg/test/index.test.js:119:7)
  at integration/404-page-ssg/test/index.test.js:116:58
  at Object.describe (integration/404-page-ssg/test/index.test.js:78:1)

● 404 Page Support SSG › development mode › should render index page normal

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  117 |     'development mode',
  118 |     () => {
> 119 |       beforeAll(async () => {
      |       ^
  120 |         appPort = await findPort()
  121 |         stderr = ''
  122 |         stdout = ''

  at beforeAll (integration/404-page-ssg/test/index.test.js:119:7)
  at integration/404-page-ssg/test/index.test.js:116:58
  at Object.describe (integration/404-page-ssg/test/index.test.js:78:1)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/next-config-ts/turbo/index.test.ts

  • next-config-ts - turbopack > should work with Turbopack
Expand output

● next-config-ts - turbopack › should work with Turbopack

Failed to start server after 10000ms, waiting for this log pattern: / ✓ Ready in /

  343 |     return setTimeout(() => {
  344 |       reject(
> 345 |         new Error(
      |         ^
  346 |           `Failed to start server after ${ms}ms, waiting for this log pattern: ${this.serverReadyPattern}`
  347 |         )
  348 |       )

  at Timeout._onTimeout (lib/next-modes/base.ts:345:9)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-document-remove-hmr/test/index.test.js (turbopack)

  • Default 404 Page with custom _error > development mode > should respond to 404 correctly
  • Default 404 Page with custom _error > development mode > should render error correctly
  • Default 404 Page with custom _error > development mode > should render index page normal
Expand output

● Default 404 Page with custom _error › development mode › should respond to 404 correctly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |     'development mode',
  77 |     () => {
> 78 |       beforeAll(async () => {
     |       ^
  79 |         appPort = await findPort()
  80 |         app = await launchApp(appDir, appPort)
  81 |       })

  at beforeAll (integration/404-page-custom-error/test/index.test.js:78:7)
  at integration/404-page-custom-error/test/index.test.js:75:58
  at Object.describe (integration/404-page-custom-error/test/index.test.js:53:1)

● Default 404 Page with custom _error › development mode › should render error correctly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |     'development mode',
  77 |     () => {
> 78 |       beforeAll(async () => {
     |       ^
  79 |         appPort = await findPort()
  80 |         app = await launchApp(appDir, appPort)
  81 |       })

  at beforeAll (integration/404-page-custom-error/test/index.test.js:78:7)
  at integration/404-page-custom-error/test/index.test.js:75:58
  at Object.describe (integration/404-page-custom-error/test/index.test.js:53:1)

● Default 404 Page with custom _error › development mode › should render index page normal

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |     'development mode',
  77 |     () => {
> 78 |       beforeAll(async () => {
     |       ^
  79 |         appPort = await findPort()
  80 |         app = await launchApp(appDir, appPort)
  81 |       })

  at beforeAll (integration/404-page-custom-error/test/index.test.js:78:7)
  at integration/404-page-custom-error/test/index.test.js:75:58
  at Object.describe (integration/404-page-custom-error/test/index.test.js:53:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/auto-export/test/index.test.js (turbopack)

  • Auto Export > dev > Supports commonjs 1
  • Auto Export > dev > Supports commonjs 2
  • Auto Export > dev > Refreshes query on mount
  • Auto Export > dev > should update asPath after mount
  • Auto Export > dev > should not replace URL with page name while asPath is delayed
  • Auto Export > dev > should not show hydration warning from mismatching asPath
  • Auto Export > dev > should include error link when hydration error does occur
Expand output

● Auto Export › dev › Supports commonjs 1

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › Supports commonjs 2

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › Refreshes query on mount

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › should update asPath after mount

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › should not replace URL with page name while asPath is delayed

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › should not show hydration warning from mismatching asPath

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

● Auto Export › dev › should include error link when hydration error does occur

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  76 |
  77 |   describe('dev', () => {
> 78 |     beforeAll(async () => {
     |     ^
  79 |       appPort = await findPort()
  80 |       app = await launchApp(appDir, appPort)
  81 |     })

  at beforeAll (integration/auto-export/test/index.test.js:78:5)
  at describe (integration/auto-export/test/index.test.js:77:3)
  at Object.describe (integration/auto-export/test/index.test.js:59:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-functional/test/index.test.js (turbopack)

  • Document and App > should not have any missing key warnings
Expand output

● Document and App › should not have any missing key warnings

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  13 |
  14 | describe('Document and App', () => {
> 15 |   beforeAll(async () => {
     |   ^
  16 |     context.appPort = await findPort()
  17 |     context.server = await launchApp(join(__dirname, '../'), context.appPort, {
  18 |       onStdout: collectOutput,

  at beforeAll (integration/app-functional/test/index.test.js:15:3)
  at Object.describe (integration/app-functional/test/index.test.js:14:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/app-edge/app-edge.test.ts (turbopack)

  • app-dir edge SSR > should handle edge only routes
  • app-dir edge SSR > should retrieve cookies in a server component in the edge runtime
  • app-dir edge SSR > should treat process as object without polyfill in edge runtime
  • app-dir edge SSR > should handle /index routes correctly
Expand output

● app-dir edge SSR › should handle edge only routes

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should retrieve cookies in a server component in the edge runtime

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should treat process as object without polyfill in edge runtime

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should handle /index routes correctly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● app-dir edge SSR › should generate matchers correctly in middleware manifest

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge/app-edge.test.ts:5:42
  at Object.describe (e2e/app-dir/app-edge/app-edge.test.ts:4:1)

● Test suite failed to run

next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished

  134 |     if (nextInstance) {
  135 |       await nextInstance.destroy()
> 136 |       throw new Error(
      |             ^
  137 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
  138 |       )
  139 |     }

  at Object.<anonymous> (lib/e2e-utils.ts:136:13)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/amp-export-validation/test/index.test.js (turbopack)

  • AMP Validation on Export > production mode > should have shown errors during build
Expand output

● AMP Validation on Export › production mode › should have shown errors during build

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  17 |     'production mode',
  18 |     () => {
> 19 |       beforeAll(async () => {
     |       ^
  20 |         const { stdout = '', stderr = '' } = await nextBuild(appDir, [], {
  21 |           stdout: true,
  22 |           stderr: true,

  at beforeAll (integration/amp-export-validation/test/index.test.js:19:7)
  at integration/amp-export-validation/test/index.test.js:16:56
  at Object.describe (integration/amp-export-validation/test/index.test.js:15:1)

● AMP Validation on Export › production mode › shows AMP warning without throwing error

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  17 |     'production mode',
  18 |     () => {
> 19 |       beforeAll(async () => {
     |       ^
  20 |         const { stdout = '', stderr = '' } = await nextBuild(appDir, [], {
  21 |           stdout: true,
  22 |           stderr: true,

  at beforeAll (integration/amp-export-validation/test/index.test.js:19:7)
  at integration/amp-export-validation/test/index.test.js:16:56
  at Object.describe (integration/amp-export-validation/test/index.test.js:15:1)

● AMP Validation on Export › production mode › throws error on AMP error

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  17 |     'production mode',
  18 |     () => {
> 19 |       beforeAll(async () => {
     |       ^
  20 |         const { stdout = '', stderr = '' } = await nextBuild(appDir, [], {
  21 |           stdout: true,
  22 |           stderr: true,

  at beforeAll (integration/amp-export-validation/test/index.test.js:19:7)
  at integration/amp-export-validation/test/index.test.js:16:56
  at Object.describe (integration/amp-export-validation/test/index.test.js:15:1)

● AMP Validation on Export › production mode › shows warning and error when throwing error

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  17 |     'production mode',
  18 |     () => {
> 19 |       beforeAll(async () => {
     |       ^
  20 |         const { stdout = '', stderr = '' } = await nextBuild(appDir, [], {
  21 |           stdout: true,
  22 |           stderr: true,

  at beforeAll (integration/amp-export-validation/test/index.test.js:19:7)
  at integration/amp-export-validation/test/index.test.js:16:56
  at Object.describe (integration/amp-export-validation/test/index.test.js:15:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/actions/app-action-form-state.test.ts (turbopack)

  • app-dir action useActionState > should support submitting form state with JS
  • app-dir action useActionState > should support submitting form state without JS
  • app-dir action useActionState > should support hydrating the app from progressively enhanced form request
  • app-dir action useActionState > should send the action to the provided permalink with form state when JS disabled
Expand output

● app-dir action useActionState › should support submitting form state with JS

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:6:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:5:1)

● app-dir action useActionState › should support submitting form state without JS

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:6:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:5:1)

● app-dir action useActionState › should support hydrating the app from progressively enhanced form request

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:6:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:5:1)

● app-dir action useActionState › should send the action to the provided permalink with form state when JS disabled

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/actions/app-action-form-state.test.ts:6:33
  at Object.describe (e2e/app-dir/actions/app-action-form-state.test.ts:5:1)

● Test suite failed to run

next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished

  134 |     if (nextInstance) {
  135 |       await nextInstance.destroy()
> 136 |       throw new Error(
      |             ^
  137 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
  138 |       )
  139 |     }

  at Object.<anonymous> (lib/e2e-utils.ts:136:13)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test-start test/e2e/app-dir/app-edge-root-layout/index.test.ts (turbopack)

  • app-dir edge runtime root layout > should not emit metadata files into bad paths
  • app-dir edge runtime root layout > should mark static contain metadata routes as edge functions
Expand output

● app-dir edge runtime root layout › should not emit metadata files into bad paths

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge-root-layout/index.test.ts:4:55
  at Object.describe (e2e/app-dir/app-edge-root-layout/index.test.ts:3:1)

● app-dir edge runtime root layout › should mark static contain metadata routes as edge functions

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  252 |   let next: NextInstance | undefined
  253 |   if (!skipped) {
> 254 |     beforeAll(async () => {
      |     ^
  255 |       next = await createNext(options)
  256 |     })
  257 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:254:5)
  at e2e/app-dir/app-edge-root-layout/index.test.ts:4:55
  at Object.describe (e2e/app-dir/app-edge-root-layout/index.test.ts:3:1)

● Test suite failed to run

next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished

  134 |     if (nextInstance) {
  135 |       await nextInstance.destroy()
> 136 |       throw new Error(
      |             ^
  137 |         `next instance not destroyed before exiting, make sure to call .destroy() after the tests after finished`
  138 |       )
  139 |     }

  at Object.<anonymous> (lib/e2e-utils.ts:136:13)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/client-404/test/index.test.js (turbopack)

  • Client 404 > production mode > Client Navigation 404 > should hard navigate to URL on failing to load bundle
  • Client 404 > production mode > Client Navigation 404 > should hard navigate to URL on failing to load missing bundle
  • Client 404 > production mode > Client Navigation 404 > should show 404 upon client replacestate > should navigate the page
Expand output

● Client 404 › production mode › Client Navigation 404 › should show 404 upon client replacestate › should navigate the page

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  92 |     'production mode',
  93 |     () => {
> 94 |       beforeAll(async () => {
     |       ^
  95 |         await nextBuild(appDir)
  96 |         context.appPort = await findPort()
  97 |         context.server = await nextStart(appDir, context.appPort)

  at beforeAll (integration/client-404/test/index.test.js:94:7)
  at integration/client-404/test/index.test.js:91:56
  at Object.describe (integration/client-404/test/index.test.js:75:1)

● Client 404 › production mode › Client Navigation 404 › should hard navigate to URL on failing to load bundle

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  92 |     'production mode',
  93 |     () => {
> 94 |       beforeAll(async () => {
     |       ^
  95 |         await nextBuild(appDir)
  96 |         context.appPort = await findPort()
  97 |         context.server = await nextStart(appDir, context.appPort)

  at beforeAll (integration/client-404/test/index.test.js:94:7)
  at integration/client-404/test/index.test.js:91:56
  at Object.describe (integration/client-404/test/index.test.js:75:1)

● Client 404 › production mode › Client Navigation 404 › should hard navigate to URL on failing to load missing bundle

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  92 |     'production mode',
  93 |     () => {
> 94 |       beforeAll(async () => {
     |       ^
  95 |         await nextBuild(appDir)
  96 |         context.appPort = await findPort()
  97 |         context.server = await nextStart(appDir, context.appPort)

  at beforeAll (integration/client-404/test/index.test.js:94:7)
  at integration/client-404/test/index.test.js:91:56
  at Object.describe (integration/client-404/test/index.test.js:75:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/absolute-assetprefix/test/index.test.js (turbopack)

  • app dir - with output export - dynamic missing gsp prod > production mode > should error when dynamic route is missing generateStaticParams
Expand output

● app dir - with output export - dynamic missing gsp prod › production mode › should error when dynamic route is missing generateStaticParams

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

   5 |     'production mode',
   6 |     () => {
>  7 |       it('should error when dynamic route is missing generateStaticParams', async () => {
     |       ^
   8 |         await runTests({
   9 |           isDev: false,
  10 |           dynamicPage: 'undefined',

  at it (integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts:7:7)
  at integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts:4:56
  at Object.describe (integration/app-dir-export/test/dynamic-missing-gsp-prod.test.ts:3:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/start.test.ts (turbopack)

  • app dir - with output export (next start) > production mode > should error during next start with output export
Expand output

● app dir - with output export (next start) › production mode › should error during next start with output export

thrown: "Exceeded timeout of 60000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  29 |       })
  30 |
> 31 |       it('should error during next start with output export', async () => {
     |       ^
  32 |         const { code } = await nextBuild(appDir)
  33 |         expect(code).toBe(0)
  34 |         const port = await findPort()

  at it (integration/app-dir-export/test/start.test.ts:31:7)
  at integration/app-dir-export/test/start.test.ts:21:56
  at Object.describe (integration/app-dir-export/test/start.test.ts:20:1)

Read more about building and testing Next.js in contributing.md.

TURBOPACK=1 pnpm test test/integration/app-dir-export/test/dev-custom-dist-dir.test.ts (turbopack)

  • app dir - with output export and custom distDir (next dev) > should render properly
Expand output

● app dir - with output export and custom distDir (next dev) › should render properly

thrown: "Exceeded timeout of 60000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  18 |
  19 | describe('app dir - with output export and custom distDir (next dev)', () => {
> 20 |   beforeAll(async () => {
     |   ^
  21 |     nextConfig.replace('// distDir', 'distDir')
  22 |     appPort = await findPort()
  23 |     app = await launchApp(appDir, appPort)

  at beforeAll (integration/app-dir-export/test/dev-custom-dist-dir.test.ts:20:3)
  at Object.describe (integration/app-dir-export/test/dev-custom-dist-dir.test.ts:19:1)

Read more about building and testing Next.js in contributing.md.

pnpm test test/integration/turbotrace-with-webpack-worker/test/index.test.js

  • build trace with extra entries > production mode > should build and trace correctly
Expand output

● build trace with extra entries › production mode › should build and trace correctly

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: null

  18 |         })
  19 |         console.log(result)
> 20 |         expect(result.code).toBe(0)
     |                             ^
  21 |
  22 |         const appTrace = await fs.readJSON(
  23 |           join(appDir, '.next/server/pages/_app.js.nft.json')

  at Object.toBe (integration/turbotrace-with-webpack-worker/test/index.test.js:20:29)

Read more about building and testing Next.js in contributing.md.

pnpm test-dev test/development/basic/next-rs-api.test.ts

  • next.rs api > should detect the correct routes
  • next.rs api > should allow to write root page to disk
  • next.rs api > should allow to write pages edge api to disk
  • next.rs api > should allow to write pages Node.js api to disk
  • next.rs api > should allow to write app edge page to disk
  • next.rs api > should allow to write app Node.js page to disk
  • next.rs api > should allow to write pages edge page to disk
  • next.rs api > should allow to write pages Node.js page to disk
  • next.rs api > should allow to write app edge route to disk
  • next.rs api > should allow to write app Node.js route to disk
  • next.rs api > should have working HMR on client-side change on a page 0
  • next.rs api > should have working HMR on client-side change on a page 1
  • next.rs api > should have working HMR on client-side change on a page 2
  • next.rs api > should have working HMR on server-side change on a page 0
  • next.rs api > should have working HMR on server-side change on a page 1
  • next.rs api > should have working HMR on server-side change on a page 2
  • next.rs api > should have working HMR on client and server-side change on a page 0
  • next.rs api > should have working HMR on client and server-side change on a page 1
  • next.rs api > should have working HMR on client and server-side change on a page 2
  • next.rs api > should have working HMR on client-side change on a app page 0
  • next.rs api > should have working HMR on client-side change on a app page 1
  • next.rs api > should have working HMR on client-side change on a app page 2
  • next.rs api > should have working HMR on server-side change on a app page 0
  • next.rs api > should have working HMR on server-side change on a app page 1
  • next.rs api > should have working HMR on server-side change on a app page 2
Expand output

● next.rs api › should detect the correct routes

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write root page to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write pages edge api to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write pages Node.js api to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write app edge page to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write app Node.js page to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write pages edge page to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write pages Node.js page to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write app edge route to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to write app Node.js route to disk

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a page 0

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a page 1

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a page 2

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a page 0

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a page 1

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a page 2

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client and server-side change on a page 0

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client and server-side change on a page 1

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client and server-side change on a page 2

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a app page 0

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a app page 1

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on client-side change on a app page 2

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a app page 0

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a app page 1

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should have working HMR on server-side change on a app page 2

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

● next.rs api › should allow to make many HMR updates

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  188 |   let project: Project
  189 |   let projectUpdateSubscription: AsyncIterableIterator<UpdateInfo>
> 190 |   beforeAll(async () => {
      |   ^
  191 |     console.log(next.testDir)
  192 |     const nextConfig = await loadConfig(PHASE_DEVELOPMENT_SERVER, next.testDir)
  193 |     const bindings = await loadBindings()

  at beforeAll (development/basic/next-rs-api.test.ts:190:3)
  at Object.describe (development/basic/next-rs-api.test.ts:151:1)

Read more about building and testing Next.js in contributing.md.

@ijjk
Copy link
Member

ijjk commented Aug 14, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
buildDuration 17.5s 15.6s N/A
buildDurationCached 8.6s 7.2s N/A
nodeModulesSize 357 MB 357 MB ⚠️ +1.57 kB
nextStartRea..uration (ms) 427ms 435ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
1062.HASH.js gzip 169 B 168 B N/A
2cd9da90-HASH.js gzip 52 kB 52 kB N/A
5867-HASH.js gzip 42.4 kB 42.4 kB N/A
8503-HASH.js gzip 5.26 kB 5.25 kB N/A
framework-HASH.js gzip 56.9 kB 56.9 kB N/A
main-app-HASH.js gzip 223 B 223 B
main-HASH.js gzip 32.6 kB 32.5 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 223 B 223 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 191 B 191 B
amp-HASH.js gzip 511 B 512 B N/A
css-HASH.js gzip 342 B 343 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB N/A
edge-ssr-HASH.js gzip 265 B 266 B N/A
head-HASH.js gzip 362 B 364 B N/A
hooks-HASH.js gzip 392 B 392 B
image-HASH.js gzip 4.39 kB 4.4 kB N/A
index-HASH.js gzip 268 B 267 B N/A
link-HASH.js gzip 2.81 kB 2.81 kB N/A
routerDirect..HASH.js gzip 329 B 327 B N/A
script-HASH.js gzip 398 B 396 B N/A
withRouter-HASH.js gzip 325 B 324 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 882 B 882 B
Client Build Manifests
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
_buildManifest.js gzip 748 B 748 B
Overall change 748 B 748 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
index.html gzip 522 B 523 B N/A
link.html gzip 538 B 537 B N/A
withRouter.html gzip 518 B 519 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 178 kB 178 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
middleware-b..fest.js gzip 672 B 669 B N/A
middleware-r..fest.js gzip 156 B 157 B N/A
middleware.js gzip 29.9 kB 29.9 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
928-experime...dev.js gzip 322 B 322 B
928.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 317 kB 317 kB
app-page-exp..prod.js gzip 125 kB 125 kB
app-page-tur..prod.js gzip 139 kB 139 kB
app-page-tur..prod.js gzip 134 kB 134 kB
app-page.run...dev.js gzip 305 kB 305 kB
app-page.run..prod.js gzip 121 kB 121 kB
app-route-ex...dev.js gzip 31.2 kB 31.2 kB
app-route-ex..prod.js gzip 21.1 kB 21.1 kB
app-route-tu..prod.js gzip 21.1 kB 21.1 kB
app-route-tu..prod.js gzip 20.9 kB 20.9 kB
app-route.ru...dev.js gzip 32.9 kB 32.9 kB
app-route.ru..prod.js gzip 20.9 kB 20.9 kB
pages-api-tu..prod.js gzip 9.62 kB 9.62 kB
pages-api.ru...dev.js gzip 11.5 kB 11.5 kB
pages-api.ru..prod.js gzip 9.61 kB 9.61 kB
pages-turbo...prod.js gzip 20.8 kB 20.8 kB
pages.runtim...dev.js gzip 26.4 kB 26.4 kB
pages.runtim..prod.js gzip 20.8 kB 20.8 kB
server.runti..prod.js gzip 57.6 kB 57.6 kB
Overall change 1.45 MB 1.45 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js sokra/new-backend-aggregation Change
0.pack gzip 1.61 MB 1.61 MB ⚠️ +4.04 kB
index.pack gzip 132 kB 132 kB N/A
Overall change 1.61 MB 1.61 MB ⚠️ +4.04 kB
Diff details
Diff for page.js
@@ -15,7 +15,7 @@
       /***/
     },
 
-    /***/ 3430: /***/ (
+    /***/ 7444: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -30,7 +30,7 @@
         default: () => /* binding */ nHandler,
       });
 
-      // NAMESPACE OBJECT: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsD1ndjr%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
+      // NAMESPACE OBJECT: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsD1ndjr%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
       var page_next_edge_ssr_entry_namespaceObject = {};
       __webpack_require__.r(page_next_edge_ssr_entry_namespaceObject);
       __webpack_require__.d(page_next_edge_ssr_entry_namespaceObject, {
@@ -69,35 +69,35 @@
         tree: () => tree,
       });
 
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/web/globals.js
-      var globals = __webpack_require__(578);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
-      var adapter = __webpack_require__(8519);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 85 modules
-      var render = __webpack_require__(2492);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
-      var incremental_cache = __webpack_require__(729);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/app-render.js + 73 modules
-      var app_render = __webpack_require__(7535);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
-      var module_compiled = __webpack_require__(7055);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/route-kind.js
-      var route_kind = __webpack_require__(1384);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/client/components/error-boundary.js
-      var error_boundary = __webpack_require__(8292);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
-      var entry_base = __webpack_require__(9147); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsD1ndjr%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/web/globals.js
+      var globals = __webpack_require__(1603);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/web/adapter.js + 3 modules
+      var adapter = __webpack_require__(6148);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render.js + 85 modules
+      var render = __webpack_require__(301);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/lib/incremental-cache/index.js + 3 modules
+      var incremental_cache = __webpack_require__(6802);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/app-render.js + 73 modules
+      var app_render = __webpack_require__(8788);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/route-modules/app-page/module.compiled.js
+      var module_compiled = __webpack_require__(6217);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/route-kind.js
+      var route_kind = __webpack_require__(8636);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/client/components/error-boundary.js
+      var error_boundary = __webpack_require__(746);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/entry-base.js + 9 modules
+      var entry_base = __webpack_require__(6729); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp-edge-ssr%2Fpage&page=%2Fapp-edge-ssr%2Fpage&pagePath=private-next-app-dir%2Fapp-edge-ssr%2Fpage.js&appDir=%2Ftmp%2Fnext-statsD1ndjr%2Fstats-app%2Fapp&appPaths=%2Fapp-edge-ssr%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&flyingShuttle=false&preferredRegion=&middlewareConfig=e30%3D!./app/app-edge-ssr/page.js?__next_edge_ssr_entry__
       const component0 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 6908)
+          __webpack_require__.bind(__webpack_require__, 176)
         );
       const component1 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 4482)
+          __webpack_require__.bind(__webpack_require__, 5078)
         );
       const page2 = () =>
         Promise.resolve(/* import() eager */).then(
-          __webpack_require__.bind(__webpack_require__, 3073)
+          __webpack_require__.bind(__webpack_require__, 2934)
         );
 
       // We inject the tree and pages here so that we can use them in the route
@@ -163,12 +163,12 @@
       });
 
       //# sourceMappingURL=app-page.js.map
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/lib/page-types.js
-      var page_types = __webpack_require__(5067);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/encryption-utils.js
-      var encryption_utils = __webpack_require__(9845);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/esm/server/app-render/action-utils.js
-      var action_utils = __webpack_require__(4670); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"next/dist/pages/_app","absoluteDocumentPath":"next/dist/pages/_document","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"private-next-app-dir/app-edge-ssr/page.js","dev":false,"isServerComponent":true,"page":"/app-edge-ssr/page","stringifiedConfig":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzRDFuZGpyL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNEMW5kanIvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzRDFuZGpyJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/lib/page-types.js
+      var page_types = __webpack_require__(7743);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/encryption-utils.js
+      var encryption_utils = __webpack_require__(659);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/esm/server/app-render/action-utils.js
+      var action_utils = __webpack_require__(5710); // CONCATENATED MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"next/dist/pages/_app","absoluteDocumentPath":"next/dist/pages/_document","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"private-next-app-dir/app-edge-ssr/page.js","dev":false,"isServerComponent":true,"page":"/app-edge-ssr/page","stringifiedConfig":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjpmYWxzZX0sInR5cGVzY3JpcHQiOnsiaWdub3JlQnVpbGRFcnJvcnMiOmZhbHNlLCJ0c2NvbmZpZ1BhdGgiOiJ0c2NvbmZpZy5qc29uIn0sImRpc3REaXIiOiIubmV4dCIsImNsZWFuRGlzdERpciI6dHJ1ZSwiYXNzZXRQcmVmaXgiOiIiLCJjYWNoZU1heE1lbW9yeVNpemUiOjUyNDI4ODAwLCJjb25maWdPcmlnaW4iOiJuZXh0LmNvbmZpZy5qcyIsInVzZUZpbGVTeXN0ZW1QdWJsaWNSb3V0ZXMiOnRydWUsImdlbmVyYXRlRXRhZ3MiOnRydWUsInBhZ2VFeHRlbnNpb25zIjpbInRzeCIsInRzIiwianN4IiwianMiXSwicG93ZXJlZEJ5SGVhZGVyIjp0cnVlLCJjb21wcmVzcyI6dHJ1ZSwiaW1hZ2VzIjp7ImRldmljZVNpemVzIjpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSwiaW1hZ2VTaXplcyI6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSwicGF0aCI6Ii9fbmV4dC9pbWFnZSIsImxvYWRlciI6ImRlZmF1bHQiLCJsb2FkZXJGaWxlIjoiIiwiZG9tYWlucyI6W10sImRpc2FibGVTdGF0aWNJbWFnZXMiOmZhbHNlLCJtaW5pbXVtQ2FjaGVUVEwiOjYwLCJmb3JtYXRzIjpbImltYWdlL3dlYnAiXSwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyI6ZmFsc2UsImNvbnRlbnRTZWN1cml0eVBvbGljeSI6InNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94OyIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiOiJhdHRhY2htZW50IiwicmVtb3RlUGF0dGVybnMiOltdLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImFwcElzclN0YXR1cyI6dHJ1ZSwiYnVpbGRBY3Rpdml0eSI6dHJ1ZSwiYnVpbGRBY3Rpdml0eVBvc2l0aW9uIjoiYm90dG9tLXJpZ2h0In0sIm9uRGVtYW5kRW50cmllcyI6eyJtYXhJbmFjdGl2ZUFnZSI6NjAwMDAsInBhZ2VzQnVmZmVyTGVuZ3RoIjo1fSwiYW1wIjp7ImNhbm9uaWNhbEJhc2UiOiIifSwiYmFzZVBhdGgiOiIiLCJzYXNzT3B0aW9ucyI6e30sInRyYWlsaW5nU2xhc2giOmZhbHNlLCJpMThuIjpudWxsLCJwcm9kdWN0aW9uQnJvd3NlclNvdXJjZU1hcHMiOmZhbHNlLCJleGNsdWRlRGVmYXVsdE1vbWVudExvY2FsZXMiOnRydWUsInNlcnZlclJ1bnRpbWVDb25maWciOnt9LCJwdWJsaWNSdW50aW1lQ29uZmlnIjp7fSwicmVhY3RQcm9kdWN0aW9uUHJvZmlsaW5nIjpmYWxzZSwicmVhY3RTdHJpY3RNb2RlIjpudWxsLCJyZWFjdE1heEhlYWRlcnNMZW5ndGgiOjYwMDAsImh0dHBBZ2VudE9wdGlvbnMiOnsia2VlcEFsaXZlIjp0cnVlfSwibG9nZ2luZyI6e30sInN0YXRpY1BhZ2VHZW5lcmF0aW9uVGltZW91dCI6NjAsIm1vZHVsYXJpemVJbXBvcnRzIjp7IkBtdWkvaWNvbnMtbWF0ZXJpYWwiOnsidHJhbnNmb3JtIjoiQG11aS9pY29ucy1tYXRlcmlhbC97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9fSwib3V0cHV0RmlsZVRyYWNpbmdSb290IjoiL3RtcC9uZXh0LXN0YXRzRDFuZGpyL3N0YXRzLWFwcCIsImV4cGVyaW1lbnRhbCI6eyJtdWx0aVpvbmVEcmFmdE1vZGUiOmZhbHNlLCJhcHBOYXZGYWlsSGFuZGxpbmciOmZhbHNlLCJwcmVyZW5kZXJFYXJseUV4aXQiOnRydWUsInNlcnZlck1pbmlmaWNhdGlvbiI6dHJ1ZSwic2VydmVyU291cmNlTWFwcyI6ZmFsc2UsImxpbmtOb1RvdWNoU3RhcnQiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwicHJlbG9hZEVudHJpZXNPblN0YXJ0Ijp0cnVlLCJjbGllbnRSb3V0ZXJGaWx0ZXIiOnRydWUsImNsaWVudFJvdXRlckZpbHRlclJlZGlyZWN0cyI6ZmFsc2UsImZldGNoQ2FjaGVLZXlQcmVmaXgiOiIiLCJtaWRkbGV3YXJlUHJlZmV0Y2giOiJmbGV4aWJsZSIsIm9wdGltaXN0aWNDbGllbnRDYWNoZSI6dHJ1ZSwibWFudWFsQ2xpZW50QmFzZVBhdGgiOmZhbHNlLCJjcHVzIjoxOSwibWVtb3J5QmFzZWRXb3JrZXJzQ291bnQiOmZhbHNlLCJpc3JGbHVzaFRvRGlzayI6dHJ1ZSwid29ya2VyVGhyZWFkcyI6ZmFsc2UsIm9wdGltaXplQ3NzIjpmYWxzZSwibmV4dFNjcmlwdFdvcmtlcnMiOmZhbHNlLCJzY3JvbGxSZXN0b3JhdGlvbiI6ZmFsc2UsImV4dGVybmFsRGlyIjpmYWxzZSwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciOmZhbHNlLCJnemlwU2l6ZSI6dHJ1ZSwiY3JhQ29tcGF0IjpmYWxzZSwiZXNtRXh0ZXJuYWxzIjp0cnVlLCJmdWxseVNwZWNpZmllZCI6ZmFsc2UsInN3Y1RyYWNlUHJvZmlsaW5nIjpmYWxzZSwiZm9yY2VTd2NUcmFuc2Zvcm1zIjpmYWxzZSwibGFyZ2VQYWdlRGF0YUJ5dGVzIjoxMjgwMDAsInR5cGVkUm91dGVzIjpmYWxzZSwidHlwZWRFbnYiOmZhbHNlLCJwYXJhbGxlbFNlcnZlckNvbXBpbGVzIjpmYWxzZSwicGFyYWxsZWxTZXJ2ZXJCdWlsZFRyYWNlcyI6ZmFsc2UsInBwciI6ZmFsc2UsInBwckZhbGxiYWNrcyI6ZmFsc2UsIndlYnBhY2tNZW1vcnlPcHRpbWl6YXRpb25zIjpmYWxzZSwib3B0aW1pemVTZXJ2ZXJSZWFjdCI6dHJ1ZSwidXNlRWFybHlJbXBvcnQiOmZhbHNlLCJzdGFsZVRpbWVzIjp7ImR5bmFtaWMiOjAsInN0YXRpYyI6MzAwfSwiYWZ0ZXIiOmZhbHNlLCJzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUiOnRydWUsInN0YXRpY0dlbmVyYXRpb25NYXhDb25jdXJyZW5jeSI6OCwic3RhdGljR2VuZXJhdGlvbk1pblBhZ2VzUGVyV29ya2VyIjoyNSwiZHluYW1pY0lPIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJkYXRlLWZucyIsImxvZGFzaC1lcyIsInJhbWRhIiwiYW50ZCIsInJlYWN0LWJvb3RzdHJhcCIsImFob29rcyIsIkBhbnQtZGVzaWduL2ljb25zIiwiQGhlYWRsZXNzdWkvcmVhY3QiLCJAaGVhZGxlc3N1aS1mbG9hdC9yZWFjdCIsIkBoZXJvaWNvbnMvcmVhY3QvMjAvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L3NvbGlkIiwiQGhlcm9pY29ucy9yZWFjdC8yNC9vdXRsaW5lIiwiQHZpc3gvdmlzeCIsIkB0cmVtb3IvcmVhY3QiLCJyeGpzIiwiQG11aS9tYXRlcmlhbCIsIkBtdWkvaWNvbnMtbWF0ZXJpYWwiLCJyZWNoYXJ0cyIsInJlYWN0LXVzZSIsImVmZmVjdCIsIkBlZmZlY3Qvc2NoZW1hIiwiQGVmZmVjdC9wbGF0Zm9ybSIsIkBlZmZlY3QvcGxhdGZvcm0tbm9kZSIsIkBlZmZlY3QvcGxhdGZvcm0tYnJvd3NlciIsIkBlZmZlY3QvcGxhdGZvcm0tYnVuIiwiQGVmZmVjdC9zcWwiLCJAZWZmZWN0L3NxbC1tc3NxbCIsIkBlZmZlY3Qvc3FsLW15c3FsMiIsIkBlZmZlY3Qvc3FsLXBnIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1ub2RlIiwiQGVmZmVjdC9zcWwtc3F1bGl0ZS1idW4iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXdhc20iLCJAZWZmZWN0L3NxbC1zcXVsaXRlLXJlYWN0LW5hdGl2ZSIsIkBlZmZlY3QvcnBjIiwiQGVmZmVjdC9ycGMtaHR0cCIsIkBlZmZlY3QvdHlwZWNsYXNzIiwiQGVmZmVjdC9leHBlcmltZW50YWwiLCJAZWZmZWN0L29wZW50ZWxlbWV0cnkiLCJAbWF0ZXJpYWwtdWkvY29yZSIsIkBtYXRlcmlhbC11aS9pY29ucyIsIkB0YWJsZXIvaWNvbnMtcmVhY3QiLCJtdWktY29yZSIsInJlYWN0LWljb25zL2FpIiwicmVhY3QtaWNvbnMvYmkiLCJyZWFjdC1pY29ucy9icyIsInJlYWN0LWljb25zL2NnIiwicmVhY3QtaWNvbnMvY2kiLCJyZWFjdC1pY29ucy9kaSIsInJlYWN0LWljb25zL2ZhIiwicmVhY3QtaWNvbnMvZmE2IiwicmVhY3QtaWNvbnMvZmMiLCJyZWFjdC1pY29ucy9maSIsInJlYWN0LWljb25zL2dpIiwicmVhY3QtaWNvbnMvZ28iLCJyZWFjdC1pY29ucy9nciIsInJlYWN0LWljb25zL2hpIiwicmVhY3QtaWNvbnMvaGkyIiwicmVhY3QtaWNvbnMvaW0iLCJyZWFjdC1pY29ucy9pbyIsInJlYWN0LWljb25zL2lvNSIsInJlYWN0LWljb25zL2xpYSIsInJlYWN0LWljb25zL2xpYiIsInJlYWN0LWljb25zL2x1IiwicmVhY3QtaWNvbnMvbWQiLCJyZWFjdC1pY29ucy9waSIsInJlYWN0LWljb25zL3JpIiwicmVhY3QtaWNvbnMvcngiLCJyZWFjdC1pY29ucy9zaSIsInJlYWN0LWljb25zL3NsIiwicmVhY3QtaWNvbnMvdGIiLCJyZWFjdC1pY29ucy90ZmkiLCJyZWFjdC1pY29ucy90aSIsInJlYWN0LWljb25zL3ZzYyIsInJlYWN0LWljb25zL3dpIl19LCJidW5kbGVQYWdlc1JvdXRlckRlcGVuZGVuY2llcyI6ZmFsc2UsImNvbmZpZ0ZpbGUiOiIvdG1wL25leHQtc3RhdHNEMW5kanIvc3RhdHMtYXBwL25leHQuY29uZmlnLmpzIiwiY29uZmlnRmlsZU5hbWUiOiJuZXh0LmNvbmZpZy5qcyJ9","pagesType":"app","appDirLoader":"bmV4dC1hcHAtbG9hZGVyP25hbWU9YXBwJTJGYXBwLWVkZ2Utc3NyJTJGcGFnZSZwYWdlPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZVBhdGg9cHJpdmF0ZS1uZXh0LWFwcC1kaXIlMkZhcHAtZWRnZS1zc3IlMkZwYWdlLmpzJmFwcERpcj0lMkZ0bXAlMkZuZXh0LXN0YXRzRDFuZGpyJTJGc3RhdHMtYXBwJTJGYXBwJmFwcFBhdGhzPSUyRmFwcC1lZGdlLXNzciUyRnBhZ2UmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JmZseWluZ1NodXR0bGU9ZmFsc2UmcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCE=","sriEnabled":false,"middlewareConfig":"e30="}!
       var _self___RSC_MANIFEST;
 
       const incrementalCacheHandler = null;
@@ -431,50 +431,50 @@
       /***/
     },
 
-    /***/ 1220: /***/ (
+    /***/ 7372: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 8585)
+        __webpack_require__.bind(__webpack_require__, 753)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9467)
+        __webpack_require__.bind(__webpack_require__, 6866)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1744)
+        __webpack_require__.bind(__webpack_require__, 7099)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 9329)
+        __webpack_require__.bind(__webpack_require__, 2064)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 7969)
+        __webpack_require__.bind(__webpack_require__, 7531)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 4252)
+        __webpack_require__.bind(__webpack_require__, 8704)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 5685)
+        __webpack_require__.bind(__webpack_require__, 1335)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 853)
+        __webpack_require__.bind(__webpack_require__, 2618)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 1843)
+        __webpack_require__.bind(__webpack_require__, 7794)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 8149)
+        __webpack_require__.bind(__webpack_require__, 7094)
       );
 
       /***/
     },
 
-    /***/ 5315: /***/ () => {
+    /***/ 9641: /***/ () => {
       /***/
     },
 
-    /***/ 3073: /***/ (
+    /***/ 2934: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -494,7 +494,7 @@
       /***/
     },
 
-    /***/ 6908: /***/ (
+    /***/ 176: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -506,7 +506,7 @@
         /* harmony export */
       });
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(7669);
+        __webpack_require__(2843);
 
       function RootLayout({ children }) {
         return /*#__PURE__*/ (0,
@@ -525,7 +525,7 @@
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [319, 704], () => __webpack_exec__(3430));
+    /******/ __webpack_require__.O(0, [819, 397], () => __webpack_exec__(7444));
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ (_ENTRIES = typeof _ENTRIES === "undefined" ? {} : _ENTRIES)[
       "middleware_app/app-edge-ssr/page"
Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [8358],
   {
-    /***/ 8908: /***/ (
+    /***/ 8176: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(2111);
+          return __webpack_require__(934);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6308: /***/ (module, exports, __webpack_require__) => {
+    /***/ 5057: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -40,17 +40,17 @@
         __webpack_require__(1955)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(2383)
+        __webpack_require__(7163)
       );
-      const _getimgprops = __webpack_require__(5640);
-      const _imageconfig = __webpack_require__(2758);
-      const _imageconfigcontextsharedruntime = __webpack_require__(899);
-      const _warnonce = __webpack_require__(3878);
-      const _routercontextsharedruntime = __webpack_require__(869);
+      const _getimgprops = __webpack_require__(5447);
+      const _imageconfig = __webpack_require__(1650);
+      const _imageconfigcontextsharedruntime = __webpack_require__(1953);
+      const _warnonce = __webpack_require__(5054);
+      const _routercontextsharedruntime = __webpack_require__(4445);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6501)
+        __webpack_require__(7406)
       );
-      const _usemergedref = __webpack_require__(3994);
+      const _usemergedref = __webpack_require__(3303);
       // This is replaced by webpack define plugin
       const configEnv = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -371,7 +371,7 @@
       /***/
     },
 
-    /***/ 3994: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3303: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -440,7 +440,7 @@
       /***/
     },
 
-    /***/ 5640: /***/ (
+    /***/ 5447: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -456,9 +456,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(3878);
-      const _imageblursvg = __webpack_require__(4317);
-      const _imageconfig = __webpack_require__(2758);
+      const _warnonce = __webpack_require__(5054);
+      const _imageblursvg = __webpack_require__(1731);
+      const _imageconfig = __webpack_require__(1650);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -830,7 +830,7 @@
       /***/
     },
 
-    /***/ 4317: /***/ (__unused_webpack_module, exports) => {
+    /***/ 1731: /***/ (__unused_webpack_module, exports) => {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -885,7 +885,7 @@
       /***/
     },
 
-    /***/ 8580: /***/ (
+    /***/ 9833: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -912,10 +912,10 @@
         },
       });
       const _interop_require_default = __webpack_require__(4345);
-      const _getimgprops = __webpack_require__(5640);
-      const _imagecomponent = __webpack_require__(6308);
+      const _getimgprops = __webpack_require__(5447);
+      const _imagecomponent = __webpack_require__(5057);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(6501)
+        __webpack_require__(7406)
       );
       function getImageProps(imgProps) {
         const { props } = (0, _getimgprops.getImgProps)(imgProps, {
@@ -947,7 +947,7 @@
       /***/
     },
 
-    /***/ 6501: /***/ (__unused_webpack_module, exports) => {
+    /***/ 7406: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -982,7 +982,7 @@
       /***/
     },
 
-    /***/ 2111: /***/ (
+    /***/ 934: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -999,8 +999,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@19.0.0-rc-7771d3a7-20240827/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(5815);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_h4bgdqagqtli4q7bnw2ajnn4vm/node_modules/next/image.js
-      var next_image = __webpack_require__(1878);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0-rc-7771d3a7-20240827_re_qz7eh3ruj3cscolfxbcb265hza/node_modules/next/image.js
+      var next_image = __webpack_require__(7649);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
       /* harmony default export */ const nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1030,12 +1030,12 @@
       /***/
     },
 
-    /***/ 1878: /***/ (
+    /***/ 7649: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(8580);
+      module.exports = __webpack_require__(9833);
 
       /***/
     },
@@ -1045,7 +1045,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [2888, 9774, 179], () =>
-      __webpack_exec__(8908)
+      __webpack_exec__(8176)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 5867-HASH.js

Diff too large to display

Commit: e126a75

@sokra sokra force-pushed the sokra/new-backend-fixes branch from 90be19b to abc9968 Compare August 19, 2024 14:42
@sokra sokra force-pushed the sokra/new-backend-aggregation branch from 70ac924 to b8e98fe Compare August 19, 2024 14:43
@sokra sokra force-pushed the sokra/new-backend-fixes branch from abc9968 to c736b0d Compare September 4, 2024 07:19
@sokra sokra force-pushed the sokra/new-backend-aggregation branch from b8e98fe to e126a75 Compare September 4, 2024 07:19
@sokra sokra closed this Sep 4, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Turbopack team PRs by the Turbopack team. locked
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants