diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/client-component/page.tsx b/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/client-component/page.tsx deleted file mode 100644 index b1d7f708cfae..000000000000 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/client-component/page.tsx +++ /dev/null @@ -1,17 +0,0 @@ -'use client'; - -export default function Page() { - return ( -
-

Press to throw:

- -
- ); -} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/layout.tsx b/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/layout.tsx deleted file mode 100644 index f3ef34cd8b91..000000000000 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/layout.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export default function RootLayout({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ); -} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/page.tsx b/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/page.tsx deleted file mode 100644 index 1caf96ed7786..000000000000 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/page.tsx +++ /dev/null @@ -1,22 +0,0 @@ -'use client'; - -import * as Sentry from '@sentry/nextjs'; -import Link from 'next/link'; - -export default function Home() { - return ( -
- { - Sentry.captureException(new Error('I am a click error!')); - }} - /> - - navigate - -
- ); -} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/user/[id]/page.tsx b/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/user/[id]/page.tsx deleted file mode 100644 index bdb52ea5547a..000000000000 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/app/user/[id]/page.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export default async function Home() { - const dynamid = await (await fetch('http://example.com', { cache: 'no-store' })).text(); // do a fetch request so that this server component is always rendered when requested - return

I am a blank page :) {dynamid}

; -} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/.gitignore b/packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/.gitignore rename to packages/e2e-tests/test-applications/nextjs-app-dir/.gitignore diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/.npmrc b/packages/e2e-tests/test-applications/nextjs-app-dir/.npmrc similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/.npmrc rename to packages/e2e-tests/test-applications/nextjs-app-dir/.npmrc diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/error.tsx new file mode 100644 index 000000000000..c1e3874f7ea8 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/client-component)

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/layout.tsx new file mode 100644 index 000000000000..7b447d23cbf8 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/layout.tsx @@ -0,0 +1,10 @@ +'use client'; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/client-component)

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/loading.tsx new file mode 100644 index 000000000000..9b6cf994d322 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/loading.tsx @@ -0,0 +1,7 @@ +export default function Loading() { + return ( +
+

Loading (/client-component)

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/not-found.tsx new file mode 100644 index 000000000000..deef8f3078b4 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/client-component)

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/page.tsx new file mode 100644 index 000000000000..64012f948278 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/page.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { ClientErrorDebugTools } from '../../components/client-error-debug-tools'; + +export default function Page() { + return ( +
+

Page (/client-component)

+ +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/error.tsx new file mode 100644 index 000000000000..8c52619b80b1 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/client-component/[...parameters])

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/layout.tsx new file mode 100644 index 000000000000..a387722a8fcf --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/layout.tsx @@ -0,0 +1,10 @@ +'use client'; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/client-component/[...parameters])

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/loading.tsx new file mode 100644 index 000000000000..27a8d577240e --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/loading.tsx @@ -0,0 +1,7 @@ +export default function Loading() { + return ( +
+

Loading (/client-component/parameter/[...parameters])

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/not-found.tsx new file mode 100644 index 000000000000..c56f5aa409f5 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/client-component/[...parameters])

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/page.tsx new file mode 100644 index 000000000000..31fa4ee21be5 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[...parameters]/page.tsx @@ -0,0 +1,15 @@ +import { ClientErrorDebugTools } from '../../../../components/client-error-debug-tools'; + +export default function Page({ params }: { params: Record }) { + return ( +
+

Page (/client-component/[...parameters])

+

Params: {JSON.stringify(params['parameters'])}

+ +
+ ); +} + +export async function generateStaticParams() { + return [{ parameters: ['foo', 'bar', 'baz'] }]; +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/error.tsx new file mode 100644 index 000000000000..92948207a2fe --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/client-component/[parameter])

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/layout.tsx new file mode 100644 index 000000000000..0d13dbc6bcac --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/layout.tsx @@ -0,0 +1,10 @@ +'use client'; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/client-component/[parameter])

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/loading.tsx new file mode 100644 index 000000000000..94ad013d3986 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/loading.tsx @@ -0,0 +1,7 @@ +export default function Loading() { + return ( +
+

Loading (/client-component/[parameter])

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/not-found.tsx new file mode 100644 index 000000000000..48c215c930e2 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/client-component/[parameter])

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/page.tsx new file mode 100644 index 000000000000..2b9c28b922ac --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/client-component/parameter/[parameter]/page.tsx @@ -0,0 +1,15 @@ +import { ClientErrorDebugTools } from '../../../../components/client-error-debug-tools'; + +export default function Page({ params }: { params: Record }) { + return ( +
+

Page (/client-component/[parameter])

+

Parameter: {JSON.stringify(params['parameter'])}

+ +
+ ); +} + +export async function generateStaticParams() { + return [{ parameter: '42' }]; +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/error.tsx new file mode 100644 index 000000000000..02a192259aec --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/)

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/layout.tsx new file mode 100644 index 000000000000..35c4704735e7 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/layout.tsx @@ -0,0 +1,38 @@ +import { TransactionContextProvider } from '../components/transaction-context'; +import Link from 'next/link'; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( + + +
+

Layout (/)

+
    +
  • + / +
  • +
  • + /client-component +
  • +
  • + /client-component/parameter/42 +
  • +
  • + /client-component/parameter/foo/bar/baz +
  • +
  • + /server-component +
  • +
  • + /server-component/parameter/42 +
  • +
  • + /server-component/parameter/foo/bar/baz +
  • +
+ {children} +
+ + + ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/loading.tsx new file mode 100644 index 000000000000..1c89093040e8 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/loading.tsx @@ -0,0 +1,7 @@ +export default function Loading() { + return ( +
+

Loading (/)

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/not-found.tsx new file mode 100644 index 000000000000..5e7b156553a6 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/)

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/page.tsx new file mode 100644 index 000000000000..edaffa368ace --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/page.tsx @@ -0,0 +1,10 @@ +import { ClientErrorDebugTools } from '../components/client-error-debug-tools'; + +export default function Page() { + return ( +
+

Page (/)

+ +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/error.tsx new file mode 100644 index 000000000000..8c728017a4c9 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/server-component)

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/layout.tsx new file mode 100644 index 000000000000..3e6a95d2bc49 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/layout.tsx @@ -0,0 +1,8 @@ +export default async function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/server-component)

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/loading.tsx new file mode 100644 index 000000000000..70deffd9dea6 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/loading.tsx @@ -0,0 +1,7 @@ +export default async function Loading() { + return ( +
+

Loading (/server-component)

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/not-found.tsx new file mode 100644 index 000000000000..57b040b4210d --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/server-component)

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/page.tsx new file mode 100644 index 000000000000..d318ee23968d --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/page.tsx @@ -0,0 +1,12 @@ +import { ClientErrorDebugTools } from '../../components/client-error-debug-tools'; + +export const dynamic = 'force-dynamic'; + +export default function Page() { + return ( +
+

Page (/server-component)

+ +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/error.tsx new file mode 100644 index 000000000000..44c78430b2aa --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/server-component/[...parameters])

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/layout.tsx new file mode 100644 index 000000000000..b34d5a11488f --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/layout.tsx @@ -0,0 +1,8 @@ +export default async function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/server-component/[...parameters])

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/loading.tsx new file mode 100644 index 000000000000..f0fa262fa780 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/loading.tsx @@ -0,0 +1,7 @@ +export default async function Loading() { + return ( +
+

Loading (/server-component/[...parameters])

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/not-found.tsx new file mode 100644 index 000000000000..30da42c88a17 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/server-component/[...parameters])

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/page.tsx new file mode 100644 index 000000000000..5d9d6c8262c5 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[...parameters]/page.tsx @@ -0,0 +1,13 @@ +import { ClientErrorDebugTools } from '../../../../components/client-error-debug-tools'; + +export const dynamic = 'force-dynamic'; + +export default async function Page({ params }: { params: Record }) { + return ( +
+

Page (/server-component/[...parameters])

+

Params: {JSON.stringify(params['parameters'])}

+ +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/error.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/error.tsx new file mode 100644 index 000000000000..37ba7515505f --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/error.tsx @@ -0,0 +1,11 @@ +'use client'; + +export default function Error({ error, reset }: { error: Error; reset: () => void }) { + return ( +
+

Error (/server-component/[parameter])

+ + Error: {error.toString()} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/layout.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/layout.tsx new file mode 100644 index 000000000000..013b62f15ff5 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/layout.tsx @@ -0,0 +1,8 @@ +export default async function Layout({ children }: { children: React.ReactNode }) { + return ( +
+

Layout (/server-component/[parameter])

+ {children} +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/loading.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/loading.tsx new file mode 100644 index 000000000000..6fb1e6e9d479 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/loading.tsx @@ -0,0 +1,7 @@ +export default async function Loading() { + return ( +
+

Loading (/server-component/[parameter])

+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/not-found.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/not-found.tsx new file mode 100644 index 000000000000..9150cdeca2ad --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/not-found.tsx @@ -0,0 +1,7 @@ +export default function NotFound() { + return ( +
+

Not found (/server-component/[parameter])

; +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/page.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/page.tsx new file mode 100644 index 000000000000..f88fe1cd4a06 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/app/server-component/parameter/[parameter]/page.tsx @@ -0,0 +1,13 @@ +import { ClientErrorDebugTools } from '../../../../components/client-error-debug-tools'; + +export const dynamic = 'force-dynamic'; + +export default async function Page({ params }: { params: Record }) { + return ( +
+

Page (/server-component/[parameter])

+

Parameter: {JSON.stringify(params['parameter'])}

+ +
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/components/client-error-debug-tools.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/components/client-error-debug-tools.tsx new file mode 100644 index 000000000000..4e7572a3fb3f --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/components/client-error-debug-tools.tsx @@ -0,0 +1,102 @@ +'use client'; + +import { useContext, useState } from 'react'; +import { TransactionContext } from './transaction-context'; +import { captureException } from '@sentry/nextjs'; + +export function ClientErrorDebugTools() { + const { transactionActive, toggle } = useContext(TransactionContext); + + const [isFetchingAPIRoute, setIsFetchingAPIRoute] = useState(); + const [isFetchingEdgeAPIRoute, setIsFetchingEdgeAPIRoute] = useState(); + const [isFetchingExternalAPIRoute, setIsFetchingExternalAPIRoute] = useState(); + const [renderError, setRenderError] = useState(); + + if (renderError) { + throw new Error('Render Error'); + } + + return ( +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/components/transaction-context.tsx b/packages/e2e-tests/test-applications/nextjs-app-dir/components/transaction-context.tsx new file mode 100644 index 000000000000..82d14aaccced --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/components/transaction-context.tsx @@ -0,0 +1,34 @@ +'use client'; + +import { createContext, PropsWithChildren, useState } from 'react'; +import { Transaction } from '@sentry/types'; +import { startTransaction, getCurrentHub } from '@sentry/nextjs'; + +export const TransactionContext = createContext<{ transactionActive: boolean; toggle: () => void }>({ + transactionActive: false, + toggle: () => undefined, +}); + +export function TransactionContextProvider({ children }: PropsWithChildren) { + const [transaction, setTransaction] = useState(undefined); + + return ( + { + if (transaction) { + transaction.finish(); + setTransaction(undefined); + } else { + const t = startTransaction({ name: 'Manual Transaction' }); + getCurrentHub().getScope()?.setSpan(t); + setTransaction(t); + } + }, + }} + > + {children} + + ); +} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/globals.d.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/globals.d.ts similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/globals.d.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/globals.d.ts diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/next-env.d.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/next-env.d.ts similarity index 75% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/next-env.d.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/next-env.d.ts index 7aa8e8ef74e1..fd36f9494e2c 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/next-env.d.ts +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -/// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/next.config.js b/packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/next.config.js rename to packages/e2e-tests/test-applications/nextjs-app-dir/next.config.js diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/package.json b/packages/e2e-tests/test-applications/nextjs-app-dir/package.json similarity index 96% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/package.json rename to packages/e2e-tests/test-applications/nextjs-app-dir/package.json index 8ed25dbf0b8c..7459a5d03b12 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/package.json +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/package.json @@ -16,7 +16,7 @@ "@types/node": "18.11.17", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", - "next": "13.2.1", + "next": "13.2.3", "react": "18.2.0", "react-dom": "18.2.0", "typescript": "4.9.4" diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/edge-endpoint.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/edge-endpoint.ts new file mode 100644 index 000000000000..d8af89f2e9d5 --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/edge-endpoint.ts @@ -0,0 +1,3 @@ +export const config = { runtime: 'edge' }; + +export default () => new Response('Hello world!'); diff --git a/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/endpoint.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/endpoint.ts new file mode 100644 index 000000000000..2ca75a33ba7e --- /dev/null +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/pages/api/endpoint.ts @@ -0,0 +1,9 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; + +type Data = { + name: string; +}; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({ name: 'John Doe' }); +} diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/playwright.config.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts similarity index 97% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/playwright.config.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts index 4e7a3cbd804d..ae466dab4350 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/playwright.config.ts +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts @@ -27,8 +27,6 @@ const config: PlaywrightTestConfig = { forbidOnly: !!process.env.CI, /* `next dev` is incredibly buggy with the app dir */ retries: testEnv === 'development' ? 3 : 0, - /* Opt out of parallel tests on CI. */ - workers: 1, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ reporter: 'list', /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.client.config.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/sentry.client.config.ts similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.client.config.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/sentry.client.config.ts diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.edge.config.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.edge.config.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/sentry.edge.config.ts diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.server.config.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/sentry.server.config.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/sentry.server.config.ts diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/start-event-proxy.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.ts similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/start-event-proxy.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/start-event-proxy.ts diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/test-recipe.json b/packages/e2e-tests/test-applications/nextjs-app-dir/test-recipe.json similarity index 85% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/test-recipe.json rename to packages/e2e-tests/test-applications/nextjs-app-dir/test-recipe.json index d1fc9eafa240..097eee9daaf3 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/test-recipe.json +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/test-recipe.json @@ -17,6 +17,11 @@ "dependencyOverrides": { "next": "latest" } + }, + { + "dependencyOverrides": { + "next": "canary" + } } ] } diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/devErrorSymbolification.test.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/devErrorSymbolification.test.ts similarity index 57% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/devErrorSymbolification.test.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/tests/devErrorSymbolification.test.ts index 25e2b9d19067..654b9b0945b1 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/devErrorSymbolification.test.ts +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/devErrorSymbolification.test.ts @@ -8,28 +8,28 @@ test.describe('dev mode error symbolification', () => { } test('should have symbolicated dev errors', async ({ page }) => { - await page.goto('/client-component'); + await page.goto('/'); const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === 'client-component-button-click-error'; + return errorEvent?.exception?.values?.[0]?.value === 'Click Error'; }); - await page.locator('id=exception-button').click(); + await page.getByText('Throw error').click(); const errorEvent = await errorEventPromise; const errorEventFrames = errorEvent.exception?.values?.[0]?.stacktrace?.frames; expect(errorEventFrames?.[errorEventFrames?.length - 1]).toEqual( expect.objectContaining({ - filename: 'app/client-component/page.tsx', - abs_path: 'webpack-internal:///(app-client)/./app/client-component/page.tsx', + filename: 'components/client-error-debug-tools.tsx', + abs_path: 'webpack-internal:///(app-client)/./components/client-error-debug-tools.tsx', function: 'onClick', in_app: true, - lineno: 10, + lineno: 32, colno: 16, - pre_context: [' id="exception-button"', ' onClick={() => {'], - context_line: " throw new Error('client-component-button-click-error');", - post_context: [' }}', ' >', ' throw'], + post_context: [' }}', ' >', ' Throw error'], + context_line: " throw new Error('Click Error');", + pre_context: [' {'], }), ); }); diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/exceptions.test.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts similarity index 88% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/exceptions.test.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts index d1b88470fd37..ea96490b79ce 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/exceptions.test.ts +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts @@ -11,11 +11,10 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await page.goto('/'); const errorEventPromise = waitForError('nextjs-13-app-dir', errorEvent => { - return errorEvent?.exception?.values?.[0]?.value === 'I am a click error!'; + return errorEvent?.exception?.values?.[0]?.value === 'Click Error'; }); - const exceptionButton = page.locator('id=exception-button'); - await exceptionButton.click(); + await page.getByText('Throw error').click(); const errorEvent = await errorEventPromise; const exceptionEventId = errorEvent.event_id; diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/transactions.test.ts b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts similarity index 96% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/transactions.test.ts rename to packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts index 2b166954074c..5ef4e6f28b5f 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tests/transactions.test.ts +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts @@ -52,11 +52,11 @@ if (process.env.TEST_ENV === 'production') { const serverComponentTransactionPromise = waitForTransaction('nextjs-13-app-dir', transactionEvent => { return ( transactionEvent?.contexts?.trace?.op === 'function.nextjs' && - transactionEvent?.transaction === 'Page Server Component (/user/[id])' + transactionEvent?.transaction === 'Page Server Component (/server-component/parameter/[...parameters])' ); }); - await page.goto('/user/4'); + await page.goto('/server-component/parameter/1337/42'); const transactionEvent = await serverComponentTransactionPromise; const transactionEventId = transactionEvent.event_id; diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/tsconfig.json b/packages/e2e-tests/test-applications/nextjs-app-dir/tsconfig.json similarity index 100% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/tsconfig.json rename to packages/e2e-tests/test-applications/nextjs-app-dir/tsconfig.json diff --git a/packages/e2e-tests/test-applications/nextjs-13-app-dir/yarn.lock b/packages/e2e-tests/test-applications/nextjs-app-dir/yarn.lock similarity index 72% rename from packages/e2e-tests/test-applications/nextjs-13-app-dir/yarn.lock rename to packages/e2e-tests/test-applications/nextjs-app-dir/yarn.lock index 14727ded24f5..6a36d48f01f4 100644 --- a/packages/e2e-tests/test-applications/nextjs-13-app-dir/yarn.lock +++ b/packages/e2e-tests/test-applications/nextjs-app-dir/yarn.lock @@ -27,88 +27,88 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@next/env@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.1.tgz#082d42cfc0c794e9185d7b4133d71440ba2e795d" - integrity sha512-Hq+6QZ6kgmloCg8Kgrix+4F0HtvLqVK3FZAnlAoS0eonaDemHe1Km4kwjSWRE3JNpJNcKxFHF+jsZrYo0SxWoQ== +"@next/env@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.3.tgz#77ca49edb3c1d7c5263bb8f2ebe686080e98279e" + integrity sha512-FN50r/E+b8wuqyRjmGaqvqNDuWBWYWQiigfZ50KnSFH0f+AMQQyaZl+Zm2+CIpKk0fL9QxhLxOpTVA3xFHgFow== "@next/font@13.0.7": version "13.0.7" resolved "https://registry.yarnpkg.com/@next/font/-/font-13.0.7.tgz#e0046376edb0ce592d9cfddea8f4ab321eb1515a" integrity sha512-39SzuoMI6jbrIzPs3KtXdKX03OrVp6Y7kRHcoVmOg69spiBzruPJ5x5DQSfN+OXqznbvVBNZBXnmdnSqs3qXiA== -"@next/swc-android-arm-eabi@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.1.tgz#67f2580fbbe05ee006220688972c5e3a555fc741" - integrity sha512-Yua7mUpEd1wzIT6Jjl3dpRizIfGp9NR4F2xeRuQv+ae+SDI1Em2WyM9m46UL+oeW5GpMiEHoaBagr47RScZFmQ== - -"@next/swc-android-arm64@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.1.tgz#460a02b69eb23bb5f402266bcea9cadae59415c1" - integrity sha512-Bifcr2f6VwInOdq1uH/9lp8fH7Nf7XGkIx4XceVd32LPJqG2c6FZU8ZRBvTdhxzXVpt5TPtuXhOP4Ij9UPqsVw== - -"@next/swc-darwin-arm64@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.1.tgz#8b8530ff417802027471aee2419f78a58a863ccb" - integrity sha512-gvqm+fGMYxAkwBapH0Vvng5yrb6HTkIvZfY4oEdwwYrwuLdkjqnJygCMgpNqIFmAHSXgtlWxfYv1VC8sjN81Kw== - -"@next/swc-darwin-x64@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.1.tgz#80aebb3329a1e4568a28de1ee177780b3d50330c" - integrity sha512-HGqVqmaZWj6zomqOZUVbO5NhlABL0iIaxTmd0O5B0MoMa5zpDGoaHSG+fxgcWMXcGcxmUNchv1NfNOYiTKoHOg== - -"@next/swc-freebsd-x64@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.1.tgz#250ea2ab7e1734f22d11c677c463fab9ac33a516" - integrity sha512-N/a4JarAq+E+g+9K2ywJUmDIgU2xs2nA+BBldH0oq4zYJMRiUhL0iaN9G4e72VmGOJ61L/3W6VN8RIUOwTLoqQ== - -"@next/swc-linux-arm-gnueabihf@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.1.tgz#fe6bb29ed348a5f8ecae3740df22a8d8130c474a" - integrity sha512-WaFoerF/eRbhbE57TaIGJXbQAERADZ/RZ45u6qox9beb5xnWsyYgzX+WuN7Tkhyvga0/aMuVYFzS9CEay7D+bw== - -"@next/swc-linux-arm64-gnu@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.1.tgz#4781b927fc5e421f3cea2b29e5d38e5e4837b198" - integrity sha512-R+Jhc1/RJTnncE9fkePboHDNOCm1WJ8daanWbjKhfPySMyeniKYRwGn5SLYW3S8YlRS0QVdZaaszDSZWgUcsmA== - -"@next/swc-linux-arm64-musl@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.1.tgz#c2ba0a121b0255ba62450916bc70e6d0e26cbc98" - integrity sha512-oI1UfZPidGAVddlL2eOTmfsuKV9EaT1aktIzVIxIAgxzQSdwsV371gU3G55ggkurzfdlgF3GThFePDWF0d8dmw== - -"@next/swc-linux-x64-gnu@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.1.tgz#573c220f8b087e5d131d1fba58d3e1a670b220ad" - integrity sha512-PCygPwrQmS+7WUuAWWioWMZCzZm4PG91lfRxToLDg7yIm/3YfAw5N2EK2TaM9pzlWdvHQAqRMX/oLvv027xUiA== - -"@next/swc-linux-x64-musl@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.1.tgz#950b5bb920b322ca7b447efbd12a9c7a10c3a642" - integrity sha512-sUAKxo7CFZYGHNxheGh9nIBElLYBM6md/liEGfOTwh/xna4/GTTcmkGWkF7PdnvaYNgcPIQgHIMYiAa6yBKAVw== - -"@next/swc-win32-arm64-msvc@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.1.tgz#dbff3c4f5a3812a7059dac05804148a0f98682db" - integrity sha512-qDmyEjDBpl/vBXxuOOKKWmPQOcARcZIMach1s7kjzaien0SySut/PHRlj56sosa81Wt4hTGhfhZ1R7g1n7+B8w== - -"@next/swc-win32-ia32-msvc@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.1.tgz#7d2c17be7b8d9963984f5c15cc2588127101f620" - integrity sha512-2joqFQ81ZYPg6DcikIzQn3DgjKglNhPAozx6dL5sCNkr1CPMD0YIkJgT3CnYyMHQ04Qi3Npv0XX3MD6LJO8OCA== - -"@next/swc-win32-x64-msvc@13.2.1": - version "13.2.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.1.tgz#09713c6a925461f414e89422851326d1625bd4d2" - integrity sha512-r3+0fSaIZT6N237iMzwUhfNwjhAFvXjqB+4iuW+wcpxW+LHm1g/IoxN8eSRcb8jPItC86JxjAxpke0QL97qd6g== +"@next/swc-android-arm-eabi@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.3.tgz#85eed560c87c7996558c868a117be9780778f192" + integrity sha512-mykdVaAXX/gm+eFO2kPeVjnOCKwanJ9mV2U0lsUGLrEdMUifPUjiXKc6qFAIs08PvmTMOLMNnUxqhGsJlWGKSw== + +"@next/swc-android-arm64@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.3.tgz#8ac54ca9795a48afc4631b4823a4864bd5db0129" + integrity sha512-8XwHPpA12gdIFtope+n9xCtJZM3U4gH4vVTpUwJ2w1kfxFmCpwQ4xmeGSkR67uOg80yRMuF0h9V1ueo05sws5w== + +"@next/swc-darwin-arm64@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.3.tgz#f674e3c65aec505b6d218a662ade3fe248ccdbda" + integrity sha512-TXOubiFdLpMfMtaRu1K5d1I9ipKbW5iS2BNbu8zJhoqrhk3Kp7aRKTxqFfWrbliAHhWVE/3fQZUYZOWSXVQi1w== + +"@next/swc-darwin-x64@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.3.tgz#a15ea7fb4c46034a8f5e387906d0cad08387075a" + integrity sha512-GZctkN6bJbpjlFiS5pylgB2pifHvgkqLAPumJzxnxkf7kqNm6rOGuNjsROvOWVWXmKhrzQkREO/WPS2aWsr/yw== + +"@next/swc-freebsd-x64@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.3.tgz#f7ac6ae4f7d706ff2431f33e40230a554c8c2cbc" + integrity sha512-rK6GpmMt/mU6MPuav0/M7hJ/3t8HbKPCELw/Uqhi4732xoq2hJ2zbo2FkYs56y6w0KiXrIp4IOwNB9K8L/q62g== + +"@next/swc-linux-arm-gnueabihf@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.3.tgz#84ad9e9679d55542a23b590ad9f2e1e9b2df62f7" + integrity sha512-yeiCp/Odt1UJ4KUE89XkeaaboIDiVFqKP4esvoLKGJ0fcqJXMofj4ad3tuQxAMs3F+qqrz9MclqhAHkex1aPZA== + +"@next/swc-linux-arm64-gnu@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.3.tgz#56f9175bc632d647c60b9e8bedc0875edf92d8b7" + integrity sha512-/miIopDOUsuNlvjBjTipvoyjjaxgkOuvlz+cIbbPcm1eFvzX2ltSfgMgty15GuOiR8Hub4FeTSiq3g2dmCkzGA== + +"@next/swc-linux-arm64-musl@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.3.tgz#7d4cf00e8f1729a3de464da0624773f5d0d14888" + integrity sha512-sujxFDhMMDjqhruup8LLGV/y+nCPi6nm5DlFoThMJFvaaKr/imhkXuk8uCTq4YJDbtRxnjydFv2y8laBSJVC2g== + +"@next/swc-linux-x64-gnu@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.3.tgz#17de404910c4ebf7a1d366b19334d7e27e126ab0" + integrity sha512-w5MyxPknVvC9LVnMenAYMXMx4KxPwXuJRMQFvY71uXg68n7cvcas85U5zkdrbmuZ+JvsO5SIG8k36/6X3nUhmQ== + +"@next/swc-linux-x64-musl@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.3.tgz#07cb7b7f3a3a98034e2533f82638a9b099ba4ab1" + integrity sha512-CTeelh8OzSOVqpzMFMFnVRJIFAFQoTsI9RmVJWW/92S4xfECGcOzgsX37CZ8K982WHRzKU7exeh7vYdG/Eh4CA== + +"@next/swc-win32-arm64-msvc@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.3.tgz#b9ac98c954c71ec9de45d3497a8585096b873152" + integrity sha512-7N1KBQP5mo4xf52cFCHgMjzbc9jizIlkTepe9tMa2WFvEIlKDfdt38QYcr9mbtny17yuaIw02FXOVEytGzqdOQ== + +"@next/swc-win32-ia32-msvc@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.3.tgz#5ec48653a48fd664e940c69c96bba698fdae92eb" + integrity sha512-LzWD5pTSipUXTEMRjtxES/NBYktuZdo7xExJqGDMnZU8WOI+v9mQzsmQgZS/q02eIv78JOCSemqVVKZBGCgUvA== + +"@next/swc-win32-x64-msvc@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.3.tgz#cd432f280beb8d8de5b7cd2501e9f502e9f3dd72" + integrity sha512-aLG2MaFs4y7IwaMTosz2r4mVbqRyCnMoFqOcmfTi7/mAS+G4IMH0vJp4oLdbshqiVoiVuKrAfqtXj55/m7Qu1Q== "@playwright/test@^1.27.1": - version "1.31.1" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.31.1.tgz#39d6873dc46af135f12451d79707db7d1357455d" - integrity sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA== + version "1.31.2" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.31.2.tgz#426d8545143a97a6fed250a2a27aa1c8e5e2548e" + integrity sha512-BYVutxDI4JeZKV1+ups6dt5WiqKhjBtIYowyZIJ3kBDmJgsuPKsqqKNIMFbUePLSCmp2cZu+BDL427RcNKTRYw== dependencies: "@types/node" "*" - playwright-core "1.31.1" + playwright-core "1.31.2" optionalDependencies: fsevents "2.3.2" @@ -140,9 +140,9 @@ integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/node@*": - version "18.14.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.1.tgz#90dad8476f1e42797c49d6f8b69aaf9f876fc69f" - integrity sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ== + version "18.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== "@types/node@18.11.17": version "18.11.17" @@ -200,9 +200,9 @@ arg@^4.1.0: integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== caniuse-lite@^1.0.30001406: - version "1.0.30001457" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001457.tgz#6af34bb5d720074e2099432aa522c21555a18301" - integrity sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA== + version "1.0.30001460" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7" + integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ== client-only@0.0.1: version "0.0.1" @@ -251,40 +251,40 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -next@13.2.1: - version "13.2.1" - resolved "https://registry.yarnpkg.com/next/-/next-13.2.1.tgz#34d823f518632b36379863228ed9f861c335b9c0" - integrity sha512-qhgJlDtG0xidNViJUPeQHLGJJoT4zDj/El7fP3D3OzpxJDUfxsm16cK4WTMyvSX1ciIfAq05u+0HqFAa+VJ+Hg== +next@13.2.3: + version "13.2.3" + resolved "https://registry.yarnpkg.com/next/-/next-13.2.3.tgz#92d170e7aca421321f230ff80c35c4751035f42e" + integrity sha512-nKFJC6upCPN7DWRx4+0S/1PIOT7vNlCT157w9AzbXEgKy6zkiPKEt5YyRUsRZkmpEqBVrGgOqNfwecTociyg+w== dependencies: - "@next/env" "13.2.1" + "@next/env" "13.2.3" "@swc/helpers" "0.4.14" caniuse-lite "^1.0.30001406" postcss "8.4.14" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-android-arm-eabi" "13.2.1" - "@next/swc-android-arm64" "13.2.1" - "@next/swc-darwin-arm64" "13.2.1" - "@next/swc-darwin-x64" "13.2.1" - "@next/swc-freebsd-x64" "13.2.1" - "@next/swc-linux-arm-gnueabihf" "13.2.1" - "@next/swc-linux-arm64-gnu" "13.2.1" - "@next/swc-linux-arm64-musl" "13.2.1" - "@next/swc-linux-x64-gnu" "13.2.1" - "@next/swc-linux-x64-musl" "13.2.1" - "@next/swc-win32-arm64-msvc" "13.2.1" - "@next/swc-win32-ia32-msvc" "13.2.1" - "@next/swc-win32-x64-msvc" "13.2.1" + "@next/swc-android-arm-eabi" "13.2.3" + "@next/swc-android-arm64" "13.2.3" + "@next/swc-darwin-arm64" "13.2.3" + "@next/swc-darwin-x64" "13.2.3" + "@next/swc-freebsd-x64" "13.2.3" + "@next/swc-linux-arm-gnueabihf" "13.2.3" + "@next/swc-linux-arm64-gnu" "13.2.3" + "@next/swc-linux-arm64-musl" "13.2.3" + "@next/swc-linux-x64-gnu" "13.2.3" + "@next/swc-linux-x64-musl" "13.2.3" + "@next/swc-win32-arm64-msvc" "13.2.3" + "@next/swc-win32-ia32-msvc" "13.2.3" + "@next/swc-win32-x64-msvc" "13.2.3" picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -playwright-core@1.31.1: - version "1.31.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.31.1.tgz#4deeebbb8fb73b512593fe24bea206d8fd85ff7f" - integrity sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ== +playwright-core@1.31.2: + version "1.31.2" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.31.2.tgz#debf4b215d14cb619adb7e511c164d068075b2ed" + integrity sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ== postcss@8.4.14: version "8.4.14"