Upgrade Clerk, Next.js, and React to latest versions + minor code changes

This commit is contained in:
Ahmad 2024-10-23 19:17:45 -04:00
parent a63270db0c
commit a89c9a9b02
No known key found for this signature in database
GPG key ID: 8FD8A93530D182BF
31 changed files with 140 additions and 130 deletions

View file

@ -10,7 +10,7 @@ import { CopyBoard } from './schema';
import { redirect } from 'next/navigation'; import { redirect } from 'next/navigation';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) { if (!userId || !orgId) {
return { return {

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { CopyCard } from './schema'; import { CopyCard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { CopyList } from './schema'; import { CopyList } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -14,7 +14,7 @@ import { incrementAvailableCount, hasAvailableCount } from '@/lib/org-limit';
import { checkSubscription } from '@/lib/subscription'; import { checkSubscription } from '@/lib/subscription';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) { if (!userId || !orgId) {
return { return {

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { CreateCard } from './schema'; import { CreateCard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { CreateList } from './schema'; import { CreateList } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -15,7 +15,7 @@ import { InputType, ReturnType } from './types';
import { DeleteBoard } from './schema'; import { DeleteBoard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { DeleteCard } from './schema'; import { DeleteCard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { DeleteList } from './schema'; import { DeleteList } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { StripeRedirect } from './schema'; import { StripeRedirect } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
const user = await currentUser(); const user = await currentUser();
if (!userId || !orgId || !user) return { error: 'Unauthorized' }; if (!userId || !orgId || !user) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { UpdateBoard } from './schema'; import { UpdateBoard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -10,7 +10,7 @@ import { InputType, ReturnType } from './types';
import { UpdateCardOrder } from './schema'; import { UpdateCardOrder } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { UpdateCard } from './schema'; import { UpdateCard } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -10,7 +10,7 @@ import { InputType, ReturnType } from './types';
import { UpdateListOrder } from './schema'; import { UpdateListOrder } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -12,7 +12,7 @@ import { InputType, ReturnType } from './types';
import { UpdateList } from './schema'; import { UpdateList } from './schema';
const handler = async (data: InputType): Promise<ReturnType> => { const handler = async (data: InputType): Promise<ReturnType> => {
const { userId, orgId } = auth(); const { userId, orgId } = await auth();
if (!userId || !orgId) return { error: 'Unauthorized' }; if (!userId || !orgId) return { error: 'Unauthorized' };

View file

@ -4,8 +4,8 @@ import { auth } from '@clerk/nextjs/server';
import { Logo } from '@/components/logo'; import { Logo } from '@/components/logo';
import { Button } from '@/components/ui/button'; import { Button } from '@/components/ui/button';
export const Navbar = () => { export const Navbar = async () => {
const { userId } = auth(); const { userId } = await auth();
let isSignedIn = !!userId; let isSignedIn = !!userId;

View file

@ -8,7 +8,7 @@ export async function generateMetadata(props: {
params: Promise<{ boardId: string }>; params: Promise<{ boardId: string }>;
}) { }) {
const params = await props.params; const params = await props.params;
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) return { title: 'Board' }; if (!orgId) return { title: 'Board' };
@ -32,7 +32,7 @@ const BoardIdLayout = async (props: {
const { children } = props; const { children } = props;
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) redirect('/select-org'); if (!orgId) redirect('/select-org');

View file

@ -12,7 +12,7 @@ interface BoardIdPageProps {
const BoardIdPage = async (props: BoardIdPageProps) => { const BoardIdPage = async (props: BoardIdPageProps) => {
const params = await props.params; const params = await props.params;
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
redirect('/select-org'); redirect('/select-org');

View file

@ -2,8 +2,8 @@ import { auth } from '@clerk/nextjs/server';
import { Navbar } from './_components/Navbar'; import { Navbar } from './_components/Navbar';
const DashbordLayout = ({ children }: { children: React.ReactNode }) => { const DashbordLayout = async ({ children }: { children: React.ReactNode }) => {
auth().protect(); await auth.protect();
return ( return (
<div className='h-full'> <div className='h-full'>

View file

@ -12,7 +12,7 @@ import { getAvailableCount } from '@/lib/org-limit';
import { checkSubscription } from '@/lib/subscription'; import { checkSubscription } from '@/lib/subscription';
export const BoardList = async () => { export const BoardList = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
return redirect('/select-org'); return redirect('/select-org');

View file

@ -6,7 +6,7 @@ import { ActivityItem } from '@/components/activity-item';
import { Skeleton } from '@/components/ui/skeleton'; import { Skeleton } from '@/components/ui/skeleton';
export const ActivityList = async () => { export const ActivityList = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) redirect('/select-org'); if (!orgId) redirect('/select-org');

View file

@ -4,7 +4,7 @@ import { auth } from '@clerk/nextjs/server';
import { OrgControl } from './_components/org-control'; import { OrgControl } from './_components/org-control';
export async function generateMetadata() { export async function generateMetadata() {
const { orgSlug } = auth(); const { orgSlug } = await auth();
return { return {
title: startCase(orgSlug ?? 'organization'), title: startCase(orgSlug ?? 'organization'),

View file

@ -10,7 +10,7 @@ export async function GET(
) { ) {
const params = await props.params; const params = await props.params;
try { try {
const { orgId, userId } = auth(); const { orgId, userId } = await auth();
if (!orgId || !userId) if (!orgId || !userId)
return new NextResponse(JSON.stringify({ error: 'Unauthorized' }), { return new NextResponse(JSON.stringify({ error: 'Unauthorized' }), {

View file

@ -9,7 +9,7 @@ export async function GET(
) { ) {
const params = await props.params; const params = await props.params;
try { try {
const { orgId, userId } = auth(); const { orgId, userId } = await auth();
if (!orgId || !userId) if (!orgId || !userId)
return new NextResponse(JSON.stringify({ error: 'Unauthorized' }), { return new NextResponse(JSON.stringify({ error: 'Unauthorized' }), {

View file

@ -1,12 +1,13 @@
'use client'; 'use client';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import * as VisuallyHidden from '@radix-ui/react-visually-hidden';
import { CardWithList } from '@/types'; import { CardWithList } from '@/types';
import { fetcher } from '@/lib/fetcher'; import { fetcher } from '@/lib/fetcher';
import { AuditLog } from '@prisma/client'; import { AuditLog } from '@prisma/client';
import { useCardModal } from '@/hooks/use-card-modal'; import { useCardModal } from '@/hooks/use-card-modal';
import { Dialog, DialogContent } from '@/components/ui/dialog'; import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog';
import { Header } from './header'; import { Header } from './header';
import { Description } from './description'; import { Description } from './description';
@ -31,6 +32,9 @@ export const CardModal = () => {
return ( return (
<Dialog open={isOpen} onOpenChange={onClose}> <Dialog open={isOpen} onOpenChange={onClose}>
<DialogContent> <DialogContent>
<VisuallyHidden.Root>
<DialogTitle>Card Data Panel</DialogTitle>
</VisuallyHidden.Root>
{!cardData ? <Header.Skeleton /> : <Header data={cardData} />} {!cardData ? <Header.Skeleton /> : <Header data={cardData} />}
<div className='grid grid-cols-1 md:grid-cols-4 md:gap-4'> <div className='grid grid-cols-1 md:grid-cols-4 md:gap-4'>
<div className='col-span-3'> <div className='col-span-3'>

View file

@ -3,8 +3,9 @@
import Image from 'next/image'; import Image from 'next/image';
import { toast } from 'sonner'; import { toast } from 'sonner';
import { useRouter } from 'next/navigation'; import { useRouter } from 'next/navigation';
import * as VisuallyHidden from '@radix-ui/react-visually-hidden';
import { Dialog, DialogContent } from '@/components/ui/dialog'; import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog';
import { useProModal } from '@/hooks/use-pro-modal'; import { useProModal } from '@/hooks/use-pro-modal';
import { Button } from '@/components/ui/button'; import { Button } from '@/components/ui/button';
import { useAction } from '@/hooks/use-action'; import { useAction } from '@/hooks/use-action';
@ -30,6 +31,9 @@ export const ProModal = () => {
return ( return (
<Dialog open={proModal.isOpen} onOpenChange={proModal.onClose}> <Dialog open={proModal.isOpen} onOpenChange={proModal.onClose}>
<DialogContent className='max-w-md overflow-hidden p-0'> <DialogContent className='max-w-md overflow-hidden p-0'>
<VisuallyHidden.Root>
<DialogTitle>Upgrade to Tasko Pro</DialogTitle>
</VisuallyHidden.Root>
<div className='relative flex aspect-video items-center justify-center'> <div className='relative flex aspect-video items-center justify-center'>
<Image src='/hero.svg' alt='hero' className='object-cover' fill /> <Image src='/hero.svg' alt='hero' className='object-cover' fill />
</div> </div>

View file

@ -12,7 +12,7 @@ interface Props {
export const createAuditLog = async (props: Props) => { export const createAuditLog = async (props: Props) => {
try { try {
const { orgId } = auth(); const { orgId } = await auth();
const user = await currentUser(); const user = await currentUser();
if (!orgId || !user) throw new Error('User not found'); if (!orgId || !user) throw new Error('User not found');

View file

@ -4,7 +4,7 @@ import { db } from '@/lib/db';
import { MAX_FREE_BOARDS } from '@/constants/boards'; import { MAX_FREE_BOARDS } from '@/constants/boards';
export const incrementAvailableCount = async () => { export const incrementAvailableCount = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
throw new Error('Unauthorized'); throw new Error('Unauthorized');
@ -27,7 +27,7 @@ export const incrementAvailableCount = async () => {
}; };
export const decreaseAvailableCount = async () => { export const decreaseAvailableCount = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
throw new Error('Unauthorized'); throw new Error('Unauthorized');
@ -50,7 +50,7 @@ export const decreaseAvailableCount = async () => {
}; };
export const hasAvailableCount = async () => { export const hasAvailableCount = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
throw new Error('Unauthorized'); throw new Error('Unauthorized');
@ -69,7 +69,7 @@ export const hasAvailableCount = async () => {
}; };
export const getAvailableCount = async () => { export const getAvailableCount = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
return 0; return 0;

View file

@ -5,7 +5,7 @@ import { db } from '@/lib/db';
const DAY_IN_MS = 86_400_000; const DAY_IN_MS = 86_400_000;
export const checkSubscription = async () => { export const checkSubscription = async () => {
const { orgId } = auth(); const { orgId } = await auth();
if (!orgId) { if (!orgId) {
return false; return false;

View file

@ -13,7 +13,7 @@
}, },
"dependencies": { "dependencies": {
"@builder.io/sdk-react": "^2.0.21", "@builder.io/sdk-react": "^2.0.21",
"@clerk/nextjs": "^5.7.5", "@clerk/nextjs": "^6.0.1",
"@hello-pangea/dnd": "^17.0.0", "@hello-pangea/dnd": "^17.0.0",
"@liveblocks/client": "^2.9.2", "@liveblocks/client": "^2.9.2",
"@liveblocks/node": "^2.9.1", "@liveblocks/node": "^2.9.1",
@ -28,6 +28,7 @@
"@radix-ui/react-separator": "^1.0.3", "@radix-ui/react-separator": "^1.0.3",
"@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.3", "@radix-ui/react-tooltip": "^1.1.3",
"@radix-ui/react-visually-hidden": "^1.1.0",
"@tanstack/react-query": "^5.59.15", "@tanstack/react-query": "^5.59.15",
"@vercel/analytics": "^1.3.1", "@vercel/analytics": "^1.3.1",
"@vercel/functions": "^1.4.2", "@vercel/functions": "^1.4.2",
@ -40,10 +41,10 @@
"eslint-plugin-react-compiler": "0.0.0-experimental-7670337-20240918", "eslint-plugin-react-compiler": "0.0.0-experimental-7670337-20240918",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"lucide-react": "^0.453.0", "lucide-react": "^0.453.0",
"next": "15.0.0", "next": "^15.0.1",
"react": "19.0.0-rc-65a56d0e-20241020", "react": "19.0.0-rc.0",
"react-day-picker": "^9.1.3", "react-day-picker": "^9.1.3",
"react-dom": "19.0.0-rc-65a56d0e-20241020", "react-dom": "19.0.0-rc.0",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"sonner": "^1.5.0", "sonner": "^1.5.0",
"stripe": "^17.2.1", "stripe": "^17.2.1",

183
yarn.lock
View file

@ -332,41 +332,41 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@clerk/backend@npm:1.14.1": "@clerk/backend@npm:1.15.1":
version: 1.14.1 version: 1.15.1
resolution: "@clerk/backend@npm:1.14.1" resolution: "@clerk/backend@npm:1.15.1"
dependencies: dependencies:
"@clerk/shared": "npm:2.9.2" "@clerk/shared": "npm:2.10.1"
"@clerk/types": "npm:4.26.0" "@clerk/types": "npm:4.28.0"
cookie: "npm:0.7.0" cookie: "npm:0.7.0"
snakecase-keys: "npm:5.4.4" snakecase-keys: "npm:5.4.4"
tslib: "npm:2.4.1" tslib: "npm:2.4.1"
checksum: 10c0/056d89dadb4789601574c064f1c937e8440eab25bc7996a2942b9dd543814957f902de5be1b6103ae1d2277efa53c70d47d19903cead6e84a3c37dc9b31413e8 checksum: 10c0/fd0d00a78f66ec1255deffe9b6d1b50485d896b69f8728efaad3b979899bd2bd3ba5df1fd377670a875c4b797d0c61826c7d3076bf8c466993d0363dbf46adca
languageName: node languageName: node
linkType: hard linkType: hard
"@clerk/clerk-react@npm:5.12.0": "@clerk/clerk-react@npm:5.13.1":
version: 5.12.0 version: 5.13.1
resolution: "@clerk/clerk-react@npm:5.12.0" resolution: "@clerk/clerk-react@npm:5.13.1"
dependencies: dependencies:
"@clerk/shared": "npm:2.9.2" "@clerk/shared": "npm:2.10.1"
"@clerk/types": "npm:4.26.0" "@clerk/types": "npm:4.28.0"
tslib: "npm:2.4.1" tslib: "npm:2.4.1"
peerDependencies: peerDependencies:
react: ">=18 || >=19.0.0-beta" react: ">=18 || >=19.0.0-beta"
react-dom: ">=18 || >=19.0.0-beta" react-dom: ">=18 || >=19.0.0-beta"
checksum: 10c0/e5836089c0181f0255f954888fdcdf2b94e2b6a9432ba212a593c77ae9e53aff8dc734d5b4d5dff05f188223a509a4b34f52033913b8602671583fcc1a8ab9a4 checksum: 10c0/acf1d8bf2a6b94c2c99c25b4612e0a85d2d847f186b3d6db317dafc98a6d35090b322705e249f86adff0dcdd16fca05d53710d0512dea48cca37f715fcf62358
languageName: node languageName: node
linkType: hard linkType: hard
"@clerk/nextjs@npm:^5.7.5": "@clerk/nextjs@npm:^6.0.1":
version: 5.7.5 version: 6.0.1
resolution: "@clerk/nextjs@npm:5.7.5" resolution: "@clerk/nextjs@npm:6.0.1"
dependencies: dependencies:
"@clerk/backend": "npm:1.14.1" "@clerk/backend": "npm:1.15.1"
"@clerk/clerk-react": "npm:5.12.0" "@clerk/clerk-react": "npm:5.13.1"
"@clerk/shared": "npm:2.9.2" "@clerk/shared": "npm:2.10.1"
"@clerk/types": "npm:4.26.0" "@clerk/types": "npm:4.28.0"
crypto-js: "npm:4.2.0" crypto-js: "npm:4.2.0"
server-only: "npm:0.0.1" server-only: "npm:0.0.1"
tslib: "npm:2.4.1" tslib: "npm:2.4.1"
@ -374,15 +374,15 @@ __metadata:
next: ^13.5.4 || ^14.0.3 || >=15.0.0-rc next: ^13.5.4 || ^14.0.3 || >=15.0.0-rc
react: ">=18 || >=19.0.0-beta" react: ">=18 || >=19.0.0-beta"
react-dom: ">=18 || >=19.0.0-beta" react-dom: ">=18 || >=19.0.0-beta"
checksum: 10c0/bb2930bea75effca400efef2277df17411a4cc5a4d4c4e4a62aea5408ba803ac38193841175341e1dadd0cdd909757c31cf09684ceeba0a32b385d2148c5b1ee checksum: 10c0/fcf9498d2bb906d4d73fcefacdad4c40bb7570b36c9cce61d6f9faf0f132103c12ab65dd0d98dc28ca9a69a651f39ff2bafc8b41c101a163092b18e860ad9bff
languageName: node languageName: node
linkType: hard linkType: hard
"@clerk/shared@npm:2.9.2": "@clerk/shared@npm:2.10.1":
version: 2.9.2 version: 2.10.1
resolution: "@clerk/shared@npm:2.9.2" resolution: "@clerk/shared@npm:2.10.1"
dependencies: dependencies:
"@clerk/types": "npm:4.26.0" "@clerk/types": "npm:4.28.0"
glob-to-regexp: "npm:0.4.1" glob-to-regexp: "npm:0.4.1"
js-cookie: "npm:3.0.5" js-cookie: "npm:3.0.5"
std-env: "npm:^3.7.0" std-env: "npm:^3.7.0"
@ -395,16 +395,16 @@ __metadata:
optional: true optional: true
react-dom: react-dom:
optional: true optional: true
checksum: 10c0/5d8022dbce5d34d6087d1f74673fa3804c8eb4708d64e02fb004bc8e0d466ec1b1708aa4de273bd1a62e1522e6e3fbae2abb6055319f8ccb4926cca8d9c04a2d checksum: 10c0/e04579d4f7befe0716b42d114b5932958c52078e2d7b398f350182c856ddf9948cceaaecf477eeeaa606bf582e379d9d46817ee0ab1e384c2ec37c43131c26a1
languageName: node languageName: node
linkType: hard linkType: hard
"@clerk/types@npm:4.26.0": "@clerk/types@npm:4.28.0":
version: 4.26.0 version: 4.28.0
resolution: "@clerk/types@npm:4.26.0" resolution: "@clerk/types@npm:4.28.0"
dependencies: dependencies:
csstype: "npm:3.1.1" csstype: "npm:3.1.1"
checksum: 10c0/ad71935ea18604150605f8ab1f7287edce23bc3fd5085f662c1c69f670d8ce914dd019bf9f046d1c113c5919cbf700de39b88e8fe7ed6bad372d9fe4d1ded28c checksum: 10c0/fa9b61d0800bace7b11e492f755aef94b594cce33da6af6d27271d19948691549c1d0ae00ce8ca19ef7cd7d582857eec3f3438f972a0949359acffecb0ae08f1
languageName: node languageName: node
linkType: hard linkType: hard
@ -931,10 +931,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@next/env@npm:15.0.0": "@next/env@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/env@npm:15.0.0" resolution: "@next/env@npm:15.0.1"
checksum: 10c0/cc01e37af13a2a8fada74b2ee335dcd0a16424461a4316c26776fbb768491288a166075a2bcf8e0ab1afd6e66026c4e30bf9f9026dd693ac657ccff7d17aa4bc checksum: 10c0/a5c9b24755232257b26893cbc123498b51449f24c0a88805fecb668b44651e72195176d996c8859d6bcceaadbe158d966b43a60095aa14a86f95b93cd5ef4521
languageName: node languageName: node
linkType: hard linkType: hard
@ -947,58 +947,58 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-darwin-arm64@npm:15.0.0": "@next/swc-darwin-arm64@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-darwin-arm64@npm:15.0.0" resolution: "@next/swc-darwin-arm64@npm:15.0.1"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-darwin-x64@npm:15.0.0": "@next/swc-darwin-x64@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-darwin-x64@npm:15.0.0" resolution: "@next/swc-darwin-x64@npm:15.0.1"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-linux-arm64-gnu@npm:15.0.0": "@next/swc-linux-arm64-gnu@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-linux-arm64-gnu@npm:15.0.0" resolution: "@next/swc-linux-arm64-gnu@npm:15.0.1"
conditions: os=linux & cpu=arm64 & libc=glibc conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-linux-arm64-musl@npm:15.0.0": "@next/swc-linux-arm64-musl@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-linux-arm64-musl@npm:15.0.0" resolution: "@next/swc-linux-arm64-musl@npm:15.0.1"
conditions: os=linux & cpu=arm64 & libc=musl conditions: os=linux & cpu=arm64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-linux-x64-gnu@npm:15.0.0": "@next/swc-linux-x64-gnu@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-linux-x64-gnu@npm:15.0.0" resolution: "@next/swc-linux-x64-gnu@npm:15.0.1"
conditions: os=linux & cpu=x64 & libc=glibc conditions: os=linux & cpu=x64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-linux-x64-musl@npm:15.0.0": "@next/swc-linux-x64-musl@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-linux-x64-musl@npm:15.0.0" resolution: "@next/swc-linux-x64-musl@npm:15.0.1"
conditions: os=linux & cpu=x64 & libc=musl conditions: os=linux & cpu=x64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-win32-arm64-msvc@npm:15.0.0": "@next/swc-win32-arm64-msvc@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-win32-arm64-msvc@npm:15.0.0" resolution: "@next/swc-win32-arm64-msvc@npm:15.0.1"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@next/swc-win32-x64-msvc@npm:15.0.0": "@next/swc-win32-x64-msvc@npm:15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "@next/swc-win32-x64-msvc@npm:15.0.0" resolution: "@next/swc-win32-x64-msvc@npm:15.0.1"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
@ -1701,7 +1701,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@radix-ui/react-visually-hidden@npm:1.1.0": "@radix-ui/react-visually-hidden@npm:1.1.0, @radix-ui/react-visually-hidden@npm:^1.1.0":
version: 1.1.0 version: 1.1.0
resolution: "@radix-ui/react-visually-hidden@npm:1.1.0" resolution: "@radix-ui/react-visually-hidden@npm:1.1.0"
dependencies: dependencies:
@ -5183,19 +5183,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"next@npm:15.0.0": "next@npm:^15.0.1":
version: 15.0.0 version: 15.0.1
resolution: "next@npm:15.0.0" resolution: "next@npm:15.0.1"
dependencies: dependencies:
"@next/env": "npm:15.0.0" "@next/env": "npm:15.0.1"
"@next/swc-darwin-arm64": "npm:15.0.0" "@next/swc-darwin-arm64": "npm:15.0.1"
"@next/swc-darwin-x64": "npm:15.0.0" "@next/swc-darwin-x64": "npm:15.0.1"
"@next/swc-linux-arm64-gnu": "npm:15.0.0" "@next/swc-linux-arm64-gnu": "npm:15.0.1"
"@next/swc-linux-arm64-musl": "npm:15.0.0" "@next/swc-linux-arm64-musl": "npm:15.0.1"
"@next/swc-linux-x64-gnu": "npm:15.0.0" "@next/swc-linux-x64-gnu": "npm:15.0.1"
"@next/swc-linux-x64-musl": "npm:15.0.0" "@next/swc-linux-x64-musl": "npm:15.0.1"
"@next/swc-win32-arm64-msvc": "npm:15.0.0" "@next/swc-win32-arm64-msvc": "npm:15.0.1"
"@next/swc-win32-x64-msvc": "npm:15.0.0" "@next/swc-win32-x64-msvc": "npm:15.0.1"
"@swc/counter": "npm:0.1.3" "@swc/counter": "npm:0.1.3"
"@swc/helpers": "npm:0.5.13" "@swc/helpers": "npm:0.5.13"
busboy: "npm:1.6.0" busboy: "npm:1.6.0"
@ -5207,8 +5207,8 @@ __metadata:
"@opentelemetry/api": ^1.1.0 "@opentelemetry/api": ^1.1.0
"@playwright/test": ^1.41.2 "@playwright/test": ^1.41.2
babel-plugin-react-compiler: "*" babel-plugin-react-compiler: "*"
react: ^18.2.0 || 19.0.0-rc-65a56d0e-20241020 react: ^18.2.0 || 19.0.0-rc-69d4b800-20241021
react-dom: ^18.2.0 || 19.0.0-rc-65a56d0e-20241020 react-dom: ^18.2.0 || 19.0.0-rc-69d4b800-20241021
sass: ^1.3.0 sass: ^1.3.0
dependenciesMeta: dependenciesMeta:
"@next/swc-darwin-arm64": "@next/swc-darwin-arm64":
@ -5240,7 +5240,7 @@ __metadata:
optional: true optional: true
bin: bin:
next: dist/bin/next next: dist/bin/next
checksum: 10c0/79614fb29c1806f945da4400a86028c875b6d69e532551c53458e6e20b39019b100ccdc051005a41a77eb2d7900363f2537b1117f6bcf3c4a6356eda5db8c84e checksum: 10c0/d5d18f3013b985c42fc0f67032c50300c1433ee8a41560dec99db60bc4dbd04e54e4d4a4f385a42f15a5e8465f81b5c327d780b41065235638562cdd5fe80674
languageName: node languageName: node
linkType: hard linkType: hard
@ -5872,14 +5872,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-dom@npm:19.0.0-rc-65a56d0e-20241020": "react-dom@npm:19.0.0-rc.0":
version: 19.0.0-rc-65a56d0e-20241020 version: 19.0.0-rc.0
resolution: "react-dom@npm:19.0.0-rc-65a56d0e-20241020" resolution: "react-dom@npm:19.0.0-rc.0"
dependencies: dependencies:
scheduler: "npm:0.25.0-rc-65a56d0e-20241020" scheduler: "npm:0.25.0-rc.0"
peerDependencies: peerDependencies:
react: 19.0.0-rc-65a56d0e-20241020 react: 19.0.0-rc.0
checksum: 10c0/b2c7f4e641c8b87cc799ab95abd50d8c4cf8dae200a58dd468f56852730d6b131f6e115d06ed9ef3ed5d701282de84cb19e7980d9a7170dfbbe5272905ce40dd checksum: 10c0/1287ef8d37d1265adfbcce421cacad40610244f9e7433dc28c04ff74bfd02eb31df7cafc3dc033efd64e88c38dcc5fc1bb6660f708513b2349505b6643124582
languageName: node languageName: node
linkType: hard linkType: hard
@ -5961,10 +5961,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react@npm:19.0.0-rc-65a56d0e-20241020": "react@npm:19.0.0-rc.0":
version: 19.0.0-rc-65a56d0e-20241020 version: 19.0.0-rc.0
resolution: "react@npm:19.0.0-rc-65a56d0e-20241020" resolution: "react@npm:19.0.0-rc.0"
checksum: 10c0/4199dd282163ad411373e8e06a5e4f2d9b7d9ab938b4ef5483d045973eebca2cdd02db02431e7b22426b429c7ff252db9cbe80f77cdbaa15a632927d4e124c75 checksum: 10c0/a3f253c5f7a9bc289526f21bc3f00f6b2cb3e754d318871edc9dbfcc5df51b3d00024f023d64f8b0d7bd7788a5b3de719ed3cee8e3dc876d5b8af009068262ba
languageName: node languageName: node
linkType: hard linkType: hard
@ -6175,10 +6175,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"scheduler@npm:0.25.0-rc-65a56d0e-20241020": "scheduler@npm:0.25.0-rc.0":
version: 0.25.0-rc-65a56d0e-20241020 version: 0.25.0-rc.0
resolution: "scheduler@npm:0.25.0-rc-65a56d0e-20241020" resolution: "scheduler@npm:0.25.0-rc.0"
checksum: 10c0/0af8bef9b23d26f6d8929ef3eb3c78ac3af8edbd1a54d522c2bbd8da236f3639ab2201a8f2612bf349b1e8f5ace5816f51d751f29f97d390de707670f01ed816 checksum: 10c0/53733bc6e3b8bc66213147121795b011583efe7181f22858b878dea950ca9cca77d90729aca5ed8002f452ecad7f8ac7fdf82ad90447a7eb440b98cb392d7781
languageName: node languageName: node
linkType: hard linkType: hard
@ -6802,7 +6802,7 @@ __metadata:
resolution: "tasko@workspace:." resolution: "tasko@workspace:."
dependencies: dependencies:
"@builder.io/sdk-react": "npm:^2.0.21" "@builder.io/sdk-react": "npm:^2.0.21"
"@clerk/nextjs": "npm:^5.7.5" "@clerk/nextjs": "npm:^6.0.1"
"@eslint/eslintrc": "npm:^3.1.0" "@eslint/eslintrc": "npm:^3.1.0"
"@eslint/js": "npm:^9.13.0" "@eslint/js": "npm:^9.13.0"
"@hello-pangea/dnd": "npm:^17.0.0" "@hello-pangea/dnd": "npm:^17.0.0"
@ -6821,6 +6821,7 @@ __metadata:
"@radix-ui/react-separator": "npm:^1.0.3" "@radix-ui/react-separator": "npm:^1.0.3"
"@radix-ui/react-slot": "npm:^1.1.0" "@radix-ui/react-slot": "npm:^1.1.0"
"@radix-ui/react-tooltip": "npm:^1.1.3" "@radix-ui/react-tooltip": "npm:^1.1.3"
"@radix-ui/react-visually-hidden": "npm:^1.1.0"
"@tanstack/react-query": "npm:^5.59.15" "@tanstack/react-query": "npm:^5.59.15"
"@types/dompurify": "npm:^3" "@types/dompurify": "npm:^3"
"@types/lodash": "npm:^4.17.12" "@types/lodash": "npm:^4.17.12"
@ -6844,14 +6845,14 @@ __metadata:
eslint-plugin-react-compiler: "npm:0.0.0-experimental-7670337-20240918" eslint-plugin-react-compiler: "npm:0.0.0-experimental-7670337-20240918"
lodash: "npm:^4.17.21" lodash: "npm:^4.17.21"
lucide-react: "npm:^0.453.0" lucide-react: "npm:^0.453.0"
next: "npm:15.0.0" next: "npm:^15.0.1"
postcss: "npm:^8.4.47" postcss: "npm:^8.4.47"
prettier: "npm:^3.3.3" prettier: "npm:^3.3.3"
prettier-plugin-tailwindcss: "npm:^0.6.8" prettier-plugin-tailwindcss: "npm:^0.6.8"
prisma: "npm:^5.21.1" prisma: "npm:^5.21.1"
react: "npm:19.0.0-rc-65a56d0e-20241020" react: "npm:19.0.0-rc.0"
react-day-picker: "npm:^9.1.3" react-day-picker: "npm:^9.1.3"
react-dom: "npm:19.0.0-rc-65a56d0e-20241020" react-dom: "npm:19.0.0-rc.0"
sharp: "npm:^0.33.5" sharp: "npm:^0.33.5"
sonner: "npm:^1.5.0" sonner: "npm:^1.5.0"
stripe: "npm:^17.2.1" stripe: "npm:^17.2.1"