diff --git a/apps/web/app/(dashboard)/home/(user)/_components/user-account-header.tsx b/apps/web/app/(dashboard)/home/(user)/_components/user-account-header.tsx new file mode 100644 index 000000000..de7aa5952 --- /dev/null +++ b/apps/web/app/(dashboard)/home/(user)/_components/user-account-header.tsx @@ -0,0 +1,18 @@ +import { PageHeader } from '@kit/ui/page'; + +import UserLayoutMobileNavigation from './user-layout-mobile-navigation'; + +export function UserAccountHeader( + props: React.PropsWithChildren<{ + title: string | React.ReactNode; + description?: string | React.ReactNode; + }>, +) { + return ( + } + /> + ); +} diff --git a/apps/web/app/(dashboard)/home/(user)/_components/user-layout-mobile-navigation.tsx b/apps/web/app/(dashboard)/home/(user)/_components/user-layout-mobile-navigation.tsx new file mode 100644 index 000000000..b8755c11d --- /dev/null +++ b/apps/web/app/(dashboard)/home/(user)/_components/user-layout-mobile-navigation.tsx @@ -0,0 +1,109 @@ +'use client'; + +import Link from 'next/link'; + +import { LogOut, Menu } from 'lucide-react'; + +import { useSignOut } from '@kit/supabase/hooks/use-sign-out'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@kit/ui/dropdown-menu'; +import { Trans } from '@kit/ui/trans'; + +import { personalAccountSidebarConfig } from '~/config/personal-account-sidebar.config'; + +export function UserLayoutMobileNavigation() { + const signOut = useSignOut(); + + const Links = personalAccountSidebarConfig.routes.map((item, index) => { + if ('children' in item) { + return item.children.map((child) => { + return ( + + ); + }); + } + + if ('divider' in item) { + return ; + } + + return ( + + ); + }); + + return ( + + + + + + + {Links} + + + + signOut.mutateAsync()} /> + + + ); +} + +export default UserLayoutMobileNavigation; + +function DropdownLink( + props: React.PropsWithChildren<{ + path: string; + label: string; + Icon: React.ReactNode; + }>, +) { + return ( + + + {props.Icon} + + + + + + + ); +} + +function SignOutDropdownItem( + props: React.PropsWithChildren<{ + onSignOut: () => unknown; + }>, +) { + return ( + + + + + + + + ); +} diff --git a/apps/web/app/(dashboard)/home/(user)/billing/page.tsx b/apps/web/app/(dashboard)/home/(user)/billing/page.tsx index de7bf2e28..d12f2a1c0 100644 --- a/apps/web/app/(dashboard)/home/(user)/billing/page.tsx +++ b/apps/web/app/(dashboard)/home/(user)/billing/page.tsx @@ -7,9 +7,10 @@ import { import { Database } from '@kit/supabase/database'; import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client'; import { If } from '@kit/ui/if'; -import { PageBody, PageHeader } from '@kit/ui/page'; +import { PageBody } from '@kit/ui/page'; import { Trans } from '@kit/ui/trans'; +import { UserAccountHeader } from '~/(dashboard)/home/(user)/_components/user-account-header'; import { createPersonalAccountBillingPortalSession } from '~/(dashboard)/home/(user)/billing/server-actions'; import billingConfig from '~/config/billing.config'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; @@ -34,7 +35,7 @@ async function PersonalAccountBillingPage() { return ( <> - } description={} /> diff --git a/apps/web/app/(dashboard)/home/(user)/page.tsx b/apps/web/app/(dashboard)/home/(user)/page.tsx index 2817bc55a..73cd8c7e9 100644 --- a/apps/web/app/(dashboard)/home/(user)/page.tsx +++ b/apps/web/app/(dashboard)/home/(user)/page.tsx @@ -1,6 +1,7 @@ -import { PageBody, PageHeader } from '@kit/ui/page'; +import { PageBody } from '@kit/ui/page'; import { Trans } from '@kit/ui/trans'; +import { UserAccountHeader } from '~/(dashboard)/home/(user)/_components/user-account-header'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; import { withI18n } from '~/lib/i18n/with-i18n'; @@ -16,7 +17,7 @@ export const generateMetadata = async () => { function UserHomePage() { return ( <> - } description={ - } description={'Manage your account settings'} /> - {props.children} + {props.children} ); } diff --git a/apps/web/app/(dashboard)/home/(user)/settings/page.tsx b/apps/web/app/(dashboard)/home/(user)/settings/page.tsx index 75bde0a1a..1b3ce89eb 100644 --- a/apps/web/app/(dashboard)/home/(user)/settings/page.tsx +++ b/apps/web/app/(dashboard)/home/(user)/settings/page.tsx @@ -26,11 +26,7 @@ export const generateMetadata = async () => { function PersonalAccountSettingsPage() { return ( -
+
diff --git a/apps/web/app/(dashboard)/home/[account]/_components/app-header.tsx b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-header.tsx similarity index 59% rename from apps/web/app/(dashboard)/home/[account]/_components/app-header.tsx rename to apps/web/app/(dashboard)/home/[account]/_components/account-layout-header.tsx index 35e49c8e8..bd96606b4 100644 --- a/apps/web/app/(dashboard)/home/[account]/_components/app-header.tsx +++ b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-header.tsx @@ -1,8 +1,8 @@ import { PageHeader } from '@kit/ui/page'; -import { MobileAppNavigation } from '~/(dashboard)/home/[account]/_components/mobile-app-navigation'; +import { AccountLayoutMobileNavigation } from '~/(dashboard)/home/[account]/_components/account-layout-mobile-navigation'; -export function AppHeader({ +export function AccountLayoutHeader({ children, title, description, @@ -16,7 +16,7 @@ export function AppHeader({ } + mobileNavigation={} > {children} diff --git a/apps/web/app/(dashboard)/home/[account]/_components/mobile-app-navigation.tsx b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-mobile-navigation.tsx similarity index 94% rename from apps/web/app/(dashboard)/home/[account]/_components/mobile-app-navigation.tsx rename to apps/web/app/(dashboard)/home/[account]/_components/account-layout-mobile-navigation.tsx index 6b70aa386..2b8be117d 100644 --- a/apps/web/app/(dashboard)/home/[account]/_components/mobile-app-navigation.tsx +++ b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-mobile-navigation.tsx @@ -25,21 +25,21 @@ import { Trans } from '@kit/ui/trans'; import featureFlagsConfig from '~/config/feature-flags.config'; import pathsConfig from '~/config/paths.config'; -import { getOrganizationAccountSidebarConfig } from '~/config/team-account-sidebar.config'; +import { getTeamAccountSidebarConfig } from '~/config/team-account-sidebar.config'; const features = { enableTeamAccounts: featureFlagsConfig.enableTeamAccounts, enableTeamCreation: featureFlagsConfig.enableTeamCreation, }; -export const MobileAppNavigation = ( +export const AccountLayoutMobileNavigation = ( props: React.PropsWithChildren<{ - slug: string; + account: string; }>, ) => { const signOut = useSignOut(); - const Links = getOrganizationAccountSidebarConfig(props.slug).routes.map( + const Links = getTeamAccountSidebarConfig(props.account).routes.map( (item, index) => { if ('children' in item) { return item.children.map((child) => { diff --git a/apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar-navigation.tsx b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar-navigation.tsx new file mode 100644 index 000000000..87f82beb4 --- /dev/null +++ b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar-navigation.tsx @@ -0,0 +1,59 @@ +'use client'; + +import { SidebarDivider, SidebarGroup, SidebarItem } from '@kit/ui/sidebar'; +import { Trans } from '@kit/ui/trans'; + +import { getTeamAccountSidebarConfig } from '~/config/team-account-sidebar.config'; + +export function AccountLayoutSidebarNavigation({ + account, +}: React.PropsWithChildren<{ + account: string; +}>) { + return ( + <> + {getTeamAccountSidebarConfig(account).routes.map((item, index) => { + if ('divider' in item) { + return ; + } + + if ('children' in item) { + return ( + } + collapsible={item.collapsible} + collapsed={item.collapsed} + > + {item.children.map((child) => { + return ( + + + + ); + })} + + ); + } + + return ( + + + + ); + })} + + ); +} + +export default AccountLayoutSidebarNavigation; diff --git a/apps/web/app/(dashboard)/home/[account]/_components/app-sidebar.tsx b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar.tsx similarity index 95% rename from apps/web/app/(dashboard)/home/[account]/_components/app-sidebar.tsx rename to apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar.tsx index c94e43b4a..b516ed054 100644 --- a/apps/web/app/(dashboard)/home/[account]/_components/app-sidebar.tsx +++ b/apps/web/app/(dashboard)/home/[account]/_components/account-layout-sidebar.tsx @@ -20,7 +20,7 @@ import { ProfileAccountDropdownContainer } from '~/(dashboard)/home/_components/ import featureFlagsConfig from '~/config/feature-flags.config'; import pathsConfig from '~/config/paths.config'; -import { AppSidebarNavigation } from './app-sidebar-navigation'; +import { AccountLayoutSidebarNavigation } from './account-layout-sidebar-navigation'; type AccountModel = { label: string | null; @@ -33,7 +33,7 @@ const features = { enableTeamCreation: featureFlagsConfig.enableTeamCreation, }; -export function AppSidebar(props: { +export function AccountLayoutSidebar(props: { account: string; accounts: AccountModel[]; collapsed: boolean; @@ -81,7 +81,7 @@ function SidebarContainer(props: { - +
diff --git a/apps/web/app/(dashboard)/home/[account]/_components/app-sidebar-navigation.tsx b/apps/web/app/(dashboard)/home/[account]/_components/app-sidebar-navigation.tsx deleted file mode 100644 index 492c2be68..000000000 --- a/apps/web/app/(dashboard)/home/[account]/_components/app-sidebar-navigation.tsx +++ /dev/null @@ -1,61 +0,0 @@ -'use client'; - -import { SidebarDivider, SidebarGroup, SidebarItem } from '@kit/ui/sidebar'; -import { Trans } from '@kit/ui/trans'; - -import { getOrganizationAccountSidebarConfig } from '~/config/team-account-sidebar.config'; - -export function AppSidebarNavigation({ - account, -}: React.PropsWithChildren<{ - account: string; -}>) { - return ( - <> - {getOrganizationAccountSidebarConfig(account).routes.map( - (item, index) => { - if ('divider' in item) { - return ; - } - - if ('children' in item) { - return ( - } - collapsible={item.collapsible} - collapsed={item.collapsed} - > - {item.children.map((child) => { - return ( - - - - ); - })} - - ); - } - - return ( - - - - ); - }, - )} - - ); -} - -export default AppSidebarNavigation; diff --git a/apps/web/app/(dashboard)/home/[account]/layout.tsx b/apps/web/app/(dashboard)/home/[account]/layout.tsx index 7aa761e67..9abb75f22 100644 --- a/apps/web/app/(dashboard)/home/[account]/layout.tsx +++ b/apps/web/app/(dashboard)/home/[account]/layout.tsx @@ -4,7 +4,7 @@ import { parseSidebarStateCookie } from '@kit/shared/cookies/sidebar-state.cooki import { parseThemeCookie } from '@kit/shared/cookies/theme.cookie'; import { Page } from '@kit/ui/page'; -import { AppSidebar } from '~/(dashboard)/home/[account]/_components/app-sidebar'; +import { AccountLayoutSidebar } from '~/(dashboard)/home/[account]/_components/account-layout-sidebar'; import { loadTeamWorkspace } from '~/(dashboard)/home/[account]/_lib/load-team-account-workspace'; import { withI18n } from '~/lib/i18n/with-i18n'; @@ -31,7 +31,7 @@ function TeamWorkspaceLayout({ return ( - } description={} account={params.account} @@ -59,7 +59,7 @@ function TeamAccountHomePage({ Add Widget - + diff --git a/apps/web/config/team-account-sidebar.config.tsx b/apps/web/config/team-account-sidebar.config.tsx index 5f0aef6f8..28b7016fa 100644 --- a/apps/web/config/team-account-sidebar.config.tsx +++ b/apps/web/config/team-account-sidebar.config.tsx @@ -39,7 +39,7 @@ const getRoutes = (account: string) => [ }, ]; -export function getOrganizationAccountSidebarConfig(account: string) { +export function getTeamAccountSidebarConfig(account: string) { return SidebarConfigSchema.parse({ routes: getRoutes(account), }); diff --git a/apps/web/package.json b/apps/web/package.json index 98b398fc4..6eba11dea 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -42,7 +42,7 @@ "edge-csrf": "^1.0.9", "i18next": "^23.10.1", "i18next-resources-to-backend": "^1.2.0", - "next": "14.2.0-canary.48", + "next": "v14.2.0-canary.49", "next-contentlayer": "0.3.4", "next-sitemap": "^4.2.3", "next-themes": "0.3.0", diff --git a/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts b/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts index f437be6f1..06677811e 100644 --- a/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts +++ b/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts @@ -1,3 +1,5 @@ +import 'server-only'; + import { Logger } from '@kit/shared/logger'; import { getSupabaseRouteHandlerClient } from '@kit/supabase/route-handler-client'; @@ -18,9 +20,21 @@ export class DatabaseWebhookHandlerService { // check if the signature is valid this.assertSignatureIsAuthentic(request, webhooksSecret); + // all good, handle the webhook const json = await request.json(); await this.handleWebhookBody(json); + + const { table, type } = json as RecordChange; + + Logger.info( + { + name: this.namespace, + table, + type, + }, + 'Webhook processed successfully', + ); } private handleWebhookBody(body: RecordChange) { diff --git a/packages/ui/src/makerkit/page.tsx b/packages/ui/src/makerkit/page.tsx index 5db753138..b510a1928 100644 --- a/packages/ui/src/makerkit/page.tsx +++ b/packages/ui/src/makerkit/page.tsx @@ -47,7 +47,7 @@ export function PageHeader({
{mobileNavigation}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16a1d07b2..3d30d6357 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,7 +94,7 @@ importers: version: 5.28.6(react@18.2.0) '@tanstack/react-query-next-experimental': specifier: ^5.28.9 - version: 5.28.9(@tanstack/react-query@5.28.6)(next@14.2.0-canary.48)(react@18.2.0) + version: 5.28.9(@tanstack/react-query@5.28.6)(next@14.2.0-canary.49)(react@18.2.0) '@tanstack/react-table': specifier: ^8.15.0 version: 8.15.0(react-dom@18.2.0)(react@18.2.0) @@ -106,7 +106,7 @@ importers: version: 3.6.0 edge-csrf: specifier: ^1.0.9 - version: 1.0.9(next@14.2.0-canary.48) + version: 1.0.9(next@14.2.0-canary.49) i18next: specifier: ^23.10.1 version: 23.10.1 @@ -114,14 +114,14 @@ importers: specifier: ^1.2.0 version: 1.2.0 next: - specifier: 14.2.0-canary.48 - version: 14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) + specifier: v14.2.0-canary.49 + version: 14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) next-contentlayer: specifier: 0.3.4 - version: 0.3.4(contentlayer@0.3.4)(esbuild@0.20.2)(next@14.2.0-canary.48)(react-dom@18.2.0)(react@18.2.0) + version: 0.3.4(contentlayer@0.3.4)(esbuild@0.20.2)(next@14.2.0-canary.49)(react-dom@18.2.0)(react@18.2.0) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.0-canary.48) + version: 4.2.3(next@14.2.0-canary.49) next-themes: specifier: 0.3.0 version: 0.3.0(react-dom@18.2.0)(react@18.2.0) @@ -2074,8 +2074,8 @@ packages: resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} dev: false - /@next/env@14.2.0-canary.48: - resolution: {integrity: sha512-NhLe3TJ3/A0FyV/mezwpmFudLX6yzcq619bAeaL/KOQA8OkDb/zwFfbrqdibwIgRmID8pGirtzsfN6iwJzwQKA==} + /@next/env@14.2.0-canary.49: + resolution: {integrity: sha512-rQaBRv0PRO3+4lx90zB9eBL0xk230G+6avgCyBL272hckH4XsGgXY6adtBBmZJF1QuDI+pS+DqppXSJvfexsdw==} dev: false /@next/eslint-plugin-next@14.1.4: @@ -2107,8 +2107,8 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64@14.2.0-canary.48: - resolution: {integrity: sha512-pJX5jVTFPSymGvLk7WxKKf/TTL3/SwaeerIIr42xYK8w9hq7hTQo71ML+4l5rba4AvJ9dwlZUP5Ie/AjVXpq7w==} + /@next/swc-darwin-arm64@14.2.0-canary.49: + resolution: {integrity: sha512-tFFCgRJOk28rIiEGjz2bafqp3G5lV7hXyYjZ7d+gt/MjpLRrtTwu+lRBv/W1VFdTkPv8+k2hvXZNNTHO1n57Ow==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -2125,8 +2125,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.2.0-canary.48: - resolution: {integrity: sha512-o38yJhgZEZIPKMYDQevKBEtCEh6iEplJqY5MxiZ+qbjTdDVStdKZBY2O5fucVDVcP4Lb2r9lvfYIjY5G54adsQ==} + /@next/swc-darwin-x64@14.2.0-canary.49: + resolution: {integrity: sha512-NR4Meb67q8M2pNP5a8Tp3Zfar2Ao8ChHWcD3wEBgICcgJ4ZyCQCWXdM+VBsf8a3yuAoXmu1/cwOwWu1KXVC96A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -2143,8 +2143,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.2.0-canary.48: - resolution: {integrity: sha512-N7agPv2AFHZ2TG+bjhXtjTpLWk26wv9C1Fmj8RmYPyAmZE3SeEbgAW3Pr/+zSk8oF0EMq9rzJpYBPa1itRM0Qw==} + /@next/swc-linux-arm64-gnu@14.2.0-canary.49: + resolution: {integrity: sha512-2bFQUNYnz6L7xOAzvejMj09iqmWwkjFyguGEfmNiFN0kPgJ4viSCKZvoiuG/MPh3VoDSz5N2qx1tehSCy7KbFA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2161,8 +2161,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.2.0-canary.48: - resolution: {integrity: sha512-Ka4XjbGkX84Wh5jgNXxTkNv+fls2YBbIFTRq9jGGGOLFRiem6U1k4uf3L8WxbyDUmF/cXebQsCn73AHbe8gXsw==} + /@next/swc-linux-arm64-musl@14.2.0-canary.49: + resolution: {integrity: sha512-68PjCGC1JghA2tuznu+ExeSP+L6qpf6afblB4wFhDRniP+0hRrZB+1E3jJ3PmBgHtitJJMaplTFeKYQ8xbF8xw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2179,8 +2179,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.2.0-canary.48: - resolution: {integrity: sha512-VhYSQ2RkWFyvzn0F3qsqVrC8JsCZuzry7QlizuRrSZImOMgPKcozhRUPagtUmjC57wki4je2UtuXgt88Ac4eZg==} + /@next/swc-linux-x64-gnu@14.2.0-canary.49: + resolution: {integrity: sha512-eiDvo0bnYCI59UhaZrNV1k7wZPFHyQ2uJ7/MUH9yvZZcSKBxRDtNc3FmCAZjKiNx/SclMFRAtENLOlDzceRp5g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2197,8 +2197,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.2.0-canary.48: - resolution: {integrity: sha512-+Gcza5SdYJ2nWhH6LQB/uuDhRHnDuQgzgdZ93LLV4VdrPERntl+Qkq2ZKBrL2y6jBCP7fQ9ClZkddQZw57pgeQ==} + /@next/swc-linux-x64-musl@14.2.0-canary.49: + resolution: {integrity: sha512-XgwiLB/WkRjuhWoKZmlRsZl1b8C7dsYlRD3zqHPkrgWhERyyn3AoeRjIa/eHR6nxj7oTu2KHET1oSJoYobH70g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2215,8 +2215,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.2.0-canary.48: - resolution: {integrity: sha512-zLbhMvmizwFmbnlYzvXDq+DwKZ8kB4uxJ12nq5+CjodIPlkCzdrHBjqq0I1D66ohd/8C53XqXdS82teeNcW7qA==} + /@next/swc-win32-arm64-msvc@14.2.0-canary.49: + resolution: {integrity: sha512-jqC5vhFOAewsGdWriuQqR2aalQ8dHJ1WkSl1psluTxpo5UgICBk+H0wQ93a0CEfD0Rj+8QjUFh+U1oYTqE4YIg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -2233,8 +2233,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.2.0-canary.48: - resolution: {integrity: sha512-lFEUP1tZ9jgAucWqZd3vCexfcmuTRXUh5qWHm4MymgchTX/FO2z3drum7Bv5fc1NdLiLy5H/ENxhhVezWbfAZg==} + /@next/swc-win32-ia32-msvc@14.2.0-canary.49: + resolution: {integrity: sha512-Zcfe1+FuFtMCtG0L7F9yh0yRhmLM2gGAUHW41FYN+Rtbi/JFS8qhs/M7pOPkqhEWWKqo3at64q7z8KQh+21VsQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -2251,8 +2251,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.2.0-canary.48: - resolution: {integrity: sha512-ZfMKA0x+mnmfL0QnEtNWqE3jSZQhOqlMRc/tYWJBCTOqPxJxVW0j24enlFBzvrYwBbIi5OBdonvaXIOZaJl1yA==} + /@next/swc-win32-x64-msvc@14.2.0-canary.49: + resolution: {integrity: sha512-yeCjnmqMmI9aNbRk3DTrKvCuImUWXU+Kl0XC9KFo8iLpOztpCQrMA+pf5s3GRqv1HRzbRoHsj+1VCPXzTmZrLA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4230,7 +4230,7 @@ packages: /@tanstack/query-core@5.28.6: resolution: {integrity: sha512-hnhotV+DnQtvtR3jPvbQMPNMW4KEK0J4k7c609zJ8muiNknm+yoDyMHmxTWM5ZnlZpsz0zOxYFr+mzRJNHWJsA==} - /@tanstack/react-query-next-experimental@5.28.9(@tanstack/react-query@5.28.6)(next@14.2.0-canary.48)(react@18.2.0): + /@tanstack/react-query-next-experimental@5.28.9(@tanstack/react-query@5.28.6)(next@14.2.0-canary.49)(react@18.2.0): resolution: {integrity: sha512-cihvqAme8nX6O5jeWtk19fnMsgXTX5puHwj6ya2Gf6FZIKhcFTrXQ9npH3ACcbinmVYPcQrShk/D3XAGKR/AUg==} peerDependencies: '@tanstack/react-query': ^5.28.9 @@ -4238,7 +4238,7 @@ packages: react: ^18.0.0 dependencies: '@tanstack/react-query': 5.28.6(react@18.2.0) - next: 14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false @@ -6001,12 +6001,12 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /edge-csrf@1.0.9(next@14.2.0-canary.48): + /edge-csrf@1.0.9(next@14.2.0-canary.49): resolution: {integrity: sha512-3F89YTh42UDdISr3s9AEcgJDLi4ysgjGfnybzF0LuZGaG2W31h1ZwgWwEQBLMj04lAklcP4XHZYi7vk9o8zcbg==} peerDependencies: next: ^13.0.0 || ^14.0.0 dependencies: - next: 14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) dev: false /editorconfig@1.0.4: @@ -8655,7 +8655,7 @@ packages: engines: {node: '>= 0.4.0'} dev: false - /next-contentlayer@0.3.4(contentlayer@0.3.4)(esbuild@0.20.2)(next@14.2.0-canary.48)(react-dom@18.2.0)(react@18.2.0): + /next-contentlayer@0.3.4(contentlayer@0.3.4)(esbuild@0.20.2)(next@14.2.0-canary.49)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UtUCwgAl159KwfhNaOwyiI7Lg6sdioyKMeh+E7jxx0CJ29JuXGxBEYmCI6+72NxFGIFZKx8lvttbbQhbnYWYSw==} peerDependencies: contentlayer: 0.3.4 @@ -8666,7 +8666,7 @@ packages: '@contentlayer/core': 0.3.4(esbuild@0.20.2) '@contentlayer/utils': 0.3.4 contentlayer: 0.3.4(esbuild@0.20.2) - next: 14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -8676,7 +8676,7 @@ packages: - supports-color dev: false - /next-sitemap@4.2.3(next@14.2.0-canary.48): + /next-sitemap@4.2.3(next@14.2.0-canary.49): resolution: {integrity: sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==} engines: {node: '>=14.18'} hasBin: true @@ -8687,7 +8687,7 @@ packages: '@next/env': 13.5.6 fast-glob: 3.3.2 minimist: 1.2.8 - next: 14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0) dev: false /next-themes@0.3.0(react-dom@18.2.0)(react@18.2.0): @@ -8738,8 +8738,8 @@ packages: - babel-plugin-macros dev: false - /next@14.2.0-canary.48(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-pRuzodk1R1MZ54VELbZVyj30F2QS4CtnHPcSiMHh9GICAZ/ZLHeOyiTtcpijb8M3hRXs7Cui2xUDUR0k6zjT7Q==} + /next@14.2.0-canary.49(@opentelemetry/api@1.8.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sfryWP84xmqUOYAilbiojczTpTGCRTMch3w+EVppzPj0DS6gOWv9vPUHp/6uMWWZ+YX+n3GkYhwRK80Q+FG+kg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -8756,7 +8756,7 @@ packages: sass: optional: true dependencies: - '@next/env': 14.2.0-canary.48 + '@next/env': 14.2.0-canary.49 '@opentelemetry/api': 1.8.0 '@swc/helpers': 0.5.5 busboy: 1.6.0 @@ -8767,15 +8767,15 @@ packages: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.0-canary.48 - '@next/swc-darwin-x64': 14.2.0-canary.48 - '@next/swc-linux-arm64-gnu': 14.2.0-canary.48 - '@next/swc-linux-arm64-musl': 14.2.0-canary.48 - '@next/swc-linux-x64-gnu': 14.2.0-canary.48 - '@next/swc-linux-x64-musl': 14.2.0-canary.48 - '@next/swc-win32-arm64-msvc': 14.2.0-canary.48 - '@next/swc-win32-ia32-msvc': 14.2.0-canary.48 - '@next/swc-win32-x64-msvc': 14.2.0-canary.48 + '@next/swc-darwin-arm64': 14.2.0-canary.49 + '@next/swc-darwin-x64': 14.2.0-canary.49 + '@next/swc-linux-arm64-gnu': 14.2.0-canary.49 + '@next/swc-linux-arm64-musl': 14.2.0-canary.49 + '@next/swc-linux-x64-gnu': 14.2.0-canary.49 + '@next/swc-linux-x64-musl': 14.2.0-canary.49 + '@next/swc-win32-arm64-msvc': 14.2.0-canary.49 + '@next/swc-win32-ia32-msvc': 14.2.0-canary.49 + '@next/swc-win32-x64-msvc': 14.2.0-canary.49 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros