diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 1aeec28e..1bce8244 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -26,6 +26,8 @@ "@sentry/nextjs": "^7.16.0", "@solrock/prisma": "workspace:*", "@tabler/icons": "^1.108.0", + "@tanstack/react-query": "^4", + "@tanstack/react-virtual": "3.0.0-beta.32", "@trpc/client": "^10", "@trpc/next": "^10", "@trpc/react-query": "^10", @@ -41,7 +43,6 @@ "pusher-js": "^8.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "@tanstack/react-query": "^4", "react-tsparticles": "^2.1.3", "superjson": "^1.9.1", "tabler-icons-react": "^1.52.0", diff --git a/apps/frontend/src/components/MediaControls.tsx b/apps/frontend/src/components/MediaControls.tsx index 49545d59..59c21700 100644 --- a/apps/frontend/src/components/MediaControls.tsx +++ b/apps/frontend/src/components/MediaControls.tsx @@ -1,18 +1,20 @@ // mmattDonk 2023 // https://mmattDonk.com -import { Button, Collapse, Container, Group, Space, Stack, Table } from '@mantine/core'; +import { Button, Container, Group, Stack } from '@mantine/core'; import { showNotification } from '@mantine/notifications'; +import { useVirtualizer } from '@tanstack/react-virtual'; import { signIn } from 'next-auth/react'; -import { useState } from 'react'; -import { Rotate } from 'tabler-icons-react'; +import { useRef, useState } from 'react'; +import { Refresh } from 'tabler-icons-react'; import { trpc } from '../utils/trpc'; import LoadingPage, { LoadingSpinner } from './Loading'; export default function MediaControls() { - const ttsMutation = trpc.tts.retriggerTts.useMutation(); + const parentRef = useRef(null); - const [showTable, setShowTable] = useState(false); + const ttsMutation = trpc.tts.retriggerTts.useMutation(); + const skipMutation = trpc.tts.skipTts.useMutation(); const { data: session, isLoading: isSessionLoading } = trpc.auth.getSession.useQuery(); const { data: userData, isLoading } = trpc.user.getUser.useQuery(session?.user?.name ?? ''); @@ -22,7 +24,11 @@ export default function MediaControls() { const [skipMessage, setSkipMessage] = useState(''); - const skipMutation = trpc.tts.skipTts.useMutation(); + const rowVirtualizer = useVirtualizer({ + count: ttsMessages?.messages?.length ?? 0, + getScrollElement: () => parentRef.current, + estimateSize: () => 50, + }); const skipTts = async (e: any) => { e.preventDefault(); @@ -104,51 +110,56 @@ export default function MediaControls() { )} - - - - - {ttsMessages?.messages?.length ?? 0 > 0 ? ( - - - - - - - - {ttsMessages?.messages?.map((message: any, i: number) => ( - - - - - + {ttsMessages?.messages?.length ?? 0 > 0 ? ( + <> +

Recent Messages

+
+
+ {rowVirtualizer.getVirtualItems().map((virtualItem) => ( +
+
+

{ttsMessages?.messages[virtualItem.index].message}

+ +
+
))} -
-
ReplayMessageCreated At
-
- -
-
-

- {message.message} -

-
-

- {new Date(message.createdAt).toLocaleDateString()} at {new Date(message.createdAt).toLocaleTimeString()} -

