update next, try fix next nav issue, minor improvements
# Conflicts: # apps/dashboard/src/middleware.ts # packages/db/src/services/organization.service.ts # pnpm-lock.yaml
This commit is contained in:
committed by
Carl-Gerhard Lindesvärd
parent
04375807d0
commit
4b50fed1dc
@@ -113,7 +113,7 @@ export function EventListItem(props: EventListItemProps) {
|
||||
|
||||
<Tooltiper asChild content={createdAt.toLocaleString()}>
|
||||
<div className="text-sm text-muted-foreground">
|
||||
{createdAt.toLocaleTimeString()}
|
||||
{createdAt.toLocaleString()}
|
||||
</div>
|
||||
</Tooltiper>
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,9 @@ import { FullPageEmptyState } from '@/components/full-page-empty-state';
|
||||
import FullWidthNavbar from '@/components/full-width-navbar';
|
||||
import { ProjectCard } from '@/components/projects/project-card';
|
||||
import SignOutButton from '@/components/sign-out-button';
|
||||
import { notFound, redirect } from 'next/navigation';
|
||||
import { redirect } from 'next/navigation';
|
||||
|
||||
import {
|
||||
getCurrentOrganizations,
|
||||
getCurrentProjects,
|
||||
getOrganizationBySlug,
|
||||
} from '@openpanel/db';
|
||||
import { getCurrentOrganizations, getCurrentProjects } from '@openpanel/db';
|
||||
|
||||
interface PageProps {
|
||||
params: {
|
||||
|
||||
@@ -4,7 +4,7 @@ import LiveEvents from './live-events';
|
||||
|
||||
const LiveEventsServer = async () => {
|
||||
const events = await getEvents(
|
||||
'SELECT * FROM events ORDER BY created_at LIMIT 30'
|
||||
'SELECT * FROM events ORDER BY created_at DESC LIMIT 30'
|
||||
);
|
||||
return <LiveEvents events={events.map(transformMinimalEvent)} />;
|
||||
};
|
||||
|
||||
@@ -3,70 +3,21 @@
|
||||
import { useEffect } from 'react';
|
||||
import AnimateHeight from '@/components/animate-height';
|
||||
import { ButtonContainer } from '@/components/button-container';
|
||||
import { CheckboxItem } from '@/components/forms/checkbox-item';
|
||||
import { InputWithLabel } from '@/components/forms/input-with-label';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Switch } from '@/components/ui/switch';
|
||||
import { api, handleError } from '@/trpc/client';
|
||||
import { cn } from '@/utils/cn';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import type { LucideIcon } from 'lucide-react';
|
||||
import { MonitorIcon, ServerIcon, SmartphoneIcon } from 'lucide-react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import type { ControllerRenderProps, SubmitHandler } from 'react-hook-form';
|
||||
import type { SubmitHandler } from 'react-hook-form';
|
||||
import { Controller, useForm, useWatch } from 'react-hook-form';
|
||||
import type { z } from 'zod';
|
||||
|
||||
import type { IServiceOrganization } from '@openpanel/db';
|
||||
import { zOnboardingProject } from '@openpanel/validation';
|
||||
|
||||
import OnboardingLayout, { OnboardingDescription } from '../onboarding-layout';
|
||||
|
||||
function CheckboxGroup({
|
||||
label,
|
||||
description,
|
||||
Icon,
|
||||
children,
|
||||
onChange,
|
||||
value,
|
||||
disabled,
|
||||
error,
|
||||
}: {
|
||||
label: string;
|
||||
description: string;
|
||||
Icon: LucideIcon;
|
||||
children?: React.ReactNode;
|
||||
error?: string;
|
||||
} & ControllerRenderProps) {
|
||||
const randId = Math.random().toString(36).substring(7);
|
||||
return (
|
||||
<div>
|
||||
<label
|
||||
className={cn(
|
||||
'flex items-center gap-4 px-4 py-6 transition-colors hover:bg-slate-100',
|
||||
disabled && 'cursor-not-allowed opacity-50'
|
||||
)}
|
||||
htmlFor={randId}
|
||||
>
|
||||
{Icon && <div className="w-6 shrink-0">{<Icon />}</div>}
|
||||
<div className="flex-1">
|
||||
<div className="font-medium">{label}</div>
|
||||
<div className="text-sm text-muted-foreground">{description}</div>
|
||||
{error && <div className="text-xs text-red-600">{error}</div>}
|
||||
</div>
|
||||
<div>
|
||||
<Switch
|
||||
disabled={disabled}
|
||||
checked={!!value}
|
||||
onCheckedChange={onChange}
|
||||
id={randId}
|
||||
/>
|
||||
</div>
|
||||
</label>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
type IForm = z.infer<typeof zOnboardingProject>;
|
||||
|
||||
const Tracking = () => {
|
||||
@@ -149,7 +100,7 @@ const Tracking = () => {
|
||||
name="website"
|
||||
control={form.control}
|
||||
render={({ field }) => (
|
||||
<CheckboxGroup
|
||||
<CheckboxItem
|
||||
error={form.formState.errors.website?.message}
|
||||
Icon={MonitorIcon}
|
||||
label="Website"
|
||||
@@ -167,14 +118,14 @@ const Tracking = () => {
|
||||
/>
|
||||
</div>
|
||||
</AnimateHeight>
|
||||
</CheckboxGroup>
|
||||
</CheckboxItem>
|
||||
)}
|
||||
/>
|
||||
<Controller
|
||||
name="app"
|
||||
control={form.control}
|
||||
render={({ field }) => (
|
||||
<CheckboxGroup
|
||||
<CheckboxItem
|
||||
error={form.formState.errors.app?.message}
|
||||
disabled={isWebsite}
|
||||
Icon={SmartphoneIcon}
|
||||
@@ -188,7 +139,7 @@ const Tracking = () => {
|
||||
name="backend"
|
||||
control={form.control}
|
||||
render={({ field }) => (
|
||||
<CheckboxGroup
|
||||
<CheckboxItem
|
||||
error={form.formState.errors.backend?.message}
|
||||
Icon={ServerIcon}
|
||||
label="Backend / API"
|
||||
|
||||
54
apps/dashboard/src/components/forms/checkbox-item.tsx
Normal file
54
apps/dashboard/src/components/forms/checkbox-item.tsx
Normal file
@@ -0,0 +1,54 @@
|
||||
import { forwardRef } from 'react';
|
||||
import { cn } from '@/utils/cn';
|
||||
import { slug } from '@/utils/slug';
|
||||
import type { LucideIcon } from 'lucide-react';
|
||||
import type { ControllerRenderProps } from 'react-hook-form';
|
||||
|
||||
import { Switch } from '../ui/switch';
|
||||
|
||||
type Props = {
|
||||
label: string;
|
||||
description: string;
|
||||
Icon: LucideIcon;
|
||||
children?: React.ReactNode;
|
||||
error?: string;
|
||||
} & ControllerRenderProps;
|
||||
|
||||
export const CheckboxItem = forwardRef<HTMLButtonElement, Props>(
|
||||
(
|
||||
{ label, description, Icon, children, onChange, value, disabled, error },
|
||||
ref
|
||||
) => {
|
||||
const id = slug(label);
|
||||
return (
|
||||
<div>
|
||||
<label
|
||||
className={cn(
|
||||
'flex items-center gap-4 px-4 py-6 transition-colors hover:bg-slate-100',
|
||||
disabled && 'cursor-not-allowed opacity-50'
|
||||
)}
|
||||
htmlFor={id}
|
||||
>
|
||||
{Icon && <div className="w-6 shrink-0">{<Icon />}</div>}
|
||||
<div className="flex-1">
|
||||
<div className="font-medium">{label}</div>
|
||||
<div className="text-sm text-muted-foreground">{description}</div>
|
||||
{error && <div className="text-xs text-red-600">{error}</div>}
|
||||
</div>
|
||||
<div>
|
||||
<Switch
|
||||
ref={ref}
|
||||
disabled={disabled}
|
||||
checked={!!value}
|
||||
onCheckedChange={onChange}
|
||||
id={id}
|
||||
/>
|
||||
</div>
|
||||
</label>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
CheckboxItem.displayName = 'CheckboxItem';
|
||||
@@ -1,3 +1,5 @@
|
||||
'use client';
|
||||
|
||||
import { cn } from '@/utils/cn';
|
||||
|
||||
import { Logo } from './logo';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { shortNumber } from '@/hooks/useNumerFormatter';
|
||||
import Link from 'next/link';
|
||||
import { escape } from 'sqlstring';
|
||||
|
||||
import type { IServiceProject } from '@openpanel/db';
|
||||
@@ -18,7 +17,7 @@ export async function ProjectCard({
|
||||
),
|
||||
chQuery<{ total: number; month: number; day: number }>(
|
||||
`
|
||||
SELECT
|
||||
SELECT
|
||||
(
|
||||
SELECT count(DISTINCT profile_id) as count FROM events WHERE project_id = ${escape(id)}
|
||||
) as total,
|
||||
@@ -32,8 +31,11 @@ export async function ProjectCard({
|
||||
),
|
||||
]);
|
||||
|
||||
// For some unknown reason I get when navigating back to this page when using <Link />
|
||||
// Should be solved: https://github.com/vercel/next.js/issues/61336
|
||||
// But still get the error
|
||||
return (
|
||||
<Link
|
||||
<a
|
||||
href={`/${organizationSlug}/${id}`}
|
||||
className="card inline-flex flex-col gap-2 p-4 transition-transform hover:-translate-y-1"
|
||||
>
|
||||
@@ -64,6 +66,6 @@ export async function ProjectCard({
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"with-env": "dotenv -e ../../.env -c --"
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "~14.0.4",
|
||||
"next": "~14.2.1",
|
||||
"nextra": "^2.13.4",
|
||||
"nextra-theme-docs": "^2.13.4",
|
||||
"react": "18.2.0",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"embla-carousel-autoplay": "8.0.0-rc22",
|
||||
"embla-carousel-react": "8.0.0-rc22",
|
||||
"lucide-react": "^0.323.0",
|
||||
"next": "~14.0.4",
|
||||
"next": "~14.2.1",
|
||||
"react": "18.2.0",
|
||||
"react-animate-height": "^3.2.3",
|
||||
"react-dom": "18.2.0",
|
||||
|
||||
@@ -4,6 +4,7 @@ import type {
|
||||
OrganizationInvitation,
|
||||
OrganizationMembership,
|
||||
} from '@clerk/nextjs/dist/types/server';
|
||||
import { sort, sortBy } from 'ramda';
|
||||
|
||||
import type { ProjectAccess } from '../prisma-client';
|
||||
import { db } from '../prisma-client';
|
||||
@@ -18,6 +19,7 @@ export function transformOrganization(org: Organization) {
|
||||
id: org.id,
|
||||
name: org.name,
|
||||
slug: org.slug!,
|
||||
createdAt: org.createdAt,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -27,7 +29,10 @@ export async function getCurrentOrganizations() {
|
||||
const organizations = await clerkClient.users.getOrganizationMembershipList({
|
||||
userId: session.userId,
|
||||
});
|
||||
return organizations.map((item) => transformOrganization(item.organization));
|
||||
return sort(
|
||||
(a, b) => a.createdAt - b.createdAt,
|
||||
organizations.map((item) => transformOrganization(item.organization))
|
||||
);
|
||||
}
|
||||
|
||||
export function getOrganizationBySlug(slug: string) {
|
||||
|
||||
@@ -65,5 +65,8 @@ export async function getCurrentProjects(organizationSlug: string) {
|
||||
include: {
|
||||
access: true,
|
||||
},
|
||||
orderBy: {
|
||||
eventsCount: 'desc',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
258
pnpm-lock.yaml
generated
258
pnpm-lock.yaml
generated
@@ -450,7 +450,7 @@ importers:
|
||||
version: 3.2.5
|
||||
prettier-plugin-tailwindcss:
|
||||
specifier: ^0.5.11
|
||||
version: 0.5.11(prettier@3.2.5)
|
||||
version: 0.5.11(@ianvs/prettier-plugin-sort-imports@4.1.1)(prettier@3.2.5)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.1
|
||||
version: 3.4.1
|
||||
@@ -461,14 +461,14 @@ importers:
|
||||
apps/docs:
|
||||
dependencies:
|
||||
next:
|
||||
specifier: ~14.0.4
|
||||
version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
specifier: ~14.2.1
|
||||
version: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
nextra:
|
||||
specifier: ^2.13.4
|
||||
version: 2.13.4(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
version: 2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
nextra-theme-docs:
|
||||
specifier: ^2.13.4
|
||||
version: 2.13.4(next@14.0.4)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
version: 2.13.4(next@14.2.1)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
react:
|
||||
specifier: 18.2.0
|
||||
version: 18.2.0
|
||||
@@ -526,7 +526,7 @@ importers:
|
||||
version: link:../../packages/db
|
||||
'@openpanel/nextjs':
|
||||
specifier: 0.0.6-beta
|
||||
version: 0.0.6-beta(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
version: 0.0.6-beta(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
'@radix-ui/react-alert-dialog':
|
||||
specifier: ^1.0.5
|
||||
version: 1.0.5(@types/react-dom@18.2.19)(@types/react@18.2.56)(react-dom@18.2.0)(react@18.2.0)
|
||||
@@ -585,8 +585,8 @@ importers:
|
||||
specifier: ^0.323.0
|
||||
version: 0.323.0(react@18.2.0)
|
||||
next:
|
||||
specifier: ~14.0.4
|
||||
version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
specifier: ~14.2.1
|
||||
version: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
react:
|
||||
specifier: 18.2.0
|
||||
version: 18.2.0
|
||||
@@ -808,7 +808,7 @@ importers:
|
||||
dependencies:
|
||||
'@clerk/nextjs':
|
||||
specifier: ^4.29.7
|
||||
version: 4.29.7(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
version: 4.29.7(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
'@clickhouse/client':
|
||||
specifier: ^0.2.9
|
||||
version: 0.2.9
|
||||
@@ -2854,26 +2854,6 @@ packages:
|
||||
- react
|
||||
dev: false
|
||||
|
||||
/@clerk/nextjs@4.29.7(next@14.0.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-tPvIp4GXCsjcKankLRpPPQGDWmpmlB2tm+p656/OUUmzPMeDnk5Euc86HjSk+5C9BAHVatrveRth6fHa4yzNhQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
next: '>=10'
|
||||
react: ^17.0.2 || ^18.0.0-0
|
||||
react-dom: ^17.0.2 || ^18.0.0-0
|
||||
dependencies:
|
||||
'@clerk/backend': 0.38.1(react@18.2.0)
|
||||
'@clerk/clerk-react': 4.30.5(react@18.2.0)
|
||||
'@clerk/clerk-sdk-node': 4.13.9(react@18.2.0)
|
||||
'@clerk/shared': 1.3.1(react@18.2.0)
|
||||
'@clerk/types': 3.62.0
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
path-to-regexp: 6.2.1
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
tslib: 2.4.1
|
||||
dev: false
|
||||
|
||||
/@clerk/nextjs@4.29.7(next@14.2.1)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-tPvIp4GXCsjcKankLRpPPQGDWmpmlB2tm+p656/OUUmzPMeDnk5Euc86HjSk+5C9BAHVatrveRth6fHa4yzNhQ==}
|
||||
engines: {node: '>=14'}
|
||||
@@ -4320,10 +4300,6 @@ packages:
|
||||
'@napi-rs/simple-git-win32-x64-msvc': 0.1.16
|
||||
dev: false
|
||||
|
||||
/@next/env@14.0.4:
|
||||
resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==}
|
||||
dev: false
|
||||
|
||||
/@next/env@14.1.0:
|
||||
resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==}
|
||||
dev: false
|
||||
@@ -4338,15 +4314,6 @@ packages:
|
||||
glob: 10.3.10
|
||||
dev: false
|
||||
|
||||
/@next/swc-darwin-arm64@14.0.4:
|
||||
resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-arm64@14.1.0:
|
||||
resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4365,15 +4332,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64@14.0.4:
|
||||
resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64@14.1.0:
|
||||
resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4392,15 +4350,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu@14.0.4:
|
||||
resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu@14.1.0:
|
||||
resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4419,15 +4368,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl@14.0.4:
|
||||
resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl@14.1.0:
|
||||
resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4446,15 +4386,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu@14.0.4:
|
||||
resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu@14.1.0:
|
||||
resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4473,15 +4404,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl@14.0.4:
|
||||
resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl@14.1.0:
|
||||
resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4500,15 +4422,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc@14.0.4:
|
||||
resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc@14.1.0:
|
||||
resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4527,15 +4440,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc@14.0.4:
|
||||
resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc@14.1.0:
|
||||
resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4554,15 +4458,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc@14.0.4:
|
||||
resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc@14.1.0:
|
||||
resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -4615,7 +4510,7 @@ packages:
|
||||
rimraf: 3.0.2
|
||||
dev: false
|
||||
|
||||
/@openpanel/nextjs@0.0.6-beta(next@14.0.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
/@openpanel/nextjs@0.0.6-beta(next@14.2.1)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-/QH1MBpV3txVX+gHKAWqjAo17ThR4NtlDHnSt9g/A3Px2VVCIwENBAXKiY5zBd/NV5EGz0hHAHaPeHd41Ix64A==}
|
||||
peerDependencies:
|
||||
next: ^12.0.0 || ^13.0.0 || ^14.0.0
|
||||
@@ -4623,7 +4518,7 @@ packages:
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
dependencies:
|
||||
'@openpanel/web': 0.0.6-beta
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
next: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
dev: false
|
||||
@@ -8144,6 +8039,7 @@ packages:
|
||||
|
||||
/caniuse-lite@1.0.30001587:
|
||||
resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==}
|
||||
dev: true
|
||||
|
||||
/caniuse-lite@1.0.30001596:
|
||||
resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==}
|
||||
@@ -13541,26 +13437,14 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/next-seo@6.5.0(next@14.0.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
/next-seo@6.5.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-MfzUeWTN/x/rsKp/1n0213eojO97lIl0unxqbeCY+6pAucViHDA8GSLRRcXpgjsSmBxfCFdfpu7LXbt4ANQoNQ==}
|
||||
peerDependencies:
|
||||
next: ^8.1.1-canary.54 || >=9.0.0
|
||||
react: '>=16.0.0'
|
||||
react-dom: '>=16.0.0'
|
||||
dependencies:
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
dev: false
|
||||
|
||||
/next-themes@0.2.1(next@14.0.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==}
|
||||
peerDependencies:
|
||||
next: '*'
|
||||
react: '*'
|
||||
react-dom: '*'
|
||||
dependencies:
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
next: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
dev: false
|
||||
@@ -13577,46 +13461,6 @@ packages:
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
dev: false
|
||||
|
||||
/next@14.0.4(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.1.0
|
||||
react: ^18.2.0
|
||||
react-dom: ^18.2.0
|
||||
sass: ^1.3.0
|
||||
peerDependenciesMeta:
|
||||
'@opentelemetry/api':
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/env': 14.0.4
|
||||
'@swc/helpers': 0.5.2
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001587
|
||||
graceful-fs: 4.2.11
|
||||
postcss: 8.4.31
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
styled-jsx: 5.1.1(react@18.2.0)
|
||||
watchpack: 2.4.0
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 14.0.4
|
||||
'@next/swc-darwin-x64': 14.0.4
|
||||
'@next/swc-linux-arm64-gnu': 14.0.4
|
||||
'@next/swc-linux-arm64-musl': 14.0.4
|
||||
'@next/swc-linux-x64-gnu': 14.0.4
|
||||
'@next/swc-linux-x64-musl': 14.0.4
|
||||
'@next/swc-win32-arm64-msvc': 14.0.4
|
||||
'@next/swc-win32-ia32-msvc': 14.0.4
|
||||
'@next/swc-win32-x64-msvc': 14.0.4
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/next@14.1.0(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
@@ -13698,7 +13542,7 @@ packages:
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/nextra-theme-docs@2.13.4(next@14.0.4)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
/nextra-theme-docs@2.13.4(next@14.2.1)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-2XOoMfwBCTYBt8ds4ZHftt9Wyf2XsykiNo02eir/XEYB+sGeUoE77kzqfidjEOKCSzOHYbK9BDMcg2+B/2vYRw==}
|
||||
peerDependencies:
|
||||
next: '>=9.5.3'
|
||||
@@ -13715,17 +13559,17 @@ packages:
|
||||
git-url-parse: 13.1.1
|
||||
intersection-observer: 0.12.2
|
||||
match-sorter: 6.3.4
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
next-seo: 6.5.0(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
next-themes: 0.2.1(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
nextra: 2.13.4(next@14.0.4)(react-dom@18.2.0)(react@18.2.0)
|
||||
next: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
next-seo: 6.5.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
next-themes: 0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
nextra: 2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
scroll-into-view-if-needed: 3.1.0
|
||||
zod: 3.22.4
|
||||
dev: false
|
||||
|
||||
/nextra@2.13.4(next@14.0.4)(react-dom@18.2.0)(react@18.2.0):
|
||||
/nextra@2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-7of2rSBxuUa3+lbMmZwG9cqgftcoNOVQLTT6Rxf3EhBR9t1EI7b43dted8YoqSNaigdE3j1CoyNkX8N/ZzlEpw==}
|
||||
engines: {node: '>=16'}
|
||||
peerDependencies:
|
||||
@@ -13745,7 +13589,7 @@ packages:
|
||||
gray-matter: 4.0.3
|
||||
katex: 0.16.9
|
||||
lodash.get: 4.4.2
|
||||
next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
|
||||
next: 14.2.1(react-dom@18.2.0)(react@18.2.0)
|
||||
next-mdx-remote: 4.4.1(react-dom@18.2.0)(react@18.2.0)
|
||||
p-limit: 3.1.0
|
||||
react: 18.2.0
|
||||
@@ -14582,58 +14426,6 @@ packages:
|
||||
'@ianvs/prettier-plugin-sort-imports': 4.1.1(prettier@3.2.5)
|
||||
prettier: 3.2.5
|
||||
|
||||
/prettier-plugin-tailwindcss@0.5.11(prettier@3.2.5):
|
||||
resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
peerDependencies:
|
||||
'@ianvs/prettier-plugin-sort-imports': '*'
|
||||
'@prettier/plugin-pug': '*'
|
||||
'@shopify/prettier-plugin-liquid': '*'
|
||||
'@trivago/prettier-plugin-sort-imports': '*'
|
||||
prettier: ^3.0
|
||||
prettier-plugin-astro: '*'
|
||||
prettier-plugin-css-order: '*'
|
||||
prettier-plugin-import-sort: '*'
|
||||
prettier-plugin-jsdoc: '*'
|
||||
prettier-plugin-marko: '*'
|
||||
prettier-plugin-organize-attributes: '*'
|
||||
prettier-plugin-organize-imports: '*'
|
||||
prettier-plugin-style-order: '*'
|
||||
prettier-plugin-svelte: '*'
|
||||
prettier-plugin-twig-melody: '*'
|
||||
peerDependenciesMeta:
|
||||
'@ianvs/prettier-plugin-sort-imports':
|
||||
optional: true
|
||||
'@prettier/plugin-pug':
|
||||
optional: true
|
||||
'@shopify/prettier-plugin-liquid':
|
||||
optional: true
|
||||
'@trivago/prettier-plugin-sort-imports':
|
||||
optional: true
|
||||
prettier-plugin-astro:
|
||||
optional: true
|
||||
prettier-plugin-css-order:
|
||||
optional: true
|
||||
prettier-plugin-import-sort:
|
||||
optional: true
|
||||
prettier-plugin-jsdoc:
|
||||
optional: true
|
||||
prettier-plugin-marko:
|
||||
optional: true
|
||||
prettier-plugin-organize-attributes:
|
||||
optional: true
|
||||
prettier-plugin-organize-imports:
|
||||
optional: true
|
||||
prettier-plugin-style-order:
|
||||
optional: true
|
||||
prettier-plugin-svelte:
|
||||
optional: true
|
||||
prettier-plugin-twig-melody:
|
||||
optional: true
|
||||
dependencies:
|
||||
prettier: 3.2.5
|
||||
dev: true
|
||||
|
||||
/prettier@3.2.5:
|
||||
resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
|
||||
engines: {node: '>=14'}
|
||||
@@ -17332,14 +17124,6 @@ packages:
|
||||
makeerror: 1.0.12
|
||||
dev: false
|
||||
|
||||
/watchpack@2.4.0:
|
||||
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
dependencies:
|
||||
glob-to-regexp: 0.4.1
|
||||
graceful-fs: 4.2.11
|
||||
dev: false
|
||||
|
||||
/wcwidth@1.0.1:
|
||||
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user