diff --git a/.env.example b/.env.example index dfe693bf..ad7d73db 100644 --- a/.env.example +++ b/.env.example @@ -15,3 +15,11 @@ DB_PASSWORD='' # node -e 'console.log(require("crypto").randomBytes(50).toString("base64"));' # @see https://next-auth.js.org/configuration/options#secret AUTH_SECRET='supersecret' + +# RabbitMQ +# This env variable will connect to rabbitmq instance +AMQP_URL="amqp://localhost" + +# API Endpoint +# This env variable will tell the vote processor where is the trpc endpoint +PROCESSOR_API_URL="http://localhost:3000/api/trpc" diff --git a/apps/auth-proxy/.env.example b/apps/auth-proxy/.env.example deleted file mode 100644 index bdb4d554..00000000 --- a/apps/auth-proxy/.env.example +++ /dev/null @@ -1,7 +0,0 @@ - -AUTH_SECRET="" -AUTH_DISCORD_ID="" -AUTH_DISCORD_SECRET="" -AUTH_REDIRECT_PROXY_URL="" - -NITRO_PRESET="vercel_edge" \ No newline at end of file diff --git a/apps/auth-proxy/README.md b/apps/auth-proxy/README.md deleted file mode 100644 index d8e48587..00000000 --- a/apps/auth-proxy/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Auth Proxy - -This is a simple proxy server that enables OAuth authentication for preview environments. - -## Setup - -Deploy it somewhere (Vercel is a one-click, zero-config option) and set the following environment variables: - -- `AUTH_DISCORD_ID` - The Discord OAuth client ID -- `AUTH_DISCORD_SECRET` - The Discord OAuth client secret -- `AUTH_REDIRECT_PROXY_URL` - The URL of this proxy server -- `AUTH_SECRET` - Your secret - -Make sure the `AUTH_SECRET` and `AUTH_REDIRECT_PROXY_URL` match the values set for the main application's deployment for preview environments, and that you're using the same OAuth credentials for the proxy and the application's preview environment. -`AUTH_REDIRECT_PROXY_URL` should only be set for the main application's preview environment. Do not set it for the production environment. -The lines below shows what values should match eachother in both deployments. - -![Environment variables setup](https://github.com/t3-oss/create-t3-turbo/assets/51714798/5fadd3f5-f705-459a-82ab-559a3df881d0) - -For providers that require an origin and a redirect URL, set them to `{AUTH_REDIRECT_PROXY_URL}` and `{AUTH_REDIRECT_PROXY_URL}/callback/{provider}` accordingly. - -![Google credentials setup](https://github.com/ahkhanjani/create-t3-turbo/assets/72540492/eaa88685-6fc2-4c23-b7ac-737eb172fa0e) diff --git a/apps/auth-proxy/eslint.config.js b/apps/auth-proxy/eslint.config.js deleted file mode 100644 index 193bddcd..00000000 --- a/apps/auth-proxy/eslint.config.js +++ /dev/null @@ -1,9 +0,0 @@ -import baseConfig from "@sora-vp/eslint-config/base"; - -/** @type {import('typescript-eslint').Config} */ -export default [ - { - ignores: [".nitro/**", ".output/**"], - }, - ...baseConfig, -]; diff --git a/apps/auth-proxy/package.json b/apps/auth-proxy/package.json deleted file mode 100644 index ffe83d55..00000000 --- a/apps/auth-proxy/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@sora-vp/auth-proxy", - "private": true, - "type": "module", - "scripts": { - "build": "nitro build", - "clean": "rm -rf .turbo node_modules", - "dev": "nitro dev --port 3001", - "lint": "eslint", - "format": "prettier --check . --ignore-path ../../.gitignore", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "@auth/core": "0.30.0" - }, - "devDependencies": { - "@sora-vp/eslint-config": "*", - "@sora-vp/prettier-config": "*", - "@sora-vp/tailwind-config": "*", - "@sora-vp/tsconfig": "*", - "@types/node": "^20.12.9", - "eslint": "^9.2.0", - "h3": "^1.11.1", - "nitropack": "^2.9.6", - "prettier": "^3.2.5", - "typescript": "^5.4.5" - }, - "prettier": "@sora-vp/prettier-config" -} diff --git a/apps/auth-proxy/routes/[...auth].ts b/apps/auth-proxy/routes/[...auth].ts deleted file mode 100644 index f3f737be..00000000 --- a/apps/auth-proxy/routes/[...auth].ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Auth } from "@auth/core"; -import Discord from "@auth/core/providers/discord"; -import { eventHandler, toWebRequest } from "h3"; - -export default eventHandler(async (event) => - Auth(toWebRequest(event), { - secret: process.env.AUTH_SECRET, - trustHost: !!process.env.VERCEL, - redirectProxyUrl: process.env.AUTH_REDIRECT_PROXY_URL, - providers: [ - Discord({ - clientId: process.env.AUTH_DISCORD_ID, - clientSecret: process.env.AUTH_DISCORD_SECRET, - }), - ], - }), -); diff --git a/apps/auth-proxy/tsconfig.json b/apps/auth-proxy/tsconfig.json deleted file mode 100644 index cd361161..00000000 --- a/apps/auth-proxy/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "@sora-vp/tsconfig/base.json", - "include": ["routes"] -} diff --git a/apps/clients/attendance/.env.example b/apps/clients/attendance/.env.example new file mode 100644 index 00000000..18ed7ff4 --- /dev/null +++ b/apps/clients/attendance/.env.example @@ -0,0 +1,2 @@ +# This is useful for development or manual deployment +VITE_TRPC_URL="http://maybeyourlocalip/api/trpc" diff --git a/apps/clients/attendance/.gitignore b/apps/clients/attendance/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/apps/clients/attendance/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/apps/clients/attendance/README.md b/apps/clients/attendance/README.md new file mode 100644 index 00000000..bb156850 --- /dev/null +++ b/apps/clients/attendance/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: ["./tsconfig.json", "./tsconfig.node.json"], + tsconfigRootDir: __dirname, + }, +}; +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/apps/clients/attendance/eslint.config.js b/apps/clients/attendance/eslint.config.js new file mode 100644 index 00000000..b3a23984 --- /dev/null +++ b/apps/clients/attendance/eslint.config.js @@ -0,0 +1,27 @@ +// @ts-check + +import eslint from "@eslint/js"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; + +import { restrictEnvAccess } from "@sora-vp/eslint-config/base"; +import reactConfig from "@sora-vp/eslint-config/react"; + +export default tseslint.config( + { + ignores: ["dist/**"], + plugins: { + "react-refresh": reactRefresh, + }, + rules: { + "react-refresh/only-export-components": [ + "warn", + { allowConstantExport: true }, + ], + }, + }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + ...reactConfig, + ...restrictEnvAccess, +); diff --git a/apps/clients/attendance/index.html b/apps/clients/attendance/index.html new file mode 100644 index 00000000..5dc81e1d --- /dev/null +++ b/apps/clients/attendance/index.html @@ -0,0 +1,13 @@ + + + + + + + Attendance Client + + +
+ + + diff --git a/apps/clients/attendance/package.json b/apps/clients/attendance/package.json new file mode 100644 index 00000000..60fb0c76 --- /dev/null +++ b/apps/clients/attendance/package.json @@ -0,0 +1,61 @@ +{ + "name": "@sora-vp/client-attendance", + "private": true, + "version": "2.3.1", + "type": "module", + "scripts": { + "build": "yarn with-env vite build", + "clean": "git clean -xdf dist .turbo node_modules", + "dev": "yarn with-env vite", + "format": "prettier --check . --ignore-path ../../.gitignore", + "lint": "eslint", + "preview": "vite preview", + "typecheck": "tsc --noEmit", + "with-env": "dotenv -e ../../.env --" + }, + "dependencies": { + "@sora-vp/api": "*", + "@sora-vp/ui": "*", + "@sora-vp/validators": "*", + "@t3-oss/env-core": "^0.10.1", + "@tanstack/react-query": "^5.35.1", + "@trpc/client": "11.0.0-rc.364", + "@trpc/react-query": "11.0.0-rc.364", + "@trpc/server": "11.0.0-rc.364", + "framer-motion": "^11.2.12", + "jotai": "^2.8.4", + "lucide-react": "^0.399.0", + "non.geist": "^1.0.3", + "qr-scanner": "^1.4.2", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.24.0", + "superjson": "2.2.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@eslint/js": "^9.6.0", + "@fontsource-variable/noto-sans-sundanese": "^5.0.18", + "@sora-vp/eslint-config": "*", + "@sora-vp/prettier-config": "*", + "@sora-vp/tailwind-config": "*", + "@types/eslint__js": "^8.42.3", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.19", + "dotenv-cli": "^7.4.1", + "eslint": "^9.6.0", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "postcss": "^8.4.39", + "prettier": "^3.2.5", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "typescript-eslint": "^7.14.1", + "vite": "^5.3.1" + }, + "prettier": "@sora-vp/prettier-config" +} diff --git a/apps/clients/attendance/postcss.config.cjs b/apps/clients/attendance/postcss.config.cjs new file mode 100644 index 00000000..9252ed4c --- /dev/null +++ b/apps/clients/attendance/postcss.config.cjs @@ -0,0 +1,6 @@ +/* eslint-disable */ +module.exports = { + plugins: { + tailwindcss: {}, + }, +}; diff --git a/apps/clients/attendance/public/favicon.ico b/apps/clients/attendance/public/favicon.ico new file mode 100644 index 00000000..9b687487 Binary files /dev/null and b/apps/clients/attendance/public/favicon.ico differ diff --git a/apps/clients/attendance/src/App.tsx b/apps/clients/attendance/src/App.tsx new file mode 100644 index 00000000..de64c998 --- /dev/null +++ b/apps/clients/attendance/src/App.tsx @@ -0,0 +1,54 @@ +import { useState } from "react"; +import { ServerSettingProvider } from "@/context/server-setting"; +import MainPage from "@/routes/main-page"; +import { api } from "@/utils/api"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { httpBatchLink } from "@trpc/client"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import superjson from "superjson"; + +import { env } from "./env"; + +const router = createBrowserRouter([ + { + path: "/", + element: , + }, + { + path: "about", + element:
About
, + }, +]); + +const getBaseUrl = () => { + if (!env.VITE_IS_DOCKER && env.VITE_TRPC_URL) return env.VITE_TRPC_URL; + + if (import.meta.env.DEV && !env.VITE_IS_DOCKER && !env.VITE_TRPC_URL) + return "http://localhost:3000/api/trpc"; + + return "/api/trpc"; +}; + +export default function App() { + const [queryClient] = useState(() => new QueryClient()); + const [trpcClient] = useState(() => + api.createClient({ + links: [ + httpBatchLink({ + url: getBaseUrl(), + transformer: superjson, + }), + ], + }), + ); + + return ( + + + + + + + + ); +} diff --git a/apps/clients/attendance/src/components/scanner/index.tsx b/apps/clients/attendance/src/components/scanner/index.tsx new file mode 100644 index 00000000..0bbff3f0 --- /dev/null +++ b/apps/clients/attendance/src/components/scanner/index.tsx @@ -0,0 +1,170 @@ +import { useCallback, useState } from "react"; +import { api } from "@/utils/api"; +import { successTimeoutAtom } from "@/utils/atom"; +import { motion } from "framer-motion"; +import { useAtomValue } from "jotai"; +import { Loader, RotateCcw } from "lucide-react"; + +import { Button } from "@sora-vp/ui/button"; +import { Separator } from "@sora-vp/ui/separator"; + +import { MainScanner } from "./main-scanner"; + +export function ScannerComponent() { + const [isQrInvalid, setInvalidQr] = useState(false); + const successTimeout = useAtomValue(successTimeoutAtom); + + const participantAttend = api.clientConsumer.participantAttend.useMutation({ + onSuccess() { + setTimeout(() => participantAttend.reset(), successTimeout); + }, + }); + + const setIsQrValid = useCallback( + (invalid: boolean) => setInvalidQr(invalid), + [], + ); + const mutateData = useCallback( + (qrId: string) => participantAttend.mutate(qrId), + [participantAttend], + ); + + if (participantAttend.isPending) + return ( + + + +
+

+ Mengirim Data Kehadiran... +

+

+ Mohon tunggu proses ini sampai selesai. +

+
+
+ ); + + if (participantAttend.isSuccess) + return ( +
+
+ + Berhasil Mengisi Kehadiran! + + + Silahkan menuju ke komputer pemilihan dan gunakan hak suara anda. + +
+ + +
+
+              {participantAttend.data.qrId.slice(0, 5)}
+            
+
+              {participantAttend.data.qrId.slice(5, 10)}
+            
+
+              {participantAttend.data.qrId.slice(10, 15)}
+            
+
+ +
+

{participantAttend.data.name}

+ {participantAttend.data.subpart} +
+
+
+ ); + + if (isQrInvalid || participantAttend.isError) + return ( +
+
+ + Gagal Mengisi Kehadiran + + + {participantAttend.isError + ? participantAttend.error.message + : "QR Code yang anda tunjukkan tidak valid. Beritahu panitia untuk memperbaiki masalah ini."} + +
+ + +
+ ); + + return ; +} diff --git a/apps/clients/attendance/src/components/scanner/main-scanner.tsx b/apps/clients/attendance/src/components/scanner/main-scanner.tsx new file mode 100644 index 00000000..fa910d6b --- /dev/null +++ b/apps/clients/attendance/src/components/scanner/main-scanner.tsx @@ -0,0 +1,74 @@ +import { useEffect, useRef } from "react"; +import { motion } from "framer-motion"; +import QrScanner from "qr-scanner"; + +import { validateId } from "@sora-vp/id-generator"; +import { toast } from "@sora-vp/ui/toast"; + +export function MainScanner({ + setInvalidQr, + mutateData, +}: { + setInvalidQr: (invalid: boolean) => void; + mutateData: (qrId: string) => void; +}) { + const videoRef = useRef(null!); + + useEffect(() => { + const qrScanner = new QrScanner( + videoRef.current, + ({ data }) => { + if (data || data !== "") { + qrScanner.stop(); + + const isValidQr = validateId(data); + + if (!isValidQr) return setInvalidQr(true); + + mutateData(data); + } + }, + { + highlightCodeOutline: true, + highlightScanRegion: true, + onDecodeError: (error) => { + if (error instanceof Error) + toast.error("Terjadi kegagalan dalam memindai gambar QR.", { + description: `Error: ${error.message}`, + }); + }, + }, + ); + + qrScanner.start(); + + return () => { + qrScanner.destroy(); + }; + }, []); + + return ( +
+ + Mohon arahkan QR ke kotak kuning + + +
+ ); +} diff --git a/apps/clients/attendance/src/context/server-setting.tsx b/apps/clients/attendance/src/context/server-setting.tsx new file mode 100644 index 00000000..f17898f9 --- /dev/null +++ b/apps/clients/attendance/src/context/server-setting.tsx @@ -0,0 +1,182 @@ +import { createContext, useContext, useEffect, useMemo, useState } from "react"; +import { api } from "@/utils/api"; +import { motion } from "framer-motion"; +import { Loader, RotateCcw } from "lucide-react"; + +import { Button } from "@sora-vp/ui/button"; + +interface ISettingContext { + canAttend: boolean; +} + +export const ServerSettingContext = createContext( + {} as ISettingContext, +); + +export const ServerSettingProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const [errorMessage, setErrorMessage] = useState(""); + + const settingsQuery = api.clientConsumer.settings.useQuery(undefined, { + refetchInterval: 2500, + refetchIntervalInBackground: true, + }); + + useEffect(() => { + if (settingsQuery.error) setErrorMessage(settingsQuery.error.message); + }, [settingsQuery.error]); + + const propsValue = useMemo(() => { + if (!settingsQuery.data) + return { + canAttend: false, + }; + + const result = settingsQuery.data; + + const waktuMulai = result.startTime ? result.startTime.getTime() : null; + const waktuSelesai = result.endTime ? result.endTime.getTime() : null; + + const currentTime = new Date().getTime(); + + const canAttend = + (waktuMulai as number) <= currentTime && + (waktuSelesai as number) >= currentTime && + result.canAttend; + + return { + canAttend, + }; + }, [settingsQuery.data]); + + if (settingsQuery.errorUpdateCount > 0) + return ( + <> +
+
+ + Terjadi Sebuah Kesalahan + + + Tidak dapat mengambil data pengaturan ke server. Pastikan koneksi + perangkat ini sudah terhubung dengan jaringan lokal. Hubungi + pengendali server utama dan beritakan masalah ini. + +
+ + +

Pesan Error:

+
{errorMessage}
+
+ + +
+
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+ + ); + + if (settingsQuery.isLoading) + return ( + <> + +

location.reload()} + > + ᮞᮧᮛ +

+ + +
+
+ v{APP_VERSION} +
+ + ); + + return ( + + {children} +
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+
+ ); +}; + +export const useServerSetting = () => + useContext(ServerSettingContext) as ISettingContext; diff --git a/apps/clients/attendance/src/env.ts b/apps/clients/attendance/src/env.ts new file mode 100644 index 00000000..984f0a72 --- /dev/null +++ b/apps/clients/attendance/src/env.ts @@ -0,0 +1,36 @@ +import { createEnv } from "@t3-oss/env-core"; +import { z } from "zod"; + +export const env = createEnv({ + /** + * The prefix that client-side variables must have. This is enforced both at + * a type-level and at runtime. + */ + clientPrefix: "VITE_", + + client: { + VITE_IS_DOCKER: z.optional(z.coerce.boolean()), + VITE_TRPC_URL: z.optional(z.string().url()), + }, + + /** + * What object holds the environment variables at runtime. This is usually + * `process.env` or `import.meta.env`. + */ + runtimeEnv: import.meta.env, + + /** + * By default, this library will feed the environment variables directly to + * the Zod validator. + * + * This means that if you have an empty string for a value that is supposed + * to be a number (e.g. `PORT=` in a ".env" file), Zod will incorrectly flag + * it as a type mismatch violation. Additionally, if you have an empty string + * for a value that is supposed to be a string with a default value (e.g. + * `DOMAIN=` in an ".env" file), the default value will never be applied. + * + * In order to solve these issues, we recommend that all new projects + * explicitly specify this option as true. + */ + emptyStringAsUndefined: true, +}); diff --git a/apps/clients/attendance/src/index.css b/apps/clients/attendance/src/index.css new file mode 100644 index 00000000..88e338ee --- /dev/null +++ b/apps/clients/attendance/src/index.css @@ -0,0 +1,50 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 5.9% 10%; + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + } +} diff --git a/apps/clients/attendance/src/main.tsx b/apps/clients/attendance/src/main.tsx new file mode 100644 index 00000000..1b903b82 --- /dev/null +++ b/apps/clients/attendance/src/main.tsx @@ -0,0 +1,22 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; + +import App from "./App"; + +import "non.geist"; +import "non.geist/mono"; +import "@fontsource-variable/noto-sans-sundanese"; +import "./index.css"; + +import { AnimatePresence } from "framer-motion"; + +import { Toaster } from "@sora-vp/ui/toast"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + , +); diff --git a/apps/clients/attendance/src/routes/main-page.tsx b/apps/clients/attendance/src/routes/main-page.tsx new file mode 100644 index 00000000..838e1ee2 --- /dev/null +++ b/apps/clients/attendance/src/routes/main-page.tsx @@ -0,0 +1,26 @@ +import { ScannerComponent } from "@/components/scanner"; +import { useServerSetting } from "@/context/server-setting"; +import { motion } from "framer-motion"; + +export default function MainPage() { + const { canAttend } = useServerSetting(); + + if (!canAttend) + return ( +
+ + Belum Bisa Absen! + +
+ ); + + return ; +} diff --git a/apps/clients/attendance/src/routes/setting-page.tsx b/apps/clients/attendance/src/routes/setting-page.tsx new file mode 100644 index 00000000..e69de29b diff --git a/apps/clients/attendance/src/utils/api.tsx b/apps/clients/attendance/src/utils/api.tsx new file mode 100644 index 00000000..a32c466e --- /dev/null +++ b/apps/clients/attendance/src/utils/api.tsx @@ -0,0 +1,4 @@ +import type { AppRouter } from "@sora-vp/api"; +import { createTRPCReact } from "@trpc/react-query"; + +export const api = createTRPCReact(); diff --git a/apps/clients/attendance/src/utils/atom.ts b/apps/clients/attendance/src/utils/atom.ts new file mode 100644 index 00000000..7e5e32a2 --- /dev/null +++ b/apps/clients/attendance/src/utils/atom.ts @@ -0,0 +1,3 @@ +import { atomWithStorage } from "jotai/utils"; + +export const successTimeoutAtom = atomWithStorage("successTimeout", 5000); diff --git a/apps/clients/attendance/src/vite-env.d.ts b/apps/clients/attendance/src/vite-env.d.ts new file mode 100644 index 00000000..fe15b4fa --- /dev/null +++ b/apps/clients/attendance/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// + +declare const APP_VERSION: string; diff --git a/apps/clients/attendance/tailwind.config.ts b/apps/clients/attendance/tailwind.config.ts new file mode 100644 index 00000000..3ce00ccf --- /dev/null +++ b/apps/clients/attendance/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; +import { fontFamily } from "tailwindcss/defaultTheme"; + +import baseConfig from "@sora-vp/tailwind-config/web"; + +export default { + // We need to append the path to the UI package to the content array so that + // those classes are included correctly. + content: [...baseConfig.content, "../../../packages/ui/**/*.{ts,tsx}"], + presets: [baseConfig], + theme: { + extend: { + fontFamily: { + sans: ["Geist Variable", ...fontFamily.sans], + mono: ["Geist Mono Variable", ...fontFamily.mono], + sundanese: ["'Noto Sans Sundanese Variable'", "sans-serif"], + }, + }, + }, +} satisfies Config; diff --git a/apps/clients/attendance/tsconfig.app.json b/apps/clients/attendance/tsconfig.app.json new file mode 100644 index 00000000..c1adde8e --- /dev/null +++ b/apps/clients/attendance/tsconfig.app.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Absolute Import */ + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src"] +} diff --git a/apps/clients/attendance/tsconfig.json b/apps/clients/attendance/tsconfig.json new file mode 100644 index 00000000..ea9d0cd8 --- /dev/null +++ b/apps/clients/attendance/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/apps/clients/attendance/tsconfig.node.json b/apps/clients/attendance/tsconfig.node.json new file mode 100644 index 00000000..3afdd6e3 --- /dev/null +++ b/apps/clients/attendance/tsconfig.node.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true, + "noEmit": true + }, + "include": ["vite.config.ts"] +} diff --git a/apps/clients/attendance/vite.config.ts b/apps/clients/attendance/vite.config.ts new file mode 100644 index 00000000..290e1edb --- /dev/null +++ b/apps/clients/attendance/vite.config.ts @@ -0,0 +1,14 @@ +import react from "@vitejs/plugin-react-swc"; +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + define: { + // eslint-disable-next-line no-restricted-properties + APP_VERSION: JSON.stringify(process.env.npm_package_version), + }, + resolve: { + alias: [{ find: "@", replacement: "/src" }], + }, +}); diff --git a/apps/clients/chooser/.env.example b/apps/clients/chooser/.env.example new file mode 100644 index 00000000..aa8460af --- /dev/null +++ b/apps/clients/chooser/.env.example @@ -0,0 +1,5 @@ +# This is for uploads endpoint +VITE_IMAGE_RETRIEVER="http://maybeyourlocalip/api/uploads" + +# This is useful for development or manual deployment +VITE_TRPC_URL="http://maybeyourlocalip/api/trpc" diff --git a/apps/clients/chooser/.gitignore b/apps/clients/chooser/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/apps/clients/chooser/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/apps/clients/chooser/README.md b/apps/clients/chooser/README.md new file mode 100644 index 00000000..bb156850 --- /dev/null +++ b/apps/clients/chooser/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: ["./tsconfig.json", "./tsconfig.node.json"], + tsconfigRootDir: __dirname, + }, +}; +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/apps/clients/chooser/eslint.config.js b/apps/clients/chooser/eslint.config.js new file mode 100644 index 00000000..b3a23984 --- /dev/null +++ b/apps/clients/chooser/eslint.config.js @@ -0,0 +1,27 @@ +// @ts-check + +import eslint from "@eslint/js"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; + +import { restrictEnvAccess } from "@sora-vp/eslint-config/base"; +import reactConfig from "@sora-vp/eslint-config/react"; + +export default tseslint.config( + { + ignores: ["dist/**"], + plugins: { + "react-refresh": reactRefresh, + }, + rules: { + "react-refresh/only-export-components": [ + "warn", + { allowConstantExport: true }, + ], + }, + }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + ...reactConfig, + ...restrictEnvAccess, +); diff --git a/apps/clients/chooser/index.html b/apps/clients/chooser/index.html new file mode 100644 index 00000000..fad2daba --- /dev/null +++ b/apps/clients/chooser/index.html @@ -0,0 +1,13 @@ + + + + + + + Chooser Client + + +
+ + + diff --git a/apps/clients/chooser/package.json b/apps/clients/chooser/package.json new file mode 100644 index 00000000..5c9a308a --- /dev/null +++ b/apps/clients/chooser/package.json @@ -0,0 +1,61 @@ +{ + "name": "@sora-vp/client-chooser", + "private": true, + "version": "2.3.1", + "type": "module", + "scripts": { + "build": "yarn with-env vite build", + "clean": "git clean -xdf dist .turbo node_modules", + "dev": "yarn with-env vite", + "format": "prettier --check . --ignore-path ../../.gitignore", + "lint": "eslint", + "preview": "vite preview", + "typecheck": "tsc --noEmit", + "with-env": "dotenv -e ../../.env --" + }, + "dependencies": { + "@sora-vp/api": "*", + "@sora-vp/ui": "*", + "@sora-vp/validators": "*", + "@t3-oss/env-core": "^0.10.1", + "@tanstack/react-query": "^5.35.1", + "@trpc/client": "11.0.0-rc.364", + "@trpc/react-query": "11.0.0-rc.364", + "@trpc/server": "11.0.0-rc.364", + "framer-motion": "^11.2.12", + "jotai": "^2.8.4", + "lucide-react": "^0.399.0", + "non.geist": "^1.0.3", + "qr-scanner": "^1.4.2", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.24.0", + "superjson": "2.2.1", + "zod": "^3.23.8" + }, + "devDependencies": { + "@eslint/js": "^9.6.0", + "@fontsource-variable/noto-sans-sundanese": "^5.0.18", + "@sora-vp/eslint-config": "*", + "@sora-vp/prettier-config": "*", + "@sora-vp/tailwind-config": "*", + "@types/eslint__js": "^8.42.3", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.19", + "dotenv-cli": "^7.4.1", + "eslint": "^9.6.0", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "postcss": "^8.4.39", + "prettier": "^3.2.5", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "typescript-eslint": "^7.14.1", + "vite": "^5.3.1" + }, + "prettier": "@sora-vp/prettier-config" +} diff --git a/apps/clients/chooser/postcss.config.cjs b/apps/clients/chooser/postcss.config.cjs new file mode 100644 index 00000000..9252ed4c --- /dev/null +++ b/apps/clients/chooser/postcss.config.cjs @@ -0,0 +1,6 @@ +/* eslint-disable */ +module.exports = { + plugins: { + tailwindcss: {}, + }, +}; diff --git a/apps/clients/chooser/public/favicon.ico b/apps/clients/chooser/public/favicon.ico new file mode 100644 index 00000000..9b687487 Binary files /dev/null and b/apps/clients/chooser/public/favicon.ico differ diff --git a/apps/clients/chooser/src/App.tsx b/apps/clients/chooser/src/App.tsx new file mode 100644 index 00000000..923c96ee --- /dev/null +++ b/apps/clients/chooser/src/App.tsx @@ -0,0 +1,58 @@ +import { useState } from "react"; +import { ParticipantProvider } from "@/context/participant-context"; +import { ServerSettingProvider } from "@/context/server-setting"; +import MainPage from "@/routes/main-page"; +import VotePage from "@/routes/vote-page"; +import { api } from "@/utils/api"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { httpBatchLink } from "@trpc/client"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import superjson from "superjson"; + +import { env } from "./env"; + +const router = createBrowserRouter([ + { + path: "/", + element: , + }, + { + path: "vote", + element: , + }, +]); + +const getBaseUrl = () => { + if (!env.VITE_IS_DOCKER && env.VITE_TRPC_URL) return env.VITE_TRPC_URL; + + if (import.meta.env.DEV && !env.VITE_IS_DOCKER && !env.VITE_TRPC_URL) + return "http://localhost:3000/api/trpc"; + + return "/api/trpc"; +}; + +export default function App() { + const [queryClient] = useState(() => new QueryClient()); + const [trpcClient] = useState(() => + api.createClient({ + links: [ + httpBatchLink({ + url: getBaseUrl(), + transformer: superjson, + }), + ], + }), + ); + + return ( + + + + + + + + + + ); +} diff --git a/apps/clients/chooser/src/components/scanner/index.tsx b/apps/clients/chooser/src/components/scanner/index.tsx new file mode 100644 index 00000000..a4b8cdd8 --- /dev/null +++ b/apps/clients/chooser/src/components/scanner/index.tsx @@ -0,0 +1,54 @@ +import { useCallback, useState } from "react"; +import { useParticipant } from "@/context/participant-context"; +import { api } from "@/utils/api"; +import { Navigate } from "react-router-dom"; + +import { UniversalError } from "../universal-error"; +import { UniversalLoading } from "../universal-loading"; +import { MainScanner } from "./main-scanner"; + +export function ScannerComponent() { + const { qrId, setQRCode } = useParticipant(); + + const [isQrInvalid, setInvalidQr] = useState(false); + + const participantAttended = + api.clientConsumer.checkParticipantAttended.useMutation({ + onSuccess() { + setQRCode(participantAttended.variables!); + }, + }); + + const setIsQrValid = useCallback( + (invalid: boolean) => setInvalidQr(invalid), + [], + ); + const mutateData = useCallback( + (qrId: string) => participantAttended.mutate(qrId), + [participantAttended], + ); + + if (qrId) return ; + + if (participantAttended.isPending) + return ( + + ); + + if (isQrInvalid || participantAttended.isError) + return ( + + ); + + return ; +} diff --git a/apps/clients/chooser/src/components/scanner/main-scanner.tsx b/apps/clients/chooser/src/components/scanner/main-scanner.tsx new file mode 100644 index 00000000..fa910d6b --- /dev/null +++ b/apps/clients/chooser/src/components/scanner/main-scanner.tsx @@ -0,0 +1,74 @@ +import { useEffect, useRef } from "react"; +import { motion } from "framer-motion"; +import QrScanner from "qr-scanner"; + +import { validateId } from "@sora-vp/id-generator"; +import { toast } from "@sora-vp/ui/toast"; + +export function MainScanner({ + setInvalidQr, + mutateData, +}: { + setInvalidQr: (invalid: boolean) => void; + mutateData: (qrId: string) => void; +}) { + const videoRef = useRef(null!); + + useEffect(() => { + const qrScanner = new QrScanner( + videoRef.current, + ({ data }) => { + if (data || data !== "") { + qrScanner.stop(); + + const isValidQr = validateId(data); + + if (!isValidQr) return setInvalidQr(true); + + mutateData(data); + } + }, + { + highlightCodeOutline: true, + highlightScanRegion: true, + onDecodeError: (error) => { + if (error instanceof Error) + toast.error("Terjadi kegagalan dalam memindai gambar QR.", { + description: `Error: ${error.message}`, + }); + }, + }, + ); + + qrScanner.start(); + + return () => { + qrScanner.destroy(); + }; + }, []); + + return ( +
+ + Mohon arahkan QR ke kotak kuning + + +
+ ); +} diff --git a/apps/clients/chooser/src/components/universal-error.tsx b/apps/clients/chooser/src/components/universal-error.tsx new file mode 100644 index 00000000..d619afae --- /dev/null +++ b/apps/clients/chooser/src/components/universal-error.tsx @@ -0,0 +1,71 @@ +import { motion } from "framer-motion"; +import { RotateCcw } from "lucide-react"; + +import { Button } from "@sora-vp/ui/button"; + +export function UniversalError(props: { + title: string; + description: string; + errorMessage?: string; +}) { + return ( +
+
+ + {props.title} + + + {props.description} + +
+ + {props.errorMessage ? ( + +

Pesan Error:

+
{}
+
+ ) : null} + + +
+ ); +} diff --git a/apps/clients/chooser/src/components/universal-loading.tsx b/apps/clients/chooser/src/components/universal-loading.tsx new file mode 100644 index 00000000..96ceb43e --- /dev/null +++ b/apps/clients/chooser/src/components/universal-loading.tsx @@ -0,0 +1,29 @@ +import { motion } from "framer-motion"; +import { Loader } from "lucide-react"; + +export function UniversalLoading(props: { + title: string; + description: string; +}) { + return ( + + + +
+

+ {props.title} +

+

{props.description}

+
+
+ ); +} diff --git a/apps/clients/chooser/src/context/participant-context.tsx b/apps/clients/chooser/src/context/participant-context.tsx new file mode 100644 index 00000000..a66f1ccc --- /dev/null +++ b/apps/clients/chooser/src/context/participant-context.tsx @@ -0,0 +1,144 @@ +import { + createContext, + useCallback, + useContext, + useMemo, + useState, +} from "react"; +import { UniversalError } from "@/components/universal-error"; +import { api } from "@/utils/api"; +import { motion } from "framer-motion"; +import { Navigate } from "react-router-dom"; + +export interface IParticipantContext { + name: string | null; + subpart: string | null; + qrId: string | null; + setQRCode: (qr: string | null) => void; + setVotedSuccessfully: (success: boolean) => void; +} + +export const ParticipantContext = createContext( + {} as IParticipantContext, +); + +export const ParticipantProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const [qrId, setQrId] = useState(null); + const [votedSuccessfully, setVoted] = useState(false); + + const participantQuery = api.clientConsumer.getParticipantStatus.useQuery( + qrId as string, + { + refetchInterval: 2500, + enabled: !!qrId && !votedSuccessfully, + }, + ); + + const setQRCode = useCallback((qr: string | null) => setQrId(qr), []); + const setVotedSuccessfully = useCallback( + (success: boolean) => setVoted(success), + [], + ); + + const propsValue = useMemo(() => { + if (!qrId) + return { + name: null, + subpart: null, + qrId, + setQRCode, + setVotedSuccessfully, + }; + + return { + name: participantQuery.data?.name ?? null, + subpart: participantQuery.data?.subpart ?? null, + qrId, + setQRCode, + setVotedSuccessfully, + }; + }, [qrId, participantQuery.data]); + + if ( + !!qrId && + participantQuery.isFetched && + !participantQuery.data?.alreadyAttended + ) + return ( + <> + +
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+ + ); + + if ( + !!qrId && + participantQuery.isFetched && + participantQuery.data?.alreadyChoosing + ) + return ( + <> + +
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+ + ); + + return ( + + {children} + + ); +}; + +export const useParticipant = () => + useContext(ParticipantContext) as IParticipantContext; + +export const ensureQRIDExist = (Element: React.FC) => () => { + const { qrId } = useParticipant(); + + if (!qrId) return ; + + return ; +}; diff --git a/apps/clients/chooser/src/context/server-setting.tsx b/apps/clients/chooser/src/context/server-setting.tsx new file mode 100644 index 00000000..7a85b3af --- /dev/null +++ b/apps/clients/chooser/src/context/server-setting.tsx @@ -0,0 +1,134 @@ +import { createContext, useContext, useEffect, useMemo, useState } from "react"; +import { UniversalError } from "@/components/universal-error"; +import { api } from "@/utils/api"; +import { motion } from "framer-motion"; +import { Loader } from "lucide-react"; + +import { useParticipant } from "./participant-context"; + +interface ISettingContext { + canVote: boolean; +} + +export const ServerSettingContext = createContext( + {} as ISettingContext, +); + +export const ServerSettingProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const { qrId, setQRCode } = useParticipant(); + + const [errorMessage, setErrorMessage] = useState(""); + + const settingsQuery = api.clientConsumer.settings.useQuery(undefined, { + refetchInterval: 2500, + refetchIntervalInBackground: true, + }); + + useEffect(() => { + if (settingsQuery.error) setErrorMessage(settingsQuery.error.message); + }, [settingsQuery.error]); + + const propsValue = useMemo(() => { + if (!settingsQuery.data) + return { + canVote: false, + }; + + const result = settingsQuery.data; + + const waktuMulai = result.startTime ? result.startTime.getTime() : null; + const waktuSelesai = result.endTime ? result.endTime.getTime() : null; + + const currentTime = new Date().getTime(); + + const canVote = + (waktuMulai as number) <= currentTime && + (waktuSelesai as number) >= currentTime && + result.canVote; + + if (!canVote && qrId) setQRCode(null); + + return { + canVote, + }; + }, [settingsQuery.data]); + + if (settingsQuery.errorUpdateCount > 0) + return ( + <> + +
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+ + ); + + if (settingsQuery.isLoading) + return ( + <> + +

location.reload()} + > + ᮞᮧᮛ +

