diff --git a/.npmrc b/.npmrc
index d00517574..1056efa53 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,4 +1,3 @@
-shamefully-hoist=true
peer-legacy-deps=true
dedupe-peer-dependencies=true
use-lockfile-v6=true
\ No newline at end of file
diff --git a/apps/web/app/auth/password-reset/page.tsx b/apps/web/app/auth/password-reset/page.tsx
index 7be4b0e66..b6d73f2f2 100644
--- a/apps/web/app/auth/password-reset/page.tsx
+++ b/apps/web/app/auth/password-reset/page.tsx
@@ -10,10 +10,10 @@ import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
import { withI18n } from '~/lib/i18n/with-i18n';
export const generateMetadata = async () => {
- const i18n = await createI18nServerInstance();
+ const { t } = await createI18nServerInstance();
return {
- title: i18n.t('auth:passwordResetLabel'),
+ title: t('auth:passwordResetLabel'),
};
};
diff --git a/apps/web/config/auth.config.ts b/apps/web/config/auth.config.ts
index 62a9961b3..0dad2f224 100644
--- a/apps/web/config/auth.config.ts
+++ b/apps/web/config/auth.config.ts
@@ -1,4 +1,4 @@
-import type { Provider } from '@supabase/gotrue-js';
+import type { Provider } from '@supabase/supabase-js';
import { z } from 'zod';
diff --git a/apps/web/package.json b/apps/web/package.json
index 487ebcc44..fb4d18857 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -38,26 +38,25 @@
"@makerkit/data-loader-supabase-nextjs": "^0.0.9",
"@marsidev/react-turnstile": "^0.5.4",
"@radix-ui/react-icons": "^1.3.0",
- "@supabase/ssr": "^0.1.0",
+ "@supabase/ssr": "^0.3.0",
"@supabase/supabase-js": "^2.42.0",
"@tanstack/react-query": "5.28.6",
- "@tanstack/react-query-next-experimental": "^5.28.14",
+ "@tanstack/react-query-next-experimental": "^5.29.0",
"@tanstack/react-table": "^8.15.3",
"date-fns": "^3.6.0",
"edge-csrf": "^1.0.9",
- "i18next": "^23.10.1",
+ "i18next": "^23.11.0",
"i18next-resources-to-backend": "^1.2.0",
"lucide-react": "^0.363.0",
- "next": "14.2.0-canary.62",
+ "next": "14.2.0-canary.63",
"next-sitemap": "^4.2.3",
"next-themes": "0.3.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "^7.51.2",
"react-i18next": "^14.1.0",
- "recharts": "^2.12.3",
+ "recharts": "^2.12.4",
"sonner": "^1.4.41",
- "tailwindcss-animate": "^1.0.7",
"zod": "^3.22.4"
},
"devDependencies": {
@@ -68,7 +67,7 @@
"@next/bundle-analyzer": "14.2.0-canary.54",
"@types/mdx": "^2.0.12",
"@types/node": "^20.12.3",
- "@types/react": "^18.2.73",
+ "@types/react": "^18.2.75",
"@types/react-dom": "^18.2.22",
"autoprefixer": "^10.4.19",
"dotenv-cli": "^7.4.1",
diff --git a/apps/web/public/locales/en/admin.json b/apps/web/public/locales/en/admin.json
deleted file mode 100644
index 0967ef424..000000000
--- a/apps/web/public/locales/en/admin.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/package.json b/package.json
index 58b928122..317f629e6 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,7 @@
"pnpm": "^8.15.6",
"prettier": "^3.2.5",
"turbo": "^1.13.2",
+ "typescript": "^5.4.3",
"yarn": "^1.22.22"
}
}
diff --git a/packages/billing/gateway/package.json b/packages/billing/gateway/package.json
index 3ca1ae7a7..a29671f63 100644
--- a/packages/billing/gateway/package.json
+++ b/packages/billing/gateway/package.json
@@ -21,7 +21,12 @@
"@kit/supabase": "^0.1.0",
"@kit/ui": "0.1.0",
"@supabase/supabase-js": "^2.42.0",
+ "date-fns": "^3.6.0",
"lucide-react": "^0.363.0",
+ "next": "^14.1.4",
+ "react": "^18.2.0",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
"zod": "^3.22.4"
},
"devDependencies": {
@@ -37,7 +42,13 @@
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:^",
"@supabase/supabase-js": "^2.42.0",
+ "@types/react": "^18.2.75",
+ "date-fns": "^3.6.0",
"lucide-react": "^0.363.0",
+ "next": "14.2.0-canary.63",
+ "react": "18.2.0",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
"zod": "^3.22.4"
},
"eslintConfig": {
diff --git a/packages/billing/lemon-squeezy/package.json b/packages/billing/lemon-squeezy/package.json
index 596a263e9..2ef15c261 100644
--- a/packages/billing/lemon-squeezy/package.json
+++ b/packages/billing/lemon-squeezy/package.json
@@ -17,7 +17,9 @@
"@kit/billing": "0.1.0",
"@kit/shared": "0.1.0",
"@kit/supabase": "0.1.0",
- "@kit/ui": "0.1.0"
+ "@kit/ui": "0.1.0",
+ "react": "^18.2.0",
+ "zod": "^3.22.4"
},
"dependencies": {
"@lemonsqueezy/lemonsqueezy.js": "2.2.0"
@@ -30,7 +32,10 @@
"@kit/supabase": "workspace:^",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "@kit/ui": "workspace:^"
+ "@kit/ui": "workspace:^",
+ "@types/react": "^18.2.75",
+ "react": "18.2.0",
+ "zod": "^3.22.4"
},
"eslintConfig": {
"root": true,
diff --git a/packages/billing/stripe/package.json b/packages/billing/stripe/package.json
index ff6d1c4a2..611775c7e 100644
--- a/packages/billing/stripe/package.json
+++ b/packages/billing/stripe/package.json
@@ -18,7 +18,10 @@
"@kit/billing": "0.1.0",
"@kit/shared": "0.1.0",
"@kit/supabase": "0.1.0",
- "@kit/ui": "0.1.0"
+ "@kit/ui": "0.1.0",
+ "date-fns": "^3.6.0",
+ "react": "^18.2.0",
+ "zod": "^3.22.4"
},
"dependencies": {
"@stripe/react-stripe-js": "^2.6.2",
@@ -33,7 +36,11 @@
"@kit/supabase": "workspace:^",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "@kit/ui": "workspace:^"
+ "@kit/ui": "workspace:^",
+ "@types/react": "^18.2.75",
+ "date-fns": "^3.6.0",
+ "react": "18.2.0",
+ "zod": "^3.22.4"
},
"eslintConfig": {
"root": true,
diff --git a/packages/cms/contentlayer/package.json b/packages/cms/contentlayer/package.json
index edfeb0385..f7209d68a 100644
--- a/packages/cms/contentlayer/package.json
+++ b/packages/cms/contentlayer/package.json
@@ -28,7 +28,8 @@
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "@kit/ui": "*"
+ "@kit/ui": "*",
+ "mdx": "0.3.1"
},
"eslintConfig": {
"root": true,
diff --git a/packages/cms/contentlayer/src/mdx-renderer.tsx b/packages/cms/contentlayer/src/mdx-renderer.tsx
index 156b5318f..c266308e7 100644
--- a/packages/cms/contentlayer/src/mdx-renderer.tsx
+++ b/packages/cms/contentlayer/src/mdx-renderer.tsx
@@ -1,16 +1,7 @@
-import type { MDXComponents as MDXComponentsType } from 'mdx/types';
import { getMDXComponent } from 'next-contentlayer/hooks';
-import { MDXComponents } from '@kit/ui/mdx-components';
-
-export function Mdx({
- code,
-}: React.PropsWithChildren<{
- code: string;
-}>) {
+export function Mdx({ code }: { code: string }) {
const Component = getMDXComponent(code);
- return (
-
- );
+ return ;
}
diff --git a/packages/features/accounts/package.json b/packages/features/accounts/package.json
index d9536dd7a..44f374cbb 100644
--- a/packages/features/accounts/package.json
+++ b/packages/features/accounts/package.json
@@ -14,34 +14,56 @@
"./personal-account-settings": "./src/components/personal-account-settings/index.ts",
"./hooks/*": "./src/hooks/*.ts"
},
+ "dependencies": {
+ "nanoid": "^5.0.7"
+ },
"devDependencies": {
"@hookform/resolvers": "^3.3.4",
- "@kit/billing-gateway": "workspace:^",
- "@kit/email-templates": "workspace:^",
+ "@kit/billing-gateway": "*",
+ "@kit/email-templates": "*",
"@kit/eslint-config": "workspace:*",
- "@kit/mailers": "workspace:^",
+ "@kit/mailers": "*",
"@kit/prettier-config": "workspace:*",
- "@kit/shared": "workspace:^",
- "@kit/supabase": "workspace:^",
+ "@kit/shared": "*",
+ "@kit/supabase": "*",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "@kit/ui": "workspace:^",
+ "@kit/ui": "*",
"@radix-ui/react-icons": "^1.3.0",
+ "@supabase/supabase-js": "^2.42.0",
"@tanstack/react-query": "5.28.6",
+ "@types/react": "^18.2.75",
+ "@types/react-dom": "^18.2.22",
"lucide-react": "^0.363.0",
+ "next": "14.2.0-canary.63",
"next-themes": "0.3.0",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
"react-hook-form": "^7.51.2",
"react-i18next": "^14.1.0",
"sonner": "^1.4.41",
"zod": "^3.22.4"
},
"peerDependencies": {
+ "@hookform/resolvers": "^3.3.4",
+ "@kit/billing-gateway": "workspace:^",
+ "@kit/email-templates": "workspace:^",
+ "@kit/mailers": "workspace:^",
"@kit/shared": "0.1.0",
"@kit/supabase": "0.1.0",
- "@kit/ui": "0.1.0",
+ "@kit/ui": "workspace:^",
"@radix-ui/react-icons": "^1.3.0",
+ "@supabase/supabase-js": "^2.42.0",
+ "@tanstack/react-query": "5.28.6",
"lucide-react": "^0.363.0",
- "sonner": "^1.4.41"
+ "next": "^14.1.4",
+ "next-themes": "0.3.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
+ "sonner": "^1.4.41",
+ "zod": "^3.22.4"
},
"prettier": "@kit/prettier-config",
"eslintConfig": {
diff --git a/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx b/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx
index 665a64dc3..ceddac848 100644
--- a/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx
+++ b/packages/features/accounts/src/components/personal-account-settings/email/update-email-form.tsx
@@ -1,6 +1,6 @@
'use client';
-import type { User } from '@supabase/gotrue-js';
+import type { User } from '@supabase/supabase-js';
import { zodResolver } from '@hookform/resolvers/zod';
import { useForm } from 'react-hook-form';
diff --git a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx
index f0f82ed08..949160eed 100644
--- a/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx
+++ b/packages/features/accounts/src/components/personal-account-settings/mfa/multi-factor-auth-list.tsx
@@ -1,6 +1,6 @@
import { useCallback, useState } from 'react';
-import type { Factor } from '@supabase/gotrue-js';
+import type { Factor } from '@supabase/supabase-js';
import { ExclamationTriangleIcon } from '@radix-ui/react-icons';
import { useMutation, useQueryClient } from '@tanstack/react-query';
diff --git a/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx b/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx
index 90fdb6504..8019a3e84 100644
--- a/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx
+++ b/packages/features/accounts/src/components/personal-account-settings/password/update-password-form.tsx
@@ -2,7 +2,7 @@
import { useState } from 'react';
-import type { User } from '@supabase/gotrue-js';
+import type { User } from '@supabase/supabase-js';
import { zodResolver } from '@hookform/resolvers/zod';
import { ExclamationTriangleIcon } from '@radix-ui/react-icons';
diff --git a/packages/features/admin/package.json b/packages/features/admin/package.json
index 5b8b0b6be..358afb80e 100644
--- a/packages/features/admin/package.json
+++ b/packages/features/admin/package.json
@@ -16,7 +16,11 @@
"@kit/ui": "workspace:*",
"@makerkit/data-loader-supabase-core": "^0.0.7",
"@makerkit/data-loader-supabase-nextjs": "^0.0.9",
+ "@tanstack/react-query": "^5.29.0",
+ "@tanstack/react-table": "^8.15.3",
"lucide-react": "^0.363.0",
+ "next": "^14.1.4",
+ "react": "^18.2.0",
"react-hook-form": "^7.51.2",
"zod": "^3.22.4"
},
@@ -32,7 +36,12 @@
"@makerkit/data-loader-supabase-core": "^0.0.7",
"@makerkit/data-loader-supabase-nextjs": "^0.0.9",
"@supabase/supabase-js": "^2.42.0",
+ "@tanstack/react-query": "5.28.6",
+ "@tanstack/react-table": "^8.15.3",
+ "@types/react": "^18.2.75",
"lucide-react": "^0.363.0",
+ "next": "14.2.0-canary.63",
+ "react": "18.2.0",
"react-hook-form": "^7.51.2",
"zod": "^3.22.4"
},
diff --git a/packages/features/auth/package.json b/packages/features/auth/package.json
index 92c60df5b..abec28b66 100644
--- a/packages/features/auth/package.json
+++ b/packages/features/auth/package.json
@@ -21,14 +21,35 @@
"@hookform/resolvers": "^3.3.4",
"@kit/eslint-config": "workspace:*",
"@kit/prettier-config": "workspace:*",
- "@kit/shared": "workspace:*",
- "@kit/supabase": "workspace:*",
+ "@kit/shared": "*",
+ "@kit/supabase": "*",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
+ "@kit/ui": "*",
+ "@marsidev/react-turnstile": "^0.5.4",
+ "@radix-ui/react-icons": "^1.3.0",
+ "@supabase/supabase-js": "^2.42.0",
+ "@tanstack/react-query": "5.28.6",
+ "@types/react": "^18.2.75",
+ "lucide-react": "^0.363.0",
+ "next": "14.2.0-canary.63",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
+ "sonner": "^1.4.41",
+ "zod": "^3.22.4"
+ },
+ "peerDependencies": {
+ "@hookform/resolvers": "^3.3.4",
+ "@kit/shared": "workspace:*",
+ "@kit/supabase": "workspace:*",
"@kit/ui": "workspace:*",
"@marsidev/react-turnstile": "^0.5.4",
"@radix-ui/react-icons": "^1.3.0",
+ "@supabase/supabase-js": "^2.42.0",
"@tanstack/react-query": "5.28.6",
+ "lucide-react": "^0.363.0",
+ "next": "^14.1.4",
+ "react-hook-form": "^7.51.2",
"react-i18next": "^14.1.0",
"sonner": "^1.4.41",
"zod": "^3.22.4"
diff --git a/packages/features/team-accounts/package.json b/packages/features/team-accounts/package.json
index 10e1da4e6..f188799da 100644
--- a/packages/features/team-accounts/package.json
+++ b/packages/features/team-accounts/package.json
@@ -12,33 +12,54 @@
"./components": "./src/components/index.ts",
"./webhooks": "./src/server/services/webhooks/index.ts"
},
+ "dependencies": {
+ "nanoid": "^5.0.7"
+ },
"devDependencies": {
"@hookform/resolvers": "^3.3.4",
- "@kit/accounts": "workspace:^",
+ "@kit/accounts": "*",
"@kit/billing-gateway": "workspace:*",
- "@kit/email-templates": "workspace:^",
+ "@kit/email-templates": "*",
"@kit/eslint-config": "workspace:*",
- "@kit/mailers": "workspace:^",
+ "@kit/mailers": "*",
"@kit/prettier-config": "workspace:*",
- "@kit/shared": "workspace:^",
- "@kit/supabase": "workspace:^",
+ "@kit/shared": "*",
+ "@kit/supabase": "*",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "@kit/ui": "workspace:^",
+ "@kit/ui": "*",
"@supabase/supabase-js": "^2.42.0",
"@tanstack/react-query": "5.28.6",
+ "@tanstack/react-table": "^8.15.3",
+ "@types/react": "^18.2.75",
+ "@types/react-dom": "^18.2.22",
+ "class-variance-authority": "^0.7.0",
+ "date-fns": "^3.6.0",
"lucide-react": "^0.363.0",
- "react-i18next": "^14.1.0"
+ "next": "14.2.0-canary.63",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
+ "sonner": "^1.4.41",
+ "zod": "^3.22.4"
},
"peerDependencies": {
+ "@hookform/resolvers": "^3.3.4",
"@kit/accounts": "0.1.0",
"@kit/email-templates": "0.1.0",
"@kit/mailers": "0.1.0",
"@kit/shared": "0.1.0",
"@kit/supabase": "0.1.0",
- "@kit/ui": "0.1.0",
+ "@kit/ui": "workspace:^",
"@supabase/supabase-js": "^2.42.0",
- "lucide-react": "^0.363.0"
+ "@tanstack/react-query": "5.28.6",
+ "lucide-react": "^0.363.0",
+ "next": "^14.1.4",
+ "react": "^18.2.0",
+ "react-hook-form": "^7.51.2",
+ "react-i18next": "^14.1.0",
+ "zod": "^3.22.4"
},
"prettier": "@kit/prettier-config",
"eslintConfig": {
diff --git a/packages/i18n/package.json b/packages/i18n/package.json
index e19af3694..9b6a736c2 100644
--- a/packages/i18n/package.json
+++ b/packages/i18n/package.json
@@ -20,7 +20,7 @@
"@kit/shared": "workspace:^",
"@kit/tailwind-config": "workspace:*",
"@kit/tsconfig": "workspace:*",
- "i18next": "^23.10.1",
+ "i18next": "^23.11.0",
"i18next-browser-languagedetector": "7.2.0",
"i18next-resources-to-backend": "^1.2.0",
"react-i18next": "^14.1.0"
diff --git a/packages/i18n/src/i18n-provider.tsx b/packages/i18n/src/i18n-provider.tsx
index 881542602..ac4696088 100644
--- a/packages/i18n/src/i18n-provider.tsx
+++ b/packages/i18n/src/i18n-provider.tsx
@@ -26,16 +26,12 @@ export function I18nProvider({
async function withI18nClient(lang: string, resolver: Resolver) {
if (typeof window !== 'undefined') {
- client = await loadClientI18n(lang, resolver);
+ const { initializeI18nClient } = await import('./i18n.client');
+
+ client = await initializeI18nClient(lang, resolver);
} else {
const { initializeServerI18n } = await import('./i18n.server');
client = await initializeServerI18n(lang, resolver);
}
}
-
-async function loadClientI18n(lang: string | undefined, resolver: Resolver) {
- const { initializeI18nClient } = await import('./i18n.client');
-
- return initializeI18nClient(lang, resolver);
-}
diff --git a/packages/i18n/src/i18n.client.ts b/packages/i18n/src/i18n.client.ts
index 7cb505382..e729680c7 100644
--- a/packages/i18n/src/i18n.client.ts
+++ b/packages/i18n/src/i18n.client.ts
@@ -5,19 +5,17 @@ import { initReactI18next } from 'react-i18next';
import { I18N_COOKIE_NAME, getI18nSettings } from './i18n.settings';
-let promise: Promise;
-
export function initializeI18nClient(
lng: string | undefined,
i18nResolver: (lang: string, namespace: string) => Promise