diff --git a/apps/web/app/global-error.tsx b/apps/web/app/global-error.tsx
new file mode 100644
index 000000000..0d4906ba1
--- /dev/null
+++ b/apps/web/app/global-error.tsx
@@ -0,0 +1,68 @@
+'use client';
+
+import { ArrowLeft } from 'lucide-react';
+
+import { useCaptureException } from '@kit/monitoring/hooks';
+import { Button } from '@kit/ui/button';
+import { Heading } from '@kit/ui/heading';
+import { Trans } from '@kit/ui/trans';
+
+import { SiteHeader } from '~/(marketing)/_components/site-header';
+
+const GlobalErrorPage = ({
+ error,
+ reset,
+}: {
+ error: Error & { digest?: string };
+ reset: () => void;
+}) => {
+ useCaptureException(error);
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default GlobalErrorPage;
diff --git a/package.json b/package.json
index 67bbbaf5d..a90aa13ff 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"@manypkg/cli": "^0.21.4",
"@turbo/gen": "^1.13.3",
"cross-env": "^7.0.3",
- "pnpm": "^9.1.0",
+ "pnpm": "^9.1.1",
"prettier": "^3.2.5",
"turbo": "^1.13.3",
"typescript": "^5.4.5",
diff --git a/packages/billing/gateway/src/components/pricing-table.tsx b/packages/billing/gateway/src/components/pricing-table.tsx
index f2d76bbe3..3799626c1 100644
--- a/packages/billing/gateway/src/components/pricing-table.tsx
+++ b/packages/billing/gateway/src/components/pricing-table.tsx
@@ -426,20 +426,18 @@ function DefaultCheckoutButton(
highlighted?: boolean;
}>,
) {
- const redirectToCheckoutParam = props.redirectToCheckout
- ? '?redirectToCheckout=true'
- : '';
-
const { t } = useTranslation('billing');
- const planId = props.plan.id;
const signUpPath = props.paths.signUp;
- const subscriptionPath = props.paths.subscription;
+
+ const searchParams = new URLSearchParams({
+ next: props.paths.subscription,
+ plan: props.plan.id,
+ redirectToCheckout: props.redirectToCheckout ? 'true' : 'false',
+ });
const linkHref =
- props.plan.href ??
- `${signUpPath}?plan=${planId}&next=${subscriptionPath}?plan=${planId}${redirectToCheckoutParam}` ??
- '';
+ props.plan.href ?? `${signUpPath}?${searchParams.toString()}` ?? '';
const label = props.plan.buttonLabel ?? 'common:getStartedWithPlan';
diff --git a/packages/monitoring/sentry/package.json b/packages/monitoring/sentry/package.json
index 5025c5fd2..63526bb11 100644
--- a/packages/monitoring/sentry/package.json
+++ b/packages/monitoring/sentry/package.json
@@ -16,7 +16,7 @@
"./instrumentation": "./src/instrumentation.ts",
"./config/client": "./src/config/sentry.client.config.ts",
"./config/server": "./src/config/sentry.server.config.ts",
- "./config/edge": "./src/config/sentry.server.edge.ts"
+ "./config/edge": "./src/config/sentry.edge.config.ts"
},
"dependencies": {
"@opentelemetry/resources": "1.24.1",
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 29707b015..70684645d 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -22,7 +22,7 @@
"@tanstack/react-table": "^8.17.0"
},
"dependencies": {
- "pino": "^9.0.0"
+ "pino": "^9.1.0"
},
"eslintConfig": {
"root": true,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 88791e5be..eba30c56a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -22,8 +22,8 @@ importers:
specifier: ^7.0.3
version: 7.0.3
pnpm:
- specifier: ^9.1.0
- version: 9.1.0
+ specifier: ^9.1.1
+ version: 9.1.1
prettier:
specifier: ^3.2.5
version: 3.2.5
@@ -1113,8 +1113,8 @@ importers:
packages/shared:
dependencies:
pino:
- specifier: ^9.0.0
- version: 9.0.0
+ specifier: ^9.1.0
+ version: 9.1.0
devDependencies:
'@kit/eslint-config':
specifier: workspace:*
@@ -6042,11 +6042,11 @@ packages:
pino-abstract-transport@1.2.0:
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
- pino-std-serializers@6.2.2:
- resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
+ pino-std-serializers@7.0.0:
+ resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
- pino@9.0.0:
- resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==}
+ pino@9.1.0:
+ resolution: {integrity: sha512-qUcgfrlyOtjwhNLdbhoL7NR4NkHjzykAPw0V2QLFbvu/zss29h4NkRnibyFzBrNCbzCOY3WZ9hhKSwfOkNggYA==}
hasBin: true
pirates@4.0.6:
@@ -6063,8 +6063,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- pnpm@9.1.0:
- resolution: {integrity: sha512-Z/WHmRapKT5c8FnCOFPVcb6vT3U8cH9AyyK+1fsVeMaq07bEEHzLO6CzW+AD62IaFkcayDbIe+tT+dVLtGEnJA==}
+ pnpm@9.1.1:
+ resolution: {integrity: sha512-FOkVdZwR936sB/q6TQGcGT7IY3Ip5i7Jnu+3zzw7dcZER4grfEhRQkUe46a0CAWc37e3+gNBuXXxLQ92KccRlQ==}
engines: {node: '>=18.12'}
hasBin: true
@@ -6613,8 +6613,8 @@ packages:
resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==}
engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
- sonic-boom@3.8.1:
- resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
+ sonic-boom@4.0.1:
+ resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==}
sonner@1.4.41:
resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==}
@@ -6783,8 +6783,8 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
- thread-stream@2.7.0:
- resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
+ thread-stream@3.0.0:
+ resolution: {integrity: sha512-oUIFjxaUT6knhPtWgDMc29zF1FcSl0yXpapkyrQrCGEfYA2HUZXCilUtKyYIv6HkCyqSPAMkY+EG0GbyIrNDQg==}
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
@@ -13249,21 +13249,21 @@ snapshots:
readable-stream: 4.5.2
split2: 4.2.0
- pino-std-serializers@6.2.2: {}
+ pino-std-serializers@7.0.0: {}
- pino@9.0.0:
+ pino@9.1.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.5.0
on-exit-leak-free: 2.1.2
pino-abstract-transport: 1.2.0
- pino-std-serializers: 6.2.2
+ pino-std-serializers: 7.0.0
process-warning: 3.0.0
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.4.3
- sonic-boom: 3.8.1
- thread-stream: 2.7.0
+ sonic-boom: 4.0.1
+ thread-stream: 3.0.0
pirates@4.0.6: {}
@@ -13275,7 +13275,7 @@ snapshots:
optionalDependencies:
fsevents: 2.3.2
- pnpm@9.1.0: {}
+ pnpm@9.1.1: {}
possible-typed-array-names@1.0.0: {}
@@ -13843,7 +13843,7 @@ snapshots:
ip-address: 9.0.5
smart-buffer: 4.2.0
- sonic-boom@3.8.1:
+ sonic-boom@4.0.1:
dependencies:
atomic-sleep: 1.0.0
@@ -14077,7 +14077,7 @@ snapshots:
dependencies:
any-promise: 1.3.0
- thread-stream@2.7.0:
+ thread-stream@3.0.0:
dependencies:
real-require: 0.2.0