-
- ) : ( -

No recent TTS messages

- )} -
+ + + + ) : ( +

No recent TTS messages

+ )} ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 828df5d4..8a2088cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,7 @@ importers: '@solrock/prisma': workspace:* '@tabler/icons': ^1.108.0 '@tanstack/react-query': ^4 + '@tanstack/react-virtual': 3.0.0-beta.32 '@trpc/client': ^10 '@trpc/next': ^10 '@trpc/react-query': ^10 @@ -84,7 +85,7 @@ importers: typescript: 4.9.4 zod: ^3.17.3 dependencies: - '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/react': 11.10.5_kzbn2opkn2327fwg5yzwzya5o4 '@emotion/server': 11.10.0 '@mantine/carousel': 5.7.2_zimjonu6ffhex5v7nzzrnzxoxi '@mantine/core': 5.7.2_jwtrw7uhneijps77ybslf2t5ja @@ -93,20 +94,21 @@ importers: '@mantine/next': 5.7.2_gwjfpevgdz35a6gaooo7tcafza '@mantine/notifications': 5.7.2_gpb23uvyv4tvmpz42jjjg2mwmq '@mantine/nprogress': 5.7.2_gpb23uvyv4tvmpz42jjjg2mwmq - '@next-auth/prisma-adapter': 1.0.5_7ftldj7ywnejbxqzjpmpa7nbui + '@next-auth/prisma-adapter': 1.0.5_next-auth@4.16.4 '@sentry/nextjs': 7.19.0_next@13.0.3+react@18.2.0 '@solrock/prisma': link:../../packages/prisma '@tabler/icons': 1.111.0_biqbaboplfbrettd7655fr4n2y '@tanstack/react-query': 4.19.1_biqbaboplfbrettd7655fr4n2y + '@tanstack/react-virtual': 3.0.0-beta.32_react@18.2.0 '@trpc/client': 10.4.3_@trpc+server@10.4.3 '@trpc/next': 10.4.3_2g5burnrrrzvqsw6ll7m5bb4na '@trpc/react-query': 10.4.3_x72ucuwg27nhluiflrpycjcdya '@trpc/server': 10.4.3 '@vercel/analytics': 0.1.4_react@18.2.0 - embla-carousel-autoplay: 7.0.5_embla-carousel@7.0.5 + embla-carousel-autoplay: 7.0.5 embla-carousel-react: 7.0.5_react@18.2.0 framer-motion: 8.0.1_biqbaboplfbrettd7655fr4n2y - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y next-auth: 4.16.4_ogpkrxaz2lg6nectum6dl66tn4 next-intl: 2.9.1_next@13.0.3+react@18.2.0 pusher: 5.1.1-beta @@ -145,14 +147,6 @@ importers: packages: - /@ampproject/remapping/2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.17 - dev: false - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -160,77 +154,6 @@ packages: '@babel/highlight': 7.18.6 dev: false - /@babel/compat-data/7.20.10: - resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/core/7.20.7: - resolution: {integrity: sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7 - '@babel/helper-module-transforms': 7.20.11 - '@babel/helpers': 7.20.7 - '@babel/parser': 7.20.7 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.10 - '@babel/types': 7.20.7 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/generator/7.20.7: - resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - dev: false - - /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.7: - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.20.10 - '@babel/core': 7.20.7 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.0 - dev: false - - /@babel/helper-environment-visitor/7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-function-name/7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - dev: false - - /@babel/helper-hoist-variables/7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -238,41 +161,11 @@ packages: '@babel/types': 7.20.2 dev: false - /@babel/helper-module-transforms/7.20.11: - resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.10 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-plugin-utils/7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} dev: false - /@babel/helper-simple-access/7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - - /@babel/helper-split-export-declaration/7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.7 - dev: false - /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} @@ -283,22 +176,6 @@ packages: engines: {node: '>=6.9.0'} dev: false - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helpers/7.20.7: - resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.20.10 - '@babel/types': 7.20.7 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -308,21 +185,12 @@ packages: js-tokens: 4.0.0 dev: false - /@babel/parser/7.20.7: - resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.20.7 - dev: false - - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.7: + /@babel/plugin-syntax-jsx/7.18.6: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.7 '@babel/helper-plugin-utils': 7.20.2 dev: false @@ -340,33 +208,6 @@ packages: dependencies: regenerator-runtime: 0.13.10 - /@babel/template/7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.7 - '@babel/types': 7.20.7 - dev: false - - /@babel/traverse/7.20.10: - resolution: {integrity: sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.7 - '@babel/types': 7.20.7 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/types/7.20.2: resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} engines: {node: '>=6.9.0'} @@ -376,15 +217,6 @@ packages: to-fast-properties: 2.0.0 dev: false - /@babel/types/7.20.7: - resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: false - /@edge-runtime/format/1.1.0: resolution: {integrity: sha512-MkLDDtPhXZIMx83NykdFmOpF7gVWIdd6GBHYb8V/E+PKWvD2pK/qWx9B30oN1iDJ2XBm0SGDjz02S8nDHI9lMQ==} dev: true @@ -399,14 +231,13 @@ packages: '@edge-runtime/primitives': 2.0.0 dev: true - /@emotion/babel-plugin/11.10.5_@babel+core@7.20.7: + /@emotion/babel-plugin/11.10.5: resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.20.7 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.7 + '@babel/plugin-syntax-jsx': 7.18.6 '@babel/runtime': 7.20.1 '@emotion/hash': 0.9.0 '@emotion/memoize': 0.8.0 @@ -450,7 +281,7 @@ packages: resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} dev: false - /@emotion/react/11.10.5_3grbeiqrb6djg67fiejiqngkdi: + /@emotion/react/11.10.5_kzbn2opkn2327fwg5yzwzya5o4: resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} peerDependencies: '@babel/core': ^7.0.0 @@ -462,9 +293,8 @@ packages: '@types/react': optional: true dependencies: - '@babel/core': 7.20.7 '@babel/runtime': 7.20.1 - '@emotion/babel-plugin': 11.10.5_@babel+core@7.20.7 + '@emotion/babel-plugin': 11.10.5 '@emotion/cache': 11.10.5 '@emotion/serialize': 1.1.1 '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 @@ -664,44 +494,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@jridgewell/gen-mapping/0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: false - - /@jridgewell/gen-mapping/0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 - dev: false - - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: false - - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: false - /@mantine/carousel/5.7.2_zimjonu6ffhex5v7nzzrnzxoxi: resolution: {integrity: sha512-nca4GhYvJZrcEQihwJNPFiMwHKJewRCE2lNpXqqksYIZkjxJISV+Kb3/HVJzEn2NDO/zlYG6U3Pt1weir7fG8Q==} peerDependencies: @@ -764,7 +556,7 @@ packages: dependencies: '@mantine/ssr': 5.7.2_vavbdtuajfyku5chqvt5ands7q '@mantine/styles': 5.7.2_sogmqz4enknxtkxk3k5s6bqwnq - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 transitivePeerDependencies: @@ -811,7 +603,7 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/react': 11.10.5_kzbn2opkn2327fwg5yzwzya5o4 '@emotion/server': 11.10.0 '@mantine/styles': 5.7.2_sogmqz4enknxtkxk3k5s6bqwnq html-react-parser: 1.4.12_react@18.2.0 @@ -826,7 +618,7 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@emotion/react': 11.10.5_3grbeiqrb6djg67fiejiqngkdi + '@emotion/react': 11.10.5_kzbn2opkn2327fwg5yzwzya5o4 clsx: 1.1.1 csstype: 3.0.9 react: 18.2.0 @@ -906,13 +698,12 @@ packages: tslib: 2.4.1 dev: false - /@next-auth/prisma-adapter/1.0.5_7ftldj7ywnejbxqzjpmpa7nbui: + /@next-auth/prisma-adapter/1.0.5_next-auth@4.16.4: resolution: {integrity: sha512-VqMS11IxPXrPGXw6Oul6jcyS/n8GLOWzRMrPr3EMdtD6eOalM6zz05j08PcNiis8QzkfuYnCv49OvufTuaEwYQ==} peerDependencies: '@prisma/client': '>=2.26.0 || >=3' next-auth: ^4 dependencies: - '@prisma/client': 4.8.0 next-auth: 4.16.4_ogpkrxaz2lg6nectum6dl66tn4 dev: false @@ -1080,19 +871,6 @@ packages: tslib: 2.4.1 dev: true - /@prisma/client/4.8.0: - resolution: {integrity: sha512-Y1riB0p2W52kh3zgssP/YAhln3RjBFcJy3uwEiyjmU+TQYh6QTZDRFBo3JtBWuq2FyMOl1Rye8jxzUP+n0l5Cg==} - engines: {node: '>=14.17'} - requiresBuild: true - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: - optional: true - dependencies: - '@prisma/engines-version': 4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe - dev: false - /@prisma/client/4.8.1_prisma@4.8.1: resolution: {integrity: sha512-d4xhZhETmeXK/yZ7K0KcVOzEfI5YKGGEr4F5SBV04/MU4ncN/HcE28sy3e4Yt8UFW0ZuImKFQJE+9rWt9WbGSQ==} engines: {node: '>=14.17'} @@ -1331,7 +1109,7 @@ packages: '@sentry/utils': 7.19.0 '@sentry/webpack-plugin': 1.20.0 chalk: 3.0.0 - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y react: 18.2.0 rollup: 2.78.0 tslib: 1.14.1 @@ -1458,6 +1236,19 @@ packages: use-sync-external-store: 1.2.0_react@18.2.0 dev: false + /@tanstack/react-virtual/3.0.0-beta.32_react@18.2.0: + resolution: {integrity: sha512-wQh/TKsHOTIbGX/ZqsTdsuRoeFb01D25WU8Bdm3E+SShvExHfpCJCcPSALx7ZcK7V98HAb1TlOAqN7H2jrX5Og==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@tanstack/virtual-core': 3.0.0-beta.32 + react: 18.2.0 + dev: false + + /@tanstack/virtual-core/3.0.0-beta.32: + resolution: {integrity: sha512-nqIvaLNKGC13+eDmMJ5LceOlpJrMuNEjoNQXCaR53oO6QPhyNf1lGNa155wNkARVcde6v5fH765wsSCHKn9oow==} + dev: false + /@trpc/client/10.4.3_@trpc+server@10.4.3: resolution: {integrity: sha512-VMdyLHr6PG2FlMxnbPt/6jniDBxv3Ys1hFhk0AriFDD9h4Lg9fznwGn5RI1eV5RCOAoCQ/+ZwPMSKOMBhiycTw==} peerDependencies: @@ -1481,7 +1272,7 @@ packages: '@trpc/client': 10.4.3_@trpc+server@10.4.3 '@trpc/react-query': 10.4.3_x72ucuwg27nhluiflrpycjcdya '@trpc/server': 10.4.3 - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-ssr-prepass: 1.5.0_react@18.2.0 @@ -2076,17 +1867,6 @@ packages: fill-range: 7.0.1 dev: true - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001431 - electron-to-chromium: 1.4.284 - node-releases: 2.0.8 - update-browserslist-db: 1.0.10_browserslist@4.21.4 - dev: false - /buffer-from/0.1.2: resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} dev: false @@ -2545,16 +2325,10 @@ packages: time-span: 4.0.0 dev: true - /electron-to-chromium/1.4.284: - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} - dev: false - - /embla-carousel-autoplay/7.0.5_embla-carousel@7.0.5: + /embla-carousel-autoplay/7.0.5: resolution: {integrity: sha512-3tvlhJuBvyj99k/SBIHTZ1dNdAVjK0LOH1NFXbV5GCaaeyENHt1Uv/h5C2+fHdMGLovUs5PeuwCQL1LFnjz/xw==} peerDependencies: embla-carousel: 7.0.5 - dependencies: - embla-carousel: 7.0.5 dev: false /embla-carousel-react/7.0.5_react@18.2.0: @@ -2865,11 +2639,6 @@ packages: esbuild-windows-arm64: 0.14.47 dev: true - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: false - /escape-goat/2.1.1: resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} @@ -2898,7 +2667,7 @@ packages: eslint: 8.31.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 3.5.2_ol7jqilc3wemtdbq3nzhywgxq4 - eslint-plugin-import: 2.26.0_eslint@8.31.0 + eslint-plugin-import: 2.26.0_cyazhkcjevaa2emdgqvngug52e eslint-plugin-jsx-a11y: 6.6.1_eslint@8.31.0 eslint-plugin-react: 7.31.10_eslint@8.31.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.31.0 @@ -2927,7 +2696,7 @@ packages: debug: 4.3.4 enhanced-resolve: 5.12.0 eslint: 8.31.0 - eslint-plugin-import: 2.26.0_eslint@8.31.0 + eslint-plugin-import: 2.26.0_cyazhkcjevaa2emdgqvngug52e get-tsconfig: 4.2.0 globby: 13.1.2 is-core-module: 2.11.0 @@ -2937,7 +2706,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_rahvyjeqqlq6ogimp3cp7kgkfq: + /eslint-module-utils/2.7.4_furk3ivrd3jfmvafdbz5lzyxaq: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -2958,14 +2727,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: + '@typescript-eslint/parser': 5.42.1_iukboom6ndih5an6iafl45j2fe debug: 3.2.7 eslint: 8.31.0 eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2_ol7jqilc3wemtdbq3nzhywgxq4 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.26.0_eslint@8.31.0: + /eslint-plugin-import/2.26.0_cyazhkcjevaa2emdgqvngug52e: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -2975,13 +2746,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: + '@typescript-eslint/parser': 5.42.1_iukboom6ndih5an6iafl45j2fe array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.31.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_rahvyjeqqlq6ogimp3cp7kgkfq + eslint-module-utils: 2.7.4_furk3ivrd3jfmvafdbz5lzyxaq has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -3436,11 +3208,6 @@ packages: wide-align: 1.1.5 dev: true - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: false - /get-intrinsic/1.1.3: resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} dependencies: @@ -3529,11 +3296,6 @@ packages: ini: 2.0.0 dev: true - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false - /globals/13.19.0: resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} engines: {node: '>=8'} @@ -4036,12 +3798,6 @@ packages: argparse: 2.0.1 dev: true - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: false - /json-buffer/3.0.0: resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: true @@ -4075,12 +3831,6 @@ packages: minimist: 1.2.7 dev: true - /json5/2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - /jsx-ast-utils/3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} @@ -4180,12 +3930,6 @@ packages: engines: {node: '>=8'} dev: true - /lru-cache/5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: false - /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -4327,7 +4071,7 @@ packages: '@panva/hkdf': 1.0.2 cookie: 0.5.0 jose: 4.11.0 - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y oauth: 0.9.15 openid-client: 5.3.0 preact: 10.11.2 @@ -4344,12 +4088,12 @@ packages: next: ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - next: 13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq + next: 13.0.3_biqbaboplfbrettd7655fr4n2y react: 18.2.0 use-intl: 2.9.1_react@18.2.0 dev: false - /next/13.0.3_7xlrwlvvs7cv2obrs6a5y6oxxq: + /next/13.0.3_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-rFQeepcenRxKzeKlh1CsmEnxsJwhIERtbUjmYnKZyDInZsU06lvaGw5DT44rlNp1Rv2MT/e9vffZ8vK+ytwXHA==} engines: {node: '>=14.6.0'} hasBin: true @@ -4373,7 +4117,7 @@ packages: postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.1.0_dojr2aquw55jwdpbannhlirjf4 + styled-jsx: 5.1.0_react@18.2.0 use-sync-external-store: 1.2.0_react@18.2.0 optionalDependencies: '@next/swc-android-arm-eabi': 13.0.3 @@ -4424,10 +4168,6 @@ packages: hasBin: true dev: true - /node-releases/2.0.8: - resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} - dev: false - /nodemon/2.0.20: resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==} engines: {node: '>=8.10.0'} @@ -5217,6 +4957,7 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + dev: true /semver/7.0.0: resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} @@ -5443,7 +5184,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-jsx/5.1.0_dojr2aquw55jwdpbannhlirjf4: + /styled-jsx/5.1.0_react@18.2.0: resolution: {integrity: sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -5456,7 +5197,6 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.20.7 client-only: 0.0.1 react: 18.2.0 dev: false @@ -6106,17 +5846,6 @@ packages: engines: {node: '>= 0.8'} dev: false - /update-browserslist-db/1.0.10_browserslist@4.21.4: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: false - /update-notifier/5.1.0: resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} engines: {node: '>=10'} @@ -6319,10 +6048,6 @@ packages: object-keys: 0.4.0 dev: false - /yallist/3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false - /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}