+ + +
+
+ v{APP_VERSION} +
+ + ); + + return ( + + {children} +
+ location.reload()} + > + ᮞᮧᮛ + +
+
+ v{APP_VERSION} +
+
+ ); +}; + +export const useServerSetting = () => + useContext(ServerSettingContext) as ISettingContext; diff --git a/apps/clients/chooser/src/env.ts b/apps/clients/chooser/src/env.ts new file mode 100644 index 00000000..ce8e24ff --- /dev/null +++ b/apps/clients/chooser/src/env.ts @@ -0,0 +1,37 @@ +import { createEnv } from "@t3-oss/env-core"; +import { z } from "zod"; + +export const env = createEnv({ + /** + * The prefix that client-side variables must have. This is enforced both at + * a type-level and at runtime. + */ + clientPrefix: "VITE_", + + client: { + VITE_IS_DOCKER: z.optional(z.coerce.boolean()), + VITE_TRPC_URL: z.optional(z.string().url()), + VITE_IMAGE_RETRIEVER: z.optional(z.string().url()), + }, + + /** + * What object holds the environment variables at runtime. This is usually + * `process.env` or `import.meta.env`. + */ + runtimeEnv: import.meta.env, + + /** + * By default, this library will feed the environment variables directly to + * the Zod validator. + * + * This means that if you have an empty string for a value that is supposed + * to be a number (e.g. `PORT=` in a ".env" file), Zod will incorrectly flag + * it as a type mismatch violation. Additionally, if you have an empty string + * for a value that is supposed to be a string with a default value (e.g. + * `DOMAIN=` in an ".env" file), the default value will never be applied. + * + * In order to solve these issues, we recommend that all new projects + * explicitly specify this option as true. + */ + emptyStringAsUndefined: true, +}); diff --git a/apps/clients/chooser/src/index.css b/apps/clients/chooser/src/index.css new file mode 100644 index 00000000..88e338ee --- /dev/null +++ b/apps/clients/chooser/src/index.css @@ -0,0 +1,50 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 5.9% 10%; + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + } +} diff --git a/apps/clients/chooser/src/main.tsx b/apps/clients/chooser/src/main.tsx new file mode 100644 index 00000000..1b903b82 --- /dev/null +++ b/apps/clients/chooser/src/main.tsx @@ -0,0 +1,22 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; + +import App from "./App"; + +import "non.geist"; +import "non.geist/mono"; +import "@fontsource-variable/noto-sans-sundanese"; +import "./index.css"; + +import { AnimatePresence } from "framer-motion"; + +import { Toaster } from "@sora-vp/ui/toast"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + , +); diff --git a/apps/clients/chooser/src/routes/main-page.tsx b/apps/clients/chooser/src/routes/main-page.tsx new file mode 100644 index 00000000..3c511709 --- /dev/null +++ b/apps/clients/chooser/src/routes/main-page.tsx @@ -0,0 +1,26 @@ +import { ScannerComponent } from "@/components/scanner"; +import { useServerSetting } from "@/context/server-setting"; +import { motion } from "framer-motion"; + +export default function MainPage() { + const { canVote } = useServerSetting(); + + if (!canVote) + return ( +
+ + Belum Bisa Memilih! + +
+ ); + + return ; +} diff --git a/apps/clients/chooser/src/routes/setting-page.tsx b/apps/clients/chooser/src/routes/setting-page.tsx new file mode 100644 index 00000000..e69de29b diff --git a/apps/clients/chooser/src/routes/vote-page.tsx b/apps/clients/chooser/src/routes/vote-page.tsx new file mode 100644 index 00000000..32cd9362 --- /dev/null +++ b/apps/clients/chooser/src/routes/vote-page.tsx @@ -0,0 +1,325 @@ +import { useCallback, useEffect, useMemo, useState } from "react"; +import { UniversalError } from "@/components/universal-error"; +import { ensureQRIDExist, useParticipant } from "@/context/participant-context"; +import { env } from "@/env"; +import { api } from "@/utils/api"; +import { successTimeoutAtom } from "@/utils/atom"; +import { motion } from "framer-motion"; +import { useAtomValue } from "jotai"; +import { Loader2 } from "lucide-react"; + +import { cn } from "@sora-vp/ui"; +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, +} from "@sora-vp/ui/alert-dialog"; +import { Button } from "@sora-vp/ui/button"; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@sora-vp/ui/card"; +import { Skeleton } from "@sora-vp/ui/skeleton"; + +const CurrentParticipantInfo = (props: { isSuccess?: boolean }) => { + const { name, subpart, qrId } = useParticipant(); + + return ( + <> +
+ {name ? ( + + {name} + + ) : null} + {subpart ? ( + + {subpart} + + ) : null} +
+
+ {qrId ? ( + + {qrId} + + ) : null} +
+ + ); +}; + +function VotePage() { + const { qrId, setQRCode, setVotedSuccessfully } = useParticipant(); + + const successTimeout = useAtomValue(successTimeoutAtom); + + const [errorMessage, setErrorMessage] = useState(""); + + // Untuk keperluan pemilihan + const [alertOpen, setAlertOpen] = useState(false); + const [currentID, setID] = useState(null); + + const candidateList = api.clientConsumer.getCandidates.useQuery(); + const upvoteCandidate = api.clientConsumer.upvote.useMutation({ + onSuccess() { + setVotedSuccessfully(true); + + setTimeout(() => { + setQRCode(null); + + setVotedSuccessfully(false); + }, successTimeout); + }, + onError() { + setAlertOpen(false); + setID(null); + }, + }); + + const candidateName = useMemo( + () => + currentID + ? candidateList.data?.find((c) => c.id === currentID)?.name + : "N/A", + [currentID, candidateList.data], + ); + + const chooseCandidate = useCallback(() => { + if (qrId && currentID) { + upvoteCandidate.mutate({ + id: currentID, + qrId, + }); + } + }, [currentID, qrId]); + + useEffect(() => { + if (candidateList.error) setErrorMessage(candidateList.error.message); + }, [candidateList.error]); + + if (upvoteCandidate.isSuccess) + return ( + <> +
+
+ + Data berhasil terekam! + + + Silahkan keluar dari bilik suara dan melakukan cap jari. + +
+
+ + + ); + + if (upvoteCandidate.isError) + return ( + <> + + + + ); + + if (candidateList.errorUpdateCount > 0) + return ( + <> + + + + ); + + return ( + <> +
+

+ Pilih Kandidat Anda. +

+ + {candidateList.isLoading ? ( +
+ {Array.from({ length: 5 }).map((_, idx) => ( + + ))} +
+ ) : ( + <> + {candidateList.data && candidateList.data?.length < 2 ? ( +
+ + Belum Ada Kandidat + + + Mohon informasikan administrator untuk menambahkan data + kandidat supaya anda dan yang lain bisa memilih. + +
+ ) : ( +
+ {candidateList.data?.map((candidate, idx) => ( + + + + + + + Kandidat Nomor {idx + 1} + + + {candidate.name} + + + + + + + ))} +
+ )} + + )} +
+ + setAlertOpen((prev) => !prev)} + > + e.preventDefault()} + className="max-w-4xl gap-7" + > + + + Sebelum anda melanjutkan... + + + Apakah anda yakin memilih kandidat atas nama{" "} + {candidateName}? + + + + setID(null)} + > + Batal + + + {upvoteCandidate.isPending ? ( + + ) : null} + Lanjutkan + + + + + + + + ); +} + +export default ensureQRIDExist(VotePage); diff --git a/apps/clients/chooser/src/utils/api.tsx b/apps/clients/chooser/src/utils/api.tsx new file mode 100644 index 00000000..a32c466e --- /dev/null +++ b/apps/clients/chooser/src/utils/api.tsx @@ -0,0 +1,4 @@ +import type { AppRouter } from "@sora-vp/api"; +import { createTRPCReact } from "@trpc/react-query"; + +export const api = createTRPCReact(); diff --git a/apps/clients/chooser/src/utils/atom.ts b/apps/clients/chooser/src/utils/atom.ts new file mode 100644 index 00000000..8303937d --- /dev/null +++ b/apps/clients/chooser/src/utils/atom.ts @@ -0,0 +1,3 @@ +import { atomWithStorage } from "jotai/utils"; + +export const successTimeoutAtom = atomWithStorage("successTimeout", 10_000); diff --git a/apps/clients/chooser/src/vite-env.d.ts b/apps/clients/chooser/src/vite-env.d.ts new file mode 100644 index 00000000..fe15b4fa --- /dev/null +++ b/apps/clients/chooser/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// + +declare const APP_VERSION: string; diff --git a/apps/clients/chooser/tailwind.config.ts b/apps/clients/chooser/tailwind.config.ts new file mode 100644 index 00000000..3ce00ccf --- /dev/null +++ b/apps/clients/chooser/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; +import { fontFamily } from "tailwindcss/defaultTheme"; + +import baseConfig from "@sora-vp/tailwind-config/web"; + +export default { + // We need to append the path to the UI package to the content array so that + // those classes are included correctly. + content: [...baseConfig.content, "../../../packages/ui/**/*.{ts,tsx}"], + presets: [baseConfig], + theme: { + extend: { + fontFamily: { + sans: ["Geist Variable", ...fontFamily.sans], + mono: ["Geist Mono Variable", ...fontFamily.mono], + sundanese: ["'Noto Sans Sundanese Variable'", "sans-serif"], + }, + }, + }, +} satisfies Config; diff --git a/apps/clients/chooser/tsconfig.app.json b/apps/clients/chooser/tsconfig.app.json new file mode 100644 index 00000000..c1adde8e --- /dev/null +++ b/apps/clients/chooser/tsconfig.app.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Absolute Import */ + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src"] +} diff --git a/apps/clients/chooser/tsconfig.json b/apps/clients/chooser/tsconfig.json new file mode 100644 index 00000000..ea9d0cd8 --- /dev/null +++ b/apps/clients/chooser/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/apps/clients/chooser/tsconfig.node.json b/apps/clients/chooser/tsconfig.node.json new file mode 100644 index 00000000..3afdd6e3 --- /dev/null +++ b/apps/clients/chooser/tsconfig.node.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true, + "noEmit": true + }, + "include": ["vite.config.ts"] +} diff --git a/apps/clients/chooser/vite.config.ts b/apps/clients/chooser/vite.config.ts new file mode 100644 index 00000000..290e1edb --- /dev/null +++ b/apps/clients/chooser/vite.config.ts @@ -0,0 +1,14 @@ +import react from "@vitejs/plugin-react-swc"; +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + define: { + // eslint-disable-next-line no-restricted-properties + APP_VERSION: JSON.stringify(process.env.npm_package_version), + }, + resolve: { + alias: [{ find: "@", replacement: "/src" }], + }, +}); diff --git a/apps/processor/.gitignore b/apps/processor/.gitignore new file mode 100644 index 00000000..96e6f0b3 --- /dev/null +++ b/apps/processor/.gitignore @@ -0,0 +1 @@ +processor.log diff --git a/apps/processor/package.json b/apps/processor/package.json index dc11a714..29c0aa10 100644 --- a/apps/processor/package.json +++ b/apps/processor/package.json @@ -6,21 +6,24 @@ "scripts": { "build": "tsup", "clean": "rm -rf .turbo node_modules", - "dev": "yarn with-env tsx src/index.ts", + "dev": "yarn with-env tsx watch src/index.ts", "lint": "eslint", "format": "prettier --check . --ignore-path ../../.gitignore", "typecheck": "tsc --noEmit", "with-env": "dotenv -e ../../.env --" }, "dependencies": { + "@sora-vp/api": "*", "@sora-vp/db": "*", "@sora-vp/id-generator": "*", + "@t3-oss/env-core": "^0.10.1", "@trpc/client": "11.0.0-rc.364", "@trpc/server": "11.0.0-rc.364", "amqplib": "^0.10.4", "pino": "^9.0.0", "pino-pretty": "^11.0.0", - "superjson": "2.2.1" + "superjson": "2.2.1", + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", @@ -30,7 +33,7 @@ "@types/amqplib": "^0", "@types/node": "^20.12.9", "dotenv-cli": "^7.4.1", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "tsup": "^8.1.0", "tsx": "^4.9.4", diff --git a/apps/processor/src/api.ts b/apps/processor/src/api.ts new file mode 100644 index 00000000..323b45ae --- /dev/null +++ b/apps/processor/src/api.ts @@ -0,0 +1,17 @@ +import type { AppRouter } from "@sora-vp/api"; +import type { inferRouterOutputs } from "@trpc/server"; +import { createTRPCProxyClient, httpLink } from "@trpc/client"; +import superjson from "superjson"; + +import { env } from "./env"; + +export const api = createTRPCProxyClient({ + links: [ + httpLink({ + url: env.PROCESSOR_API_URL, + transformer: superjson, + }), + ], +}); + +export type RouterOutputs = inferRouterOutputs; diff --git a/apps/processor/src/env.ts b/apps/processor/src/env.ts new file mode 100644 index 00000000..8dbdb832 --- /dev/null +++ b/apps/processor/src/env.ts @@ -0,0 +1,16 @@ +import { createEnv } from "@t3-oss/env-core"; +import { z } from "zod"; + +export const env = createEnv({ + clientPrefix: "", + client: {}, + + server: { + AMQP_URL: z.string().url(), + PROCESSOR_API_URL: z.string().url(), + }, + + runtimeEnv: process.env, + emptyStringAsUndefined: true, + skipValidation: !!process.env.CI || !!process.env.SKIP_ENV_VALIDATION, +}); diff --git a/apps/processor/src/index.ts b/apps/processor/src/index.ts index 3f004477..32fb559e 100644 --- a/apps/processor/src/index.ts +++ b/apps/processor/src/index.ts @@ -1 +1,229 @@ -console.log("init processor"); +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-misused-promises */ +import amqp from "amqplib"; +import { z } from "zod"; + +import { db, eq, schema, sql } from "@sora-vp/db"; +import { validateId } from "@sora-vp/id-generator"; + +import { api } from "./api"; +import { env } from "./env"; +import { logger } from "./logger"; +import { canVoteNow } from "./utils"; + +const inputValidator = z.object({ + id: z.number().positive(), + qrId: z.string().refine(validateId), +}); + +const consumeMessagesFromQueue = async () => { + try { + logger.debug(`[MQ] MQ AMQP: ${env.AMQP_URL}`); + logger.debug(`[TRPC] TRPC URL: ${env.PROCESSOR_API_URL}`); + + logger.info("[MQ] Connecting to RabbitMQ instance"); + + const connection = await amqp.connect(env.AMQP_URL); + const channel = await connection.createChannel(); + + const exchange = "vote"; + const queue = "vote_queue"; + const routingKey = "vote_rpc"; + + await channel.assertExchange(exchange, "direct", { durable: true }); + await channel.assertQueue(queue, { durable: true }); + await channel.bindQueue(queue, exchange, routingKey); + + logger.info("[MQ] Connected! Waiting for queue..."); + + await channel.consume(queue, async (msg) => { + if (!msg) { + logger.warn("Consumer has been cancelled or channel has been closed."); + return; + } + + try { + const settings = await api.clientConsumer.settings.query(); + const inVotingCondition = canVoteNow(settings); + + const inputData = await inputValidator.safeParseAsync( + JSON.parse(msg.content.toString()), + ); + + if (!inputData.success) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from( + JSON.stringify({ + success: false, + message: + "Data yang dijadikam permintaan tidak sesuai dengan standar yang ditetapkan!", + }), + ), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace(`[MQ] Isn't a valid request data`); + + return; + } + + logger.info(`[MQ] New message! QR ID: ${inputData.data.qrId}`); + + if (!inVotingCondition) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from( + JSON.stringify({ + success: false, + message: + "Tidak bisa memilih kandidat jika bukan dalam kondisi pemilihan!", + }), + ), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace( + `[MQ] Isn't a valid time yet for voting. QR ID: ${inputData.data.qrId}`, + ); + + return; + } + + await db.transaction(async (tx) => { + const participantRawQuery = await tx.execute( + sql`SELECT * FROM ${schema.participants} WHERE ${schema.participants.qrId} = ${inputData.data.qrId} FOR UPDATE`, + ); + + const participantContainer = participantRawQuery.at(0) as unknown as { + name: string; + already_attended: number; + already_choosing: number; + qr_id: string; + sub_part: string; + }[]; + + const participant = participantContainer.at(0); + + if (!participant) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from( + JSON.stringify({ + error: "Anda tidak terdaftar sebagai peserta!", + }), + ), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace( + `[MQ] Participant isn't exist. QR ID: ${inputData.data.qrId}`, + ); + + return; + } + + if (participant.already_choosing === 1) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from(JSON.stringify({ error: "Anda sudah memilih!" })), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace( + `[MQ] Participant already chosen someone. QR ID: ${inputData.data.qrId}`, + ); + + return; + } + + if (participant.already_attended !== 1) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from(JSON.stringify({ error: "Anda belum absen!" })), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace( + `[MQ] Participant isn't attended yet. QR ID: ${inputData.data.qrId}`, + ); + + return; + } + + const candidateRawQuery = await tx.execute( + sql`SELECT count(*) AS candidate_must_one FROM ${schema.candidates} WHERE ${schema.candidates.id} = ${inputData.data.id} FOR UPDATE`, + ); + + const candidateContainer = candidateRawQuery.at(0) as unknown as { + candidate_must_one: number; + }[]; + + const candidate = candidateContainer.at(0); + + if (candidate?.candidate_must_one !== 1) { + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from( + JSON.stringify({ error: "Kandidat yang dipilih tidak ada!" }), + ), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + logger.trace( + `[MQ] Candidate isn't exist. QR ID: ${inputData.data.qrId}`, + ); + + return; + } + + await tx + .update(schema.candidates) + .set({ + counter: sql`${schema.candidates.counter} + 1`, + }) + .where(eq(schema.candidates.id, inputData.data.id)); + + await tx + .update(schema.participants) + .set({ + alreadyChoosing: true, + choosingAt: new Date(), + }) + .where(eq(schema.participants.qrId, inputData.data.qrId)); + }); + + logger.info(`[MQ] Upvote! QR ID: ${inputData.data.qrId}`); + + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from(JSON.stringify({ success: true })), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + } catch (error) { + logger.error(error); + + channel.sendToQueue( + msg.properties.replyTo, + Buffer.from(JSON.stringify({ error: "Internal Server Error" })), + { correlationId: msg.properties.correlationId }, + ); + + channel.ack(msg); + } + }); + } catch (error) { + logger.error(error); + } +}; + +void consumeMessagesFromQueue(); diff --git a/apps/processor/src/logger.ts b/apps/processor/src/logger.ts new file mode 100644 index 00000000..084a2478 --- /dev/null +++ b/apps/processor/src/logger.ts @@ -0,0 +1,29 @@ +import path from "path"; +import { fileURLToPath } from "url"; +import pino from "pino"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export const logger = pino({ + transport: { + targets: [ + { + target: "pino-pretty", + level: "debug", + options: { + colorize: true, + ignore: "pid,hostname", + translateTime: "SYS:standard", + }, + }, + { + target: "pino/file", + level: "debug", + options: { + destination: path.join(__dirname, "..", "processor.log"), + }, + }, + ], + }, +}); diff --git a/apps/processor/src/utils.ts b/apps/processor/src/utils.ts new file mode 100644 index 00000000..ea5206d1 --- /dev/null +++ b/apps/processor/src/utils.ts @@ -0,0 +1,19 @@ +import type { RouterOutputs } from "./api"; + +type TSettings = RouterOutputs["clientConsumer"]["settings"]; + +export const canVoteNow = (settings: TSettings) => { + const waktuMulai = settings.startTime ? settings.startTime.getTime() : null; + const waktuSelesai = settings.endTime ? settings.endTime.getTime() : null; + + const currentTime = new Date().getTime(); + + const canVote = + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + waktuMulai! <= currentTime && + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + waktuSelesai! >= currentTime && + settings.canVote; + + return canVote; +}; diff --git a/apps/web/package.json b/apps/web/package.json index b891a310..2087c410 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -30,15 +30,15 @@ "exceljs": "^4.4.0", "geist": "^1.3.0", "js-base64": "^3.7.7", - "lucide-react": "^0.390.0", + "lucide-react": "^0.399.0", "mime-types": "^2.1.35", "next": "^14.2.3", "qrcode": "^1.5.3", - "react": "18.3.1", - "react-dom": "18.3.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", "recharts": "^2.12.7", "superjson": "2.2.1", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", @@ -48,13 +48,13 @@ "@types/mime-types": "^2", "@types/node": "^20.12.9", "@types/qrcode": "^1", - "@types/react": "^18.3.1", + "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "dotenv-cli": "^7.4.1", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "jiti": "^1.21.0", "prettier": "^3.2.5", - "tailwindcss": "^3.4.3", + "tailwindcss": "^3.4.4", "typescript": "^5.4.5" }, "prettier": "@sora-vp/prettier-config" diff --git a/apps/web/public/favicon.ico b/apps/web/public/favicon.ico index f0058b40..9b687487 100644 Binary files a/apps/web/public/favicon.ico and b/apps/web/public/favicon.ico differ diff --git a/apps/web/public/sora.png b/apps/web/public/sora.png new file mode 100644 index 00000000..f02274b5 Binary files /dev/null and b/apps/web/public/sora.png differ diff --git a/apps/web/public/t3-icon.svg b/apps/web/public/t3-icon.svg deleted file mode 100644 index e377165f..00000000 --- a/apps/web/public/t3-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index a25b5eba..b1d8f814 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -21,6 +21,7 @@ export const env = createEnv({ DB_NAME: z.string(), DB_PASSWORD: z.string(), DB_USERNAME: z.string(), + AMQP_URL: z.string().url(), }, /** diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 6783ec95..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: "3.8" -services: - db: - image: mysql:latest - cap_add: - - SYS_NICE - restart: always - environment: - - MYSQL_DATABASE=sora - - MYSQL_USER=tingyun - - MYSQL_PASSWORD=majesticfoxian - - MYSQL_ROOT_PASSWORD=sillylookingcat - ports: - - '3306:3306' - healthcheck: - test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] - timeout: 20s - retries: 10 - volumes: - - db:/var/lib/mysql - - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql - - web: - container_name: sora_web - image: rmecha/sora-baseline-web:main - restart: always - depends_on: - db: - condition: service_healthy - environment: - DB_HOST: db - DB_NAME: sora - DB_USERNAME: tingyun - DB_PASSWORD: majesticfoxian - AUTH_SECRET: sdfjsklfjiuhr83uiwrew89323oriewf - ports: - - 0.0.0.0:3000:3000 - volumes: - - web_uploads:/app/apps/web/public/uploads - -volumes: - db: - web_uploads: diff --git a/package.json b/package.json index ab72bbd7..16d78978 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,9 @@ "prettier": "@sora-vp/prettier-config", "packageManager": "yarn@4.2.2", "workspaces": [ - "apps/*", + "apps/clients/*", + "apps/processor", + "apps/web", "packages/*", "tooling/*" ] diff --git a/packages/api/package.json b/packages/api/package.json index e54d4f28..5052a461 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -27,7 +27,7 @@ "bcrypt": "^5.1.1", "mime-types": "^2.1.35", "superjson": "2.2.1", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", @@ -35,7 +35,7 @@ "@sora-vp/tsconfig": "*", "@types/bcrypt": "^5", "@types/mime-types": "^2", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/packages/api/src/root.ts b/packages/api/src/root.ts index fb280532..d123df1a 100644 --- a/packages/api/src/root.ts +++ b/packages/api/src/root.ts @@ -1,6 +1,7 @@ import { adminRouter } from "./router/admin"; import { authRouter } from "./router/auth"; import { candidateRouter } from "./router/candidate"; +import { clientRouter } from "./router/client"; import { participantRouter } from "./router/participant"; import { settingsRouter } from "./router/settings"; import { statisticRouter } from "./router/statistic"; @@ -13,6 +14,7 @@ export const appRouter = createTRPCRouter({ statistic: statisticRouter, settings: settingsRouter, participant: participantRouter, + clientConsumer: clientRouter, }); // export type definition of API diff --git a/packages/api/src/router/client.ts b/packages/api/src/router/client.ts new file mode 100644 index 00000000..61f10ea9 --- /dev/null +++ b/packages/api/src/router/client.ts @@ -0,0 +1,194 @@ +import type { TRPCRouterRecord } from "@trpc/server"; +import { TRPCError } from "@trpc/server"; +import amqp from "amqplib"; + +import { + eq, + preparedGetCandidates, + preparedGetParticipantAttended, + preparedGetParticipantStatus, + schema, + sql, +} from "@sora-vp/db"; +import settings, { canAttendNow } from "@sora-vp/settings"; +import { candidate, participant } from "@sora-vp/validators"; + +import { publicProcedure } from "../trpc"; + +const QUEUE_NAME = "vote_queue"; + +export const clientRouter = { + settings: publicProcedure.query(() => { + const { canLogin: _, ...rest } = settings.getSettings(); + + return rest; + }), + + participantAttend: publicProcedure + .input(participant.ParticipantAttendSchema) + .mutation(async ({ ctx, input }) => + ctx.db.transaction(async (tx) => { + if (!canAttendNow()) + throw new TRPCError({ + code: "UNAUTHORIZED", + message: "Belum diperbolehkan untuk melakukan absensi!", + }); + + const participantRawQuery = await tx.execute(sql` + SELECT * FROM ${schema.participants} WHERE ${schema.participants.qrId} = ${input} FOR UPDATE + `); + + const participantContainer = participantRawQuery.at(0) as unknown as { + name: string; + already_attended: boolean; + qr_id: string; + sub_part: string; + }[]; + + const participant = participantContainer.at(0); + + if (!participant) + throw new TRPCError({ + code: "NOT_FOUND", + message: "Peserta pemilihan tidak dapat ditemukan!", + }); + + if (participant.already_attended) + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Anda sudah absen!", + }); + + await tx + .update(schema.participants) + .set({ + alreadyAttended: true, + attendedAt: new Date(), + }) + .where(eq(schema.participants.qrId, input)); + + return { + name: participant.name, + qrId: participant.qr_id, + subpart: participant.sub_part, + }; + }), + ), + + checkParticipantAttended: publicProcedure + .input(participant.ParticipantAttendSchema) + .mutation(async ({ input }) => { + const participant = await preparedGetParticipantAttended.execute({ + qrId: input, + }); + + if (!participant) + throw new TRPCError({ + code: "NOT_FOUND", + message: "Peserta pemilihan tidak dapat ditemukan!", + }); + + if (participant.alreadyChoosing) + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Anda sudah memilih kandidat!", + }); + + if (!participant.alreadyAttended) + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Anda belum absen!", + }); + }), + + getParticipantStatus: publicProcedure + .input(participant.ParticipantAttendSchema) + .query(({ input }) => + preparedGetParticipantStatus.execute({ qrId: input }), + ), + + getCandidates: publicProcedure.query(() => preparedGetCandidates.execute()), + + upvote: publicProcedure + .input(candidate.ServerUpvoteCandidate) + .mutation(async ({ input }) => { + try { + // Sudah di cek oleh env.ts pada runtime next js, + // tinggal ambil value dari process.env saja + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const connection = await amqp.connect(process.env.AMQP_URL!); + + try { + const messageFromQueue: { success: boolean; message?: string } = + // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor + await new Promise(async (resolve, reject) => { + const channel = await connection.createChannel(); + + const { queue } = await channel.assertQueue(QUEUE_NAME, { + durable: true, + }); + + const payload = JSON.stringify(input); + + const response = await channel.assertQueue(""); + const correlationId = response.queue; + + // eslint-disable-next-line @typescript-eslint/no-misused-promises + const timeout = setTimeout(async () => { + await channel.deleteQueue(QUEUE_NAME); + await channel.close(); + + reject( + new Error("Timeout: No response received from consumer."), + ); + }, 30_000); + + await channel.consume( + correlationId, + (msg) => { + if (!msg) { + reject( + "Publisher has been cancelled or channel has been closed.", + ); + return; + } + + if (msg.properties.correlationId === correlationId) { + clearTimeout(timeout); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + resolve(JSON.parse(msg.content.toString())); + channel.ack(msg); + } + }, + { noAck: true }, + ); + + channel.sendToQueue(queue, Buffer.from(payload), { + correlationId, + replyTo: correlationId, + }); + }); + + if (!messageFromQueue.success) + throw new TRPCError({ + code: "BAD_REQUEST", + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + message: messageFromQueue.message!, + }); + + return { message: "Berhasil memilih kandidat!" }; + } finally { + void connection.close(); + } + } catch (e) { + console.error(e); + + throw new TRPCError({ + code: "INTERNAL_SERVER_ERROR", + message: + "Gagal memproses pemilihan, mohon hubungi panitia dan coba lagi nanti.", + }); + } + }), +} satisfies TRPCRouterRecord; diff --git a/packages/auth/package.json b/packages/auth/package.json index cf38514b..9149b3bd 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -23,16 +23,16 @@ "bcrypt": "^5.1.1", "next": "^14.2.3", "next-auth": "5.0.0-beta.18", - "react": "18.3.1", - "react-dom": "18.3.1", - "zod": "^3.23.6" + "react": "^18.3.1", + "react-dom": "^18.3.1", + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", "@sora-vp/prettier-config": "*", "@sora-vp/tsconfig": "*", "@types/bcrypt": "^5", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/packages/db-migrate/package.json b/packages/db-migrate/package.json index b91b4c1a..d3d86a19 100644 --- a/packages/db-migrate/package.json +++ b/packages/db-migrate/package.json @@ -24,7 +24,7 @@ "@t3-oss/env-core": "^0.10.1", "drizzle-orm": "^0.30.10", "mysql2": "^3.9.8", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", @@ -32,7 +32,7 @@ "@sora-vp/tsconfig": "*", "dotenv-cli": "^7.4.1", "drizzle-kit": "^0.20.18", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "tsup": "^8.1.0", "typescript": "^5.4.5" diff --git a/packages/db/package.json b/packages/db/package.json index b9527f91..f8b9ccad 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -27,7 +27,7 @@ "@t3-oss/env-core": "^0.10.1", "drizzle-orm": "^0.30.10", "mysql2": "^3.9.8", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", @@ -35,7 +35,7 @@ "@sora-vp/tsconfig": "*", "dotenv-cli": "^7.4.1", "drizzle-kit": "^0.20.18", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index 884c8b90..3d347fb2 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -79,3 +79,35 @@ export const preparedGetGraphicalData = db.query.candidates }, }) .prepare(); + +export const preparedGetParticipantAttended = db.query.participants + .findFirst({ + where: eq(schema.participants.qrId, sql.placeholder("qrId")), + + columns: { + alreadyAttended: true, + alreadyChoosing: true, + }, + }) + .prepare(); + +export const preparedGetParticipantStatus = db.query.participants + .findFirst({ + where: eq(schema.participants.qrId, sql.placeholder("qrId")), + + columns: { + name: true, + subpart: true, + alreadyAttended: true, + alreadyChoosing: true, + }, + }) + .prepare(); + +export const preparedGetCandidates = db.query.candidates + .findMany({ + columns: { + counter: false, + }, + }) + .prepare(); diff --git a/packages/id-generator/package.json b/packages/id-generator/package.json index 7125d219..155ca8e3 100644 --- a/packages/id-generator/package.json +++ b/packages/id-generator/package.json @@ -8,8 +8,8 @@ "author": "Ezra Khairan Permana", "license": "GPL-3.0", "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", "eslint-config-next": "^13.4.2", "eslint-config-prettier": "^8.8.0", "eslint-config-turbo": "^1.13.3", @@ -18,7 +18,7 @@ }, "devDependencies": { "@types/eslint": "^8.37.0", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "typescript": "^5.4.5" } } diff --git a/packages/settings/package.json b/packages/settings/package.json index 733c086d..1deb8f8d 100644 --- a/packages/settings/package.json +++ b/packages/settings/package.json @@ -22,7 +22,7 @@ "@sora-vp/eslint-config": "*", "@sora-vp/prettier-config": "*", "@sora-vp/tsconfig": "*", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/packages/ui/package.json b/packages/ui/package.json index 72ac1b69..36c334e0 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -25,6 +25,7 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.7", @@ -41,13 +42,13 @@ "@sora-vp/prettier-config": "*", "@sora-vp/tailwind-config": "*", "@sora-vp/tsconfig": "*", - "@types/react": "^18.3.1", - "eslint": "^9.2.0", + "@types/react": "^18.3.3", + "eslint": "^9.6.0", "prettier": "^3.2.5", - "react": "18.3.1", - "tailwindcss": "^3.4.3", + "react": "^18.3.1", + "tailwindcss": "^3.4.4", "typescript": "^5.4.5", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "peerDependencies": { "react": "18.3.1", diff --git a/packages/ui/src/separator.tsx b/packages/ui/src/separator.tsx new file mode 100644 index 00000000..f9a29d9d --- /dev/null +++ b/packages/ui/src/separator.tsx @@ -0,0 +1,31 @@ +"use client"; + +import * as React from "react"; +import * as SeparatorPrimitive from "@radix-ui/react-separator"; + +import { cn } from "@sora-vp/ui"; + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref, + ) => ( + + ), +); +Separator.displayName = SeparatorPrimitive.Root.displayName; + +export { Separator }; diff --git a/packages/validators/package.json b/packages/validators/package.json index a03cf95b..dad4fb24 100644 --- a/packages/validators/package.json +++ b/packages/validators/package.json @@ -21,13 +21,13 @@ "dependencies": { "@sora-vp/id-generator": "*", "js-base64": "^3.7.7", - "zod": "^3.23.6" + "zod": "^3.23.8" }, "devDependencies": { "@sora-vp/eslint-config": "*", "@sora-vp/prettier-config": "*", "@sora-vp/tsconfig": "*", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/packages/validators/src/candidate.ts b/packages/validators/src/candidate.ts index 52a48006..e22f8e22 100644 --- a/packages/validators/src/candidate.ts +++ b/packages/validators/src/candidate.ts @@ -1,6 +1,8 @@ import { Base64 } from "js-base64"; import { z } from "zod"; +import { validateId } from "@sora-vp/id-generator"; + const TwoMegs = 2_000_000; const ACCEPTED_IMAGE_TYPES = [ "image/jpeg", @@ -76,10 +78,17 @@ const ServerUpdateCandidate = baseAddAndEditForm.merge( const ServerDeleteCandidate = z.object({ id }); +const ServerUpvoteCandidate = ServerDeleteCandidate.merge( + z.object({ + qrId: z.string().refine(validateId), + }), +); + export const candidate = { AddNewCandidateSchema, ServerAddNewCandidate, UpdateCandidateSchema, ServerUpdateCandidate, ServerDeleteCandidate, + ServerUpvoteCandidate, } as const; diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index ef4a2536..06de613e 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -20,12 +20,12 @@ "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "beta", - "typescript-eslint": "^7.8.0" + "typescript-eslint": "^7.14.1" }, "devDependencies": { "@sora-vp/prettier-config": "*", "@sora-vp/tsconfig": "*", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/tooling/tailwind/package.json b/tooling/tailwind/package.json index 470e081d..b5af927c 100644 --- a/tooling/tailwind/package.json +++ b/tooling/tailwind/package.json @@ -15,15 +15,15 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "postcss": "^8.4.38", - "tailwindcss": "^3.4.3", + "postcss": "^8.4.39", + "tailwindcss": "^3.4.4", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { "@sora-vp/eslint-config": "*", "@sora-vp/prettier-config": "*", "@sora-vp/tsconfig": "*", - "eslint": "^9.2.0", + "eslint": "^9.6.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, diff --git a/turbo.json b/turbo.json index bd9667b9..aa2f09c9 100644 --- a/turbo.json +++ b/turbo.json @@ -9,6 +9,8 @@ "DB_USERNAME", "DB_PASSWORD", "AUTH_SECRET", + "AMQP_URL", + "PROCESSOR_API_URL", "CI", "SKIP_ENV_VALIDATION" ], diff --git a/yarn.lock b/yarn.lock index 19dab20f..c72f9bc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,32 +33,6 @@ __metadata: languageName: node linkType: hard -"@auth/core@npm:0.30.0": - version: 0.30.0 - resolution: "@auth/core@npm:0.30.0" - dependencies: - "@panva/hkdf": "npm:^1.1.1" - "@types/cookie": "npm:0.6.0" - cookie: "npm:0.6.0" - jose: "npm:^5.1.3" - oauth4webapi: "npm:^2.4.0" - preact: "npm:10.11.3" - preact-render-to-string: "npm:5.2.3" - peerDependencies: - "@simplewebauthn/browser": ^9.0.1 - "@simplewebauthn/server": ^9.0.2 - nodemailer: ^6.8.0 - peerDependenciesMeta: - "@simplewebauthn/browser": - optional: true - "@simplewebauthn/server": - optional: true - nodemailer: - optional: true - checksum: 10c0/caa94cc9b42c354fef57e337a844bca0c0770ac809ba1cf00b30d7fc2e383d1d42dafeb3e39b9dde92b85a9eb821cde905b662638bfe98d8e2439c6d3e64c8cd - languageName: node - linkType: hard - "@auth/core@npm:0.31.0": version: 0.31.0 resolution: "@auth/core@npm:0.31.0" @@ -339,15 +313,6 @@ __metadata: languageName: node linkType: hard -"@cloudflare/kv-asset-handler@npm:^0.3.1": - version: 0.3.2 - resolution: "@cloudflare/kv-asset-handler@npm:0.3.2" - dependencies: - mime: "npm:^3.0.0" - checksum: 10c0/90e726d18e17335469d94425bae4ca40564fadd7f7888e7b28f6b44b33f86bc0a7044f70ee7b1b8add75fb05b20c38f33f83bb913fdae2f1985cdf55da810896 - languageName: node - linkType: hard - "@cspotcode/source-map-support@npm:^0.8.0": version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" @@ -1025,16 +990,27 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.0.2": - version: 3.0.2 - resolution: "@eslint/eslintrc@npm:3.0.2" +"@eslint/config-array@npm:^0.17.0": + version: 0.17.0 + resolution: "@eslint/config-array@npm:0.17.0" + dependencies: + "@eslint/object-schema": "npm:^2.1.4" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10c0/97eb23ef0948dbc5f24884a3b75c537ca37ee2b1f27a864cd0d9189c089bc1a724dc6e1a4d9b7dd304d9f732ca02aa7916243a7715d6f1f17159d8a8c83f0c9e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -1045,14 +1021,21 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/d8c92f06bdf8e2be9fcc0eeac4a9351745174adfcc72571ef3d179101cb55e19f15f6385c2a4f4945a3ba9245802d3371208e2e1e4f00f6bcf6b8711656af85a + checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167 + languageName: node + linkType: hard + +"@eslint/js@npm:9.6.0, @eslint/js@npm:^9.6.0": + version: 9.6.0 + resolution: "@eslint/js@npm:9.6.0" + checksum: 10c0/83967a7e59f2e958c9bbb3acd0929cad00d59d927ad786ed8e0d30b07f983c6bea3af6f4ad32da32145db40b7a741a816ba339bdd8960fc7fc8231716d943b7f languageName: node linkType: hard -"@eslint/js@npm:9.2.0": - version: 9.2.0 - resolution: "@eslint/js@npm:9.2.0" - checksum: 10c0/89632466d329d9dd68c6ec24290e407f0950ca8c4b7f3750b82457daa7f6233799ccbc956cd84231f9544efbefddd69833ee82658883ca673cfca9e4b8e0713a +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda languageName: node linkType: hard @@ -1085,13 +1068,6 @@ __metadata: languageName: node linkType: hard -"@fastify/busboy@npm:^2.0.0": - version: 2.1.1 - resolution: "@fastify/busboy@npm:2.1.1" - checksum: 10c0/6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 - languageName: node - linkType: hard - "@floating-ui/core@npm:^1.0.0": version: 1.6.1 resolution: "@floating-ui/core@npm:1.6.1" @@ -1130,6 +1106,13 @@ __metadata: languageName: node linkType: hard +"@fontsource-variable/noto-sans-sundanese@npm:^5.0.18": + version: 5.0.18 + resolution: "@fontsource-variable/noto-sans-sundanese@npm:5.0.18" + checksum: 10c0/3cdc6ee4524d8c53a94f8828731268b9d0bbff6934890617400b66fe0ced8f96bc11b28ab482959244c9e0245ba84ada1a9e595fb8ed7b7b9b681840942641f7 + languageName: node + linkType: hard + "@hono/node-server@npm:^1.9.0": version: 1.11.1 resolution: "@hono/node-server@npm:1.11.1" @@ -1156,17 +1139,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.3" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1174,17 +1146,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c - languageName: node - linkType: hard - -"@humanwhocodes/retry@npm:^0.2.3": - version: 0.2.4 - resolution: "@humanwhocodes/retry@npm:0.2.4" - checksum: 10c0/d0e3fe9c353f97fea6a9d0a4022b0f8813d68b646c0fa99718ec703b085fd66dd84154d947670291914bc1ab2d1fe77f0093d99d3a5fe9f56eef65360e7c6c86 +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6 languageName: node linkType: hard @@ -1208,13 +1173,6 @@ __metadata: languageName: node linkType: hard -"@ioredis/commands@npm:^1.1.1": - version: 1.2.0 - resolution: "@ioredis/commands@npm:1.2.0" - checksum: 10c0/a5d3c29dd84d8a28b7c67a441ac1715cbd7337a7b88649c0f17c345d89aa218578d2b360760017c48149ef8a70f44b051af9ac0921a0622c2b479614c4f65b36 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -1254,17 +1212,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.3": - version: 0.3.6 - resolution: "@jridgewell/source-map@npm:0.3.6" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - checksum: 10c0/6a4ecc713ed246ff8e5bdcc1ef7c49aaa93f7463d948ba5054dda18b02dcc6a055e2828c577bcceee058f302ce1fc95595713d44f5c45e43d459f88d267f2f04 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 @@ -1291,7 +1239,7 @@ __metadata: languageName: node linkType: hard -"@mapbox/node-pre-gyp@npm:^1.0.11, @mapbox/node-pre-gyp@npm:^1.0.5": +"@mapbox/node-pre-gyp@npm:^1.0.11": version: 1.0.11 resolution: "@mapbox/node-pre-gyp@npm:1.0.11" dependencies: @@ -1310,52 +1258,6 @@ __metadata: languageName: node linkType: hard -"@mswjs/interceptors@npm:0.27.2": - version: 0.27.2 - resolution: "@mswjs/interceptors@npm:0.27.2" - dependencies: - "@open-draft/deferred-promise": "npm:^2.2.0" - "@open-draft/logger": "npm:^0.3.0" - "@open-draft/until": "npm:^2.0.0" - is-node-process: "npm:^1.2.0" - outvariant: "npm:^1.2.1" - strict-event-emitter: "npm:^0.5.1" - checksum: 10c0/7498cf89059eed1f42433bbee31ab6a88955bd377379f2f9cb34623eb00c48002975abff9bdf90489ce5832684f09b3b61a8801b161ec3f86c8015ee4e5b18f5 - languageName: node - linkType: hard - -"@netlify/functions@npm:^2.6.0": - version: 2.6.3 - resolution: "@netlify/functions@npm:2.6.3" - dependencies: - "@netlify/serverless-functions-api": "npm:1.18.0" - checksum: 10c0/4a99a7a4077f756a415cc79d459e7d51a237e7bdf67543b10c20dbd455bf492f0ca427ebf6a2c574c42c5ff6caa478e1220fa0671e659663f3d95f0269be68f3 - languageName: node - linkType: hard - -"@netlify/node-cookies@npm:^0.1.0": - version: 0.1.0 - resolution: "@netlify/node-cookies@npm:0.1.0" - checksum: 10c0/5d8034d1fd581930e8100af4e5710b79cb3bb0a0b743c716d0d8a1c347aad767fa75130323f1aaee78080a026a4cafd4eef7d11953de01098a661d765a497b16 - languageName: node - linkType: hard - -"@netlify/serverless-functions-api@npm:1.18.0": - version: 1.18.0 - resolution: "@netlify/serverless-functions-api@npm:1.18.0" - dependencies: - "@mswjs/interceptors": "npm:0.27.2" - "@netlify/node-cookies": "npm:^0.1.0" - "@opentelemetry/core": "npm:^1.23.0" - "@opentelemetry/otlp-transformer": "npm:^0.50.0" - "@opentelemetry/resources": "npm:^1.23.0" - "@opentelemetry/sdk-trace-base": "npm:^1.23.0" - "@opentelemetry/semantic-conventions": "npm:^1.23.0" - urlpattern-polyfill: "npm:8.0.2" - checksum: 10c0/96e2707debe6bdb87249657efad4b310b80b9b806aef57429c9cbb10ac720c133369c285f9d2151f663d32041cc97712e2b0a0a68e64cc844637b3423cc348c5 - languageName: node - linkType: hard - "@next/env@npm:14.2.3": version: 14.2.3 resolution: "@next/env@npm:14.2.3" @@ -1493,174 +1395,6 @@ __metadata: languageName: node linkType: hard -"@open-draft/deferred-promise@npm:^2.2.0": - version: 2.2.0 - resolution: "@open-draft/deferred-promise@npm:2.2.0" - checksum: 10c0/eafc1b1d0fc8edb5e1c753c5e0f3293410b40dde2f92688211a54806d4136887051f39b98c1950370be258483deac9dfd17cf8b96557553765198ef2547e4549 - languageName: node - linkType: hard - -"@open-draft/logger@npm:^0.3.0": - version: 0.3.0 - resolution: "@open-draft/logger@npm:0.3.0" - dependencies: - is-node-process: "npm:^1.2.0" - outvariant: "npm:^1.4.0" - checksum: 10c0/90010647b22e9693c16258f4f9adb034824d1771d3baa313057b9a37797f571181005bc50415a934eaf7c891d90ff71dcd7a9d5048b0b6bb438f31bef2c7c5c1 - languageName: node - linkType: hard - -"@open-draft/until@npm:^2.0.0": - version: 2.1.0 - resolution: "@open-draft/until@npm:2.1.0" - checksum: 10c0/61d3f99718dd86bb393fee2d7a785f961dcaf12f2055f0c693b27f4d0cd5f7a03d498a6d9289773b117590d794a43cd129366fd8e99222e4832f67b1653d54cf - languageName: node - linkType: hard - -"@opentelemetry/api-logs@npm:0.50.0": - version: 0.50.0 - resolution: "@opentelemetry/api-logs@npm:0.50.0" - dependencies: - "@opentelemetry/api": "npm:^1.0.0" - checksum: 10c0/df55e207db749efe05fc628fcde1e8b7fa277ccc126f749ee376abfdd8e6c622618930756647b9d556319896bbe270398940fbd2c07529c3ca7cc9dac8fd71ae - languageName: node - linkType: hard - -"@opentelemetry/api@npm:^1.0.0": - version: 1.8.0 - resolution: "@opentelemetry/api@npm:1.8.0" - checksum: 10c0/66d5504bfbf9c19a14ea549f5fca975a73a5e1e8a1e40a6dc2d662893c942b9ba66c009262816dee2b9ffd0267acd707ec692eba20db11a09d4ee114c00dc161 - languageName: node - linkType: hard - -"@opentelemetry/core@npm:1.23.0": - version: 1.23.0 - resolution: "@opentelemetry/core@npm:1.23.0" - dependencies: - "@opentelemetry/semantic-conventions": "npm:1.23.0" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/b68442034315c182fd5e6c1bcca7b249a4995dc219c6935718fb143d24b13cee5e7884c6750b9f55ae8f4477b7edb9b3140c6663112485b49f2a9bc5a243f5f2 - languageName: node - linkType: hard - -"@opentelemetry/core@npm:1.24.1, @opentelemetry/core@npm:^1.23.0": - version: 1.24.1 - resolution: "@opentelemetry/core@npm:1.24.1" - dependencies: - "@opentelemetry/semantic-conventions": "npm:1.24.1" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/e7af32d4253542ee42be74618cef56813ddec878950421d7e51384bde33c5a09f9aeb4391cc9617e1d117091597d1d96a6b80658fb0453a93bcf2d4d316b149d - languageName: node - linkType: hard - -"@opentelemetry/otlp-transformer@npm:^0.50.0": - version: 0.50.0 - resolution: "@opentelemetry/otlp-transformer@npm:0.50.0" - dependencies: - "@opentelemetry/api-logs": "npm:0.50.0" - "@opentelemetry/core": "npm:1.23.0" - "@opentelemetry/resources": "npm:1.23.0" - "@opentelemetry/sdk-logs": "npm:0.50.0" - "@opentelemetry/sdk-metrics": "npm:1.23.0" - "@opentelemetry/sdk-trace-base": "npm:1.23.0" - peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.9.0" - checksum: 10c0/06709e54e1d1f09e001d578510a61c34643ea53e17dd355d480ce47a7b154f7eb2b18316a0d44fa0fa02b111857e79b72c4cb5af812f607018c9db34c1914f4a - languageName: node - linkType: hard - -"@opentelemetry/resources@npm:1.23.0": - version: 1.23.0 - resolution: "@opentelemetry/resources@npm:1.23.0" - dependencies: - "@opentelemetry/core": "npm:1.23.0" - "@opentelemetry/semantic-conventions": "npm:1.23.0" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/b1abc023f2f32ed6f328f27821ae70b7a936964a19d29246072e11a9abdf588158ba65a1e9f1177933868906d53d836c837304bb98d37231a01e31bc77b38476 - languageName: node - linkType: hard - -"@opentelemetry/resources@npm:1.24.1, @opentelemetry/resources@npm:^1.23.0": - version: 1.24.1 - resolution: "@opentelemetry/resources@npm:1.24.1" - dependencies: - "@opentelemetry/core": "npm:1.24.1" - "@opentelemetry/semantic-conventions": "npm:1.24.1" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/b2f68c153231bdca6491d6050d43d84c7679f44783eaca9daa9bdb3381b5bbdb54eb6de472e9177bc1c161b0bc83423af59e5e356cce8f7880fece757a0106b6 - languageName: node - linkType: hard - -"@opentelemetry/sdk-logs@npm:0.50.0": - version: 0.50.0 - resolution: "@opentelemetry/sdk-logs@npm:0.50.0" - dependencies: - "@opentelemetry/core": "npm:1.23.0" - "@opentelemetry/resources": "npm:1.23.0" - peerDependencies: - "@opentelemetry/api": ">=1.4.0 <1.9.0" - "@opentelemetry/api-logs": ">=0.39.1" - checksum: 10c0/186332848a95ffc1c63382bce0451e17c150e9631f84cfc27f681faef9f1cfcd567bf5b151cf7d7d65f9849b7dd21f44c050c5ee9dacc13064c8da62da99637a - languageName: node - linkType: hard - -"@opentelemetry/sdk-metrics@npm:1.23.0": - version: 1.23.0 - resolution: "@opentelemetry/sdk-metrics@npm:1.23.0" - dependencies: - "@opentelemetry/core": "npm:1.23.0" - "@opentelemetry/resources": "npm:1.23.0" - lodash.merge: "npm:^4.6.2" - peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.9.0" - checksum: 10c0/dd70dc372750c23cda642a4a52f24c69633f21186360104ce7857001edcfc02a30336ad673c7ec99b61eca0664b0f5ec9a7a01a4a1992347982cc0f33aaf6e60 - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-base@npm:1.23.0": - version: 1.23.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.23.0" - dependencies: - "@opentelemetry/core": "npm:1.23.0" - "@opentelemetry/resources": "npm:1.23.0" - "@opentelemetry/semantic-conventions": "npm:1.23.0" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/19a9e925e43c737058c75f5afc8eb9d39f0bb8547dbe112c05646da453a3a7c5ccf9e8513f1936f26447b47c40f6a4c1d2d03500f882f9e9e44c1ea373a7e8a7 - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-base@npm:^1.23.0": - version: 1.24.1 - resolution: "@opentelemetry/sdk-trace-base@npm:1.24.1" - dependencies: - "@opentelemetry/core": "npm:1.24.1" - "@opentelemetry/resources": "npm:1.24.1" - "@opentelemetry/semantic-conventions": "npm:1.24.1" - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.9.0" - checksum: 10c0/071783367b06410e4e4bf4626bc560e664ccfa5eff497fe645db99b6074702259dba1c56ed8b003e9c0949ba53cd55d32aae1d46fa7bd47da1186f3d941a9713 - languageName: node - linkType: hard - -"@opentelemetry/semantic-conventions@npm:1.23.0": - version: 1.23.0 - resolution: "@opentelemetry/semantic-conventions@npm:1.23.0" - checksum: 10c0/2712f3874a45607bc7024e0d1a01c91a7e4671e7b925e2fcc79227f350c16c59a29ba36d8ab5f0842fe003ff464d24ab576033b35390316886bb120477f96ca6 - languageName: node - linkType: hard - -"@opentelemetry/semantic-conventions@npm:1.24.1, @opentelemetry/semantic-conventions@npm:^1.23.0": - version: 1.24.1 - resolution: "@opentelemetry/semantic-conventions@npm:1.24.1" - checksum: 10c0/5a3707860b70df8430745ef4ef99810a6d61d770942c217ac25ef8d6840a6b17b943c1ebe4da4a118dee0e3b1e71da3c16e2790f3c3a7e7e6b171e8d1944f73e - languageName: node - linkType: hard - "@panva/hkdf@npm:^1.1.1": version: 1.1.1 resolution: "@panva/hkdf@npm:1.1.1" @@ -1668,151 +1402,6 @@ __metadata: languageName: node linkType: hard -"@parcel/watcher-android-arm64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-android-arm64@npm:2.4.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-darwin-arm64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-darwin-x64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@parcel/watcher-freebsd-x64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm-glibc@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm64-musl@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@parcel/watcher-linux-x64-glibc@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-x64-musl@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@parcel/watcher-wasm@npm:^2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-wasm@npm:2.4.1" - dependencies: - is-glob: "npm:^4.0.3" - micromatch: "npm:^4.0.5" - napi-wasm: "npm:^1.1.0" - checksum: 10c0/30a0d4e618c4867a5990025df56dff3a31a01f78b2d108b31e6ed7fabf123a13fd79ee292f547b572e439d272a6157c2ba9fb8e527456951c14283f872bdc16f - languageName: node - linkType: hard - -"@parcel/watcher-win32-arm64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-win32-ia32@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@parcel/watcher-win32-x64@npm:2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher-win32-x64@npm:2.4.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@parcel/watcher@npm:^2.4.1": - version: 2.4.1 - resolution: "@parcel/watcher@npm:2.4.1" - dependencies: - "@parcel/watcher-android-arm64": "npm:2.4.1" - "@parcel/watcher-darwin-arm64": "npm:2.4.1" - "@parcel/watcher-darwin-x64": "npm:2.4.1" - "@parcel/watcher-freebsd-x64": "npm:2.4.1" - "@parcel/watcher-linux-arm-glibc": "npm:2.4.1" - "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1" - "@parcel/watcher-linux-arm64-musl": "npm:2.4.1" - "@parcel/watcher-linux-x64-glibc": "npm:2.4.1" - "@parcel/watcher-linux-x64-musl": "npm:2.4.1" - "@parcel/watcher-win32-arm64": "npm:2.4.1" - "@parcel/watcher-win32-ia32": "npm:2.4.1" - "@parcel/watcher-win32-x64": "npm:2.4.1" - detect-libc: "npm:^1.0.3" - is-glob: "npm:^4.0.3" - micromatch: "npm:^4.0.5" - node-addon-api: "npm:^7.0.0" - node-gyp: "npm:latest" - dependenciesMeta: - "@parcel/watcher-android-arm64": - optional: true - "@parcel/watcher-darwin-arm64": - optional: true - "@parcel/watcher-darwin-x64": - optional: true - "@parcel/watcher-freebsd-x64": - optional: true - "@parcel/watcher-linux-arm-glibc": - optional: true - "@parcel/watcher-linux-arm64-glibc": - optional: true - "@parcel/watcher-linux-arm64-musl": - optional: true - "@parcel/watcher-linux-x64-glibc": - optional: true - "@parcel/watcher-linux-x64-musl": - optional: true - "@parcel/watcher-win32-arm64": - optional: true - "@parcel/watcher-win32-ia32": - optional: true - "@parcel/watcher-win32-x64": - optional: true - checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211 - languageName: node - linkType: hard - "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1944,6 +1533,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-compose-refs@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-compose-refs@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5 + languageName: node + linkType: hard + "@radix-ui/react-context@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-context@npm:1.0.1" @@ -2266,12 +1868,31 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-roving-focus@npm:1.0.4": - version: 1.0.4 - resolution: "@radix-ui/react-roving-focus@npm:1.0.4" +"@radix-ui/react-primitive@npm:2.0.0": + version: 2.0.0 + resolution: "@radix-ui/react-primitive@npm:2.0.0" dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" + "@radix-ui/react-slot": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd + languageName: node + linkType: hard + +"@radix-ui/react-roving-focus@npm:1.0.4": + version: 1.0.4 + resolution: "@radix-ui/react-roving-focus@npm:1.0.4" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/primitive": "npm:1.0.1" "@radix-ui/react-collection": "npm:1.0.3" "@radix-ui/react-compose-refs": "npm:1.0.1" "@radix-ui/react-context": "npm:1.0.1" @@ -2334,6 +1955,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-separator@npm:^1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-separator@npm:1.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/0ca9e25db27b6b001f3c0c50b2df9d6cf070b949f183043e263115d694a25b7268fecd670572469a512e556deca25ebb08b3aec4a870f0309eed728eef19ab8a + languageName: node + linkType: hard + "@radix-ui/react-slot@npm:1.0.2, @radix-ui/react-slot@npm:^1.0.2": version: 1.0.2 resolution: "@radix-ui/react-slot@npm:1.0.2" @@ -2350,6 +1990,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-slot@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-slot@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae + languageName: node + linkType: hard + "@radix-ui/react-switch@npm:^1.0.3": version: 1.0.3 resolution: "@radix-ui/react-switch@npm:1.0.3" @@ -2545,142 +2200,10 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-alias@npm:^5.1.0": - version: 5.1.0 - resolution: "@rollup/plugin-alias@npm:5.1.0" - dependencies: - slash: "npm:^4.0.0" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/fcae5d711b66c098cd237e09e3000e7dec27cf8b0fa82f5a9cd437c4d8d9428194f51d12822b8593b49f3d9e51c6df6a583037cab35763d92555f9c7fcb0db3d - languageName: node - linkType: hard - -"@rollup/plugin-commonjs@npm:^25.0.7": - version: 25.0.7 - resolution: "@rollup/plugin-commonjs@npm:25.0.7" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - commondir: "npm:^1.0.1" - estree-walker: "npm:^2.0.2" - glob: "npm:^8.0.3" - is-reference: "npm:1.2.1" - magic-string: "npm:^0.30.3" - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/d096af5aedd55c19ac528daa84a4cacdf21a69c9c9b20c23e04f27a64966cb383f5e2b01b9c903d40318e35dcaa74dc7b5292a844c6cbc66c252f5447eac05b4 - languageName: node - linkType: hard - -"@rollup/plugin-inject@npm:^5.0.5": - version: 5.0.5 - resolution: "@rollup/plugin-inject@npm:5.0.5" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - estree-walker: "npm:^2.0.2" - magic-string: "npm:^0.30.3" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/22d10cf44fa56a6683d5ac4df24a9003379b3dcaae9897f5c30c844afc2ebca83cfaa5557f13a1399b1c8a0d312c3217bcacd508b7ebc4b2cbee401bd1ec8be2 - languageName: node - linkType: hard - -"@rollup/plugin-json@npm:^6.1.0": - version: 6.1.0 - resolution: "@rollup/plugin-json@npm:6.1.0" - dependencies: - "@rollup/pluginutils": "npm:^5.1.0" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/9400c431b5e0cf3088ba2eb2d038809a2b0fb2a84ed004997da85582f48cd64958ed3168893c4f2c8109e38652400ed68282d0c92bf8ec07a3b2ef2e1ceab0b7 - languageName: node - linkType: hard - -"@rollup/plugin-node-resolve@npm:^15.2.3": - version: 15.2.3 - resolution: "@rollup/plugin-node-resolve@npm:15.2.3" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - "@types/resolve": "npm:1.20.2" - deepmerge: "npm:^4.2.2" - is-builtin-module: "npm:^3.2.1" - is-module: "npm:^1.0.0" - resolve: "npm:^1.22.1" - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/598c15615086f26e28c4b3dbf966682af7fb0e5bc277cc4e57f559668a3be675a63ab261eb34729ce9569c3a51342c48863e50b5efe02e0fc1571828f0113f9d - languageName: node - linkType: hard - -"@rollup/plugin-replace@npm:^5.0.5": - version: 5.0.5 - resolution: "@rollup/plugin-replace@npm:5.0.5" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - magic-string: "npm:^0.30.3" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/a896ebc67e0aeb59102dd3cc8647cfeaac6d37cf337f2e2ae412a83e14dace2bb65b52271a1186f8d1c1ea151a7f9d387a3d89d03012802af40543481571ea0a - languageName: node - linkType: hard - -"@rollup/plugin-terser@npm:^0.4.4": - version: 0.4.4 - resolution: "@rollup/plugin-terser@npm:0.4.4" - dependencies: - serialize-javascript: "npm:^6.0.1" - smob: "npm:^1.0.0" - terser: "npm:^5.17.4" - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/b9cb6c8f02ac1c1344019e9fb854321b74f880efebc41b6bdd84f18331fce0f4a2aadcdb481042245cd3f409b429ac363af71f9efec4a2024731d67d32af36ee - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^4.0.0": - version: 4.2.1 - resolution: "@rollup/pluginutils@npm:4.2.1" - dependencies: - estree-walker: "npm:^2.0.1" - picomatch: "npm:^2.2.2" - checksum: 10c0/3ee56b2c8f1ed8dfd0a92631da1af3a2dfdd0321948f089b3752b4de1b54dc5076701eadd0e5fc18bd191b77af594ac1db6279e83951238ba16bf8a414c64c48 - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.1.0": - version: 5.1.0 - resolution: "@rollup/pluginutils@npm:5.1.0" - dependencies: - "@types/estree": "npm:^1.0.0" - estree-walker: "npm:^2.0.2" - picomatch: "npm:^2.3.1" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10c0/c7bed15711f942d6fdd3470fef4105b73991f99a478605e13d41888963330a6f9e32be37e6ddb13f012bc7673ff5e54f06f59fd47109436c1c513986a8a7612d +"@remix-run/router@npm:1.17.0": + version: 1.17.0 + resolution: "@remix-run/router@npm:1.17.0" + checksum: 10c0/6f39cb81c5dec3d3cb901cfc05ef1c745d23192def7d83e6d1a53c43cbb5d7ff488055fd1418ac72f904ff41b3d3ca339d223677994150f276c648123ce166f7 languageName: node linkType: hard @@ -2691,6 +2214,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-android-arm64@npm:4.17.2" @@ -2698,6 +2228,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-android-arm64@npm:4.18.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-darwin-arm64@npm:4.17.2" @@ -2705,6 +2242,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-darwin-x64@npm:4.17.2" @@ -2712,6 +2256,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2" @@ -2719,6 +2270,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.17.2" @@ -2726,6 +2284,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.17.2" @@ -2733,6 +2298,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.17.2" @@ -2740,6 +2312,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2" @@ -2747,6 +2326,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.17.2" @@ -2754,6 +2340,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.17.2" @@ -2761,6 +2354,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.17.2" @@ -2768,6 +2368,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-linux-x64-musl@npm:4.17.2" @@ -2775,6 +2382,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.17.2" @@ -2782,6 +2396,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.17.2" @@ -2789,6 +2410,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.17.2": version: 4.17.2 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.17.2" @@ -2796,6 +2424,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.3.3": version: 1.10.2 resolution: "@rushstack/eslint-patch@npm:1.10.2" @@ -2803,13 +2438,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/merge-streams@npm:^2.1.0": - version: 2.3.0 - resolution: "@sindresorhus/merge-streams@npm:2.3.0" - checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894 - languageName: node - linkType: hard - "@sora-vp/api@npm:*, @sora-vp/api@workspace:packages/api": version: 0.0.0-use.local resolution: "@sora-vp/api@workspace:packages/api" @@ -2825,52 +2453,128 @@ __metadata: "@types/bcrypt": "npm:^5" "@types/mime-types": "npm:^2" bcrypt: "npm:^5.1.1" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" mime-types: "npm:^2.1.35" prettier: "npm:^3.2.5" superjson: "npm:2.2.1" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" languageName: unknown linkType: soft -"@sora-vp/auth-proxy@workspace:apps/auth-proxy": +"@sora-vp/auth@npm:*, @sora-vp/auth@workspace:packages/auth": version: 0.0.0-use.local - resolution: "@sora-vp/auth-proxy@workspace:apps/auth-proxy" + resolution: "@sora-vp/auth@workspace:packages/auth" dependencies: - "@auth/core": "npm:0.30.0" + "@sora-vp/db": "npm:*" "@sora-vp/eslint-config": "npm:*" "@sora-vp/prettier-config": "npm:*" - "@sora-vp/tailwind-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - "@types/node": "npm:^20.12.9" - eslint: "npm:^9.2.0" - h3: "npm:^1.11.1" - nitropack: "npm:^2.9.6" + "@t3-oss/env-nextjs": "npm:^0.10.1" + "@types/bcrypt": "npm:^5" + bcrypt: "npm:^5.1.1" + eslint: "npm:^9.6.0" + next: "npm:^14.2.3" + next-auth: "npm:5.0.0-beta.18" prettier: "npm:^3.2.5" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" typescript: "npm:^5.4.5" + zod: "npm:^3.23.8" languageName: unknown linkType: soft -"@sora-vp/auth@npm:*, @sora-vp/auth@workspace:packages/auth": +"@sora-vp/client-attendance@workspace:apps/clients/attendance": version: 0.0.0-use.local - resolution: "@sora-vp/auth@workspace:packages/auth" + resolution: "@sora-vp/client-attendance@workspace:apps/clients/attendance" dependencies: - "@sora-vp/db": "npm:*" + "@eslint/js": "npm:^9.6.0" + "@fontsource-variable/noto-sans-sundanese": "npm:^5.0.18" + "@sora-vp/api": "npm:*" "@sora-vp/eslint-config": "npm:*" "@sora-vp/prettier-config": "npm:*" - "@sora-vp/tsconfig": "npm:*" - "@t3-oss/env-nextjs": "npm:^0.10.1" - "@types/bcrypt": "npm:^5" - bcrypt: "npm:^5.1.1" - eslint: "npm:^9.2.0" - next: "npm:^14.2.3" - next-auth: "npm:5.0.0-beta.18" + "@sora-vp/tailwind-config": "npm:*" + "@sora-vp/ui": "npm:*" + "@sora-vp/validators": "npm:*" + "@t3-oss/env-core": "npm:^0.10.1" + "@tanstack/react-query": "npm:^5.35.1" + "@trpc/client": "npm:11.0.0-rc.364" + "@trpc/react-query": "npm:11.0.0-rc.364" + "@trpc/server": "npm:11.0.0-rc.364" + "@types/eslint__js": "npm:^8.42.3" + "@types/react": "npm:^18.3.3" + "@types/react-dom": "npm:^18.3.0" + "@typescript-eslint/eslint-plugin": "npm:^7.13.1" + "@typescript-eslint/parser": "npm:^7.13.1" + "@vitejs/plugin-react-swc": "npm:^3.5.0" + autoprefixer: "npm:^10.4.19" + dotenv-cli: "npm:^7.4.1" + eslint: "npm:^9.6.0" + eslint-plugin-react-hooks: "npm:^4.6.2" + eslint-plugin-react-refresh: "npm:^0.4.7" + framer-motion: "npm:^11.2.12" + jotai: "npm:^2.8.4" + lucide-react: "npm:^0.399.0" + non.geist: "npm:^1.0.3" + postcss: "npm:^8.4.39" prettier: "npm:^3.2.5" - react: "npm:18.3.1" - react-dom: "npm:18.3.1" + qr-scanner: "npm:^1.4.2" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + react-router-dom: "npm:^6.24.0" + superjson: "npm:2.2.1" + tailwindcss: "npm:^3.4.4" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + typescript-eslint: "npm:^7.14.1" + vite: "npm:^5.3.1" + zod: "npm:^3.23.8" + languageName: unknown + linkType: soft + +"@sora-vp/client-chooser@workspace:apps/clients/chooser": + version: 0.0.0-use.local + resolution: "@sora-vp/client-chooser@workspace:apps/clients/chooser" + dependencies: + "@eslint/js": "npm:^9.6.0" + "@fontsource-variable/noto-sans-sundanese": "npm:^5.0.18" + "@sora-vp/api": "npm:*" + "@sora-vp/eslint-config": "npm:*" + "@sora-vp/prettier-config": "npm:*" + "@sora-vp/tailwind-config": "npm:*" + "@sora-vp/ui": "npm:*" + "@sora-vp/validators": "npm:*" + "@t3-oss/env-core": "npm:^0.10.1" + "@tanstack/react-query": "npm:^5.35.1" + "@trpc/client": "npm:11.0.0-rc.364" + "@trpc/react-query": "npm:11.0.0-rc.364" + "@trpc/server": "npm:11.0.0-rc.364" + "@types/eslint__js": "npm:^8.42.3" + "@types/react": "npm:^18.3.3" + "@types/react-dom": "npm:^18.3.0" + "@typescript-eslint/eslint-plugin": "npm:^7.13.1" + "@typescript-eslint/parser": "npm:^7.13.1" + "@vitejs/plugin-react-swc": "npm:^3.5.0" + autoprefixer: "npm:^10.4.19" + dotenv-cli: "npm:^7.4.1" + eslint: "npm:^9.6.0" + eslint-plugin-react-hooks: "npm:^4.6.2" + eslint-plugin-react-refresh: "npm:^0.4.7" + framer-motion: "npm:^11.2.12" + jotai: "npm:^2.8.4" + lucide-react: "npm:^0.399.0" + non.geist: "npm:^1.0.3" + postcss: "npm:^8.4.39" + prettier: "npm:^3.2.5" + qr-scanner: "npm:^1.4.2" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + react-router-dom: "npm:^6.24.0" + superjson: "npm:2.2.1" + tailwindcss: "npm:^3.4.4" + typescript: "npm:^5.4.5" + typescript-eslint: "npm:^7.14.1" + vite: "npm:^5.3.1" + zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -2885,12 +2589,12 @@ __metadata: dotenv-cli: "npm:^7.4.1" drizzle-kit: "npm:^0.20.18" drizzle-orm: "npm:^0.30.10" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" mysql2: "npm:^3.9.8" prettier: "npm:^3.2.5" tsup: "npm:^8.1.0" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" bin: db-migrate: ./dist/index.js languageName: unknown @@ -2908,11 +2612,11 @@ __metadata: dotenv-cli: "npm:^7.4.1" drizzle-kit: "npm:^0.20.18" drizzle-orm: "npm:^0.30.10" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" mysql2: "npm:^3.9.8" prettier: "npm:^3.2.5" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -2923,7 +2627,7 @@ __metadata: "@next/eslint-plugin-next": "npm:^14.2.3" "@sora-vp/prettier-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" eslint-config-turbo: "npm:^1.13.3" eslint-plugin-import: "npm:^2.29.1" eslint-plugin-jsx-a11y: "npm:^6.8.0" @@ -2931,7 +2635,7 @@ __metadata: eslint-plugin-react-hooks: "npm:beta" prettier: "npm:^3.2.5" typescript: "npm:^5.4.5" - typescript-eslint: "npm:^7.8.0" + typescript-eslint: "npm:^7.14.1" languageName: unknown linkType: soft @@ -2940,9 +2644,9 @@ __metadata: resolution: "@sora-vp/id-generator@workspace:packages/id-generator" dependencies: "@types/eslint": "npm:^8.37.0" - "@typescript-eslint/eslint-plugin": "npm:^5.59.2" - "@typescript-eslint/parser": "npm:^5.59.2" - eslint: "npm:^9.2.0" + "@typescript-eslint/eslint-plugin": "npm:^7.13.1" + "@typescript-eslint/parser": "npm:^7.13.1" + eslint: "npm:^9.6.0" eslint-config-next: "npm:^13.4.2" eslint-config-prettier: "npm:^8.8.0" eslint-config-turbo: "npm:^1.13.3" @@ -2968,19 +2672,21 @@ __metadata: version: 0.0.0-use.local resolution: "@sora-vp/processor@workspace:apps/processor" dependencies: + "@sora-vp/api": "npm:*" "@sora-vp/db": "npm:*" "@sora-vp/eslint-config": "npm:*" "@sora-vp/id-generator": "npm:*" "@sora-vp/prettier-config": "npm:*" "@sora-vp/tailwind-config": "npm:*" "@sora-vp/tsconfig": "npm:*" + "@t3-oss/env-core": "npm:^0.10.1" "@trpc/client": "npm:11.0.0-rc.364" "@trpc/server": "npm:11.0.0-rc.364" "@types/amqplib": "npm:^0" "@types/node": "npm:^20.12.9" amqplib: "npm:^0.10.4" dotenv-cli: "npm:^7.4.1" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" pino: "npm:^9.0.0" pino-pretty: "npm:^11.0.0" prettier: "npm:^3.2.5" @@ -2988,6 +2694,7 @@ __metadata: tsup: "npm:^8.1.0" tsx: "npm:^4.9.4" typescript: "npm:^5.4.5" + zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -2998,7 +2705,7 @@ __metadata: "@sora-vp/eslint-config": "npm:*" "@sora-vp/prettier-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" prettier: "npm:^3.2.5" typescript: "npm:^5.4.5" languageName: unknown @@ -3011,10 +2718,10 @@ __metadata: "@sora-vp/eslint-config": "npm:*" "@sora-vp/prettier-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - eslint: "npm:^9.2.0" - postcss: "npm:^8.4.38" + eslint: "npm:^9.6.0" + postcss: "npm:^8.4.39" prettier: "npm:^3.2.5" - tailwindcss: "npm:^3.4.3" + tailwindcss: "npm:^3.4.4" tailwindcss-animate: "npm:^1.0.7" typescript: "npm:^5.4.5" languageName: unknown @@ -3038,6 +2745,7 @@ __metadata: "@radix-ui/react-icons": "npm:^1.3.0" "@radix-ui/react-label": "npm:^2.0.2" "@radix-ui/react-select": "npm:^2.0.0" + "@radix-ui/react-separator": "npm:^1.1.0" "@radix-ui/react-slot": "npm:^1.0.2" "@radix-ui/react-switch": "npm:^1.0.3" "@radix-ui/react-tooltip": "npm:^1.0.7" @@ -3045,20 +2753,20 @@ __metadata: "@sora-vp/prettier-config": "npm:*" "@sora-vp/tailwind-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - "@types/react": "npm:^18.3.1" + "@types/react": "npm:^18.3.3" class-variance-authority: "npm:^0.7.0" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" next-themes: "npm:^0.3.0" prettier: "npm:^3.2.5" - react: "npm:18.3.1" + react: "npm:^18.3.1" react-hook-form: "npm:^7.51.4" react-resizable-panels: "npm:^2.0.19" sonner: "npm:^1.4.41" tailwind-merge: "npm:^2.3.0" - tailwindcss: "npm:^3.4.3" + tailwindcss: "npm:^3.4.4" tailwindcss-animate: "npm:^1.0.7" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" peerDependencies: react: 18.3.1 zod: ^3.23.6 @@ -3073,11 +2781,11 @@ __metadata: "@sora-vp/id-generator": "npm:*" "@sora-vp/prettier-config": "npm:*" "@sora-vp/tsconfig": "npm:*" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" js-base64: "npm:^3.7.7" prettier: "npm:^3.2.5" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -3103,28 +2811,28 @@ __metadata: "@types/mime-types": "npm:^2" "@types/node": "npm:^20.12.9" "@types/qrcode": "npm:^1" - "@types/react": "npm:^18.3.1" + "@types/react": "npm:^18.3.3" "@types/react-dom": "npm:^18.3.0" csv-parse: "npm:^5.5.6" date-fns: "npm:^3.6.0" dotenv-cli: "npm:^7.4.1" - eslint: "npm:^9.2.0" + eslint: "npm:^9.6.0" exceljs: "npm:^4.4.0" geist: "npm:^1.3.0" jiti: "npm:^1.21.0" js-base64: "npm:^3.7.7" - lucide-react: "npm:^0.390.0" + lucide-react: "npm:^0.399.0" mime-types: "npm:^2.1.35" next: "npm:^14.2.3" prettier: "npm:^3.2.5" qrcode: "npm:^1.5.3" - react: "npm:18.3.1" - react-dom: "npm:18.3.1" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" recharts: "npm:^2.12.7" superjson: "npm:2.2.1" - tailwindcss: "npm:^3.4.3" + tailwindcss: "npm:^3.4.4" typescript: "npm:^5.4.5" - zod: "npm:^3.23.6" + zod: "npm:^3.23.8" languageName: unknown linkType: soft @@ -3134,6 +2842,122 @@ __metadata: languageName: unknown linkType: soft +"@swc/core-darwin-arm64@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-darwin-arm64@npm:1.6.6" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-darwin-x64@npm:1.6.6" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.6" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-linux-arm64-gnu@npm:1.6.6" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-linux-arm64-musl@npm:1.6.6" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-linux-x64-gnu@npm:1.6.6" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-linux-x64-musl@npm:1.6.6" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-win32-arm64-msvc@npm:1.6.6" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-win32-ia32-msvc@npm:1.6.6" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.6.6": + version: 1.6.6 + resolution: "@swc/core-win32-x64-msvc@npm:1.6.6" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.5.7": + version: 1.6.6 + resolution: "@swc/core@npm:1.6.6" + dependencies: + "@swc/core-darwin-arm64": "npm:1.6.6" + "@swc/core-darwin-x64": "npm:1.6.6" + "@swc/core-linux-arm-gnueabihf": "npm:1.6.6" + "@swc/core-linux-arm64-gnu": "npm:1.6.6" + "@swc/core-linux-arm64-musl": "npm:1.6.6" + "@swc/core-linux-x64-gnu": "npm:1.6.6" + "@swc/core-linux-x64-musl": "npm:1.6.6" + "@swc/core-win32-arm64-msvc": "npm:1.6.6" + "@swc/core-win32-ia32-msvc": "npm:1.6.6" + "@swc/core-win32-x64-msvc": "npm:1.6.6" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.9" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10c0/7e46e9f81218abfda9230bc6f4aeaf86ac811c6d8441ca936669da0f182c1f5863b6611d35e4e3b649eb0d395a199b8955d823b7c572eb2203a6b191e86ccfe0 + languageName: node + linkType: hard + "@swc/counter@npm:^0.1.3": version: 0.1.3 resolution: "@swc/counter@npm:0.1.3" @@ -3151,6 +2975,15 @@ __metadata: languageName: node linkType: hard +"@swc/types@npm:^0.1.9": + version: 0.1.9 + resolution: "@swc/types@npm:0.1.9" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/e47db2a06189f100696837ac3d56feaf67e8e68541b236c2de497e066689230f5cbb538fc0ca77c04739ae7653c20a2d79c7ab57ecf7506e2d008cb5e523f724 + languageName: node + linkType: hard + "@t3-oss/env-core@npm:0.10.1, @t3-oss/env-core@npm:^0.10.1": version: 0.10.1 resolution: "@t3-oss/env-core@npm:0.10.1" @@ -3417,7 +3250,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.37.0": +"@types/eslint@npm:*, @types/eslint@npm:^8.37.0": version: 8.56.10 resolution: "@types/eslint@npm:8.56.10" dependencies: @@ -3427,7 +3260,16 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": +"@types/eslint__js@npm:^8.42.3": + version: 8.42.3 + resolution: "@types/eslint__js@npm:8.42.3" + dependencies: + "@types/eslint": "npm:*" + checksum: 10c0/ccc5180b92155929a089ffb03ed62625216dcd5e46dd3197c6f82370ce8b52c7cb9df66c06b0a3017995409e023bc9eafe5a3f009e391960eacefaa1b62d9a56 + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -3444,15 +3286,6 @@ __metadata: languageName: node linkType: hard -"@types/http-proxy@npm:^1.17.14": - version: 1.17.14 - resolution: "@types/http-proxy@npm:1.17.14" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/c4bffd87be9aff7e879c05bd2c28716220e0eb39788e3f8d314eee665324ad8f5f0919041cbd710254d553cd9cea023f8b776d4b1ec31d2188eac60af18c3022 - languageName: node - linkType: hard - "@types/inquirer@npm:^6.5.0": version: 6.5.0 resolution: "@types/inquirer@npm:6.5.0" @@ -3463,7 +3296,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -3507,6 +3340,13 @@ __metadata: languageName: node linkType: hard +"@types/offscreencanvas@npm:^2019.6.4": + version: 2019.7.3 + resolution: "@types/offscreencanvas@npm:2019.7.3" + checksum: 10c0/6d1dfae721d321cd2b5435f347a0e53b09f33b2f9e9333396480f592823bc323847b8169f7d251d2285cb93dbc1ba2e30741ac5cf4b1c003d660fd4c24526963 + languageName: node + linkType: hard + "@types/prop-types@npm:*": version: 15.7.12 resolution: "@types/prop-types@npm:15.7.12" @@ -3532,7 +3372,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.3.1": +"@types/react@npm:*": version: 18.3.1 resolution: "@types/react@npm:18.3.1" dependencies: @@ -3542,17 +3382,13 @@ __metadata: languageName: node linkType: hard -"@types/resolve@npm:1.20.2": - version: 1.20.2 - resolution: "@types/resolve@npm:1.20.2" - checksum: 10c0/c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.8": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa +"@types/react@npm:^18.3.3": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114 languageName: node linkType: hard @@ -3572,20 +3408,18 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.8.0" +"@typescript-eslint/eslint-plugin@npm:7.14.1, @typescript-eslint/eslint-plugin@npm:^7.13.1": + version: 7.14.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.14.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.8.0" - "@typescript-eslint/type-utils": "npm:7.8.0" - "@typescript-eslint/utils": "npm:7.8.0" - "@typescript-eslint/visitor-keys": "npm:7.8.0" - debug: "npm:^4.3.4" + "@typescript-eslint/scope-manager": "npm:7.14.1" + "@typescript-eslint/type-utils": "npm:7.14.1" + "@typescript-eslint/utils": "npm:7.14.1" + "@typescript-eslint/visitor-keys": "npm:7.14.1" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.6.0" ts-api-utils: "npm:^1.3.0" peerDependencies: "@typescript-eslint/parser": ^7.0.0 @@ -3593,49 +3427,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/37ca22620d1834ff0baa28fa4b8fd92039a3903cb95748353de32d56bae2a81ce50d1bbaed27487eebc884e0a0f9387fcb0f1647593e4e6df5111ef674afa9f0 + checksum: 10c0/7c2b9b98a38d78326b0ff7348fe001203eda10817ca7834a7a01f492ae7c2508469bbafaa933208d6459f8ff6685277685983cf6f6843e556a6ab2aa5c05080c languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.59.2": - version: 5.62.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" +"@typescript-eslint/parser@npm:7.14.1, @typescript-eslint/parser@npm:^7.13.1": + version: 7.14.1 + resolution: "@typescript-eslint/parser@npm:7.14.1" dependencies: - "@eslint-community/regexpp": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/type-utils": "npm:5.62.0" - "@typescript-eslint/utils": "npm:5.62.0" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - natural-compare-lite: "npm:^1.4.0" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/3f40cb6bab5a2833c3544e4621b9fdacd8ea53420cadc1c63fac3b89cdf5c62be1e6b7bcf56976dede5db4c43830de298ced3db60b5494a3b961ca1b4bff9f2a - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/parser@npm:7.8.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:7.8.0" - "@typescript-eslint/types": "npm:7.8.0" - "@typescript-eslint/typescript-estree": "npm:7.8.0" - "@typescript-eslint/visitor-keys": "npm:7.8.0" + "@typescript-eslint/scope-manager": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/typescript-estree": "npm:7.14.1" + "@typescript-eslint/visitor-keys": "npm:7.14.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/0dd994c1b31b810c25e1b755b8d352debb7bf21a31f9a91acaec34acf4e471320bcceaa67cf64c110c0b8f5fac10a037dbabac6ec423e17adf037e59a7bce9c1 + checksum: 10c0/db3169d4852685cfb27db741c557f58a3e52104bfacc7621beb7c94ec36ac2a08d4e410ac86745db52f482fbfc87e99fa0a26c1d7a10d37a215cce85e1661f0e languageName: node linkType: hard @@ -3657,33 +3467,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.59.2": - version: 5.62.0 - resolution: "@typescript-eslint/parser@npm:5.62.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/315194b3bf39beb9bd16c190956c46beec64b8371e18d6bb72002108b250983eb1e186a01d34b77eb4045f4941acbb243b16155fbb46881105f65e37dc9e24d4 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:6.21.0": version: 6.21.0 resolution: "@typescript-eslint/scope-manager@npm:6.21.0" @@ -3694,39 +3477,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/scope-manager@npm:7.8.0" +"@typescript-eslint/scope-manager@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/scope-manager@npm:7.14.1" dependencies: - "@typescript-eslint/types": "npm:7.8.0" - "@typescript-eslint/visitor-keys": "npm:7.8.0" - checksum: 10c0/c253b98e96d4bf0375f473ca2c4d081726f1fd926cdfa65ee14c9ee99cca8eddb763b2d238ac365daa7246bef21b0af38180d04e56e9df7443c0e6f8474d097c - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/type-utils@npm:5.62.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:5.62.0" - "@typescript-eslint/utils": "npm:5.62.0" - debug: "npm:^4.3.4" - tsutils: "npm:^3.21.0" - peerDependencies: - eslint: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/93112e34026069a48f0484b98caca1c89d9707842afe14e08e7390af51cdde87378df29d213d3bbd10a7cfe6f91b228031b56218515ce077bdb62ddea9d9f474 + "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/visitor-keys": "npm:7.14.1" + checksum: 10c0/f8c05a0d6f8de4cc19b90a4da308817c66e53f36f7ec48f6cc23e93c7399bc418643d8135933aaf5fc013199cbef0e1ea4223f5147db5ca401b239eaf087011e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/type-utils@npm:7.8.0" +"@typescript-eslint/type-utils@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/type-utils@npm:7.14.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.8.0" - "@typescript-eslint/utils": "npm:7.8.0" + "@typescript-eslint/typescript-estree": "npm:7.14.1" + "@typescript-eslint/utils": "npm:7.14.1" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -3734,14 +3500,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/00f6315626b64f7dbc1f7fba6f365321bb8d34141ed77545b2a07970e59a81dbdf768c1e024225ea00953750d74409ddd8a16782fc4a39261e507c04192dacab - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/types@npm:5.62.0" - checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf + checksum: 10c0/bd1c4a8db6273e24156fb10da2cbeb52b4eb03f819da193d4b6bd5a95db3b5524c6fe00d088308d8855b9ae60a3b82afa3a06e89982a09a8573561da960758fd languageName: node linkType: hard @@ -3752,28 +3511,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/types@npm:7.8.0" - checksum: 10c0/b2fdbfc21957bfa46f7d8809b607ad8c8b67c51821d899064d09392edc12f28b2318a044f0cd5d523d782e84e8f0558778877944964cf38e139f88790cf9d466 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf +"@typescript-eslint/types@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/types@npm:7.14.1" + checksum: 10c0/5b7bda83c47a9b386482e63447c6b0ed7bd4e82eb43f11a180c6e2f3d2e7a2828f57bcbed82196ad761c49e363cccf4c81a89f1fc976e9f5f0a79dcc928fa2d2 languageName: node linkType: hard @@ -3796,12 +3537,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.8.0" +"@typescript-eslint/typescript-estree@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.14.1" dependencies: - "@typescript-eslint/types": "npm:7.8.0" - "@typescript-eslint/visitor-keys": "npm:7.8.0" + "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/visitor-keys": "npm:7.14.1" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -3811,52 +3552,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/1690b62679685073dcb0f62499f0b52b445b37ae6e12d02aa4acbafe3fb023cf999b01f714b6282e88f84fd934fe3e2eefb21a64455d19c348d22bbc68ca8e47 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@types/json-schema": "npm:^7.0.9" - "@types/semver": "npm:^7.3.12" - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - eslint-scope: "npm:^5.1.1" - semver: "npm:^7.3.7" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/f09b7d9952e4a205eb1ced31d7684dd55cee40bf8c2d78e923aa8a255318d97279825733902742c09d8690f37a50243f4c4d383ab16bd7aefaf9c4b438f785e1 + checksum: 10c0/a8da9bcc4de3334a225424946abd99374de05c42098455419224bc0f46bb1b66115f8bd6ae268461294b90943ed4a407bcd255c0fa60eb76ba4cdc5fc7c20855 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/utils@npm:7.8.0" +"@typescript-eslint/utils@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/utils@npm:7.14.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.15" - "@types/semver": "npm:^7.5.8" - "@typescript-eslint/scope-manager": "npm:7.8.0" - "@typescript-eslint/types": "npm:7.8.0" - "@typescript-eslint/typescript-estree": "npm:7.8.0" - semver: "npm:^7.6.0" + "@typescript-eslint/scope-manager": "npm:7.14.1" + "@typescript-eslint/types": "npm:7.14.1" + "@typescript-eslint/typescript-estree": "npm:7.14.1" peerDependencies: eslint: ^8.56.0 - checksum: 10c0/31fb58388d15b082eb7bd5bce889cc11617aa1131dfc6950471541b3df64c82d1c052e2cccc230ca4ae80456d4f63a3e5dccb79899a8f3211ce36c089b7d7640 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - eslint-visitor-keys: "npm:^3.3.0" - checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d + checksum: 10c0/c7f635a3c2c6c085e1d51a52088e55cad9d7e1257b1f60378e5eeb6eb0871db027d42747e9ef60a2f557cf9dd68b2ce014d488d795db8f771506290b164b0e5a languageName: node linkType: hard @@ -3870,35 +3580,24 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.8.0": - version: 7.8.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.8.0" +"@typescript-eslint/visitor-keys@npm:7.14.1": + version: 7.14.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.14.1" dependencies: - "@typescript-eslint/types": "npm:7.8.0" + "@typescript-eslint/types": "npm:7.14.1" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/5892fb5d9c58efaf89adb225f7dbbb77f9363961f2ff420b6b130bdd102dddd7aa8a16c46a5a71c19889d27b781e966119a89270555ea2cb5653a04d8994123d + checksum: 10c0/39ac489990fcfdcee442f27658431a0eb44ccf694f701a45df2a108c47cea9582e0955bff0d449047549149385f72895a5d7e6c1622ece1fe32594b7cecb85f3 languageName: node linkType: hard -"@vercel/nft@npm:^0.26.4": - version: 0.26.5 - resolution: "@vercel/nft@npm:0.26.5" +"@vitejs/plugin-react-swc@npm:^3.5.0": + version: 3.7.0 + resolution: "@vitejs/plugin-react-swc@npm:3.7.0" dependencies: - "@mapbox/node-pre-gyp": "npm:^1.0.5" - "@rollup/pluginutils": "npm:^4.0.0" - acorn: "npm:^8.6.0" - acorn-import-attributes: "npm:^1.9.2" - async-sema: "npm:^3.1.1" - bindings: "npm:^1.4.0" - estree-walker: "npm:2.0.2" - glob: "npm:^7.1.3" - graceful-fs: "npm:^4.2.9" - micromatch: "npm:^4.0.2" - node-gyp-build: "npm:^4.2.2" - resolve-from: "npm:^5.0.0" - bin: - nft: out/cli.js - checksum: 10c0/b7034b2f851384f26316c856a731c0973a99bd02f6bb349916a750328a4919944ed6fd12c321b38ec6535d29dfb627d7fa8ab0f1e8c1c3cabd71e3350bd77548 + "@swc/core": "npm:^1.5.7" + peerDependencies: + vite: ^4 || ^5 + checksum: 10c0/f9f562c87f0fd384d160c5d499056841f8a38050fc01f5295d3394a77c288eca1f78f6df3aa08c01f3f5cb3e4937c6490607ac87b700d87bab425b7c4dc15e91 languageName: node linkType: hard @@ -3925,15 +3624,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-attributes@npm:^1.9.2": - version: 1.9.5 - resolution: "acorn-import-attributes@npm:1.9.5" - peerDependencies: - acorn: ^8 - checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -3950,7 +3640,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.8.2": +"acorn@npm:^8.11.3, acorn@npm:^8.4.1": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -3959,6 +3649,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.12.0": + version: 8.12.0 + resolution: "acorn@npm:8.12.0" + bin: + acorn: bin/acorn + checksum: 10c0/a19f9dead009d3b430fa3c253710b47778cdaace15b316de6de93a68c355507bc1072a9956372b6c990cbeeb167d4a929249d0faeb8ae4bb6911d68d53299549 + languageName: node + linkType: hard + "agent-base@npm:6": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -4011,13 +3710,6 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:^4.1.3": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -4073,7 +3765,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.1.3, anymatch@npm:~3.1.2": +"anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -4126,21 +3818,6 @@ __metadata: languageName: node linkType: hard -"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": - version: 5.0.2 - resolution: "archiver-utils@npm:5.0.2" - dependencies: - glob: "npm:^10.0.0" - graceful-fs: "npm:^4.2.0" - is-stream: "npm:^2.0.1" - lazystream: "npm:^1.0.0" - lodash: "npm:^4.17.15" - normalize-path: "npm:^3.0.0" - readable-stream: "npm:^4.0.0" - checksum: 10c0/3782c5fa9922186aa1a8e41ed0c2867569faa5f15c8e5e6418ea4c1b730b476e21bd68270b3ea457daf459ae23aaea070b2b9f90cf90a59def8dc79b9e4ef538 - languageName: node - linkType: hard - "archiver@npm:^5.0.0": version: 5.3.2 resolution: "archiver@npm:5.3.2" @@ -4156,21 +3833,6 @@ __metadata: languageName: node linkType: hard -"archiver@npm:^7.0.1": - version: 7.0.1 - resolution: "archiver@npm:7.0.1" - dependencies: - archiver-utils: "npm:^5.0.2" - async: "npm:^3.2.4" - buffer-crc32: "npm:^1.0.0" - readable-stream: "npm:^4.0.0" - readdir-glob: "npm:^1.1.2" - tar-stream: "npm:^3.0.0" - zip-stream: "npm:^6.0.1" - checksum: 10c0/02afd87ca16f6184f752db8e26884e6eff911c476812a0e7f7b26c4beb09f06119807f388a8e26ed2558aa8ba9db28646ebd147a4f99e46813b8b43158e1438e - languageName: node - linkType: hard - "are-we-there-yet@npm:^2.0.0": version: 2.0.0 resolution: "are-we-there-yet@npm:2.0.0" @@ -4360,13 +4022,6 @@ __metadata: languageName: node linkType: hard -"async-sema@npm:^3.1.1": - version: 3.1.1 - resolution: "async-sema@npm:3.1.1" - checksum: 10c0/a16da9f7f2dbdd00a969bf264b7ad331b59df3eac2b38f529b881c5cc8662594e68ed096d927ec2aabdc13454379cdc6d677bcdb0a3d2db338fb4be17957832b - languageName: node - linkType: hard - "async@npm:^3.2.4": version: 3.2.5 resolution: "async@npm:3.2.5" @@ -4381,6 +4036,24 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.19": + version: 10.4.19 + resolution: "autoprefixer@npm:10.4.19" + dependencies: + browserslist: "npm:^4.23.0" + caniuse-lite: "npm:^1.0.30001599" + fraction.js: "npm:^4.3.7" + normalize-range: "npm:^0.1.2" + picocolors: "npm:^1.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 10c0/fe0178eb8b1da4f15c6535cd329926609b22d1811e047371dccce50563623f8075dd06fb167daff059e4228da651b0bdff6d9b44281541eaf0ce0b79125bfd19 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -4406,13 +4079,6 @@ __metadata: languageName: node linkType: hard -"b4a@npm:^1.6.4": - version: 1.6.6 - resolution: "b4a@npm:1.6.6" - checksum: 10c0/56f30277666cb511a15829e38d369b114df7dc8cec4cedc09cc5d685bc0f27cb63c7bcfb58e09a19a1b3c4f2541069ab078b5328542e85d74a39620327709a38 - languageName: node - linkType: hard - "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -4420,13 +4086,6 @@ __metadata: languageName: node linkType: hard -"bare-events@npm:^2.2.0": - version: 2.2.2 - resolution: "bare-events@npm:2.2.2" - checksum: 10c0/bacdaaf072f87ab5d2ed0c2fc519ef0fa8f6acd834fee50710a05f416a1b73ed99c9c6dfbefdd462ec4eb726d8f74e4a8476c2f8c3ae8812919c67eacb1f807f - languageName: node - linkType: hard - "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -4475,15 +4134,6 @@ __metadata: languageName: node linkType: hard -"bindings@npm:^1.4.0": - version: 1.5.0 - resolution: "bindings@npm:1.5.0" - dependencies: - file-uri-to-path: "npm:1.0.0" - checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba - languageName: node - linkType: hard - "bl@npm:^4.0.3, bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" @@ -4544,6 +4194,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.0": + version: 4.23.1 + resolution: "browserslist@npm:4.23.1" + dependencies: + caniuse-lite: "npm:^1.0.30001629" + electron-to-chromium: "npm:^1.4.796" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.16" + bin: + browserslist: cli.js + checksum: 10c0/eb47c7ab9d60db25ce2faca70efeb278faa7282a2f62b7f2fa2f92e5f5251cf65144244566c86559419ff4f6d78f59ea50e39911321ad91f3b27788901f1f5e9 + languageName: node + linkType: hard + "buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -4551,13 +4215,6 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^1.0.0": - version: 1.0.0 - resolution: "buffer-crc32@npm:1.0.0" - checksum: 10c0/8b86e161cee4bb48d5fa622cbae4c18f25e4857e5203b89e23de59e627ab26beb82d9d7999f2b8de02580165f61f83f997beaf02980cdf06affd175b651921ab - languageName: node - linkType: hard - "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -4606,13 +4263,6 @@ __metadata: languageName: node linkType: hard -"builtin-modules@npm:^3.3.0": - version: 3.3.0 - resolution: "builtin-modules@npm:3.3.0" - checksum: 10c0/2cb3448b4f7306dc853632a4fcddc95e8d4e4b9868c139400027b71938fc6806d4ff44007deffb362ac85724bd40c2c6452fb6a0aa4531650eeddb98d8e5ee8a - languageName: node - linkType: hard - "bundle-require@npm:^4.0.0": version: 4.1.0 resolution: "bundle-require@npm:4.1.0" @@ -4633,26 +4283,6 @@ __metadata: languageName: node linkType: hard -"c12@npm:^1.10.0": - version: 1.10.0 - resolution: "c12@npm:1.10.0" - dependencies: - chokidar: "npm:^3.6.0" - confbox: "npm:^0.1.3" - defu: "npm:^6.1.4" - dotenv: "npm:^16.4.5" - giget: "npm:^1.2.1" - jiti: "npm:^1.21.0" - mlly: "npm:^1.6.1" - ohash: "npm:^1.1.3" - pathe: "npm:^1.1.2" - perfect-debounce: "npm:^1.0.0" - pkg-types: "npm:^1.0.3" - rc9: "npm:^2.1.1" - checksum: 10c0/52408f5a1ec4bf7f6b470245525e621c7cd8cc0a648f5fa971ddbbe13dd1c8d3bd1fd59b194d7881029020392bb1151b323a39a9df869cf40e450c8f882486f8 - languageName: node - linkType: hard - "cac@npm:^6.7.12": version: 6.7.14 resolution: "cac@npm:6.7.14" @@ -4738,6 +4368,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001629": + version: 1.0.30001638 + resolution: "caniuse-lite@npm:1.0.30001638" + checksum: 10c0/33019e0c53ed73f1e728b6f313efed2d7a25710dfa2ad3924d2be9939df10d0991556ac87523d3177d472c246654c9216f03e5532717ed97df58014728c3e798 + languageName: node + linkType: hard + "chainsaw@npm:~0.1.0": version: 0.1.0 resolution: "chainsaw@npm:0.1.0" @@ -4778,7 +4415,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.2.0, chalk@npm:^5.3.0": +"chalk@npm:^5.2.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 @@ -4818,7 +4455,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.5.1, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": +"chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -4844,15 +4481,6 @@ __metadata: languageName: node linkType: hard -"citty@npm:^0.1.5, citty@npm:^0.1.6": - version: 0.1.6 - resolution: "citty@npm:0.1.6" - dependencies: - consola: "npm:^3.2.3" - checksum: 10c0/d26ad82a9a4a8858c7e149d90b878a3eceecd4cfd3e2ed3cd5f9a06212e451fb4f8cbe0fa39a3acb1b3e8f18e22db8ee5def5829384bad50e823d4b301609b48 - languageName: node - linkType: hard - "class-variance-authority@npm:^0.7.0": version: 0.7.0 resolution: "class-variance-authority@npm:0.7.0" @@ -4912,17 +4540,6 @@ __metadata: languageName: node linkType: hard -"clipboardy@npm:^4.0.0": - version: 4.0.0 - resolution: "clipboardy@npm:4.0.0" - dependencies: - execa: "npm:^8.0.1" - is-wsl: "npm:^3.1.0" - is64bit: "npm:^2.0.0" - checksum: 10c0/02bb5f3d0a772bd84ec26a3566c72c2319a9f3b4cb8338370c3bffcf0073c80b834abe1a6945bea4f2cbea28e1627a975aaac577e3f61a868d924ce79138b041 - languageName: node - linkType: hard - "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -4934,17 +4551,6 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^7.0.0" - checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 - languageName: node - linkType: hard - "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" @@ -4966,13 +4572,6 @@ __metadata: languageName: node linkType: hard -"cluster-key-slot@npm:^1.1.0": - version: 1.1.2 - resolution: "cluster-key-slot@npm:1.1.2" - checksum: 10c0/d7d39ca28a8786e9e801eeb8c770e3c3236a566625d7299a47bb71113fb2298ce1039596acb82590e598c52dbc9b1f088c8f587803e697cb58e1867a95ff94d3 - languageName: node - linkType: hard - "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -5028,13 +4627,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.20.0": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 - languageName: node - linkType: hard - "commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -5043,16 +4635,9 @@ __metadata: linkType: hard "commander@npm:^9.4.1": - version: 9.5.0 - resolution: "commander@npm:9.5.0" - checksum: 10c0/5f7784fbda2aaec39e89eb46f06a999e00224b3763dc65976e05929ec486e174fe9aac2655f03ba6a5e83875bd173be5283dc19309b7c65954701c02025b3c1d - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6 + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: 10c0/5f7784fbda2aaec39e89eb46f06a999e00224b3763dc65976e05929ec486e174fe9aac2655f03ba6a5e83875bd173be5283dc19309b7c65954701c02025b3c1d languageName: node linkType: hard @@ -5068,19 +4653,6 @@ __metadata: languageName: node linkType: hard -"compress-commons@npm:^6.0.2": - version: 6.0.2 - resolution: "compress-commons@npm:6.0.2" - dependencies: - crc-32: "npm:^1.2.0" - crc32-stream: "npm:^6.0.0" - is-stream: "npm:^2.0.1" - normalize-path: "npm:^3.0.0" - readable-stream: "npm:^4.0.0" - checksum: 10c0/2347031b7c92c8ed5011b07b93ec53b298fa2cd1800897532ac4d4d1aeae06567883f481b6e35f13b65fc31b190c751df6635434d525562f0203fde76f1f0814 - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -5088,26 +4660,12 @@ __metadata: languageName: node linkType: hard -"confbox@npm:^0.1.3, confbox@npm:^0.1.7": - version: 0.1.7 - resolution: "confbox@npm:0.1.7" - checksum: 10c0/18b40c2f652196a833f3f1a5db2326a8a579cd14eacabfe637e4fc8cb9b68d7cf296139a38c5e7c688ce5041bf46f9adce05932d43fde44cf7e012840b5da111 - languageName: node - linkType: hard - "config@workspace:packages/config": version: 0.0.0-use.local resolution: "config@workspace:packages/config" languageName: unknown linkType: soft -"consola@npm:^3.2.3": - version: 3.2.3 - resolution: "consola@npm:3.2.3" - checksum: 10c0/c606220524ec88a05bb1baf557e9e0e04a0c08a9c35d7a08652d99de195c4ddcb6572040a7df57a18ff38bbc13ce9880ad032d56630cef27bef72768ef0ac078 - languageName: node - linkType: hard - "console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -5132,13 +4690,6 @@ __metadata: languageName: node linkType: hard -"cookie-es@npm:^1.0.0, cookie-es@npm:^1.1.0": - version: 1.1.0 - resolution: "cookie-es@npm:1.1.0" - checksum: 10c0/27f1057b05eb42dca539a80cf45b8f9d5bacf35482690d756025447810dcd669e0cd13952a063a43e47a4e6fd7400745defedc97479a4254019f0bdb5c200341 - languageName: node - linkType: hard - "cookie@npm:0.6.0": version: 0.6.0 resolution: "cookie@npm:0.6.0" @@ -5188,16 +4739,6 @@ __metadata: languageName: node linkType: hard -"crc32-stream@npm:^6.0.0": - version: 6.0.0 - resolution: "crc32-stream@npm:6.0.0" - dependencies: - crc-32: "npm:^1.2.0" - readable-stream: "npm:^4.0.0" - checksum: 10c0/bf9c84571ede2d119c2b4f3a9ef5eeb9ff94b588493c0d3862259af86d3679dcce1c8569dd2b0a6eff2f35f5e2081cc1263b846d2538d4054da78cf34f262a3d - languageName: node - linkType: hard - "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -5205,13 +4746,6 @@ __metadata: languageName: node linkType: hard -"croner@npm:^8.0.1": - version: 8.0.2 - resolution: "croner@npm:8.0.2" - checksum: 10c0/24e9edd76d1f0c08a2af31d76565a35036077f49e007fd9b3984f3c3d15decccea4f98648cf58077e63b23376e4d5251973466605182967620b1d5cd114a93f6 - languageName: node - linkType: hard - "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -5223,18 +4757,6 @@ __metadata: languageName: node linkType: hard -"crossws@npm:^0.2.0, crossws@npm:^0.2.2, crossws@npm:^0.2.4": - version: 0.2.4 - resolution: "crossws@npm:0.2.4" - peerDependencies: - uWebSockets.js: "*" - peerDependenciesMeta: - uWebSockets.js: - optional: true - checksum: 10c0/b950c64d36f3f11fdb8e0faf3107598660d89d77eb860e68b535fe6acba9f0f2f0507cc7250bd219a3ef2fe08718db91b591e6912b7324fcfc8fd1b8d9f78c96 - languageName: node - linkType: hard - "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -5429,33 +4951,6 @@ __metadata: languageName: node linkType: hard -"db0@npm:^0.1.4": - version: 0.1.4 - resolution: "db0@npm:0.1.4" - peerDependencies: - "@libsql/client": ^0.5.2 - better-sqlite3: ^9.4.3 - drizzle-orm: ^0.29.4 - peerDependenciesMeta: - "@libsql/client": - optional: true - better-sqlite3: - optional: true - drizzle-orm: - optional: true - checksum: 10c0/5b24852b5955184a94e78a426e3bc444d561cd4d65e75fd64c1dcc8c4614628ed0841a52a7bfb0fea37323a966b196af15279452966fdf8ffeaba53e220bc959 - languageName: node - linkType: hard - -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -5505,13 +5000,6 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 - languageName: node - linkType: hard - "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -5532,13 +5020,6 @@ __metadata: languageName: node linkType: hard -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 - languageName: node - linkType: hard - "define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -5550,13 +5031,6 @@ __metadata: languageName: node linkType: hard -"defu@npm:^6.0.0, defu@npm:^6.1.3, defu@npm:^6.1.4": - version: 6.1.4 - resolution: "defu@npm:6.1.4" - checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5 - languageName: node - linkType: hard - "degenerator@npm:^5.0.0": version: 5.0.1 resolution: "degenerator@npm:5.0.1" @@ -5598,13 +5072,6 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c - languageName: node - linkType: hard - "dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -5612,29 +5079,6 @@ __metadata: languageName: node linkType: hard -"destr@npm:^2.0.3": - version: 2.0.3 - resolution: "destr@npm:2.0.3" - checksum: 10c0/10e7eff5149e2839a4dd29a1e9617c3c675a3b53608d78d74fc6f4abc31daa977e6de08e0eea78965527a0d5a35467ae2f9624e0a4646d54aa1162caa094473e - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 - languageName: node - linkType: hard - -"detect-libc@npm:^1.0.3": - version: 1.0.3 - resolution: "detect-libc@npm:1.0.3" - bin: - detect-libc: ./bin/detect-libc.js - checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d - languageName: node - linkType: hard - "detect-libc@npm:^2.0.0": version: 2.0.3 resolution: "detect-libc@npm:2.0.3" @@ -5723,15 +5167,6 @@ __metadata: languageName: node linkType: hard -"dot-prop@npm:^8.0.2": - version: 8.0.2 - resolution: "dot-prop@npm:8.0.2" - dependencies: - type-fest: "npm:^3.8.0" - checksum: 10c0/422b4a65aad880fc4a21d09615ae97bf6c66767e7b29522fbafa34d2dd0489adff745f79dd1126ac463730f2b43eada75a02e5114065491c6148953f29551f27 - languageName: node - linkType: hard - "dotenv-cli@npm:^7.4.1": version: 7.4.2 resolution: "dotenv-cli@npm:7.4.2" @@ -5760,7 +5195,7 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.3.0, dotenv@npm:^16.4.5": +"dotenv@npm:^16.3.0": version: 16.4.5 resolution: "dotenv@npm:16.4.5" checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f @@ -5896,13 +5331,6 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.2": - version: 0.1.2 - resolution: "duplexer@npm:0.1.2" - checksum: 10c0/c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2 - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -5910,13 +5338,6 @@ __metadata: languageName: node linkType: hard -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.668": version: 1.4.759 resolution: "electron-to-chromium@npm:1.4.759" @@ -5924,6 +5345,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.796": + version: 1.4.815 + resolution: "electron-to-chromium@npm:1.4.815" + checksum: 10c0/239f949e59375dbd6f13abd3bfc46463a72f77decb196b3c88d1ee9cd64ce04be4366d25d45a639f59141d63c1905fdb28d672830d68282af24abbe0620b02b4 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -5945,13 +5373,6 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec - languageName: node - linkType: hard - "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -6269,87 +5690,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.20.2, esbuild@npm:~0.20.2": - version: 0.20.2 - resolution: "esbuild@npm:0.20.2" - dependencies: - "@esbuild/aix-ppc64": "npm:0.20.2" - "@esbuild/android-arm": "npm:0.20.2" - "@esbuild/android-arm64": "npm:0.20.2" - "@esbuild/android-x64": "npm:0.20.2" - "@esbuild/darwin-arm64": "npm:0.20.2" - "@esbuild/darwin-x64": "npm:0.20.2" - "@esbuild/freebsd-arm64": "npm:0.20.2" - "@esbuild/freebsd-x64": "npm:0.20.2" - "@esbuild/linux-arm": "npm:0.20.2" - "@esbuild/linux-arm64": "npm:0.20.2" - "@esbuild/linux-ia32": "npm:0.20.2" - "@esbuild/linux-loong64": "npm:0.20.2" - "@esbuild/linux-mips64el": "npm:0.20.2" - "@esbuild/linux-ppc64": "npm:0.20.2" - "@esbuild/linux-riscv64": "npm:0.20.2" - "@esbuild/linux-s390x": "npm:0.20.2" - "@esbuild/linux-x64": "npm:0.20.2" - "@esbuild/netbsd-x64": "npm:0.20.2" - "@esbuild/openbsd-x64": "npm:0.20.2" - "@esbuild/sunos-x64": "npm:0.20.2" - "@esbuild/win32-arm64": "npm:0.20.2" - "@esbuild/win32-ia32": "npm:0.20.2" - "@esbuild/win32-x64": "npm:0.20.2" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/66398f9fb2c65e456a3e649747b39af8a001e47963b25e86d9c09d2a48d61aa641b27da0ce5cad63df95ad246105e1d83e7fee0e1e22a0663def73b1c5101112 - languageName: node - linkType: hard - -"esbuild@npm:^0.21.4": +"esbuild@npm:^0.21.3, esbuild@npm:^0.21.4": version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: @@ -6502,24 +5843,97 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 + checksum: 10c0/473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 + languageName: node + linkType: hard + +"esbuild@npm:~0.20.2": + version: 0.20.2 + resolution: "esbuild@npm:0.20.2" + dependencies: + "@esbuild/aix-ppc64": "npm:0.20.2" + "@esbuild/android-arm": "npm:0.20.2" + "@esbuild/android-arm64": "npm:0.20.2" + "@esbuild/android-x64": "npm:0.20.2" + "@esbuild/darwin-arm64": "npm:0.20.2" + "@esbuild/darwin-x64": "npm:0.20.2" + "@esbuild/freebsd-arm64": "npm:0.20.2" + "@esbuild/freebsd-x64": "npm:0.20.2" + "@esbuild/linux-arm": "npm:0.20.2" + "@esbuild/linux-arm64": "npm:0.20.2" + "@esbuild/linux-ia32": "npm:0.20.2" + "@esbuild/linux-loong64": "npm:0.20.2" + "@esbuild/linux-mips64el": "npm:0.20.2" + "@esbuild/linux-ppc64": "npm:0.20.2" + "@esbuild/linux-riscv64": "npm:0.20.2" + "@esbuild/linux-s390x": "npm:0.20.2" + "@esbuild/linux-x64": "npm:0.20.2" + "@esbuild/netbsd-x64": "npm:0.20.2" + "@esbuild/openbsd-x64": "npm:0.20.2" + "@esbuild/sunos-x64": "npm:0.20.2" + "@esbuild/win32-arm64": "npm:0.20.2" + "@esbuild/win32-ia32": "npm:0.20.2" + "@esbuild/win32-x64": "npm:0.20.2" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/66398f9fb2c65e456a3e649747b39af8a001e47963b25e86d9c09d2a48d61aa641b27da0ce5cad63df95ad246105e1d83e7fee0e1e22a0663def73b1c5101112 languageName: node linkType: hard -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": +"escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 languageName: node linkType: hard -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -6534,13 +5948,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^5.0.0": - version: 5.0.0 - resolution: "escape-string-regexp@npm:5.0.0" - checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95 - languageName: node - linkType: hard - "escodegen@npm:^2.1.0": version: 2.1.0 resolution: "escodegen@npm:2.1.0" @@ -6707,6 +6114,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-hooks@npm:^4.6.2": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc + languageName: node + linkType: hard + "eslint-plugin-react-hooks@npm:beta": version: 5.1.0-beta-6946ebe620-20240508 resolution: "eslint-plugin-react-hooks@npm:5.1.0-beta-6946ebe620-20240508" @@ -6716,6 +6132,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-refresh@npm:^0.4.7": + version: 0.4.7 + resolution: "eslint-plugin-react-refresh@npm:0.4.7" + peerDependencies: + eslint: ">=7" + checksum: 10c0/78600fe6b10905e7a068a377a381f315c962e3cb7c0575ffcb2136a1fe3dd6936bdfabb56c8f053a581b322a8fbffd7b7ec4b6fa7e227e5470f38fbe9bb170ee + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.33.2, eslint-plugin-react@npm:^7.34.1": version: 7.34.1 resolution: "eslint-plugin-react@npm:7.34.1" @@ -6755,16 +6180,6 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^4.1.1" - checksum: 10c0/d30ef9dc1c1cbdece34db1539a4933fe3f9b14e1ffb27ecc85987902ee663ad7c9473bbd49a9a03195a373741e62e2f807c4938992e019b511993d163450e70a - languageName: node - linkType: hard - "eslint-scope@npm:^8.0.1": version: 8.0.1 resolution: "eslint-scope@npm:8.0.1" @@ -6789,17 +6204,17 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.2.0": - version: 9.2.0 - resolution: "eslint@npm:9.2.0" +"eslint@npm:^9.6.0": + version: 9.6.0 + resolution: "eslint@npm:9.6.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^3.0.2" - "@eslint/js": "npm:9.2.0" - "@humanwhocodes/config-array": "npm:^0.13.0" + "@eslint/config-array": "npm:^0.17.0" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:9.6.0" "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.2.3" + "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" @@ -6808,8 +6223,8 @@ __metadata: escape-string-regexp: "npm:^4.0.0" eslint-scope: "npm:^8.0.1" eslint-visitor-keys: "npm:^4.0.0" - espree: "npm:^10.0.1" - esquery: "npm:^1.4.2" + espree: "npm:^10.1.0" + esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" file-entry-cache: "npm:^8.0.0" @@ -6829,7 +6244,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/eab3265100a359a486e40e1d9d4d3ecff936d2f4d952f4ab107d404e0684fffbe186ecd0fb41791af5bcb13570a27032ddf9a2e628927ed33473f64255b0037b + checksum: 10c0/82ea5ad3f28aaef89e2a98f4e6df0eae9d4e16ccd6d667c69977042e0b103fa5df98bf16d3df72d1ae77edd8c1dccfdf4afa2a55309aa8081a1bc54af6229826 languageName: node linkType: hard @@ -6856,6 +6271,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" + dependencies: + acorn: "npm:^8.12.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 + languageName: node + linkType: hard + "esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -6866,7 +6292,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.2": +"esquery@npm:^1.5.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -6884,13 +6310,6 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d - languageName: node - linkType: hard - "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" @@ -6898,22 +6317,6 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:2.0.2, estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af - languageName: node - linkType: hard - -"estree-walker@npm:^3.0.3": - version: 3.0.3 - resolution: "estree-walker@npm:3.0.3" - dependencies: - "@types/estree": "npm:^1.0.0" - checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d - languageName: node - linkType: hard - "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6921,13 +6324,6 @@ __metadata: languageName: node linkType: hard -"etag@npm:^1.8.1, etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 - languageName: node - linkType: hard - "event-emitter@npm:^0.3.5": version: 0.3.5 resolution: "event-emitter@npm:0.3.5" @@ -6993,23 +6389,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af - languageName: node - linkType: hard - "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -7068,14 +6447,7 @@ __metadata: languageName: node linkType: hard -"fast-fifo@npm:^1.1.0, fast-fifo@npm:^1.2.0": - version: 1.3.2 - resolution: "fast-fifo@npm:1.3.2" - checksum: 10c0/d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c - languageName: node - linkType: hard - -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -7143,13 +6515,6 @@ __metadata: languageName: node linkType: hard -"file-uri-to-path@npm:1.0.0": - version: 1.0.0 - resolution: "file-uri-to-path@npm:1.0.0" - checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519 - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -7215,10 +6580,30 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a +"fraction.js@npm:^4.3.7": + version: 4.3.7 + resolution: "fraction.js@npm:4.3.7" + checksum: 10c0/df291391beea9ab4c263487ffd9d17fed162dbb736982dee1379b2a8cc94e4e24e46ed508c6d278aded9080ba51872f1bc5f3a5fd8d7c74e5f105b508ac28711 + languageName: node + linkType: hard + +"framer-motion@npm:^11.2.12": + version: 11.2.12 + resolution: "framer-motion@npm:11.2.12" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10c0/a0f4460d2f135742389cf616968314fabee75ad9740fcb62a1c414deee8ade12ac19f4df3e399b819ce2337b9e76fe5a5363787decc60375477f5d23304f73f4 languageName: node linkType: hard @@ -7375,7 +6760,7 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": +"get-caller-file@npm:^2.0.1": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde @@ -7402,13 +6787,6 @@ __metadata: languageName: node linkType: hard -"get-port-please@npm:^3.1.2": - version: 3.1.2 - resolution: "get-port-please@npm:3.1.2" - checksum: 10c0/61237342fe035967e5ad1b67a2dee347a64de093bf1222b7cd50072568d73c48dad5cc5cd4fa44635b7cfdcd14d6c47554edb9891c2ec70ab33ecb831683e257 - languageName: node - linkType: hard - "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -7416,13 +6794,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 - languageName: node - linkType: hard - "get-symbol-description@npm:^1.0.2": version: 1.0.2 resolution: "get-symbol-description@npm:1.0.2" @@ -7464,24 +6835,6 @@ __metadata: languageName: node linkType: hard -"giget@npm:^1.2.1": - version: 1.2.3 - resolution: "giget@npm:1.2.3" - dependencies: - citty: "npm:^0.1.6" - consola: "npm:^3.2.3" - defu: "npm:^6.1.4" - node-fetch-native: "npm:^1.6.3" - nypm: "npm:^0.3.8" - ohash: "npm:^1.1.3" - pathe: "npm:^1.1.2" - tar: "npm:^6.2.0" - bin: - giget: dist/cli.mjs - checksum: 10c0/0e82836783c704346fdda83e23d144e97f28a959320b1d8ee73c69a5af562362bcb727cf6ad99f90e45ed8a6abec140833534bb1fedcaa1c06fa026daaf3119c - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -7529,7 +6882,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10": +"glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.3.12 resolution: "glob@npm:10.3.12" dependencies: @@ -7558,7 +6911,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.3, glob@npm:^8.1.0": +"glob@npm:^8.1.0": version: 8.1.0 resolution: "glob@npm:8.1.0" dependencies: @@ -7625,20 +6978,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^14.0.1": - version: 14.0.1 - resolution: "globby@npm:14.0.1" - dependencies: - "@sindresorhus/merge-streams": "npm:^2.1.0" - fast-glob: "npm:^3.3.2" - ignore: "npm:^5.2.4" - path-type: "npm:^5.0.0" - slash: "npm:^5.1.0" - unicorn-magic: "npm:^0.1.0" - checksum: 10c0/749a6be91cf455c161ebb5c9130df3991cb9fd7568425db850a8279a6cf45acd031c5069395beb7aeb4dd606b64f0d6ff8116c93726178d8e6182fee58c2736d - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -7648,7 +6987,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -7672,33 +7011,6 @@ __metadata: languageName: node linkType: hard -"gzip-size@npm:^7.0.0": - version: 7.0.0 - resolution: "gzip-size@npm:7.0.0" - dependencies: - duplexer: "npm:^0.1.2" - checksum: 10c0/0bf63084d5fea0880f3607ecd361d4663aab26b9cb0d3e97ba77373a0246c8f8de57d8613ac4e57e1e6c28522dcee6f8682aae55c275b9262b66d2ffd698f72b - languageName: node - linkType: hard - -"h3@npm:^1.10.2, h3@npm:^1.11.1": - version: 1.11.1 - resolution: "h3@npm:1.11.1" - dependencies: - cookie-es: "npm:^1.0.0" - crossws: "npm:^0.2.2" - defu: "npm:^6.1.4" - destr: "npm:^2.0.3" - iron-webcrypto: "npm:^1.0.0" - ohash: "npm:^1.1.3" - radix3: "npm:^1.1.0" - ufo: "npm:^1.4.0" - uncrypto: "npm:^0.1.3" - unenv: "npm:^1.9.0" - checksum: 10c0/bd02bfae536a0facb9ddcd85bd51ad16264ea6fd331a548540a0846e426348449fcbcb10b0fa08673cd1d9c60e6ff5d8f56e7ec2e1ee43fda460d8c16866cbfa - languageName: node - linkType: hard - "handlebars@npm:^4.4.3": version: 4.7.8 resolution: "handlebars@npm:4.7.8" @@ -7827,13 +7139,6 @@ __metadata: languageName: node linkType: hard -"hookable@npm:^5.5.3": - version: 5.5.3 - resolution: "hookable@npm:5.5.3" - checksum: 10c0/275f4cc84d27f8d48c5a5cd5685b6c0fea9291be9deea5bff0cfa72856ed566abde1dcd8cb1da0f9a70b4da3d7ec0d60dc3554c4edbba647058cc38816eced3d - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -7841,19 +7146,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - "http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" @@ -7864,13 +7156,6 @@ __metadata: languageName: node linkType: hard -"http-shutdown@npm:^1.2.2": - version: 1.2.2 - resolution: "http-shutdown@npm:1.2.2" - checksum: 10c0/1ea04d50d9a84ad6e7d9ee621160ce9515936e32e7f5ba445db48a5d72681858002c934c7f3ae5f474b301c1cd6b418aee3f6a2f109822109e606cc1a6c17c03 - languageName: node - linkType: hard - "https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -7891,13 +7176,6 @@ __metadata: languageName: node linkType: hard -"httpxy@npm:^0.1.5": - version: 0.1.5 - resolution: "httpxy@npm:0.1.5" - checksum: 10c0/02f0393106cb7ea7ddc6f524d04bbcfbe509b64334b89358e6e0cb9f05c471dbdd84d8a1d6e76832129b548f63cee7ca837f42ba34a3efa4a630aebc1cf8d419 - languageName: node - linkType: hard - "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -7905,13 +7183,6 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 - languageName: node - linkType: hard - "iconv-lite@npm:^0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -7937,7 +7208,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": +"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd @@ -7985,7 +7256,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -8070,23 +7341,6 @@ __metadata: languageName: node linkType: hard -"ioredis@npm:^5.3.2": - version: 5.4.1 - resolution: "ioredis@npm:5.4.1" - dependencies: - "@ioredis/commands": "npm:^1.1.1" - cluster-key-slot: "npm:^1.1.0" - debug: "npm:^4.3.4" - denque: "npm:^2.1.0" - lodash.defaults: "npm:^4.2.0" - lodash.isarguments: "npm:^3.1.0" - redis-errors: "npm:^1.2.0" - redis-parser: "npm:^3.0.0" - standard-as-callback: "npm:^2.1.0" - checksum: 10c0/5d28b7c89a3cab5b76d75923d7d4ce79172b3a1ca9be690133f6e8e393a7a4b4ffd55513e618bbb5504fed80d9e1395c9d9531a7c5c5c84aa4c4e765cca75456 - languageName: node - linkType: hard - "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -8097,13 +7351,6 @@ __metadata: languageName: node linkType: hard -"iron-webcrypto@npm:^1.0.0": - version: 1.1.1 - resolution: "iron-webcrypto@npm:1.1.1" - checksum: 10c0/a1b3a45044f36c4b1d191164c3395de86396ed316b7a69569efd1e72fc695143dc667f38f048595b8d59a2034b98de727c04ef0b049a4caab8077cfc440c38aa - languageName: node - linkType: hard - "is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" @@ -8151,15 +7398,6 @@ __metadata: languageName: node linkType: hard -"is-builtin-module@npm:^3.2.1": - version: 3.2.1 - resolution: "is-builtin-module@npm:3.2.1" - dependencies: - builtin-modules: "npm:^3.3.0" - checksum: 10c0/5a66937a03f3b18803381518f0ef679752ac18cdb7dd53b5e23ee8df8d440558737bd8dcc04d2aae555909d2ecb4a81b5c0d334d119402584b61e6a003e31af1 - languageName: node - linkType: hard - "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -8194,24 +7432,6 @@ __metadata: languageName: node linkType: hard -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc - languageName: node - linkType: hard - -"is-docker@npm:^3.0.0": - version: 3.0.0 - resolution: "is-docker@npm:3.0.0" - bin: - is-docker: cli.js - checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856 - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -8253,17 +7473,6 @@ __metadata: languageName: node linkType: hard -"is-inside-container@npm:^1.0.0": - version: 1.0.0 - resolution: "is-inside-container@npm:1.0.0" - dependencies: - is-docker: "npm:^3.0.0" - bin: - is-inside-container: cli.js - checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -8294,13 +7503,6 @@ __metadata: languageName: node linkType: hard -"is-module@npm:^1.0.0": - version: 1.0.0 - resolution: "is-module@npm:1.0.0" - checksum: 10c0/795a3914bcae7c26a1c23a1e5574c42eac13429625045737bf3e324ce865c0601d61aee7a5afbca1bee8cb300c7d9647e7dc98860c9bdbc3b7fdc51d8ac0bffc - languageName: node - linkType: hard - "is-negative-zero@npm:^2.0.3": version: 2.0.3 resolution: "is-negative-zero@npm:2.0.3" @@ -8308,13 +7510,6 @@ __metadata: languageName: node linkType: hard -"is-node-process@npm:^1.2.0": - version: 1.2.0 - resolution: "is-node-process@npm:1.2.0" - checksum: 10c0/5b24fda6776d00e42431d7bcd86bce81cb0b6cabeb944142fe7b077a54ada2e155066ad06dbe790abdb397884bdc3151e04a9707b8cd185099efbc79780573ed - languageName: node - linkType: hard - "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -8345,13 +7540,6 @@ __metadata: languageName: node linkType: hard -"is-primitive@npm:^3.0.1": - version: 3.0.1 - resolution: "is-primitive@npm:3.0.1" - checksum: 10c0/2e3b6f029fabbdda467ea51ea4fdd00e6552434108b863a08f296638072c506a7c195089e3e31f83e7fc14bebbd1c5c9f872fe127c9284a7665c8227b47ffdd6 - languageName: node - linkType: hard - "is-promise@npm:^2.2.2": version: 2.2.2 resolution: "is-promise@npm:2.2.2" @@ -8366,15 +7554,6 @@ __metadata: languageName: node linkType: hard -"is-reference@npm:1.2.1": - version: 1.2.1 - resolution: "is-reference@npm:1.2.1" - dependencies: - "@types/estree": "npm:*" - checksum: 10c0/7dc819fc8de7790264a0a5d531164f9f5b9ef5aa1cd05f35322d14db39c8a2ec78fd5d4bf57f9789f3ddd2b3abeea7728432b759636157a42db12a9e8c3b549b - languageName: node - linkType: hard - "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -8401,20 +7580,13 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": +"is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 languageName: node linkType: hard -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 - languageName: node - linkType: hard - "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -8491,33 +7663,6 @@ __metadata: languageName: node linkType: hard -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: "npm:^2.0.0" - checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e - languageName: node - linkType: hard - -"is-wsl@npm:^3.1.0": - version: 3.1.0 - resolution: "is-wsl@npm:3.1.0" - dependencies: - is-inside-container: "npm:^1.0.0" - checksum: 10c0/d3317c11995690a32c362100225e22ba793678fe8732660c6de511ae71a0ff05b06980cf21f98a6bf40d7be0e9e9506f859abe00a1118287d63e53d0a3d06947 - languageName: node - linkType: hard - -"is64bit@npm:^2.0.0": - version: 2.0.0 - resolution: "is64bit@npm:2.0.0" - dependencies: - system-architecture: "npm:^0.1.0" - checksum: 10c0/9f3741d4b7560e2a30b9ce0c79bb30c7bdcc5df77c897bd59bb68f0fd882ae698015e8da81d48331def66c778d430c1ae3cb8c1fcc34e96c576b66198395faa7 - languageName: node - linkType: hard - "isarray@npm:0.0.1": version: 0.0.1 resolution: "isarray@npm:0.0.1" @@ -8602,6 +7747,21 @@ __metadata: languageName: node linkType: hard +"jotai@npm:^2.8.4": + version: 2.8.4 + resolution: "jotai@npm:2.8.4" + peerDependencies: + "@types/react": ">=17.0.0" + react: ">=17.0.0" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + checksum: 10c0/32bd3a41ea9de2f1a17dc179707a37d4c470a44973d8e48dbc8d5284fbf6333b678a203b10216049ab7e62ca34465cf3c765f64ed54cb0ef470246309415ff0f + languageName: node + linkType: hard + "joycon@npm:^3.0.1, joycon@npm:^3.1.1": version: 3.1.1 resolution: "joycon@npm:3.1.1" @@ -8750,20 +7910,6 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.6": - version: 2.0.6 - resolution: "klona@npm:2.0.6" - checksum: 10c0/94eed2c6c2ce99f409df9186a96340558897b3e62a85afdc1ee39103954d2ebe1c1c4e9fe2b0952771771fa96d70055ede8b27962a7021406374fdb695fd4d01 - languageName: node - linkType: hard - -"knitwork@npm:^1.0.0, knitwork@npm:^1.1.0": - version: 1.1.0 - resolution: "knitwork@npm:1.1.0" - checksum: 10c0/e23c679d4ded01890ab2669ccde2e85e4d7e6ba327b1395ff657f8067c7d73dc134fc8cd8188c653de4a687be7fa9c130bd36c3e2f76d8685e8b97ff8b30779c - languageName: node - linkType: hard - "language-subtag-registry@npm:^0.3.20": version: 0.3.22 resolution: "language-subtag-registry@npm:0.3.22" @@ -8836,35 +7982,6 @@ __metadata: languageName: node linkType: hard -"listhen@npm:^1.7.2": - version: 1.7.2 - resolution: "listhen@npm:1.7.2" - dependencies: - "@parcel/watcher": "npm:^2.4.1" - "@parcel/watcher-wasm": "npm:^2.4.1" - citty: "npm:^0.1.6" - clipboardy: "npm:^4.0.0" - consola: "npm:^3.2.3" - crossws: "npm:^0.2.0" - defu: "npm:^6.1.4" - get-port-please: "npm:^3.1.2" - h3: "npm:^1.10.2" - http-shutdown: "npm:^1.2.2" - jiti: "npm:^1.21.0" - mlly: "npm:^1.6.1" - node-forge: "npm:^1.3.1" - pathe: "npm:^1.1.2" - std-env: "npm:^3.7.0" - ufo: "npm:^1.4.0" - untun: "npm:^0.1.3" - uqr: "npm:^0.1.2" - bin: - listen: bin/listhen.mjs - listhen: bin/listhen.mjs - checksum: 10c0/cd4d0651686b88c61a5bd5d5afc03feb99e352eb7862260112010655cf7997fb3356e61317f09555e2b7412175ae05265fc9e97458aa014586bf9fa4ab22bd5a - languageName: node - linkType: hard - "load-tsconfig@npm:^0.2.3": version: 0.2.5 resolution: "load-tsconfig@npm:0.2.5" @@ -8872,16 +7989,6 @@ __metadata: languageName: node linkType: hard -"local-pkg@npm:^0.5.0": - version: 0.5.0 - resolution: "local-pkg@npm:0.5.0" - dependencies: - mlly: "npm:^1.4.2" - pkg-types: "npm:^1.0.3" - checksum: 10c0/f61cbd00d7689f275558b1a45c7ff2a3ddf8472654123ed880215677b9adfa729f1081e50c27ffb415cdb9fa706fb755fec5e23cdd965be375c8059e87ff1cc9 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -8942,13 +8049,6 @@ __metadata: languageName: node linkType: hard -"lodash.isarguments@npm:^3.1.0": - version: 3.1.0 - resolution: "lodash.isarguments@npm:3.1.0" - checksum: 10c0/5e8f95ba10975900a3920fb039a3f89a5a79359a1b5565e4e5b4310ed6ebe64011e31d402e34f577eca983a1fc01ff86c926e3cbe602e1ddfc858fdd353e62d8 - languageName: node - linkType: hard - "lodash.isboolean@npm:^3.0.3": version: 3.0.3 resolution: "lodash.isboolean@npm:3.0.3" @@ -9026,7 +8126,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21": +"lodash@npm:^4.17.19, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -9125,21 +8225,12 @@ __metadata: languageName: node linkType: hard -"lucide-react@npm:^0.390.0": - version: 0.390.0 - resolution: "lucide-react@npm:0.390.0" +"lucide-react@npm:^0.399.0": + version: 0.399.0 + resolution: "lucide-react@npm:0.399.0" peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 - checksum: 10c0/d8062c311e703c592c0704d624855b965ba2caa3260f7158f65eb6a63c0826150ac67d35df210d58830bc6d85f8ad0e98e62c7e02e6f9e37690909aa046f64d0 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3, magic-string@npm:^0.30.5, magic-string@npm:^0.30.8": - version: 0.30.10 - resolution: "magic-string@npm:0.30.10" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 10c0/aa9ca17eae571a19bce92c8221193b6f93ee8511abb10f085e55ffd398db8e4c089a208d9eac559deee96a08b7b24d636ea4ab92f09c6cf42a7d1af51f7fd62b + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/49b97b65b8f225d4e93b18e66e5b2c8ce67a6cd7a90c589c6492b26063cec565a3d8b18b934fb35de01d9a15e1f52b2f8767b306b0a580d75a3c18d306e362be languageName: node linkType: hard @@ -9209,7 +8300,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -9220,45 +8311,18 @@ __metadata: linkType: hard "mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.35": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0 - languageName: node - linkType: hard - -"mime@npm:^3.0.0": - version: 3.0.0 - resolution: "mime@npm:3.0.0" - bin: - mime: cli.js - checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa languageName: node linkType: hard -"mime@npm:^4.0.1": - version: 4.0.3 - resolution: "mime@npm:4.0.3" - bin: - mime: bin/cli.js - checksum: 10c0/4be1d06813a581eb9634748919eadab9785857dcfe2af4acca8e4bc340b4b74ff7452c7d3cd76169d0f6b77d7f1ab3434bde8a72ca4291fd150b4205c756c36b +"mime-types@npm:^2.1.35": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 languageName: node linkType: hard @@ -9269,13 +8333,6 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf - languageName: node - linkType: hard - "minimatch@npm:9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -9285,7 +8342,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -9432,32 +8489,6 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.4.2, mlly@npm:^1.6.1": - version: 1.7.0 - resolution: "mlly@npm:1.7.0" - dependencies: - acorn: "npm:^8.11.3" - pathe: "npm:^1.1.2" - pkg-types: "npm:^1.1.0" - ufo: "npm:^1.5.3" - checksum: 10c0/0b90e5b86e35897fd830624635b30052d0dfeb01b62a021fff4c0a5f46fbc617db685acfbc8c1c7cdcf687d9ffb8d54f3c1b0087ab953232cb3c158a2fb2d770 - languageName: node - linkType: hard - -"mri@npm:^1.2.0": - version: 1.2.0 - resolution: "mri@npm:1.2.0" - checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -9465,7 +8496,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.1.1": +"ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -9533,20 +8564,6 @@ __metadata: languageName: node linkType: hard -"napi-wasm@npm:^1.1.0": - version: 1.1.0 - resolution: "napi-wasm@npm:1.1.0" - checksum: 10c0/074df6b5b72698f07b39ca3c448a3fcbaf8e6e78521f0cb3aefd8c2f059d69eae0e3bfe367b4aa3df1976c25e351e4e52a359f22fb2c379eb6781bfa042f582b - languageName: node - linkType: hard - -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 10c0/f6cef26f5044515754802c0fc475d81426f3b90fe88c20fabe08771ce1f736ce46e0397c10acb569a4dd0acb84c7f1ee70676122f95d5bfdd747af3a6c6bbaa8 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -9672,89 +8689,6 @@ __metadata: languageName: node linkType: hard -"nitropack@npm:^2.9.6": - version: 2.9.6 - resolution: "nitropack@npm:2.9.6" - dependencies: - "@cloudflare/kv-asset-handler": "npm:^0.3.1" - "@netlify/functions": "npm:^2.6.0" - "@rollup/plugin-alias": "npm:^5.1.0" - "@rollup/plugin-commonjs": "npm:^25.0.7" - "@rollup/plugin-inject": "npm:^5.0.5" - "@rollup/plugin-json": "npm:^6.1.0" - "@rollup/plugin-node-resolve": "npm:^15.2.3" - "@rollup/plugin-replace": "npm:^5.0.5" - "@rollup/plugin-terser": "npm:^0.4.4" - "@rollup/pluginutils": "npm:^5.1.0" - "@types/http-proxy": "npm:^1.17.14" - "@vercel/nft": "npm:^0.26.4" - archiver: "npm:^7.0.1" - c12: "npm:^1.10.0" - chalk: "npm:^5.3.0" - chokidar: "npm:^3.6.0" - citty: "npm:^0.1.6" - consola: "npm:^3.2.3" - cookie-es: "npm:^1.1.0" - croner: "npm:^8.0.1" - crossws: "npm:^0.2.4" - db0: "npm:^0.1.4" - defu: "npm:^6.1.4" - destr: "npm:^2.0.3" - dot-prop: "npm:^8.0.2" - esbuild: "npm:^0.20.2" - escape-string-regexp: "npm:^5.0.0" - etag: "npm:^1.8.1" - fs-extra: "npm:^11.2.0" - globby: "npm:^14.0.1" - gzip-size: "npm:^7.0.0" - h3: "npm:^1.11.1" - hookable: "npm:^5.5.3" - httpxy: "npm:^0.1.5" - ioredis: "npm:^5.3.2" - is-primitive: "npm:^3.0.1" - jiti: "npm:^1.21.0" - klona: "npm:^2.0.6" - knitwork: "npm:^1.1.0" - listhen: "npm:^1.7.2" - magic-string: "npm:^0.30.8" - mime: "npm:^4.0.1" - mlly: "npm:^1.6.1" - mri: "npm:^1.2.0" - node-fetch-native: "npm:^1.6.4" - ofetch: "npm:^1.3.4" - ohash: "npm:^1.1.3" - openapi-typescript: "npm:^6.7.5" - pathe: "npm:^1.1.2" - perfect-debounce: "npm:^1.0.0" - pkg-types: "npm:^1.0.3" - pretty-bytes: "npm:^6.1.1" - radix3: "npm:^1.1.2" - rollup: "npm:^4.13.2" - rollup-plugin-visualizer: "npm:^5.12.0" - scule: "npm:^1.3.0" - semver: "npm:^7.6.0" - serve-placeholder: "npm:^2.0.1" - serve-static: "npm:^1.15.0" - std-env: "npm:^3.7.0" - ufo: "npm:^1.5.3" - uncrypto: "npm:^0.1.3" - unctx: "npm:^2.3.1" - unenv: "npm:^1.9.0" - unimport: "npm:^3.7.1" - unstorage: "npm:^1.10.2" - unwasm: "npm:^0.3.9" - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - bin: - nitro: dist/cli/index.mjs - nitropack: dist/cli/index.mjs - checksum: 10c0/cec6b023f26641c5ef0670dd155dc49d96d337032930fa1e0f42324fdf0c9ddfd3500483f615fa9cce8a27bc91823987307049f8e385b07a39065f2d82198270 - languageName: node - linkType: hard - "no-case@npm:^2.2.0, no-case@npm:^2.3.2": version: 2.3.2 resolution: "no-case@npm:2.3.2" @@ -9773,22 +8707,6 @@ __metadata: languageName: node linkType: hard -"node-addon-api@npm:^7.0.0": - version: 7.1.0 - resolution: "node-addon-api@npm:7.1.0" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/2e096ab079e3c46d33b0e252386e9c239c352f7cc6d75363d9a3c00bdff34c1a5da170da861917512843f213c32d024ced9dc9552b968029786480d18727ec66 - languageName: node - linkType: hard - -"node-fetch-native@npm:^1.6.1, node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3, node-fetch-native@npm:^1.6.4": - version: 1.6.4 - resolution: "node-fetch-native@npm:1.6.4" - checksum: 10c0/78334dc6def5d1d95cfe87b33ac76c4833592c5eb84779ad2b0c23c689f9dd5d1cfc827035ada72d6b8b218f717798968c5a99aeff0a1a8bf06657e80592f9c3 - languageName: node - linkType: hard - "node-fetch@npm:^2.6.7": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -9803,24 +8721,6 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1.3.1": - version: 1.3.1 - resolution: "node-forge@npm:1.3.1" - checksum: 10c0/e882819b251a4321f9fc1d67c85d1501d3004b4ee889af822fd07f64de3d1a8e272ff00b689570af0465d65d6bf5074df9c76e900e0aff23e60b847f2a46fbe8 - languageName: node - linkType: hard - -"node-gyp-build@npm:^4.2.2": - version: 4.8.1 - resolution: "node-gyp-build@npm:4.8.1" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 10c0/e36ca3d2adf2b9cca316695d7687207c19ac6ed326d6d7c68d7112cebe0de4f82d6733dff139132539fcc01cf5761f6c9082a21864ab9172edf84282bc849ce7 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 10.1.0 resolution: "node-gyp@npm:10.1.0" @@ -9867,6 +8767,13 @@ __metadata: languageName: node linkType: hard +"non.geist@npm:^1.0.3": + version: 1.0.3 + resolution: "non.geist@npm:1.0.3" + checksum: 10c0/8f00efbf2076caf80f3cac0cfec39b125b6df578a524ceb83c6b4c4e6bb48545865f7f7942fd855711798edde5ac6ec4aac30ebe549b07fbb3a4f53fa463fd8a + languageName: node + linkType: hard + "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -9896,6 +8803,13 @@ __metadata: languageName: node linkType: hard +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6 + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -9905,15 +8819,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" - dependencies: - path-key: "npm:^4.0.0" - checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba - languageName: node - linkType: hard - "npmlog@npm:^5.0.1": version: 5.0.1 resolution: "npmlog@npm:5.0.1" @@ -9926,21 +8831,6 @@ __metadata: languageName: node linkType: hard -"nypm@npm:^0.3.8": - version: 0.3.8 - resolution: "nypm@npm:0.3.8" - dependencies: - citty: "npm:^0.1.6" - consola: "npm:^3.2.3" - execa: "npm:^8.0.1" - pathe: "npm:^1.1.2" - ufo: "npm:^1.4.0" - bin: - nypm: dist/cli.mjs - checksum: 10c0/b910ad4f2156789e410443cb20e9e604baf9570dd54acc740bd3a7784cb6e96d4a2619c4e6ad2bea28a3f849acafbf4a8bdc9b9e52bd87379a5bd68e3b66400d - languageName: node - linkType: hard - "oauth4webapi@npm:^2.4.0": version: 2.10.4 resolution: "oauth4webapi@npm:2.10.4" @@ -10044,24 +8934,6 @@ __metadata: languageName: node linkType: hard -"ofetch@npm:^1.3.3, ofetch@npm:^1.3.4": - version: 1.3.4 - resolution: "ofetch@npm:1.3.4" - dependencies: - destr: "npm:^2.0.3" - node-fetch-native: "npm:^1.6.3" - ufo: "npm:^1.5.3" - checksum: 10c0/39855005c3f8aa11c11d3a3b0c4366b67d316da58633f4cf5d4a5af0a61495fd68699f355e70deda70355ead25f27b41c3bde2fdd1d24ce3f85ac79608dd8677 - languageName: node - linkType: hard - -"ohash@npm:^1.1.3": - version: 1.1.3 - resolution: "ohash@npm:1.1.3" - checksum: 10c0/928f5bdbd8cd73f90cf544c0533dbda8e0a42d9b8c7454ab89e64e4d11bc85f85242830b4e107426ce13dc4dd3013286f8f5e0c84abd8942a014b907d9692540 - languageName: node - linkType: hard - "on-exit-leak-free@npm:^2.1.0": version: 2.1.2 resolution: "on-exit-leak-free@npm:2.1.2" @@ -10069,15 +8941,6 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 - languageName: node - linkType: hard - "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -10096,42 +8959,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: "npm:^4.0.0" - checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c - languageName: node - linkType: hard - -"open@npm:^8.4.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 - languageName: node - linkType: hard - -"openapi-typescript@npm:^6.7.5": - version: 6.7.5 - resolution: "openapi-typescript@npm:6.7.5" - dependencies: - ansi-colors: "npm:^4.1.3" - fast-glob: "npm:^3.3.2" - js-yaml: "npm:^4.1.0" - supports-color: "npm:^9.4.0" - undici: "npm:^5.28.2" - yargs-parser: "npm:^21.1.1" - bin: - openapi-typescript: bin/cli.js - checksum: 10c0/d4486a1a08d40a4292389af26093fd1b5c26ea4ee8c91f2d4d3f3fb910484cf3720eacafb38699a4de11759c2f67f866466ed75ab463b04f4f9d28e6ceb3cff2 - languageName: node - linkType: hard - "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -10186,13 +9013,6 @@ __metadata: languageName: node linkType: hard -"outvariant@npm:^1.2.1, outvariant@npm:^1.4.0": - version: 1.4.2 - resolution: "outvariant@npm:1.4.2" - checksum: 10c0/48041425a4cb725ff8871b7d9889bfc2eaded867b9b35b6c2450a36fb3632543173098654990caa6c9e9f67d902b2a01f4402c301835e9ecaf4b4695d3161853 - languageName: node - linkType: hard - "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -10305,13 +9125,6 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 - languageName: node - linkType: hard - "pascal-case@npm:^2.0.0": version: 2.0.1 resolution: "pascal-case@npm:2.0.1" @@ -10352,13 +9165,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 - languageName: node - linkType: hard - "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -10383,27 +9189,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 10c0/e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd - languageName: node - linkType: hard - -"pathe@npm:^1.1.1, pathe@npm:^1.1.2": - version: 1.1.2 - resolution: "pathe@npm:1.1.2" - checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 - languageName: node - linkType: hard - -"perfect-debounce@npm:^1.0.0": - version: 1.0.0 - resolution: "perfect-debounce@npm:1.0.0" - checksum: 10c0/e2baac416cae046ef1b270812cf9ccfb0f91c04ea36ac7f5b00bc84cb7f41bdbba087c0ab21b4e02a7ef3a1f1f6db399f137cecec46868bd7d8d88c2a9ee431f - languageName: node - linkType: hard - "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -10411,7 +9196,14 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1": +"picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be @@ -10494,17 +9286,6 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.3, pkg-types@npm:^1.1.0": - version: 1.1.0 - resolution: "pkg-types@npm:1.1.0" - dependencies: - confbox: "npm:^0.1.7" - mlly: "npm:^1.6.1" - pathe: "npm:^1.1.2" - checksum: 10c0/b350da13d2dab7dc2fa9d65a08a2038d841d8d8c94bf3878dd911a522e20da50d6662bab510fa329e363e403892374b3b847ebf7b3e10011805cdefb00f228fd - languageName: node - linkType: hard - "pngjs@npm:^5.0.0": version: 5.0.0 resolution: "pngjs@npm:5.0.0" @@ -10582,7 +9363,7 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.0.0": +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 @@ -10611,6 +9392,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.39": + version: 8.4.39 + resolution: "postcss@npm:8.4.39" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10c0/16f5ac3c4e32ee76d1582b3c0dcf1a1fdb91334a45ad755eeb881ccc50318fb8d64047de4f1601ac96e30061df203f0f2e2edbdc0bfc49b9c57bc9fb9bedaea3 + languageName: node + linkType: hard + "preact-render-to-string@npm:5.2.3": version: 5.2.3 resolution: "preact-render-to-string@npm:5.2.3" @@ -10700,13 +9492,6 @@ __metadata: languageName: node linkType: hard -"pretty-bytes@npm:^6.1.1": - version: 6.1.1 - resolution: "pretty-bytes@npm:6.1.1" - checksum: 10c0/c7a660b933355f3b4587ad3f001c266a8dd6afd17db9f89ebc50812354bb142df4b9600396ba5999bdb1f9717300387dc311df91895c5f0f2a1780e22495b5f8 - languageName: node - linkType: hard - "pretty-format@npm:^3.8.0": version: 3.8.0 resolution: "pretty-format@npm:3.8.0" @@ -10810,6 +9595,15 @@ __metadata: languageName: node linkType: hard +"qr-scanner@npm:^1.4.2": + version: 1.4.2 + resolution: "qr-scanner@npm:1.4.2" + dependencies: + "@types/offscreencanvas": "npm:^2019.6.4" + checksum: 10c0/32ac53d6f5c9045e1464d6b110eb19d3f8865f72276d26f00f6cc1e1d239ce34c799824a3082c775236cf887cf4354b2c292c89a08fd25378ab2c68472346970 + languageName: node + linkType: hard + "qrcode@npm:^1.5.3": version: 1.5.3 resolution: "qrcode@npm:1.5.3" @@ -10838,13 +9632,6 @@ __metadata: languageName: node linkType: hard -"queue-tick@npm:^1.0.1": - version: 1.0.1 - resolution: "queue-tick@npm:1.0.1" - checksum: 10c0/0db998e2c9b15215317dbcf801e9b23e6bcde4044e115155dae34f8e7454b9a783f737c9a725528d677b7a66c775eb7a955cf144fe0b87f62b575ce5bfd515a9 - languageName: node - linkType: hard - "quick-format-unescaped@npm:^4.0.3": version: 4.0.4 resolution: "quick-format-unescaped@npm:4.0.4" @@ -10852,39 +9639,6 @@ __metadata: languageName: node linkType: hard -"radix3@npm:^1.1.0, radix3@npm:^1.1.2": - version: 1.1.2 - resolution: "radix3@npm:1.1.2" - checksum: 10c0/d4a295547f71af079868d2c2ed3814a9296ee026c5488212d58c106e6b4797c6eaec1259b46c9728913622f2240c9a944bfc8e2b3b5f6e4a5045338b1609f1e4 - languageName: node - linkType: hard - -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: "npm:^5.1.0" - checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 - languageName: node - linkType: hard - -"rc9@npm:^2.1.1": - version: 2.1.2 - resolution: "rc9@npm:2.1.2" - dependencies: - defu: "npm:^6.1.4" - destr: "npm:^2.0.3" - checksum: 10c0/a2ead3b94bf033e35e4ea40d70062a09feddb8f589c3f5a8fe4e9342976974296aee9f6e9e72bd5e78e6ae4b7bc16dc244f63699fd7322c16314e3238db982c9 - languageName: node - linkType: hard - "rc@npm:^1.0.1, rc@npm:^1.1.6": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -10899,7 +9653,7 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.1": +"react-dom@npm:^18.3.1": version: 18.3.1 resolution: "react-dom@npm:18.3.1" dependencies: @@ -10972,6 +9726,30 @@ __metadata: languageName: node linkType: hard +"react-router-dom@npm:^6.24.0": + version: 6.24.0 + resolution: "react-router-dom@npm:6.24.0" + dependencies: + "@remix-run/router": "npm:1.17.0" + react-router: "npm:6.24.0" + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 10c0/2cb41120c1ff58fd1e187807214cf581e78e2845e5f411aa6a04f4748bd100431fd1ac5f8a45db281ea03d0d2354b66896b938c0b77adf7b343a6c1be52411de + languageName: node + linkType: hard + +"react-router@npm:6.24.0": + version: 6.24.0 + resolution: "react-router@npm:6.24.0" + dependencies: + "@remix-run/router": "npm:1.17.0" + peerDependencies: + react: ">=16.8" + checksum: 10c0/ad9c924d16dc4f5c90dff588e9a69d37488d2ad537de1ddbdf3b68561658c6e3fd1b8b12d16d50f19177f6547748c54e948d477e921f9230799ac71acfec24cf + languageName: node + linkType: hard + "react-smooth@npm:^4.0.0": version: 4.0.1 resolution: "react-smooth@npm:4.0.1" @@ -11018,7 +9796,7 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1": +"react@npm:^18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -11140,22 +9918,6 @@ __metadata: languageName: node linkType: hard -"redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0": - version: 1.2.0 - resolution: "redis-errors@npm:1.2.0" - checksum: 10c0/5b316736e9f532d91a35bff631335137a4f974927bb2fb42bf8c2f18879173a211787db8ac4c3fde8f75ed6233eb0888e55d52510b5620e30d69d7d719c8b8a7 - languageName: node - linkType: hard - -"redis-parser@npm:^3.0.0": - version: 3.0.0 - resolution: "redis-parser@npm:3.0.0" - dependencies: - redis-errors: "npm:^1.0.0" - checksum: 10c0/ee16ac4c7b2a60b1f42a2cdaee22b005bd4453eb2d0588b8a4939718997ae269da717434da5d570fe0b05030466eeb3f902a58cf2e8e1ca058bf6c9c596f632f - languageName: node - linkType: hard - "reflect.getprototypeof@npm:^1.0.4": version: 1.0.6 resolution: "reflect.getprototypeof@npm:1.0.6" @@ -11251,7 +10013,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.12.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4": +"resolve@npm:^1.1.7, resolve@npm:^1.12.0, resolve@npm:^1.22.2, resolve@npm:^1.22.4": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -11277,7 +10039,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -11349,45 +10111,89 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-visualizer@npm:^5.12.0": - version: 5.12.0 - resolution: "rollup-plugin-visualizer@npm:5.12.0" +"rollup@npm:^4.0.2": + version: 4.17.2 + resolution: "rollup@npm:4.17.2" dependencies: - open: "npm:^8.4.0" - picomatch: "npm:^2.3.1" - source-map: "npm:^0.7.4" - yargs: "npm:^17.5.1" - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: + "@rollup/rollup-android-arm-eabi": "npm:4.17.2" + "@rollup/rollup-android-arm64": "npm:4.17.2" + "@rollup/rollup-darwin-arm64": "npm:4.17.2" + "@rollup/rollup-darwin-x64": "npm:4.17.2" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.17.2" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.17.2" + "@rollup/rollup-linux-arm64-gnu": "npm:4.17.2" + "@rollup/rollup-linux-arm64-musl": "npm:4.17.2" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.17.2" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.17.2" + "@rollup/rollup-linux-s390x-gnu": "npm:4.17.2" + "@rollup/rollup-linux-x64-gnu": "npm:4.17.2" + "@rollup/rollup-linux-x64-musl": "npm:4.17.2" + "@rollup/rollup-win32-arm64-msvc": "npm:4.17.2" + "@rollup/rollup-win32-ia32-msvc": "npm:4.17.2" + "@rollup/rollup-win32-x64-msvc": "npm:4.17.2" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: optional: true bin: - rollup-plugin-visualizer: dist/bin/cli.js - checksum: 10c0/0e44a641223377ebb472bb10f2b22efa773b5f6fbe8d54f197f07c68d7a432cbf00abad79a0aa1570f70c673c792f24700d926d663ed9a4d0ad8406ae5a0f4e4 + rollup: dist/bin/rollup + checksum: 10c0/4fa6644e5c7fc4a34f654ea7e209be6c2c5897ed9dd43e7135230137204df748a795c7553804130f6c41da0b71e83f8c35a4a7881d385a77996adee50b609a6e languageName: node linkType: hard -"rollup@npm:^4.0.2, rollup@npm:^4.13.2": - version: 4.17.2 - resolution: "rollup@npm:4.17.2" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.17.2" - "@rollup/rollup-android-arm64": "npm:4.17.2" - "@rollup/rollup-darwin-arm64": "npm:4.17.2" - "@rollup/rollup-darwin-x64": "npm:4.17.2" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.17.2" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.17.2" - "@rollup/rollup-linux-arm64-gnu": "npm:4.17.2" - "@rollup/rollup-linux-arm64-musl": "npm:4.17.2" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.17.2" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.17.2" - "@rollup/rollup-linux-s390x-gnu": "npm:4.17.2" - "@rollup/rollup-linux-x64-gnu": "npm:4.17.2" - "@rollup/rollup-linux-x64-musl": "npm:4.17.2" - "@rollup/rollup-win32-arm64-msvc": "npm:4.17.2" - "@rollup/rollup-win32-ia32-msvc": "npm:4.17.2" - "@rollup/rollup-win32-x64-msvc": "npm:4.17.2" +"rollup@npm:^4.13.0": + version: 4.18.0 + resolution: "rollup@npm:4.18.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.18.0" + "@rollup/rollup-android-arm64": "npm:4.18.0" + "@rollup/rollup-darwin-arm64": "npm:4.18.0" + "@rollup/rollup-darwin-x64": "npm:4.18.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.18.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.18.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.18.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.18.0" + "@rollup/rollup-linux-x64-musl": "npm:4.18.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.18.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.18.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.18.0" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -11427,7 +10233,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/4fa6644e5c7fc4a34f654ea7e209be6c2c5897ed9dd43e7135230137204df748a795c7553804130f6c41da0b71e83f8c35a4a7881d385a77996adee50b609a6e + checksum: 10c0/7d0239f029c48d977e0d0b942433bed9ca187d2328b962fc815fc775d0fdf1966ffcd701fef265477e999a1fb01bddcc984fc675d1b9d9864bf8e1f1f487e23e languageName: node linkType: hard @@ -11477,7 +10283,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:^5.0.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -11534,13 +10340,6 @@ __metadata: languageName: node linkType: hard -"scule@npm:^1.1.1, scule@npm:^1.3.0": - version: 1.3.0 - resolution: "scule@npm:1.3.0" - checksum: 10c0/5d1736daa10622c420f2aa74e60d3c722e756bfb139fa784ae5c66669fdfe92932d30ed5072e4ce3107f9c3053e35ad73b2461cb18de45b867e1d4dea63f8823 - languageName: node - linkType: hard - "secure-json-parse@npm:^2.4.0": version: 2.7.0 resolution: "secure-json-parse@npm:2.7.0" @@ -11557,7 +10356,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.4, semver@npm:^7.6.0": +"semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.4, semver@npm:^7.6.0": version: 7.6.1 resolution: "semver@npm:7.6.1" bin: @@ -11566,27 +10365,6 @@ __metadata: languageName: node linkType: hard -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10c0/0eb134d6a51fc13bbcb976a1f4214ea1e33f242fae046efc311e80aff66c7a43603e26a79d9d06670283a13000e51be6e0a2cb80ff0942eaf9f1cd30b7ae736a - languageName: node - linkType: hard - "sentence-case@npm:^2.1.0": version: 2.1.1 resolution: "sentence-case@npm:2.1.1" @@ -11604,36 +10382,6 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": - version: 6.0.2 - resolution: "serialize-javascript@npm:6.0.2" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 - languageName: node - linkType: hard - -"serve-placeholder@npm:^2.0.1": - version: 2.0.1 - resolution: "serve-placeholder@npm:2.0.1" - dependencies: - defu: "npm:^6.0.0" - checksum: 10c0/5d7d520e5da94b53cf78ed63c14b2e414bd13d4692053696d9352fae4c1158bb07b037e708fcf0c574185c322cc9265fe6e124733030587cfa5836dbb33b9af1 - languageName: node - linkType: hard - -"serve-static@npm:^1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.18.0" - checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -11674,13 +10422,6 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -11716,7 +10457,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": +"signal-exit@npm:^4.0.1": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 @@ -11737,20 +10478,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^4.0.0": - version: 4.0.0 - resolution: "slash@npm:4.0.0" - checksum: 10c0/b522ca75d80d107fd30d29df0549a7b2537c83c4c4ecd12cd7d4ea6c8aaca2ab17ada002e7a1d78a9d736a0261509f26ea5b489082ee443a3a810586ef8eff18 - languageName: node - linkType: hard - -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 - languageName: node - linkType: hard - "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -11758,13 +10485,6 @@ __metadata: languageName: node linkType: hard -"smob@npm:^1.0.0": - version: 1.5.0 - resolution: "smob@npm:1.5.0" - checksum: 10c0/a1067f23265812de8357ed27312101af49b89129eb973e3f26ab5856ea774f88cace13342e66e32470f933ccfa916e0e9d0f7ca8bbd4f92dfab2af45c15956c2 - languageName: node - linkType: hard - "snake-case@npm:^2.1.0": version: 2.1.0 resolution: "snake-case@npm:2.1.0" @@ -11833,7 +10553,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.21": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -11859,13 +10579,6 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.4": - version: 0.7.4 - resolution: "source-map@npm:0.7.4" - checksum: 10c0/dc0cf3768fe23c345ea8760487f8c97ef6fca8a73c83cd7c9bf2fde8bc2c34adb9c0824d6feb14bc4f9e37fb522e18af621543f1289038a66ac7586da29aa7dc - languageName: node - linkType: hard - "split2@npm:^4.0.0": version: 4.2.0 resolution: "split2@npm:4.2.0" @@ -11896,27 +10609,6 @@ __metadata: languageName: node linkType: hard -"standard-as-callback@npm:^2.1.0": - version: 2.1.0 - resolution: "standard-as-callback@npm:2.1.0" - checksum: 10c0/012677236e3d3fdc5689d29e64ea8a599331c4babe86956bf92fc5e127d53f85411c5536ee0079c52c43beb0026b5ce7aa1d834dd35dd026e82a15d1bcaead1f - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - -"std-env@npm:^3.7.0": - version: 3.7.0 - resolution: "std-env@npm:3.7.0" - checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e - languageName: node - linkType: hard - "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0" @@ -11924,27 +10616,6 @@ __metadata: languageName: node linkType: hard -"streamx@npm:^2.15.0": - version: 2.16.1 - resolution: "streamx@npm:2.16.1" - dependencies: - bare-events: "npm:^2.2.0" - fast-fifo: "npm:^1.1.0" - queue-tick: "npm:^1.0.1" - dependenciesMeta: - bare-events: - optional: true - checksum: 10c0/202b1d7cb7ceb36cdc5d5d0e2c27deafcc8670a4934cda7a5e3d3d45b8d3a64dc43f1b982b1c1cb316f01964dd5137b7e26af3151582c7c29ad3cf4072c6dbb9 - languageName: node - linkType: hard - -"strict-event-emitter@npm:^0.5.1": - version: 0.5.1 - resolution: "strict-event-emitter@npm:0.5.1" - checksum: 10c0/f5228a6e6b6393c57f52f62e673cfe3be3294b35d6f7842fc24b172ae0a6e6c209fa83241d0e433fc267c503bc2f4ffdbe41a9990ff8ffd5ac425ec0489417f7 - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -12078,13 +10749,6 @@ __metadata: languageName: node linkType: hard -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce - languageName: node - linkType: hard - "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -12099,15 +10763,6 @@ __metadata: languageName: node linkType: hard -"strip-literal@npm:^1.3.0": - version: 1.3.0 - resolution: "strip-literal@npm:1.3.0" - dependencies: - acorn: "npm:^8.10.0" - checksum: 10c0/3c0c9ee41eb346e827eede61ef288457f53df30e3e6ff8b94fa81b636933b0c13ca4ea5c97d00a10d72d04be326da99ac819f8769f0c6407ba8177c98344a916 - languageName: node - linkType: hard - "styled-jsx@npm:5.1.1": version: 5.1.1 resolution: "styled-jsx@npm:5.1.1" @@ -12169,13 +10824,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^9.4.0": - version: 9.4.0 - resolution: "supports-color@npm:9.4.0" - checksum: 10c0/6c24e6b2b64c6a60e5248490cfa50de5924da32cf09ae357ad8ebbf305cc5d2717ba705a9d4cb397d80bbf39417e8fdc8d7a0ce18bd0041bf7b5b456229164e4 - languageName: node - linkType: hard - "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -12193,13 +10841,6 @@ __metadata: languageName: node linkType: hard -"system-architecture@npm:^0.1.0": - version: 0.1.0 - resolution: "system-architecture@npm:0.1.0" - checksum: 10c0/1969974ea5d31a9ac7c38f2657cfe8255b36f9e1d5ba3c58cb84c24fbeedf562778b8511f18a0abe6d70ae90148cfcaf145ecf26e37c0a53a3829076f3238cbb - languageName: node - linkType: hard - "tailwind-merge@npm:^2.3.0": version: 2.3.0 resolution: "tailwind-merge@npm:2.3.0" @@ -12218,9 +10859,9 @@ __metadata: languageName: node linkType: hard -"tailwindcss@npm:^3.4.3": - version: 3.4.3 - resolution: "tailwindcss@npm:3.4.3" +"tailwindcss@npm:^3.4.4": + version: 3.4.4 + resolution: "tailwindcss@npm:3.4.4" dependencies: "@alloc/quick-lru": "npm:^5.2.0" arg: "npm:^5.0.2" @@ -12247,7 +10888,7 @@ __metadata: bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: 10c0/11e5546494f2888f693ebaa271b218b3a8e52fe59d7b629e54f2dffd6eaafd5ded2e9f0c37ad04e6a866dffb2b116d91becebad77e1441beee8bf016bb2392f9 + checksum: 10c0/e4f7e1a2e1897871a4744f421ccb5639e8d51012e3644b0c35cf723527fdc8f9cddd3fa3b0fc28c198b0ea6ce44ead21c89cfec549d80bad9b1f3dd9d8bf2d54 languageName: node linkType: hard @@ -12271,18 +10912,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^3.0.0": - version: 3.1.7 - resolution: "tar-stream@npm:3.1.7" - dependencies: - b4a: "npm:^1.6.4" - fast-fifo: "npm:^1.2.0" - streamx: "npm:^2.15.0" - checksum: 10c0/a09199d21f8714bd729993ac49b6c8efcb808b544b89f23378ad6ffff6d1cb540878614ba9d4cfec11a64ef39e1a6f009a5398371491eb1fda606ffc7f70f718 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": +"tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -12296,20 +10926,6 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.17.4": - version: 5.31.0 - resolution: "terser@npm:5.31.0" - dependencies: - "@jridgewell/source-map": "npm:^0.3.3" - acorn: "npm:^8.8.2" - commander: "npm:^2.20.0" - source-map-support: "npm:~0.5.20" - bin: - terser: bin/terser - checksum: 10c0/cb127a579b03fb9dcee0d293ff24814deedcd430f447933b618e8593b7454f615b5c8493c68e86a4b0188769d5ea2af5251b5d507edb208114f7e8aebdc7c850 - languageName: node - linkType: hard - "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -12427,13 +11043,6 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 - languageName: node - linkType: hard - "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -12532,7 +11141,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 @@ -12585,17 +11194,6 @@ __metadata: languageName: node linkType: hard -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: "npm:^1.8.1" - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 10c0/02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2 - languageName: node - linkType: hard - "tsx@npm:^4.9.4": version: 4.9.4 resolution: "tsx@npm:4.9.4" @@ -12699,13 +11297,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^3.8.0": - version: 3.13.1 - resolution: "type-fest@npm:3.13.1" - checksum: 10c0/547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 - languageName: node - linkType: hard - "type@npm:^2.7.2": version: 2.7.2 resolution: "type@npm:2.7.2" @@ -12765,19 +11356,19 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^7.8.0": - version: 7.8.0 - resolution: "typescript-eslint@npm:7.8.0" +"typescript-eslint@npm:^7.14.1": + version: 7.14.1 + resolution: "typescript-eslint@npm:7.14.1" dependencies: - "@typescript-eslint/eslint-plugin": "npm:7.8.0" - "@typescript-eslint/parser": "npm:7.8.0" - "@typescript-eslint/utils": "npm:7.8.0" + "@typescript-eslint/eslint-plugin": "npm:7.14.1" + "@typescript-eslint/parser": "npm:7.14.1" + "@typescript-eslint/utils": "npm:7.14.1" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ce18a3dad7e2168cb6f2f29f7e77f3cf22bef72de6663ac8138d66b72e8aeb90875dbb6ad59526afd40543f5f0068f2ad9cd85003f78f9086aafd4b9fc3a9e85 + checksum: 10c0/93439aa50a814a2d7e117c7d9b54982292986e3c090950961d13dcb07b804ae31e43300e094fd5d27d1208c1647ebbb95fda4bc89163b1c0b2e36e8a777a6800 languageName: node linkType: hard @@ -12801,13 +11392,6 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.4.0, ufo@npm:^1.5.3": - version: 1.5.3 - resolution: "ufo@npm:1.5.3" - checksum: 10c0/1df10702582aa74f4deac4486ecdfd660e74be057355f1afb6adfa14243476cf3d3acff734ccc3d0b74e9bfdefe91d578f3edbbb0a5b2430fe93cd672370e024 - languageName: node - linkType: hard - "uglify-js@npm:^3.1.4": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -12829,25 +11413,6 @@ __metadata: languageName: node linkType: hard -"uncrypto@npm:^0.1.3": - version: 0.1.3 - resolution: "uncrypto@npm:0.1.3" - checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e - languageName: node - linkType: hard - -"unctx@npm:^2.3.1": - version: 2.3.1 - resolution: "unctx@npm:2.3.1" - dependencies: - acorn: "npm:^8.8.2" - estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.0" - unplugin: "npm:^1.3.1" - checksum: 10c0/e00aef1912a23686af2254806279b92a412b4dbad11240fa91db6a7b378e1b4f81dd9b6c9ed73708df9cccf02c11e748847e11f038064127963f6a796e66be6e - languageName: node - linkType: hard - "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -12855,56 +11420,6 @@ __metadata: languageName: node linkType: hard -"undici@npm:^5.28.2": - version: 5.28.4 - resolution: "undici@npm:5.28.4" - dependencies: - "@fastify/busboy": "npm:^2.0.0" - checksum: 10c0/08d0f2596553aa0a54ca6e8e9c7f45aef7d042c60918564e3a142d449eda165a80196f6ef19ea2ef2e6446959e293095d8e40af1236f0d67223b06afac5ecad7 - languageName: node - linkType: hard - -"unenv@npm:^1.9.0": - version: 1.9.0 - resolution: "unenv@npm:1.9.0" - dependencies: - consola: "npm:^3.2.3" - defu: "npm:^6.1.3" - mime: "npm:^3.0.0" - node-fetch-native: "npm:^1.6.1" - pathe: "npm:^1.1.1" - checksum: 10c0/d00012badc83731c07f08d5129c702c49c0212375eb3732b27aae89ace3c67162dbaea4496965676f18fc06b0ec445d91385e283f5fd3e4540dda8b0b5424f81 - languageName: node - linkType: hard - -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 - languageName: node - linkType: hard - -"unimport@npm:^3.7.1": - version: 3.7.1 - resolution: "unimport@npm:3.7.1" - dependencies: - "@rollup/pluginutils": "npm:^5.1.0" - acorn: "npm:^8.11.2" - escape-string-regexp: "npm:^5.0.0" - estree-walker: "npm:^3.0.3" - fast-glob: "npm:^3.3.2" - local-pkg: "npm:^0.5.0" - magic-string: "npm:^0.30.5" - mlly: "npm:^1.4.2" - pathe: "npm:^1.1.1" - pkg-types: "npm:^1.0.3" - scule: "npm:^1.1.1" - strip-literal: "npm:^1.3.0" - unplugin: "npm:^1.5.1" - checksum: 10c0/75c240e3894b960e9155984b8c8739aafdba5d2e5aabac75e136cb00bea2521ac638f6a258b7d4383112ef1293968b8b425425c529ab681f382ecdb187d05b73 - languageName: node - linkType: hard - "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -12930,104 +11445,6 @@ __metadata: languageName: node linkType: hard -"unplugin@npm:^1.10.0, unplugin@npm:^1.3.1, unplugin@npm:^1.5.1": - version: 1.10.1 - resolution: "unplugin@npm:1.10.1" - dependencies: - acorn: "npm:^8.11.3" - chokidar: "npm:^3.6.0" - webpack-sources: "npm:^3.2.3" - webpack-virtual-modules: "npm:^0.6.1" - checksum: 10c0/6fe469785a46ff2a2d5c077db8b8b8d2c5429016f2561cffed4eb0068ea085c50b8c503891a4ea028f8226da0b9a8b878118a0b9eeded511b53adec4edbb38d3 - languageName: node - linkType: hard - -"unstorage@npm:^1.10.2": - version: 1.10.2 - resolution: "unstorage@npm:1.10.2" - dependencies: - anymatch: "npm:^3.1.3" - chokidar: "npm:^3.6.0" - destr: "npm:^2.0.3" - h3: "npm:^1.11.1" - listhen: "npm:^1.7.2" - lru-cache: "npm:^10.2.0" - mri: "npm:^1.2.0" - node-fetch-native: "npm:^1.6.2" - ofetch: "npm:^1.3.3" - ufo: "npm:^1.4.0" - peerDependencies: - "@azure/app-configuration": ^1.5.0 - "@azure/cosmos": ^4.0.0 - "@azure/data-tables": ^13.2.2 - "@azure/identity": ^4.0.1 - "@azure/keyvault-secrets": ^4.8.0 - "@azure/storage-blob": ^12.17.0 - "@capacitor/preferences": ^5.0.7 - "@netlify/blobs": ^6.5.0 || ^7.0.0 - "@planetscale/database": ^1.16.0 - "@upstash/redis": ^1.28.4 - "@vercel/kv": ^1.0.1 - idb-keyval: ^6.2.1 - ioredis: ^5.3.2 - peerDependenciesMeta: - "@azure/app-configuration": - optional: true - "@azure/cosmos": - optional: true - "@azure/data-tables": - optional: true - "@azure/identity": - optional: true - "@azure/keyvault-secrets": - optional: true - "@azure/storage-blob": - optional: true - "@capacitor/preferences": - optional: true - "@netlify/blobs": - optional: true - "@planetscale/database": - optional: true - "@upstash/redis": - optional: true - "@vercel/kv": - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - checksum: 10c0/89d61e6b2165ddc78005b8a4a340576877b56b70ec0b318f7cf2e74ee7ab19006036267ba28587100fa7256c573db3bd720700daf6586bbdcad4ed60b64c4284 - languageName: node - linkType: hard - -"untun@npm:^0.1.3": - version: 0.1.3 - resolution: "untun@npm:0.1.3" - dependencies: - citty: "npm:^0.1.5" - consola: "npm:^3.2.3" - pathe: "npm:^1.1.1" - bin: - untun: bin/untun.mjs - checksum: 10c0/2b44a4cc84a5c21994f43b9f55348e5a8d9dd5fd0ad8fb5cd091b6f6b53d506b1cdb90e89cc238d61b46d488f7a89ab0d1a5c735bfc835581c7b22a236381295 - languageName: node - linkType: hard - -"unwasm@npm:^0.3.9": - version: 0.3.9 - resolution: "unwasm@npm:0.3.9" - dependencies: - knitwork: "npm:^1.0.0" - magic-string: "npm:^0.30.8" - mlly: "npm:^1.6.1" - pathe: "npm:^1.1.2" - pkg-types: "npm:^1.0.3" - unplugin: "npm:^1.10.0" - checksum: 10c0/6f5d3671ebed9641db4105ed6c4607c4dc9d9954b1e8165565f2bbbdceb488ad22d5ece3d80a1057b646f5fc4b1d421381b73ce0f516d78e0f064e9948234be5 - languageName: node - linkType: hard - "unzipper@npm:^0.10.11": version: 0.10.14 resolution: "unzipper@npm:0.10.14" @@ -13060,6 +11477,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.16": + version: 1.0.16 + resolution: "update-browserslist-db@npm:1.0.16" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/5995399fc202adbb51567e4810e146cdf7af630a92cc969365a099150cb00597e425cc14987ca7080b09a4d0cfd2a3de53fbe72eebff171aed7f9bb81f9bf405 + languageName: node + linkType: hard + "update-check@npm:^1.5.4": version: 1.5.4 resolution: "update-check@npm:1.5.4" @@ -13086,13 +11517,6 @@ __metadata: languageName: node linkType: hard -"uqr@npm:^0.1.2": - version: 0.1.2 - resolution: "uqr@npm:0.1.2" - checksum: 10c0/40cd81b4c13f1764d52ec28da2d58e60816e6fae54d4eb75b32fbf3137937f438eff16c766139fb0faec5d248a5314591f5a0dbd694e569d419eed6f3bd80242 - languageName: node - linkType: hard - "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -13112,13 +11536,6 @@ __metadata: languageName: node linkType: hard -"urlpattern-polyfill@npm:8.0.2": - version: 8.0.2 - resolution: "urlpattern-polyfill@npm:8.0.2" - checksum: 10c0/5388bbe8459dbd8861ee7cb97904be915dd863a9789c2191c528056f16adad7836ec22762ed002fed44e8995d0f98bdfb75a606466b77233e70d0f61b969aaf9 - languageName: node - linkType: hard - "use-callback-ref@npm:^1.3.0": version: 1.3.2 resolution: "use-callback-ref@npm:1.3.2" @@ -13202,6 +11619,46 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.3.1": + version: 5.3.2 + resolution: "vite@npm:5.3.2" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.38" + rollup: "npm:^4.13.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/3ed576d18c6c008ae92be68f9c79bf7556dae10978a3e8b4c4b42199424755e5c99836e6d4f81fb8b533b957d7f4e351abc60b8a93f4c4b5eb9890b5b6450926 + languageName: node + linkType: hard + "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -13225,20 +11682,6 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^3.2.3": - version: 3.2.3 - resolution: "webpack-sources@npm:3.2.3" - checksum: 10c0/2ef63d77c4fad39de4a6db17323d75eb92897b32674e97d76f0a1e87c003882fc038571266ad0ef581ac734cbe20952912aaa26155f1905e96ce251adbb1eb4e - languageName: node - linkType: hard - -"webpack-virtual-modules@npm:^0.6.1": - version: 0.6.1 - resolution: "webpack-virtual-modules@npm:0.6.1" - checksum: 10c0/696bdc1acf3806374bdeb4b9b9856b79ee70b31e92f325dfab9b8c8c7e14bb6ddffa9f895a214770c4fb8fea45a21f34ca64310f74e877292a90f4a9966c9c2f - languageName: node - linkType: hard - "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -13370,7 +11813,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" dependencies: @@ -13424,13 +11867,6 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 - languageName: node - linkType: hard - "yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" @@ -13464,13 +11900,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 - languageName: node - linkType: hard - "yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -13490,21 +11919,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.5.1": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: "npm:^8.0.1" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.3" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^21.1.1" - checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 - languageName: node - linkType: hard - "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" @@ -13530,20 +11944,16 @@ __metadata: languageName: node linkType: hard -"zip-stream@npm:^6.0.1": - version: 6.0.1 - resolution: "zip-stream@npm:6.0.1" - dependencies: - archiver-utils: "npm:^5.0.0" - compress-commons: "npm:^6.0.2" - readable-stream: "npm:^4.0.0" - checksum: 10c0/50f2fb30327fb9d09879abf7ae2493705313adf403e794b030151aaae00009162419d60d0519e807673ec04d442e140c8879ca14314df0a0192de3b233e8f28b - languageName: node - linkType: hard - -"zod@npm:^3.20.2, zod@npm:^3.23.6": +"zod@npm:^3.20.2": version: 3.23.7 resolution: "zod@npm:3.23.7" checksum: 10c0/c746d8882d4797597c945fea293dc69caba6de90b82037ca8ee8a1acaea8c5f8ce73492b4a5fac3100a11a99807737b2fcd51db93d9e9ca4d6b938faed67b6e3 languageName: node linkType: hard + +"zod@npm:^3.23.8": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 10c0/8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69 + languageName: node + linkType: hard