diff --git a/.gitignore b/.gitignore index 4efcf77fe..febee6765 100644 --- a/.gitignore +++ b/.gitignore @@ -85,4 +85,7 @@ build/ docs/ # session code -private/ \ No newline at end of file +private/ + +#prisma +/generated/prisma diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..b8ffd7075 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22.15.0 diff --git a/frontend/package.json b/frontend/package.json index 1bd46950b..a27c77eab 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,10 +5,12 @@ "main": "index.js", "dependencies": { "@carriage-web/shared": "workspace:*", + "react-scripts": "^5.0.1", "@tailwindcss/vite": "^4.2.2" }, "scripts": { "dev": "vite", + "start": "vite", "build": "vite build", "preview": "vite preview", "type-check": "tsc --project tsconfig.json --pretty --noEmit" diff --git a/frontend/src/components/EmployeeCards/EmployeeCards.tsx b/frontend/src/components/EmployeeCards/EmployeeCards.tsx index 026029e79..f0d10d668 100644 --- a/frontend/src/components/EmployeeCards/EmployeeCards.tsx +++ b/frontend/src/components/EmployeeCards/EmployeeCards.tsx @@ -2,8 +2,7 @@ import { useNavigate } from 'react-router-dom'; import Card, { CardInfo } from '../Card/Card'; import styles from './employeecards.module.css'; import { phone, wheel, user } from '../../icons/userInfo/index'; -import { AdminType } from '@carriage-web/shared/types/admin'; -import { DriverType } from '@carriage-web/shared/types/driver'; +import { EmployeeType } from '@carriage-web/shared/types/employee'; const formatPhone = (phoneNumber: string | undefined) => { if (phoneNumber !== undefined) { @@ -17,19 +16,9 @@ const formatPhone = (phoneNumber: string | undefined) => { } }; -type Employee = AdminType | DriverType; - -function isAdmin(employee: Employee): employee is AdminType { - return 'isDriver' in employee; -} - -function isDriver(employee: Employee): employee is DriverType { - return 'availability' in employee && !('isDriver' in employee); -} - type EmployeeCardProps = { id: string; - employee: Employee; + employee: EmployeeType; }; const EmployeeCard = ({ id, employee }: EmployeeCardProps) => { @@ -37,14 +26,9 @@ const EmployeeCard = ({ id, employee }: EmployeeCardProps) => { const netId = employee.email.split('@')[0]; const fmtPhone = formatPhone(employee.phoneNumber); - // Determine if employee is admin, driver, or both - const adminEmployee = isAdmin(employee); - const driverEmployee = isDriver(employee); - const isBoth = adminEmployee && employee.isDriver; - const roles = (): string => { - if (isBoth) return 'Admin • Driver'; - if (adminEmployee) return 'Admin'; + if (employee.isAdmin && employee.isDriver) return 'Admin • Driver'; + if (employee.isAdmin) return 'Admin'; return 'Driver'; }; @@ -68,8 +52,8 @@ const EmployeeCard = ({ id, employee }: EmployeeCardProps) => {

{fmtPhone}

{roles()}

@@ -79,7 +63,7 @@ const EmployeeCard = ({ id, employee }: EmployeeCardProps) => { }; type EmployeeCardsProps = { - employees: Employee[]; + employees: EmployeeType[]; }; const EmployeeCards = ({ employees }: EmployeeCardsProps) => { diff --git a/frontend/src/components/EmployeeModal/EmployeeModal.tsx b/frontend/src/components/EmployeeModal/EmployeeModal.tsx index d8c0c5480..8a96b3df3 100644 --- a/frontend/src/components/EmployeeModal/EmployeeModal.tsx +++ b/frontend/src/components/EmployeeModal/EmployeeModal.tsx @@ -13,9 +13,10 @@ import { useEmployees } from '../../context/EmployeesContext'; import { useToast, ToastStatus } from '../../context/toastContext'; import axios from '../../util/axios'; import { extractNetIdFromEmail } from 'util/userUtils'; +import { EmployeeType } from '@carriage-web/shared/types/employee'; type AdminData = { - type: string[]; + adminRoles: string[]; isDriver: boolean; }; @@ -37,23 +38,26 @@ type EmployeeEntity = { photoLink?: string; }; -// both for formating to current api data expections -function extractAdminData(employeeData: EmployeeEntity) { +// both for formatting to current api data expectations +function extractAdminData( + employeeData: EmployeeEntity +): Omit { return { firstName: employeeData.firstName, lastName: employeeData.lastName, - type: (employeeData.admin?.type || []) as ( - | 'sds-admin' - | 'redrunner-admin' - )[], + adminRoles: employeeData.admin?.adminRoles || [], + isAdmin: true, isDriver: employeeData.admin?.isDriver || false, phoneNumber: employeeData.phoneNumber, email: employeeData.email, photoLink: employeeData.photoLink, + availability: employeeData.driver?.availability || [], }; } -function extractDriverData(employeeData: EmployeeEntity) { +function extractDriverData( + employeeData: EmployeeEntity +): Partial { return { firstName: employeeData.firstName, lastName: employeeData.lastName, @@ -62,6 +66,7 @@ function extractDriverData(employeeData: EmployeeEntity) { joinDate: employeeData.driver?.startDate, email: employeeData.email, photoLink: employeeData.photoLink, + isDriver: true, }; } @@ -93,13 +98,11 @@ const EmployeeModal = ({ // Initialize form and roles when modal opens or existing employee changes React.useEffect(() => { if (existingEmployee && isOpen) { - // Initialize roles + // Initialize roles, normalizing Prisma enum values (SDS_ADMIN → sds-admin) + const normalizeRole = (r: string) => r.toLowerCase().replace(/_/g, '-'); const roles: string[] = []; - if (existingEmployee.admin) { - // Add admin roles - if (existingEmployee.admin.type) { - roles.push(...existingEmployee.admin.type); - } + if (existingEmployee.admin?.adminRoles) { + roles.push(...existingEmployee.admin.adminRoles.map(normalizeRole)); } if (existingEmployee.driver) { roles.push('driver'); @@ -131,8 +134,9 @@ const EmployeeModal = ({ const closeModal = () => { methods.clearErrors(); - setImageBase64(''); // Reset image state - setIsUploadingImage(false); // Reset upload state + setImageBase64(''); + setIsUploadingImage(false); + setSelectedRole([]); setIsOpen(false); }; @@ -178,7 +182,9 @@ const EmployeeModal = ({ switch (endpoint) { case '/api/drivers': // Use optimistic create from context - await createDriver(extractDriverData(employeeData)); + await createDriver( + extractDriverData(employeeData) as Omit + ); res = employeeData; // The context will handle server response and ID assignment break; case '/api/admins': @@ -330,7 +336,7 @@ const EmployeeModal = ({ if (hasAdmin) { admin_data = { - type: selectedRoles.filter((role) => role !== 'driver'), + adminRoles: selectedRoles.filter((role) => role !== 'driver'), isDriver: hasDriver, }; } @@ -436,8 +442,13 @@ const EmployeeModal = ({ phone={existingEmployee?.phoneNumber} /> + + {(selectedRoles.includes('driver') || - existingEmployee?.driver?.availability) && ( + existingEmployee?.driver != null) && ( <> )} - - diff --git a/frontend/src/components/ResponsiveRideCard.tsx b/frontend/src/components/ResponsiveRideCard.tsx index 1bfacb87f..d4776d871 100644 --- a/frontend/src/components/ResponsiveRideCard.tsx +++ b/frontend/src/components/ResponsiveRideCard.tsx @@ -152,7 +152,7 @@ const ResponsiveRideCard: FC = ({

Driver

- {ride.driver !== undefined + {ride.driver?.firstName ? `${ride.driver.firstName} ${ride.driver.lastName}` : 'Not Assigned'}

@@ -202,7 +202,7 @@ const ResponsiveRideCard: FC = ({ defaultZoom={13} gestureHandling="greedy" disableDefaultUI - mapId={process.env.VITE_GOOGLE_MAPS_MAP_ID} + mapId={import.meta.env.VITE_GOOGLE_MAPS_MAP_ID} > = ({ netId: (employee as any).netId || '', email: employee.email, phoneNumber: employee.phoneNumber.replaceAll('-', ''), - ...(employee.availability || employee.startDate + ...(employee.isDriver ? { driver: { availability: (employee.availability || []) as any[], - startDate: employee.startDate || '', + startDate: employee.startDate + ? new Date(employee.startDate).toISOString().split('T')[0] + : '', }, } : {}), - ...(employee.type + ...(employee.isAdmin ? { admin: { - isDriver: employee.isDriver || false, - type: employee.type || [], + isDriver: employee.isDriver, + adminRoles: employee.adminRoles || [], }, } : {}), @@ -116,7 +118,7 @@ const ActionsCard: React.FC = ({ const getUserRole = () => { if (userType === 'employee') { const employee = user as Employee; - if (employee.isDriver && employee.type && employee.type.length > 0) { + if (employee.isDriver && employee.isAdmin) { return 'both'; } else if (employee.isDriver) { return 'driver'; diff --git a/frontend/src/components/UserDetail/UserInfoCard.tsx b/frontend/src/components/UserDetail/UserInfoCard.tsx index c5e3f41b6..372fdd78a 100644 --- a/frontend/src/components/UserDetail/UserInfoCard.tsx +++ b/frontend/src/components/UserDetail/UserInfoCard.tsx @@ -29,12 +29,13 @@ interface UserInfoCardProps { const UserInfoCard: React.FC = ({ user, userType }) => { const getEmployeeRole = (employee: Employee) => { const roles: string[] = []; - if (employee.isDriver) { - roles.push('driver'); - } - if (employee.type && employee.type.length > 0) { - roles.push(...employee.type); - } + if (employee.isDriver) roles.push('driver'); + if (employee.isAdmin) + roles.push( + ...(employee.adminRoles.length > 0 + ? employee.adminRoles.map((r) => r.toLowerCase().replace('_', '-')) + : ['admin']) + ); return roles.length > 0 ? roles.join(' • ') : 'N/A'; }; diff --git a/frontend/src/components/UserDetail/hooks/useUserDetailData.ts b/frontend/src/components/UserDetail/hooks/useUserDetailData.ts index 46e41e6b9..20aff881b 100644 --- a/frontend/src/components/UserDetail/hooks/useUserDetailData.ts +++ b/frontend/src/components/UserDetail/hooks/useUserDetailData.ts @@ -2,8 +2,7 @@ import { useState, useEffect, useRef } from 'react'; import { Employee } from '../../../types/index'; import { RideType } from '@carriage-web/shared/types/ride'; import { RiderType } from '@carriage-web/shared/types/rider'; -import { AdminType } from '@carriage-web/shared/types/admin'; -import { DriverType } from '@carriage-web/shared/types/driver'; +import { EmployeeType } from '@carriage-web/shared/types/employee'; import { useRiders } from '../../../context/RidersContext'; import { useEmployees } from '../../../context/EmployeesContext'; import axios from '../../../util/axios'; @@ -37,54 +36,27 @@ const useUserDetailData = ( const { riders, loading: ridersLoading } = useRiders(); const { drivers, admins, loading: employeesLoading } = useEmployees(); - // Helper function to find employee from context const findEmployeeInContext = (employeeId: string): Employee | null => { - // Look in admins first - const admin = admins.find((a) => a.id === employeeId); - if (admin) { - // If admin is also a driver, merge the data - const driver = drivers.find((d) => d.id === employeeId); - return { - id: admin.id, - firstName: admin.firstName, - lastName: admin.lastName, - type: admin.type, - isDriver: admin.isDriver, - phoneNumber: admin.phoneNumber, - email: admin.email, - photoLink: admin.photoLink, - availability: driver?.availability, - startDate: driver?.joinDate, - } as Employee; - } - - // Look in drivers only - const driver = drivers.find((d) => d.id === employeeId); - if (driver) { - return { - id: driver.id, - firstName: driver.firstName, - lastName: driver.lastName, - isDriver: true, - phoneNumber: driver.phoneNumber, - email: driver.email, - photoLink: driver.photoLink, - availability: driver.availability, - startDate: driver.joinDate, - } as Employee; - } - - return null; + // Check admins first, then drivers — both now return the same Employee shape + const found = + admins.find((a) => a.id === employeeId) || + drivers.find((d) => d.id === employeeId); + if (!found) return null; + return { + ...found, + startDate: found.joinDate, + } as Employee; }; - const fetchAdminData = async (employeeId: string) => { - const res = await axios.get(`/api/admins/${employeeId}`); - return res.data.data; - }; - - const fetchDriverData = async (employeeId: string) => { - const res = await axios.get(`/api/drivers/${employeeId}`); - return res.data.data; + const fetchEmployeeData = async (employeeId: string) => { + // Try admin endpoint first, fall back to driver endpoint + try { + const res = await axios.get(`/api/admins/${employeeId}`); + return res.data.data as EmployeeType; + } catch { + const res = await axios.get(`/api/drivers/${employeeId}`); + return res.data.data as EmployeeType; + } }; const fetchStats = async (employeeId: string) => { @@ -113,70 +85,36 @@ const useUserDetailData = ( }; const setEmployeeData = async (employeeId: string) => { - console.log('🔄 setEmployeeData called for ID:', employeeId); setLoading(true); setError(null); - - // Try to fetch as admin first try { - const adminData: AdminType = await fetchAdminData(employeeId); - - if (adminData.isDriver) { - const driverData: DriverType = await fetchDriverData(employeeId); - setUser({ - ...driverData, - ...adminData, - startDate: driverData.joinDate, - } as Employee); - setEmployeeRides(employeeId); - setEmployeeStats(employeeId); - } else { - setUser({ - ...adminData, - } as Employee); + const data = await fetchEmployeeData(employeeId); + setUser({ ...data, startDate: data.joinDate } as Employee); + + if (data.isDriver) { + const ridesData = await fetchEmployeeRides(employeeId); + setRides(ridesData.sort(compRides)); + const statsData = await fetchStats(employeeId); + if (!statsData?.err) { + setStatistics({ + rideCount: Math.floor(statsData.rides), + workingHours: Math.floor(statsData.workingHours), + }); + } } setLoading(false); - } catch (adminError) { - // If not an admin, try as driver only - try { - const driverData: DriverType = await fetchDriverData(employeeId); - setUser({ - ...driverData, - isDriver: true, - startDate: driverData.joinDate, - } as Employee); - setEmployeeRides(employeeId); - setEmployeeStats(employeeId); - setLoading(false); - } catch (err) { - console.error('Error fetching employee data:', err); - setError('Failed to fetch employee data'); - setLoading(false); - } - } - }; - - const setEmployeeStats = async (employeeId: string) => { - const data = await fetchStats(employeeId); - if (!data.err) { - setStatistics({ - rideCount: Math.floor(data.rides), - workingHours: Math.floor(data.workingHours), - }); + } catch (err) { + console.error('Error fetching employee data:', err); + setError('Failed to fetch employee data'); + setLoading(false); } }; - const setEmployeeRides = async (employeeId: string) => { - const data = await fetchEmployeeRides(employeeId); - setRides(data.sort(compRides)); - }; - const setRiderData = async (riderId: string) => { try { setLoading(true); setError(null); - // Get rider from context const rider = riders.find((r) => r.id === riderId); if (!rider) { setError('Rider not found'); @@ -184,7 +122,6 @@ const useUserDetailData = ( return; } - // Fetch rider's rides const ridesData = await fetchRiderRides(riderId); setUser(rider); @@ -199,30 +136,26 @@ const useUserDetailData = ( }; useEffect(() => { - console.log( - '🚀 useEffect triggered - userType:', - userType, - 'userId:', - userId, - 'ridersLoading:', - ridersLoading, - 'employeesLoading:', - employeesLoading - ); if (userId && !ridersLoading && !employeesLoading) { if (userType === 'employee') { - // First try to get employee from context (optimistic data) const contextEmployee = findEmployeeInContext(userId); if (contextEmployee) { setUser(contextEmployee); setLoading(false); - // Still fetch additional data like rides and stats - setEmployeeRides(userId); if (contextEmployee.isDriver) { - setEmployeeStats(userId); + fetchEmployeeRides(userId).then((data) => + setRides(data.sort(compRides)) + ); + fetchStats(userId).then((data) => { + if (!data?.err) { + setStatistics({ + rideCount: Math.floor(data.rides), + workingHours: Math.floor(data.workingHours), + }); + } + }); } } else { - // Fallback to API fetch setEmployeeData(userId); } } else { @@ -232,7 +165,6 @@ const useUserDetailData = ( } }, [userId, userType, ridersLoading, employeesLoading]); - // Effect to update user data when riders context changes (for rider updates) useEffect(() => { if ( userType === 'rider' && @@ -243,22 +175,13 @@ const useUserDetailData = ( ) { const updatedRider = riders.find((r) => r.id === userId); if (updatedRider && user) { - // Check if any properties have changed to avoid unnecessary updates - const currentRider = user as RiderType; const hasChanges = - JSON.stringify(updatedRider) !== JSON.stringify(currentRider); - - if (hasChanges) { - console.log( - '🔄 Updating rider data from context change (optimistic or server update)' - ); - setUser(updatedRider); - } + JSON.stringify(updatedRider) !== JSON.stringify(user); + if (hasChanges) setUser(updatedRider); } } }, [riders, userId, userType, ridersLoading, user]); - // Effect to update user data when employees context changes (for employee updates) useEffect(() => { if ( userType === 'employee' && @@ -268,37 +191,22 @@ const useUserDetailData = ( ) { const updatedEmployee = findEmployeeInContext(userId); if (updatedEmployee && user) { - // Check if any properties have changed to avoid unnecessary updates - const currentEmployee = user as Employee; const hasChanges = - JSON.stringify(updatedEmployee) !== JSON.stringify(currentEmployee); - - if (hasChanges) { - console.log( - '🔄 Updating employee data from context change (optimistic or server update)' - ); - setUser(updatedEmployee); - } + JSON.stringify(updatedEmployee) !== JSON.stringify(user); + if (hasChanges) setUser(updatedEmployee); } } }, [admins, drivers, userId, userType, employeesLoading, user]); - // Function to refresh user data without full reload const refreshUserData = () => { if (userType === 'rider' && userId && !ridersLoading && riders.length > 0) { const updatedRider = riders.find((r) => r.id === userId); - if (updatedRider) { - console.log('🔄 Refreshing user data without full reload'); - setUser(updatedRider); - } + if (updatedRider) setUser(updatedRider); } else if (userType === 'employee' && userId && !employeesLoading) { - // For employees, first try to get from context (optimistic data) const contextEmployee = findEmployeeInContext(userId); if (contextEmployee) { - console.log('🔄 Refreshing employee data without full reload'); setUser(contextEmployee); } else { - // Fallback to API fetch setEmployeeData(userId); } } diff --git a/frontend/src/components/UserTables/RidesTable.tsx b/frontend/src/components/UserTables/RidesTable.tsx index a16757f76..6abe347e7 100644 --- a/frontend/src/components/UserTables/RidesTable.tsx +++ b/frontend/src/components/UserTables/RidesTable.tsx @@ -76,7 +76,9 @@ const RidesTable = ({ rides }: RidesTableProps) => { return (
{primaryRider.accessibility.map((accessibility) => ( -

{accessibility}

+

+ {accessibility} +

))}
); diff --git a/frontend/src/context/EmployeesContext.tsx b/frontend/src/context/EmployeesContext.tsx index 12558fce0..1369fffc5 100644 --- a/frontend/src/context/EmployeesContext.tsx +++ b/frontend/src/context/EmployeesContext.tsx @@ -1,33 +1,27 @@ import React, { useCallback, useRef, useState } from 'react'; -import { Employee } from '../types'; -import { AdminType } from '@carriage-web/shared/types/admin'; -import { DriverType } from '@carriage-web/shared/types/driver'; +import { EmployeeType } from '@carriage-web/shared/types/employee'; import axios from '../util/axios'; type employeesState = { - drivers: Array; - admins: Array; + drivers: EmployeeType[]; + admins: EmployeeType[]; loading: boolean; refreshDrivers: () => Promise; refreshAdmins: () => Promise; - // Optimistic operations for drivers updateDriverInfo: ( driverId: string, - updates: Partial + updates: Partial ) => Promise; - createDriver: (driver: Omit) => Promise; + createDriver: (driver: Omit) => Promise; deleteDriver: (driverId: string) => Promise; - // Optimistic operations for admins updateAdminInfo: ( adminId: string, - updates: Partial + updates: Partial ) => Promise; - createAdmin: (admin: Omit) => Promise; + createAdmin: (admin: Omit) => Promise; deleteAdmin: (adminId: string) => Promise; - // Helper functions - getDriverById: (driverId: string) => DriverType | undefined; - getAdminById: (adminId: string) => AdminType | undefined; - // Error handling + getDriverById: (driverId: string) => EmployeeType | undefined; + getAdminById: (adminId: string) => EmployeeType | undefined; clearError: () => void; error: Error | null; }; @@ -68,14 +62,14 @@ const sortByName = ( export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { const componentMounted = useRef(true); - const [drivers, setDrivers] = useState>([]); - const [admins, setAdmins] = useState>([]); + const [drivers, setDrivers] = useState([]); + const [admins, setAdmins] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const refreshDrivers = useCallback(async () => { try { - const driversData: Array = await axios + const driversData: EmployeeType[] = await axios .get('/api/drivers') .then((res) => res.data) .then((data) => data.data); @@ -90,7 +84,7 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { const refreshAdmins = useCallback(async () => { try { - const adminsData: Array = await axios + const adminsData: EmployeeType[] = await axios .get('/api/admins') .then((res) => res.data) .then((data) => data.data); @@ -103,12 +97,10 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { } }, []); - // Optimistic Driver Operations const updateDriverInfo = useCallback( - async (driverId: string, updates: Partial) => { + async (driverId: string, updates: Partial) => { const originalDrivers = [...drivers]; try { - // Optimistic update setDrivers((prevDrivers) => prevDrivers .map((driver) => @@ -117,18 +109,15 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { .sort(sortByName) ); - // Make API call const response = await axios.put(`/api/drivers/${driverId}`, updates); const serverDriver = response.data.data; - // Update with server data setDrivers((prevDrivers) => prevDrivers .map((driver) => (driver.id === driverId ? serverDriver : driver)) .sort(sortByName) ); } catch (error) { - // Rollback on error console.error('Failed to update driver info:', error); setDrivers(originalDrivers); setError(error as Error); @@ -138,28 +127,24 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { [drivers] ); - const createDriver = useCallback(async (driver: Omit) => { + const createDriver = useCallback(async (driver: Omit) => { const tempId = `temp-driver-${Date.now()}`; - const tempDriver: DriverType = { ...driver, id: tempId }; + const tempDriver: EmployeeType = { ...driver, id: tempId }; try { - // Optimistic update setDrivers((prevDrivers) => [...prevDrivers, tempDriver].sort(sortByName) ); - // Make API call const response = await axios.post('/api/drivers', driver); const serverDriver = response.data.data; - // Replace temp driver with server driver setDrivers((prevDrivers) => prevDrivers .map((d) => (d.id === tempId ? serverDriver : d)) .sort(sortByName) ); } catch (error) { - // Rollback on error console.error('Failed to create driver:', error); setDrivers((prevDrivers) => prevDrivers.filter((d) => d.id !== tempId)); setError(error as Error); @@ -171,15 +156,12 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { async (driverId: string) => { const originalDrivers = [...drivers]; try { - // Optimistic update setDrivers((prevDrivers) => prevDrivers.filter((driver) => driver.id !== driverId) ); - // Make API call await axios.delete(`/api/drivers/${driverId}`); } catch (error) { - // Rollback on error console.error('Failed to delete driver:', error); setDrivers(originalDrivers); setError(error as Error); @@ -189,12 +171,10 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { [drivers] ); - // Optimistic Admin Operations const updateAdminInfo = useCallback( - async (adminId: string, updates: Partial) => { + async (adminId: string, updates: Partial) => { const originalAdmins = [...admins]; try { - // Optimistic update setAdmins((prevAdmins) => prevAdmins .map((admin) => @@ -203,18 +183,15 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { .sort(sortByName) ); - // Make API call const response = await axios.put(`/api/admins/${adminId}`, updates); const serverAdmin = response.data.data; - // Update with server data setAdmins((prevAdmins) => prevAdmins .map((admin) => (admin.id === adminId ? serverAdmin : admin)) .sort(sortByName) ); } catch (error) { - // Rollback on error console.error('Failed to update admin info:', error); setAdmins(originalAdmins); setError(error as Error); @@ -224,26 +201,22 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { [admins] ); - const createAdmin = useCallback(async (admin: Omit) => { + const createAdmin = useCallback(async (admin: Omit) => { const tempId = `temp-admin-${Date.now()}`; - const tempAdmin: AdminType = { ...admin, id: tempId }; + const tempAdmin: EmployeeType = { ...admin, id: tempId }; try { - // Optimistic update setAdmins((prevAdmins) => [...prevAdmins, tempAdmin].sort(sortByName)); - // Make API call const response = await axios.post('/api/admins', admin); const serverAdmin = response.data.data; - // Replace temp admin with server admin setAdmins((prevAdmins) => prevAdmins .map((a) => (a.id === tempId ? serverAdmin : a)) .sort(sortByName) ); } catch (error) { - // Rollback on error console.error('Failed to create admin:', error); setAdmins((prevAdmins) => prevAdmins.filter((a) => a.id !== tempId)); setError(error as Error); @@ -255,15 +228,12 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { async (adminId: string) => { const originalAdmins = [...admins]; try { - // Optimistic update setAdmins((prevAdmins) => prevAdmins.filter((admin) => admin.id !== adminId) ); - // Make API call await axios.delete(`/api/admins/${adminId}`); } catch (error) { - // Rollback on error console.error('Failed to delete admin:', error); setAdmins(originalAdmins); setError(error as Error); @@ -273,16 +243,15 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { [admins] ); - // Helper Functions const getDriverById = useCallback( - (driverId: string): DriverType | undefined => { + (driverId: string): EmployeeType | undefined => { return drivers.find((driver) => driver.id === driverId); }, [drivers] ); const getAdminById = useCallback( - (adminId: string): AdminType | undefined => { + (adminId: string): EmployeeType | undefined => { return admins.find((admin) => admin.id === adminId); }, [admins] @@ -292,7 +261,6 @@ export const EmployeesProvider = ({ children }: EmployeesProviderProps) => { setError(null); }, []); - // Initialize the data React.useEffect(() => { const loadData = async () => { setLoading(true); diff --git a/frontend/src/pages/Admin/Employees.tsx b/frontend/src/pages/Admin/Employees.tsx index b7f294573..e04cd3e1d 100644 --- a/frontend/src/pages/Admin/Employees.tsx +++ b/frontend/src/pages/Admin/Employees.tsx @@ -7,25 +7,26 @@ import StatsBox from 'components/AnalyticsOverview/StatsBox'; import Pagination from '@mui/material/Pagination'; import { useEmployees } from '../../context/EmployeesContext'; import { wheel, user } from '../../icons/userInfo/index'; -import { AdminType } from '@carriage-web/shared/types/admin'; -import { DriverType } from '@carriage-web/shared/types/driver'; +import { EmployeeType } from '@carriage-web/shared/types/employee'; import buttonStyles from '../../styles/button.module.css'; const Employees = () => { const { admins, drivers } = useEmployees(); const [isOpen, setIsOpen] = useState(false); - const [filteredEmployees, setFilteredEmployees] = useState< - (AdminType | DriverType)[] - >([]); - const [selectedEmployee, setSelectedEmployee] = useState< - AdminType | DriverType | null - >(null); + const [filteredEmployees, setFilteredEmployees] = useState( + [] + ); + const [selectedEmployee] = useState(null); const [page, setPage] = useState(1); const pageSize = 8; + // Deduplicate by id — a person who is both admin and driver appears in both lists const displayEmployees = useMemo(() => { - const employeeMap = new Map(); + const employeeMap = new Map< + string, + EmployeeType & { roleType: string[] } + >(); admins.forEach((admin) => { const roleType = admin.isDriver ? ['admin', 'driver'] : ['admin']; @@ -46,37 +47,31 @@ const Employees = () => { setFilteredEmployees(displayEmployees); }, [displayEmployees]); - function convertToEmployeeEntity(employee: AdminType | DriverType): any { - // Check if it's an admin - const isAdmin = 'type' in employee && 'isDriver' in employee; - // Check if it's a driver - const isDriver = 'availability' in employee; - - const data = { + function convertToEmployeeEntity(employee: EmployeeType): any { + return { id: employee.id, firstName: employee.firstName, lastName: employee.lastName, email: employee.email, - netId: employee.email.split('@')[0], // Extract netId from email + netId: employee.email.split('@')[0], phoneNumber: employee.phoneNumber, photoLink: employee.photoLink, - admin: isAdmin + admin: employee.isAdmin ? { - type: (employee as AdminType).type, - isDriver: (employee as AdminType).isDriver, + type: employee.adminRoles, + isDriver: employee.isDriver, } : undefined, - driver: isDriver + driver: employee.isDriver ? { - availability: (employee as DriverType).availability, - startDate: (employee as DriverType).joinDate, // Map joinDate to startDate for the modal + availability: employee.availability, + startDate: employee.joinDate, } : undefined, }; - return data; } - const handleFilterApply = (filteredItems: (AdminType | DriverType)[]) => { + const handleFilterApply = (filteredItems: EmployeeType[]) => { setFilteredEmployees(filteredItems); setPage(1); }; @@ -106,7 +101,7 @@ const Employees = () => { ]; const handlePageChange = ( - event: React.ChangeEvent, + _event: React.ChangeEvent, value: number ) => { setPage(value); diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index d2cd36d9e..794ca0848 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -20,13 +20,16 @@ export type Employee = { id: string; firstName: string; lastName: string; - type?: string[]; - isDriver?: boolean; + adminRoles: string[]; + isAdmin: boolean; + isDriver: boolean; phoneNumber: string; email: string; - availability?: DayOfWeek[]; + availability: DayOfWeek[]; photoLink?: string; startDate?: string; + joinDate?: string; + active?: boolean; }; export type User = { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94fc1a950..5980c6975 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,7 +77,10 @@ importers: version: link:../shared '@tailwindcss/vite': specifier: ^4.2.2 - version: 4.2.2(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)) + version: 4.2.2(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)) + react-scripts: + specifier: ^5.0.1 + version: 5.0.1(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(@types/babel__core@7.20.5)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7))(react@18.3.1)(ts-node@9.1.1(typescript@5.9.3))(type-fest@0.21.3)(typescript@5.9.3) devDependencies: '@emotion/react': specifier: ^11.13.5 @@ -132,16 +135,16 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.57.0 - version: 8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.57.0 - version: 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) '@vis.gl/react-google-maps': specifier: ^1.4.0 version: 1.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.4(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)) + version: 5.1.4(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)) addresser: specifier: ^1.1.20 version: 1.1.20 @@ -165,16 +168,16 @@ importers: version: 1.11.19 eslint: specifier: ^9.39.4 - version: 9.39.4(jiti@2.6.1) + version: 9.39.4(jiti@1.21.7) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.4(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.4(jiti@1.21.7)) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@9.39.4(jiti@2.6.1)) + version: 7.37.5(eslint@9.39.4(jiti@1.21.7)) eslint-plugin-react-hooks: specifier: ^7.0.1 - version: 7.0.1(eslint@9.39.4(jiti@2.6.1)) + version: 7.0.1(eslint@9.39.4(jiti@1.21.7)) focus-trap-react: specifier: ^10.2.3 version: 10.3.1(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -231,10 +234,10 @@ importers: version: 13.0.0 vite: specifier: ^7.3.2 - version: 7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0) + version: 7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)) server: dependencies: @@ -256,6 +259,12 @@ importers: '@node-saml/passport-saml': specifier: ^5.1.0 version: 5.1.0 + '@prisma/adapter-pg': + specifier: 7.4.2 + version: 7.4.2 + '@prisma/client': + specifier: 7.4.2 + version: 7.4.2(prisma@7.7.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(typescript@5.9.3) '@types/cors': specifier: ^2.8.17 version: 2.8.19 @@ -286,9 +295,6 @@ importers: cors: specifier: ^2.8.5 version: 2.8.6 - dotenv: - specifier: ^16.4.5 - version: 16.6.1 dynamoose: specifier: ^4.0.1 version: 4.1.5 @@ -319,6 +325,9 @@ importers: passport: specifier: ^0.7.0 version: 0.7.0 + pg: + specifier: ^8.20.0 + version: 8.20.0 session-file-store: specifier: ^1.5.0 version: 1.5.0 @@ -344,6 +353,9 @@ importers: '@types/passport': specifier: ^1.0.17 version: 1.0.17 + '@types/pg': + specifier: ^8.18.0 + version: 8.20.0 '@types/session-file-store': specifier: ^1.2.6 version: 1.2.6 @@ -356,9 +368,15 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 + dotenv: + specifier: ^16.6.1 + version: 16.6.1 mocha: specifier: ^11.0.0 version: 11.7.5 + prisma: + specifier: 7.7.0 + version: 7.7.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) supertest: specifier: ^7.0.0 version: 7.2.2 @@ -377,6 +395,16 @@ importers: packages: + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@apideck/better-ajv-errors@0.3.7': + resolution: {integrity: sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + '@aws-crypto/crc32@5.2.0': resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} @@ -585,14 +613,39 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.28.6': resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.28.6': resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} @@ -603,10 +656,30 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.28.6': resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -619,6 +692,10 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.6': resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} @@ -628,7665 +705,16010 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 - '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@babel/plugin-proposal-decorators@7.29.0': + resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + '@babel/plugin-proposal-numeric-separator@7.18.6': + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + '@babel/plugin-proposal-optional-chaining@7.21.0': + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/is-prop-valid@1.4.0': - resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + '@babel/plugin-proposal-private-property-in-object@7.21.11': + resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/styled@11.14.1': - resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==} + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + '@babel/plugin-syntax-decorators@7.28.6': + resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + '@babel/plugin-syntax-flow@7.28.6': + resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} + engines: {node: '>=6.9.0'} peerDependencies: - react: '>=16.8.0' + '@babel/core': ^7.0.0-0 - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + '@babel/plugin-syntax-import-assertions@7.28.6': + resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@babel/core': ^7.0.0-0 - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/compat@2.0.3': - resolution: {integrity: sha512-SjIJhGigp8hmd1YGIBwh7Ovri7Kisl42GYFjrOyHhtfYGGoLW6teYi/5p8W50KSsawUPpuLOSmsq1bD0NGQLBw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} + engines: {node: '>=6.9.0'} peerDependencies: - eslint: ^8.40 || 9 || 10 - peerDependenciesMeta: - eslint: - optional: true + '@babel/core': ^7.0.0-0 - '@eslint/config-array@0.21.2': - resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/core@1.1.1': - resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/eslintrc@3.3.5': - resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true + '@babel/core': ^7.0.0-0 - '@eslint/js@9.39.4': - resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@fast-csv/format@5.0.5': - resolution: {integrity: sha512-0P9SJXXnqKdmuWlLaTelqbrfdgN37Mvrb369J6eNmqL41IEIZQmV4sNM4GgAK2Dz3aH04J0HKGDMJFkYObThTw==} + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + '@babel/plugin-transform-modules-systemjs@7.29.0': + resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@babel/core': ^7.0.0 - '@floating-ui/react@0.27.19': - resolution: {integrity: sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==} + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} peerDependencies: - react: '>=17.0.0' - react-dom: '>=17.0.0' + '@babel/core': ^7.0.0-0 - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@googlemaps/markerclusterer@2.6.2': - resolution: {integrity: sha512-U6uVhq8iWhiIckA89sgRu8OK35mjd6/3CuoZKWakKEf0QmRRWpatlsPb3kqXkoWSmbcZkopRiI4dnW6DQSd7bQ==} + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@babel/plugin-transform-react-constant-elements@7.27.1': + resolution: {integrity: sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@babel/plugin-transform-react-display-name@7.28.0': + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@mui/core-downloads-tracker@6.5.0': - resolution: {integrity: sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q==} + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@mui/icons-material@6.5.0': - resolution: {integrity: sha512-VPuPqXqbBPlcVSA0BmnoE4knW4/xG6Thazo8vCLWkOKusko6DtwFV6B665MMWJ9j0KFohTIf3yx2zYtYacvG1g==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} peerDependencies: - '@mui/material': ^6.5.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/material@6.5.0': - resolution: {integrity: sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^6.5.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@mui/material-pigment-css': - optional: true - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/private-theming@6.4.9': - resolution: {integrity: sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-react-jsx@7.28.6': + resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} + engines: {node: '>=6.9.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/styled-engine@6.5.0': - resolution: {integrity: sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + engines: {node: '>=6.9.0'} peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/system@6.5.0': - resolution: {integrity: sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/types@7.2.24': - resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} + engines: {node: '>=6.9.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0 - '@mui/types@7.4.12': - resolution: {integrity: sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w==} + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/utils@6.4.9': - resolution: {integrity: sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-runtime@7.29.0': + resolution: {integrity: sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==} + engines: {node: '>=6.9.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/utils@7.3.9': - resolution: {integrity: sha512-U6SdZaGbfb65fqTsH3V5oJdFj9uYwyLE2WVuNvmbggTSDBb8QHrFsqY8BN3taK9t3yJ8/BPHD/kNvLNyjwM7Yw==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@babel/core': ^7.0.0-0 - '@mui/x-date-pickers@7.29.4': - resolution: {integrity: sha512-wJ3tsqk/y6dp+mXGtT9czciAMEO5Zr3IIAHg9x6IL0Eqanqy0N3chbmQQZv3iq0m2qUpQDLvZ4utZBUTJdjNzw==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} peerDependencies: - '@emotion/react': ^11.9.0 - '@emotion/styled': ^11.8.1 - '@mui/material': ^5.15.14 || ^6.0.0 || ^7.0.0 - '@mui/system': ^5.15.14 || ^6.0.0 || ^7.0.0 - date-fns: ^2.25.0 || ^3.2.0 || ^4.0.0 - date-fns-jalali: ^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0 - dayjs: ^1.10.7 - luxon: ^3.0.2 - moment: ^2.29.4 - moment-hijri: ^2.1.2 || ^3.0.0 - moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - date-fns: - optional: true - date-fns-jalali: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - moment-hijri: - optional: true - moment-jalaali: - optional: true + '@babel/core': ^7.0.0-0 - '@mui/x-internals@7.29.0': - resolution: {integrity: sha512-+Gk6VTZIFD70XreWvdXBwKd8GZ2FlSCuecQFzm6znwqXg1ZsndavrhG9tkxpxo2fM1Zf7Tk8+HcOO0hCbhTQFA==} - engines: {node: '>=14.0.0'} + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - - '@noble/hashes@1.8.0': - resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} - engines: {node: ^14.21.3 || >=16} - - '@node-saml/node-saml@5.1.0': - resolution: {integrity: sha512-t3cJnZ4aC7HhPZ6MGylGZULvUtBOZ6FzuUndaHGXjmIZHXnLfC/7L8a57O9Q9V7AxJGKAiRM5zu2wNm9EsvQpw==} - engines: {node: '>= 18'} + '@babel/core': ^7.0.0-0 - '@node-saml/passport-saml@5.1.0': - resolution: {integrity: sha512-pBm+iFjv9eihcgeJuSUs4c0AuX1QEFdHwP8w1iaWCfDzXdeWZxUBU5HT2bY2S4dvNutcy+A9hYsH7ZLBGtgwDg==} - engines: {node: '>= 18'} + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@paralleldrive/cuid2@2.3.1': - resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@react-aria/ssr@3.9.10': - resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} - engines: {node: '>= 12'} + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} + engines: {node: '>=6.9.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@babel/core': ^7.0.0-0 - '@react-aria/utils@3.33.1': - resolution: {integrity: sha512-kIx1Sj6bbAT0pdqCegHuPanR9zrLn5zMRiM7LN12rgRf55S19ptd9g3ncahArifYTRkfEU9VIn+q0HjfMqS9/w==} + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@babel/core': ^7.0.0-0 - '@react-stately/flags@3.1.2': - resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@react-stately/utils@3.11.0': - resolution: {integrity: sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==} + '@babel/preset-env@7.29.2': + resolution: {integrity: sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==} + engines: {node: '>=6.9.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@babel/core': ^7.0.0-0 - '@react-types/shared@3.33.1': - resolution: {integrity: sha512-oJHtjvLG43VjwemQDadlR5g/8VepK56B/xKO2XORPHt9zlW6IZs3tZrYlvH29BMvoqC7RtE7E5UjgbnbFtDGag==} + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@remix-run/router@1.23.2': - resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} - engines: {node: '>=14.0.0'} + '@babel/preset-react@7.28.5': + resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@restart/hooks@0.4.16': - resolution: {integrity: sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==} + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} + engines: {node: '>=6.9.0'} peerDependencies: - react: '>=16.8.0' + '@babel/core': ^7.0.0-0 - '@rolldown/pluginutils@1.0.0-rc.3': - resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} - '@rollup/rollup-android-arm-eabi@4.60.1': - resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} - cpu: [arm] - os: [android] + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} - '@rollup/rollup-android-arm64@4.60.1': - resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} - cpu: [arm64] - os: [android] + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} - '@rollup/rollup-darwin-arm64@4.60.1': - resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} - cpu: [arm64] - os: [darwin] + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} - '@rollup/rollup-darwin-x64@4.60.1': - resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} - cpu: [x64] - os: [darwin] + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@rollup/rollup-freebsd-arm64@4.60.1': - resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} - cpu: [arm64] - os: [freebsd] + '@csstools/normalize.css@12.1.1': + resolution: {integrity: sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==} - '@rollup/rollup-freebsd-x64@4.60.1': - resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} - cpu: [x64] - os: [freebsd] + '@csstools/postcss-cascade-layers@1.1.1': + resolution: {integrity: sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} - cpu: [arm] - os: [linux] + '@csstools/postcss-color-function@1.1.1': + resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-arm-musleabihf@4.60.1': - resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} - cpu: [arm] - os: [linux] + '@csstools/postcss-font-format-keywords@1.0.1': + resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-arm64-gnu@4.60.1': - resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} - cpu: [arm64] - os: [linux] + '@csstools/postcss-hwb-function@1.0.2': + resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-arm64-musl@4.60.1': - resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} - cpu: [arm64] - os: [linux] + '@csstools/postcss-ic-unit@1.0.1': + resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-loong64-gnu@4.60.1': - resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} - cpu: [loong64] - os: [linux] + '@csstools/postcss-is-pseudo-class@2.0.7': + resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-loong64-musl@4.60.1': - resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} - cpu: [loong64] - os: [linux] + '@csstools/postcss-nested-calc@1.0.0': + resolution: {integrity: sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-ppc64-gnu@4.60.1': - resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} - cpu: [ppc64] - os: [linux] + '@csstools/postcss-normalize-display-values@1.0.1': + resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-ppc64-musl@4.60.1': - resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} - cpu: [ppc64] - os: [linux] + '@csstools/postcss-oklab-function@1.1.1': + resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-riscv64-gnu@4.60.1': - resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} - cpu: [riscv64] - os: [linux] + '@csstools/postcss-progressive-custom-properties@1.3.0': + resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 - '@rollup/rollup-linux-riscv64-musl@4.60.1': - resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} - cpu: [riscv64] - os: [linux] + '@csstools/postcss-stepped-value-functions@1.0.1': + resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-s390x-gnu@4.60.1': - resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} - cpu: [s390x] - os: [linux] + '@csstools/postcss-text-decoration-shorthand@1.0.0': + resolution: {integrity: sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-x64-gnu@4.60.1': - resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} - cpu: [x64] - os: [linux] + '@csstools/postcss-trigonometric-functions@1.0.2': + resolution: {integrity: sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==} + engines: {node: ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-linux-x64-musl@4.60.1': - resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} - cpu: [x64] - os: [linux] + '@csstools/postcss-unset-value@1.0.2': + resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 - '@rollup/rollup-openbsd-x64@4.60.1': - resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} - cpu: [x64] - os: [openbsd] + '@csstools/selector-specificity@2.2.0': + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 - '@rollup/rollup-openharmony-arm64@4.60.1': - resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} - cpu: [arm64] - os: [openharmony] + '@electric-sql/pglite-socket@0.1.1': + resolution: {integrity: sha512-p2hoXw3Z3LQHwTeikdZNsFBOvXGqKY2hk51BBw+8NKND8eoH+8LFOtW9Z8CQKmTJ2qqGYu82ipqiyFZOTTXNfw==} + hasBin: true + peerDependencies: + '@electric-sql/pglite': 0.4.1 - '@rollup/rollup-win32-arm64-msvc@4.60.1': - resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} - cpu: [arm64] - os: [win32] + '@electric-sql/pglite-tools@0.3.1': + resolution: {integrity: sha512-C+T3oivmy9bpQvSxVqXA1UDY8cB9Eb9vZHL9zxWwEUfDixbXv4G3r2LjoTdR33LD8aomR3O9ZXEO3XEwr/cUCA==} + peerDependencies: + '@electric-sql/pglite': 0.4.1 - '@rollup/rollup-win32-ia32-msvc@4.60.1': - resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} - cpu: [ia32] - os: [win32] + '@electric-sql/pglite@0.4.1': + resolution: {integrity: sha512-mZ9NzzUSYPOCnxHH1oAHPRzoMFJHY472raDKwXl/+6oPbpdJ7g8LsCN4FSaIIfkiCKHhb3iF/Zqo3NYxaIhU7Q==} - '@rollup/rollup-win32-x64-gnu@4.60.1': - resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} - cpu: [x64] - os: [win32] + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@rollup/rollup-win32-x64-msvc@4.60.1': - resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} - cpu: [x64] - os: [win32] + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@smithy/abort-controller@4.2.11': - resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} - engines: {node: '>=18.0.0'} + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - '@smithy/chunked-blob-reader-native@4.2.3': - resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} - engines: {node: '>=18.0.0'} + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - '@smithy/chunked-blob-reader@5.2.2': - resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} - engines: {node: '>=18.0.0'} + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@smithy/config-resolver@4.4.10': - resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} - engines: {node: '>=18.0.0'} + '@emotion/is-prop-valid@1.4.0': + resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} - '@smithy/core@3.23.9': - resolution: {integrity: sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==} - engines: {node: '>=18.0.0'} + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@smithy/credential-provider-imds@4.2.11': - resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} - engines: {node: '>=18.0.0'} + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@smithy/eventstream-codec@4.2.11': - resolution: {integrity: sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==} - engines: {node: '>=18.0.0'} + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - '@smithy/eventstream-serde-browser@4.2.11': - resolution: {integrity: sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==} - engines: {node: '>=18.0.0'} + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - '@smithy/eventstream-serde-config-resolver@4.3.11': - resolution: {integrity: sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==} - engines: {node: '>=18.0.0'} + '@emotion/styled@11.14.1': + resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@smithy/eventstream-serde-node@4.2.11': - resolution: {integrity: sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==} - engines: {node: '>=18.0.0'} + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - '@smithy/eventstream-serde-universal@4.2.11': - resolution: {integrity: sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==} - engines: {node: '>=18.0.0'} + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: '>=16.8.0' - '@smithy/fetch-http-handler@5.3.13': - resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} - engines: {node: '>=18.0.0'} + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - '@smithy/hash-blob-browser@4.2.12': - resolution: {integrity: sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==} - engines: {node: '>=18.0.0'} + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@smithy/hash-node@4.2.11': - resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} - engines: {node: '>=18.0.0'} + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@smithy/hash-stream-node@4.2.11': - resolution: {integrity: sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==} - engines: {node: '>=18.0.0'} + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - '@smithy/invalid-dependency@4.2.11': - resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} - engines: {node: '>=18.0.0'} + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] - '@smithy/is-array-buffer@4.2.2': - resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} - engines: {node: '>=18.0.0'} + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] - '@smithy/md5-js@4.2.11': - resolution: {integrity: sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==} - engines: {node: '>=18.0.0'} + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] - '@smithy/middleware-content-length@4.2.11': - resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} - engines: {node: '>=18.0.0'} + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] - '@smithy/middleware-endpoint@4.4.23': - resolution: {integrity: sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==} - engines: {node: '>=18.0.0'} + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] - '@smithy/middleware-retry@4.4.40': - resolution: {integrity: sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] - '@smithy/middleware-serde@4.2.12': - resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] - '@smithy/middleware-stack@4.2.11': - resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] - '@smithy/node-config-provider@4.3.11': - resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] - '@smithy/node-http-handler@4.4.14': - resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] - '@smithy/property-provider@4.2.11': - resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] - '@smithy/protocol-http@5.3.11': - resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] - '@smithy/querystring-builder@4.2.11': - resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] - '@smithy/querystring-parser@4.2.11': - resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} - engines: {node: '>=18.0.0'} + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] - '@smithy/service-error-classification@4.2.11': - resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} - engines: {node: '>=18.0.0'} + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] - '@smithy/shared-ini-file-loader@4.4.6': - resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} - engines: {node: '>=18.0.0'} + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] - '@smithy/signature-v4@5.3.11': - resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} - engines: {node: '>=18.0.0'} + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] - '@smithy/smithy-client@4.12.3': - resolution: {integrity: sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==} - engines: {node: '>=18.0.0'} + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] - '@smithy/types@4.13.0': - resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} - engines: {node: '>=18.0.0'} + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] - '@smithy/url-parser@4.2.11': - resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} - engines: {node: '>=18.0.0'} + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] - '@smithy/util-base64@4.3.2': - resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} - engines: {node: '>=18.0.0'} + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] - '@smithy/util-body-length-browser@4.2.2': - resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} - engines: {node: '>=18.0.0'} + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] - '@smithy/util-body-length-node@4.2.3': - resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} - engines: {node: '>=18.0.0'} + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-buffer-from@4.2.2': - resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} - engines: {node: '>=18.0.0'} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@smithy/util-config-provider@4.2.2': - resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} - engines: {node: '>=18.0.0'} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@smithy/util-defaults-mode-browser@4.3.39': - resolution: {integrity: sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==} - engines: {node: '>=18.0.0'} + '@eslint/compat@2.0.3': + resolution: {integrity: sha512-SjIJhGigp8hmd1YGIBwh7Ovri7Kisl42GYFjrOyHhtfYGGoLW6teYi/5p8W50KSsawUPpuLOSmsq1bD0NGQLBw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^8.40 || 9 || 10 + peerDependenciesMeta: + eslint: + optional: true - '@smithy/util-defaults-mode-node@4.2.42': - resolution: {integrity: sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==} - engines: {node: '>=18.0.0'} + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-endpoints@3.3.2': - resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} - engines: {node: '>=18.0.0'} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-hex-encoding@4.2.2': - resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} - engines: {node: '>=18.0.0'} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-middleware@4.2.11': - resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} - engines: {node: '>=18.0.0'} + '@eslint/core@1.1.1': + resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@smithy/util-retry@4.2.11': - resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} - engines: {node: '>=18.0.0'} + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-stream@4.5.17': - resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} - engines: {node: '>=18.0.0'} + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true - '@smithy/util-uri-escape@4.2.2': - resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} - engines: {node: '>=18.0.0'} + '@eslint/js@9.39.4': + resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-utf8@4.2.2': - resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} - engines: {node: '>=18.0.0'} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@smithy/util-waiter@4.2.12': - resolution: {integrity: sha512-ek5hyDrzS6mBFsNCEX8LpM+EWSLq6b9FdmPRlkpXXhiJE6aIZehKT9clC6+nFpZAA+i/Yg0xlaPeWGNbf5rzQA==} - engines: {node: '>=18.0.0'} + '@fast-csv/format@5.0.5': + resolution: {integrity: sha512-0P9SJXXnqKdmuWlLaTelqbrfdgN37Mvrb369J6eNmqL41IEIZQmV4sNM4GgAK2Dz3aH04J0HKGDMJFkYObThTw==} - '@smithy/uuid@1.1.2': - resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} - engines: {node: '>=18.0.0'} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@swc/helpers@0.5.19': - resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==} + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] + '@floating-ui/react@0.27.19': + resolution: {integrity: sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==} + peerDependencies: + react: '>=17.0.0' + react-dom: '>=17.0.0' - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] + '@googlemaps/markerclusterer@2.6.2': + resolution: {integrity: sha512-U6uVhq8iWhiIckA89sgRu8OK35mjd6/3CuoZKWakKEf0QmRRWpatlsPb3kqXkoWSmbcZkopRiI4dnW6DQSd7bQ==} - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] + '@hono/node-server@1.19.11': + resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] + '@jest/console@27.5.1': + resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} - engines: {node: '>= 20'} + '@jest/console@28.1.3': + resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@tailwindcss/vite@4.2.2': - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + '@jest/core@27.5.1': + resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: - vite: ^5.2.0 || ^6 || ^7 || ^8 + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@jest/environment@27.5.1': + resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@jest/fake-timers@27.5.1': + resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@jest/globals@27.5.1': + resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@jest/reporters@27.5.1': + resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@jest/schemas@28.1.3': + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@jest/source-map@27.5.1': + resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/chai@4.3.20': - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + '@jest/test-result@27.5.1': + resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@jest/test-result@28.1.3': + resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@types/cookiejar@2.1.5': - resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} + '@jest/test-sequencer@27.5.1': + resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/cors@2.8.19': - resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + '@jest/transform@27.5.1': + resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/crypto-js@4.2.2': - resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} + '@jest/types@27.5.1': + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@types/date-arithmetic@4.1.4': - resolution: {integrity: sha512-p9eZ2X9B80iKiTW4ukVj8B4K6q9/+xFtQ5MGYA5HWToY9nL4EkhV9+6ftT2VHpVMEZb5Tv00Iel516bVdO+yRw==} + '@jest/types@28.1.3': + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@types/express-session@1.18.2': - resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@types/google.maps@3.58.1': - resolution: {integrity: sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==} + '@kurkle/color@0.3.4': + resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==} - '@types/history@4.7.11': - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + '@mui/core-downloads-tracker@6.5.0': + resolution: {integrity: sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@mui/icons-material@6.5.0': + resolution: {integrity: sha512-VPuPqXqbBPlcVSA0BmnoE4knW4/xG6Thazo8vCLWkOKusko6DtwFV6B665MMWJ9j0KFohTIf3yx2zYtYacvG1g==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@mui/material': ^6.5.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@mui/material@6.5.0': + resolution: {integrity: sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@mui/material-pigment-css': ^6.5.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@mui/material-pigment-css': + optional: true + '@types/react': + optional: true - '@types/jsonwebtoken@9.0.10': - resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} + '@mui/private-theming@6.4.9': + resolution: {integrity: sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/methods@1.1.4': - resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} + '@mui/styled-engine@6.5.0': + resolution: {integrity: sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@mui/system@6.5.0': + resolution: {integrity: sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true - '@types/mocha@10.0.10': - resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + '@mui/types@7.2.24': + resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@mui/types@7.4.12': + resolution: {integrity: sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/node-schedule@2.1.8': - resolution: {integrity: sha512-k00g6Yj/oUg/CDC+MeLHUzu0+OFxWbIqrFfDiLi6OPKxTujvpv29mHGM8GtKr7B+9Vv92FcK/8mRqi1DK5f3hA==} + '@mui/utils@6.4.9': + resolution: {integrity: sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/node@22.19.15': - resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} + '@mui/utils@7.3.9': + resolution: {integrity: sha512-U6SdZaGbfb65fqTsH3V5oJdFj9uYwyLE2WVuNvmbggTSDBb8QHrFsqY8BN3taK9t3yJ8/BPHD/kNvLNyjwM7Yw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@mui/x-date-pickers@7.29.4': + resolution: {integrity: sha512-wJ3tsqk/y6dp+mXGtT9czciAMEO5Zr3IIAHg9x6IL0Eqanqy0N3chbmQQZv3iq0m2qUpQDLvZ4utZBUTJdjNzw==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.9.0 + '@emotion/styled': ^11.8.1 + '@mui/material': ^5.15.14 || ^6.0.0 || ^7.0.0 + '@mui/system': ^5.15.14 || ^6.0.0 || ^7.0.0 + date-fns: ^2.25.0 || ^3.2.0 || ^4.0.0 + date-fns-jalali: ^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0 + dayjs: ^1.10.7 + luxon: ^3.0.2 + moment: ^2.29.4 + moment-hijri: ^2.1.2 || ^3.0.0 + moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + date-fns: + optional: true + date-fns-jalali: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + moment-hijri: + optional: true + moment-jalaali: + optional: true - '@types/passport-strategy@0.2.38': - resolution: {integrity: sha512-GC6eMqqojOooq993Tmnmp7AUTbbQSgilyvpCYQjT+H6JfG/g6RGc7nXEniZlp0zyKJ0WUdOiZWLBZft9Yug1uA==} + '@mui/x-internals@7.29.0': + resolution: {integrity: sha512-+Gk6VTZIFD70XreWvdXBwKd8GZ2FlSCuecQFzm6znwqXg1ZsndavrhG9tkxpxo2fM1Zf7Tk8+HcOO0hCbhTQFA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@types/passport@1.0.17': - resolution: {integrity: sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@types/qs@6.15.0': - resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@node-saml/node-saml@5.1.0': + resolution: {integrity: sha512-t3cJnZ4aC7HhPZ6MGylGZULvUtBOZ6FzuUndaHGXjmIZHXnLfC/7L8a57O9Q9V7AxJGKAiRM5zu2wNm9EsvQpw==} + engines: {node: '>= 18'} - '@types/react-big-calendar@1.16.3': - resolution: {integrity: sha512-CR+5BKMhlr/wPgsp+sXOeNKNkoU1h/+6H1XoWuL7xnurvzGRQv/EnM8jPS9yxxBvXI8pjQBaJcI7RTSGiewG/Q==} + '@node-saml/passport-saml@5.1.0': + resolution: {integrity: sha512-pBm+iFjv9eihcgeJuSUs4c0AuX1QEFdHwP8w1iaWCfDzXdeWZxUBU5HT2bY2S4dvNutcy+A9hYsH7ZLBGtgwDg==} + engines: {node: '>= 18'} - '@types/react-csv@1.1.10': - resolution: {integrity: sha512-PESAyASL7Nfi/IyBR3ufd8qZkyoS+7jOylKmJxRZUZLFASLo4NZaRsJ8rNP8pCcbIziADyWBbLPD1nPddhsL4g==} + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} - peerDependencies: - '@types/react': ^18.0.0 + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - '@types/react-router-dom@5.3.3': - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} - '@types/react-router-hash-link@2.4.9': - resolution: {integrity: sha512-zl/VMj+lfJZhvjOAQXIlBVPNKSK+/fRG8AUHhlP9++LhlA2ziLeTmbRxIMJI3PCiCTS+W/FosEoDRoNOGH0OzA==} + '@paralleldrive/cuid2@2.3.1': + resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} - '@types/react-router@5.1.20': - resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} - '@types/react-transition-group@4.4.12': - resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} + '@pmmmwh/react-refresh-webpack-plugin@0.5.17': + resolution: {integrity: sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==} + engines: {node: '>= 10.13'} peerDependencies: - '@types/react': '*' + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <5.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x || 5.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true - '@types/react@18.3.28': - resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + '@prisma/adapter-pg@7.4.2': + resolution: {integrity: sha512-oUo2Zhe9Tf6YwVL8kLPuOLTK1Z2pwi/Ua77t2PuGyBan2w7shRKqHvYK+3XXmRH9RWhPJ4SMtHZKpNo6Ax/4bQ==} - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + '@prisma/client-runtime-utils@7.4.2': + resolution: {integrity: sha512-cID+rzOEb38VyMsx5LwJMEY4NGIrWCNpKu/0ImbeooQ2Px7TI+kOt7cm0NelxUzF2V41UVVXAmYjANZQtCu1/Q==} - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + '@prisma/client@7.4.2': + resolution: {integrity: sha512-ts2mu+cQHriAhSxngO3StcYubBGTWDtu/4juZhXCUKOwgh26l+s4KD3vT2kMUzFyrYnll9u/3qWrtzRv9CGWzA==} + engines: {node: ^20.19 || ^22.12 || >=24.0} + peerDependencies: + prisma: '*' + typescript: '>=5.4.0' + peerDependenciesMeta: + prisma: + optional: true + typescript: + optional: true - '@types/session-file-store@1.2.6': - resolution: {integrity: sha512-5SqSrqUr6/Ah0g46202WoFE3Fd9P5gLUW34b8bitA0qffOanUzbArVDOx1bvchUK56yZCzhHNREXK7e56lsQ4w==} + '@prisma/config@7.7.0': + resolution: {integrity: sha512-hmPI3tKLO2aP0Y5vugbjcnA9qqlfJndiT6ds4tw28U5hNHLWg+mHJEWAhjsSPgxjtmxhJ/EDIeIlyh+3Us0OPg==} - '@types/superagent@8.1.9': - resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} + '@prisma/debug@7.2.0': + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} - '@types/supercluster@7.1.3': - resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} + '@prisma/debug@7.4.2': + resolution: {integrity: sha512-aP7qzu+g/JnbF6U69LMwHoUkELiserKmWsE2shYuEpNUJ4GrtxBCvZwCyCBHFSH2kLTF2l1goBlBh4wuvRq62w==} - '@types/supertest@6.0.3': - resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} + '@prisma/debug@7.7.0': + resolution: {integrity: sha512-12J62XdqCmpiwJHhHdQxZeY3ckVCWIFmcJP8hg5dPTceeiQ0wiojXGFYTluKqFQfu46fRLgb/rLALZMAx3+dTA==} - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + '@prisma/dev@0.24.3': + resolution: {integrity: sha512-ffHlQuKXZiaDt9Go0OnCTdJZrHxK0k7omJKNV86/VjpsXu5EIHZLK0T7JSWgvNlJwh56kW9JFu9v0qJciFzepg==} - '@types/validator@13.15.10': - resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==} + '@prisma/driver-adapter-utils@7.4.2': + resolution: {integrity: sha512-REdjFpT/ye9KdDs+CXAXPIbMQkVLhne9G5Pe97sNY4Ovx4r2DAbWM9hOFvvB1Oq8H8bOCdu0Ri3AoGALquQqVw==} - '@types/warning@3.0.3': - resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==} + '@prisma/engines-version@7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711': + resolution: {integrity: sha512-r51DLcJ8bDRSrBEJF3J4cinoWyGA7rfP2mG6lD90VqIbGNOkbfcLcXalSVjq5Y6brQS3vcjrq4GbyUb1Cb7vkw==} - '@types/web-push@3.6.4': - resolution: {integrity: sha512-GnJmSr40H3RAnj0s34FNTcJi1hmWFV5KXugE0mYWnYhgTAHLJ/dJKAwDmvPJYMke0RplY2XE9LnM4hqSqKIjhQ==} + '@prisma/engines@7.7.0': + resolution: {integrity: sha512-7fmcbT7HHXBq/b+3h/dO1JI3fd8l8q7erf7xP7pRprh58hmSSnG8mg9K3yjW3h9WaHWUwngVFpSxxxivaitQ2w==} - '@types/xml-encryption@1.2.4': - resolution: {integrity: sha512-I69K/WW1Dv7j6O3jh13z0X8sLWJRXbu5xnHDl9yHzUNDUBtUoBY058eb5s+x/WG6yZC1h8aKdI2EoyEPjyEh+Q==} + '@prisma/fetch-engine@7.7.0': + resolution: {integrity: sha512-TfyzveBQoK4xALzsTpVhB/0KG1N8zOK0ap+RnBMkzGUu3f98fnQ4QtXa2wlKPhsO2X8a3N5ugFQgcKNoHGmDfw==} - '@types/xml2js@0.4.14': - resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} + '@prisma/get-platform@7.2.0': + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} - '@typescript-eslint/eslint-plugin@8.57.0': - resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@prisma/get-platform@7.7.0': + resolution: {integrity: sha512-MEUNzvKxvYnJ7kgvd6oNRnMmmiGNS9TYLB2weMeIXplnHdL/UWEGnvavYGnN7KLJ2n0iI4dDAyzSkHI3c7AscQ==} + + '@prisma/query-plan-executor@7.2.0': + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} + + '@prisma/streams-local@0.1.2': + resolution: {integrity: sha512-l49yTxKKF2odFxaAXTmwmkBKL3+bVQ1tFOooGifu4xkdb9NMNLxHj27XAhTylWZod8I+ISGM5erU1xcl/oBCtg==} + engines: {bun: '>=1.3.6', node: '>=22.0.0'} + + '@prisma/studio-core@0.27.3': + resolution: {integrity: sha512-AADjNFPdsrglxHQVTmHFqv6DuKQZ5WY4p5/gVFY017twvNrSwpLJ9lqUbYYxEu2W7nbvVxTZA8deJ8LseNALsw==} + engines: {node: ^20.19 || ^22.12 || >=24.0, pnpm: '8'} peerDependencies: - '@typescript-eslint/parser': ^8.57.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@typescript-eslint/parser@8.57.0': - resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/project-service@8.57.0': - resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@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 - '@typescript-eslint/scope-manager@8.57.0': - resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/tsconfig-utils@8.57.0': - resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-toggle@1.1.10': + resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@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 - '@typescript-eslint/type-utils@8.57.0': - resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/types@8.57.0': - resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/typescript-estree@8.57.0': - resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/utils@8.57.0': - resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@react-aria/ssr@3.9.10': + resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} + engines: {node: '>= 12'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@typescript-eslint/visitor-keys@8.57.0': - resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@react-aria/utils@3.33.1': + resolution: {integrity: sha512-kIx1Sj6bbAT0pdqCegHuPanR9zrLn5zMRiM7LN12rgRf55S19ptd9g3ncahArifYTRkfEU9VIn+q0HjfMqS9/w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + '@react-stately/flags@3.1.2': + resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} + + '@react-stately/utils@3.11.0': + resolution: {integrity: sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.33.1': + resolution: {integrity: sha512-oJHtjvLG43VjwemQDadlR5g/8VepK56B/xKO2XORPHt9zlW6IZs3tZrYlvH29BMvoqC7RtE7E5UjgbnbFtDGag==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@remix-run/router@1.23.2': + resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} + engines: {node: '>=14.0.0'} + + '@restart/hooks@0.4.16': + resolution: {integrity: sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==} + peerDependencies: + react: '>=16.8.0' + + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + + '@rollup/plugin-babel@5.3.1': + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + + '@rollup/plugin-node-resolve@11.2.1': + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + + '@rollup/plugin-replace@2.4.2': + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + + '@rollup/pluginutils@3.1.0': + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} cpu: [x64] os: [win32] - '@vis.gl/react-google-maps@1.7.1': - resolution: {integrity: sha512-F/GJzJyri7Jqf+bkLNxoi2RcH2hCIo1I3//PyiILqQzdzglMoqZVO1DLXlHPifNdebk1/zib6dMJA3i73nwmuQ==} - peerDependencies: - react: '>=16.8.0 || ^19.0 || ^19.0.0-rc' - react-dom: '>=16.8.0 || ^19.0 || ^19.0.0-rc' + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + cpu: [x64] + os: [win32] - '@vitejs/plugin-react@5.1.4': - resolution: {integrity: sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@xmldom/is-dom-node@1.0.1': - resolution: {integrity: sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==} - engines: {node: '>= 16'} + '@rushstack/eslint-patch@1.16.1': + resolution: {integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==} - '@xmldom/xmldom@0.8.11': - resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} - engines: {node: '>=10.0.0'} - deprecated: this version has critical issues, please update to the latest version + '@sinclair/typebox@0.24.51': + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + '@sinonjs/commons@1.8.6': + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@sinonjs/fake-timers@8.1.0': + resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true + '@smithy/abort-controller@4.2.11': + resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} + engines: {node: '>=18.0.0'} - addresser@1.1.20: - resolution: {integrity: sha512-+RF7y2RkgulLWdiKNwWW2d21RXneDcYasFdeR+kbUmSXp5HqrAAIh3f8YLaHV4WsjzN4L0XG2GhlfHwa1jkeLg==} + '@smithy/chunked-blob-reader-native@4.2.3': + resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} + engines: {node: '>=18.0.0'} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + '@smithy/chunked-blob-reader@5.2.2': + resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} + engines: {node: '>=18.0.0'} - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + '@smithy/config-resolver@4.4.10': + resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} + engines: {node: '>=18.0.0'} - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + '@smithy/core@3.23.9': + resolution: {integrity: sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==} + engines: {node: '>=18.0.0'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} + '@smithy/credential-provider-imds@4.2.11': + resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} + engines: {node: '>=18.0.0'} - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + '@smithy/eventstream-codec@4.2.11': + resolution: {integrity: sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==} + engines: {node: '>=18.0.0'} - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} + '@smithy/eventstream-serde-browser@4.2.11': + resolution: {integrity: sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==} + engines: {node: '>=18.0.0'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + '@smithy/eventstream-serde-config-resolver@4.3.11': + resolution: {integrity: sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==} + engines: {node: '>=18.0.0'} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + '@smithy/eventstream-serde-node@4.2.11': + resolution: {integrity: sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==} + engines: {node: '>=18.0.0'} - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + '@smithy/eventstream-serde-universal@4.2.11': + resolution: {integrity: sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==} + engines: {node: '>=18.0.0'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} + '@smithy/fetch-http-handler@5.3.13': + resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} + engines: {node: '>=18.0.0'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + '@smithy/hash-blob-browser@4.2.12': + resolution: {integrity: sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==} + engines: {node: '>=18.0.0'} - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} + '@smithy/hash-node@4.2.11': + resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} + engines: {node: '>=18.0.0'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + '@smithy/hash-stream-node@4.2.11': + resolution: {integrity: sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==} + engines: {node: '>=18.0.0'} - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} + '@smithy/invalid-dependency@4.2.11': + resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} + engines: {node: '>=18.0.0'} - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} + '@smithy/is-array-buffer@4.2.2': + resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} + engines: {node: '>=18.0.0'} - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} + '@smithy/md5-js@4.2.11': + resolution: {integrity: sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==} + engines: {node: '>=18.0.0'} - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} + '@smithy/middleware-content-length@4.2.11': + resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} + engines: {node: '>=18.0.0'} - asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + '@smithy/middleware-endpoint@4.4.23': + resolution: {integrity: sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==} + engines: {node: '>=18.0.0'} - asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + '@smithy/middleware-retry@4.4.40': + resolution: {integrity: sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==} + engines: {node: '>=18.0.0'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + '@smithy/middleware-serde@4.2.12': + resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} + engines: {node: '>=18.0.0'} - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} + '@smithy/middleware-stack@4.2.11': + resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} + engines: {node: '>=18.0.0'} - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + '@smithy/node-config-provider@4.3.11': + resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} + engines: {node: '>=18.0.0'} - autoprefixer@10.4.27: - resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + '@smithy/node-http-handler@4.4.14': + resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} + engines: {node: '>=18.0.0'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + '@smithy/property-provider@4.2.11': + resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} + engines: {node: '>=18.0.0'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + '@smithy/protocol-http@5.3.11': + resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} + engines: {node: '>=18.0.0'} - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} + '@smithy/querystring-builder@4.2.11': + resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} + engines: {node: '>=18.0.0'} - bagpipe@0.3.5: - resolution: {integrity: sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g==} + '@smithy/querystring-parser@4.2.11': + resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} + engines: {node: '>=18.0.0'} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + '@smithy/service-error-classification@4.2.11': + resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} + engines: {node: '>=18.0.0'} - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} + '@smithy/shared-ini-file-loader@4.4.6': + resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} + engines: {node: '>=18.0.0'} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + '@smithy/signature-v4@5.3.11': + resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} + engines: {node: '>=18.0.0'} - baseline-browser-mapping@2.9.3: - resolution: {integrity: sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA==} - hasBin: true + '@smithy/smithy-client@4.12.3': + resolution: {integrity: sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==} + engines: {node: '>=18.0.0'} - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + '@smithy/types@4.13.0': + resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} + engines: {node: '>=18.0.0'} - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + '@smithy/url-parser@4.2.11': + resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} + engines: {node: '>=18.0.0'} - bn.js@4.12.3: - resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} + '@smithy/util-base64@4.3.2': + resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} + engines: {node: '>=18.0.0'} - body-parser@1.20.4: - resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + '@smithy/util-body-length-browser@4.2.2': + resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} + engines: {node: '>=18.0.0'} - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + '@smithy/util-body-length-node@4.2.3': + resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} + engines: {node: '>=18.0.0'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + '@smithy/util-buffer-from@4.2.2': + resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} + engines: {node: '>=18.0.0'} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} - engines: {node: 18 || 20 || >=22} + '@smithy/util-config-provider@4.2.2': + resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} + engines: {node: '>=18.0.0'} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + '@smithy/util-defaults-mode-browser@4.3.39': + resolution: {integrity: sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==} + engines: {node: '>=18.0.0'} - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + '@smithy/util-defaults-mode-node@4.2.42': + resolution: {integrity: sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==} + engines: {node: '>=18.0.0'} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + '@smithy/util-endpoints@3.3.2': + resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} + engines: {node: '>=18.0.0'} - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + '@smithy/util-hex-encoding@4.2.2': + resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} + engines: {node: '>=18.0.0'} - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + '@smithy/util-middleware@4.2.11': + resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} + engines: {node: '>=18.0.0'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + '@smithy/util-retry@4.2.11': + resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} + engines: {node: '>=18.0.0'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + '@smithy/util-stream@4.5.17': + resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} + engines: {node: '>=18.0.0'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + '@smithy/util-uri-escape@4.2.2': + resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} + engines: {node: '>=18.0.0'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} + '@smithy/util-utf8@4.2.2': + resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} + engines: {node: '>=18.0.0'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + '@smithy/util-waiter@4.2.12': + resolution: {integrity: sha512-ek5hyDrzS6mBFsNCEX8LpM+EWSLq6b9FdmPRlkpXXhiJE6aIZehKT9clC6+nFpZAA+i/Yg0xlaPeWGNbf5rzQA==} + engines: {node: '>=18.0.0'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + '@smithy/uuid@1.1.2': + resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} + engines: {node: '>=18.0.0'} - caniuse-lite@1.0.30001759: - resolution: {integrity: sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - caniuse-lite@1.0.30001777: - resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==} + '@surma/rollup-plugin-off-main-thread@2.2.3': + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - chai@4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} - engines: {node: '>=4'} + '@svgr/babel-plugin-add-jsx-attribute@5.4.0': + resolution: {integrity: sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==} + engines: {node: '>=10'} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + '@svgr/babel-plugin-remove-jsx-attribute@5.4.0': + resolution: {integrity: sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==} engines: {node: '>=10'} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + '@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1': + resolution: {integrity: sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==} + engines: {node: '>=10'} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + '@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1': + resolution: {integrity: sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==} + engines: {node: '>=10'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + '@svgr/babel-plugin-svg-dynamic-title@5.4.0': + resolution: {integrity: sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==} + engines: {node: '>=10'} - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + '@svgr/babel-plugin-svg-em-dimensions@5.4.0': + resolution: {integrity: sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==} + engines: {node: '>=10'} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + '@svgr/babel-plugin-transform-react-native-svg@5.4.0': + resolution: {integrity: sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==} + engines: {node: '>=10'} - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} + '@svgr/babel-plugin-transform-svg-component@5.5.0': + resolution: {integrity: sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==} + engines: {node: '>=10'} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + '@svgr/babel-preset@5.5.0': + resolution: {integrity: sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==} + engines: {node: '>=10'} - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + '@svgr/core@5.5.0': + resolution: {integrity: sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==} + engines: {node: '>=10'} - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + '@svgr/hast-util-to-babel-ast@5.5.0': + resolution: {integrity: sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==} + engines: {node: '>=10'} - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + '@svgr/plugin-jsx@5.5.0': + resolution: {integrity: sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==} + engines: {node: '>=10'} - component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + '@svgr/plugin-svgo@5.5.0': + resolution: {integrity: sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==} + engines: {node: '>=10'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + '@svgr/webpack@5.5.0': + resolution: {integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==} + engines: {node: '>=10'} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + '@swc/helpers@0.5.19': + resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==} - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + '@tailwindcss/node@4.2.2': + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + '@tailwindcss/oxide-android-arm64@4.2.2': + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + '@tailwindcss/oxide-darwin-arm64@4.2.2': + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + '@tailwindcss/oxide-darwin-x64@4.2.2': + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] - cookie-signature@1.2.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} - engines: {node: '>=6.6.0'} + '@tailwindcss/oxide-freebsd-x64@4.2.2': + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] - cookiejar@2.1.4: - resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] - cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] - cron-parser@4.9.0: - resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} - engines: {node: '>=12.0.0'} + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + '@tailwindcss/oxide@4.2.2': + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + engines: {node: '>= 20'} - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + '@tailwindcss/vite@4.2.2': + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - date-arithmetic@4.1.0: - resolution: {integrity: sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} + '@types/cookiejar@2.1.5': + resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + '@types/crypto-js@4.2.2': + resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + '@types/date-arithmetic@4.1.4': + resolution: {integrity: sha512-p9eZ2X9B80iKiTW4ukVj8B4K6q9/+xFtQ5MGYA5HWToY9nL4EkhV9+6ftT2VHpVMEZb5Tv00Iel516bVdO+yRw==} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} + '@types/estree@0.0.39': + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - diff@4.0.4: - resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} - engines: {node: '>=0.3.1'} + '@types/express-serve-static-core@4.19.8': + resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} + '@types/express-session@1.18.2': + resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + '@types/google.maps@3.58.1': + resolution: {integrity: sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - dynamoose-utils@4.1.5: - resolution: {integrity: sha512-flC/H02WyBjG02BTKF5Vj7dd+3rUQISyi1xEC8B7hlwoQWRWEUY+c062nDudpUGoxq7WM9NaKPLfh8lmX80icg==} + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} - dynamoose@4.1.5: - resolution: {integrity: sha512-DS9HJuBYCKsvsfwsjo6bsfPg2py4sSTS5Dj+CrntHJCc1WMhqJzG4j9MSeNGevGW3q5B1Gh+dx9J/ScUZqAz1g==} + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + '@types/http-proxy@1.17.17': + resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - electron-to-chromium@1.5.266: - resolution: {integrity: sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==} + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} - engines: {node: '>=10.13.0'} + '@types/jsonwebtoken@9.0.10': + resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + '@types/methods@1.1.4': + resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} - engines: {node: '>= 0.4'} + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - es-iterator-helpers@1.2.2: - resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} - engines: {node: '>= 0.4'} + '@types/node-schedule@2.1.8': + resolution: {integrity: sha512-k00g6Yj/oUg/CDC+MeLHUzu0+OFxWbIqrFfDiLi6OPKxTujvpv29mHGM8GtKr7B+9Vv92FcK/8mRqi1DK5f3hA==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + '@types/node@22.19.15': + resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} + '@types/passport-strategy@0.2.38': + resolution: {integrity: sha512-GC6eMqqojOooq993Tmnmp7AUTbbQSgilyvpCYQjT+H6JfG/g6RGc7nXEniZlp0zyKJ0WUdOiZWLBZft9Yug1uA==} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} + '@types/passport@1.0.17': + resolution: {integrity: sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==} - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} - engines: {node: '>=18'} - hasBin: true + '@types/pg@8.20.0': + resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + '@types/q@1.5.8': + resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + '@types/qs@6.15.0': + resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + '@types/react-big-calendar@1.16.3': + resolution: {integrity: sha512-CR+5BKMhlr/wPgsp+sXOeNKNkoU1h/+6H1XoWuL7xnurvzGRQv/EnM8jPS9yxxBvXI8pjQBaJcI7RTSGiewG/Q==} - eslint-import-resolver-typescript@4.4.4: - resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} - engines: {node: ^16.17.0 || >=18.6.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true + '@types/react-csv@1.1.10': + resolution: {integrity: sha512-PESAyASL7Nfi/IyBR3ufd8qZkyoS+7jOylKmJxRZUZLFASLo4NZaRsJ8rNP8pCcbIziADyWBbLPD1nPddhsL4g==} - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} - engines: {node: '>=4'} + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + '@types/react': ^18.0.0 - eslint-plugin-import@2.32.0: - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} - eslint-plugin-promise@7.2.1: - resolution: {integrity: sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + '@types/react-router-hash-link@2.4.9': + resolution: {integrity: sha512-zl/VMj+lfJZhvjOAQXIlBVPNKSK+/fRG8AUHhlP9++LhlA2ziLeTmbRxIMJI3PCiCTS+W/FosEoDRoNOGH0OzA==} - eslint-plugin-react-hooks@7.0.1: - resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} + '@types/react-transition-group@4.4.12': + resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + '@types/react': '*' - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@types/react@18.3.28': + resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} + '@types/resolve@1.17.1': + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@types/send@0.17.6': + resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - eslint@9.39.4: - resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} + '@types/serve-static@1.15.10': + resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + '@types/session-file-store@1.2.6': + resolution: {integrity: sha512-5SqSrqUr6/Ah0g46202WoFE3Fd9P5gLUW34b8bitA0qffOanUzbArVDOx1bvchUK56yZCzhHNREXK7e56lsQ4w==} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + '@types/superagent@8.1.9': + resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + '@types/supercluster@7.1.3': + resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} - express-session@1.19.0: - resolution: {integrity: sha512-0csaMkGq+vaiZTmSMMGkfdCOabYv192VbytFypcvI0MANrp+4i/7yEkJ0sbAEhycQjntaKGzYfjfXQyVb7BHMA==} - engines: {node: '>= 0.8.0'} + '@types/supertest@6.0.3': + resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} - express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} - engines: {node: '>= 0.10.0'} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + '@types/validator@13.15.10': + resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==} - fast-equals@5.4.0: - resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} - engines: {node: '>=6.0.0'} + '@types/warning@3.0.3': + resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + '@types/web-push@3.6.4': + resolution: {integrity: sha512-GnJmSr40H3RAnj0s34FNTcJi1hmWFV5KXugE0mYWnYhgTAHLJ/dJKAwDmvPJYMke0RplY2XE9LnM4hqSqKIjhQ==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + '@types/xml-encryption@1.2.4': + resolution: {integrity: sha512-I69K/WW1Dv7j6O3jh13z0X8sLWJRXbu5xnHDl9yHzUNDUBtUoBY058eb5s+x/WG6yZC1h8aKdI2EoyEPjyEh+Q==} - fast-xml-builder@1.1.0: - resolution: {integrity: sha512-7mtITW/we2/wTUZqMyBOR2F8xP4CRxMiSEcQxPIqdRWdO2L/HZSOlzoNyghmyDwNB8BDxePooV1ZTJpkOUhdRg==} + '@types/xml2js@0.4.14': + resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - fast-xml-parser@5.4.1: - resolution: {integrity: sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==} - hasBin: true + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} + '@types/yargs@16.0.11': + resolution: {integrity: sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@typescript-eslint/eslint-plugin@5.62.0': + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - picomatch: ^3 || ^4 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' peerDependenciesMeta: - picomatch: + typescript: optional: true - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + '@typescript-eslint/eslint-plugin@8.57.0': + resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.57.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + '@typescript-eslint/experimental-utils@5.62.0': + resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + '@typescript-eslint/parser@8.57.0': + resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + '@typescript-eslint/project-service@8.57.0': + resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true + '@typescript-eslint/scope-manager@8.57.0': + resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - flatted@3.4.1: - resolution: {integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==} + '@typescript-eslint/tsconfig-utils@8.57.0': + resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' - focus-trap-react@10.3.1: - resolution: {integrity: sha512-PN4Ya9xf9nyj/Nd9VxBNMuD7IrlRbmaG6POAQ8VLqgtc6IY/Ln1tYakow+UIq4fihYYYFM70/2oyidE6bbiPgw==} + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - prop-types: ^15.8.1 - react: '>=16.3.0' - react-dom: '>=16.3.0' + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - focus-trap@7.8.0: - resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + '@typescript-eslint/type-utils@8.57.0': + resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/types@8.57.0': + resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - debug: '*' + typescript: '*' peerDependenciesMeta: - debug: + typescript: optional: true - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} + '@typescript-eslint/typescript-estree@8.57.0': + resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - formidable@3.5.4: - resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} - engines: {node: '>=14.0.0'} + '@typescript-eslint/utils@8.57.0': + resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + '@typescript-eslint/visitor-keys@8.57.0': + resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true + '@vis.gl/react-google-maps@1.7.1': + resolution: {integrity: sha512-F/GJzJyri7Jqf+bkLNxoi2RcH2hCIo1I3//PyiILqQzdzglMoqZVO1DLXlHPifNdebk1/zib6dMJA3i73nwmuQ==} + peerDependencies: + react: '>=16.8.0 || ^19.0 || ^19.0.0-rc' + react-dom: '>=16.8.0 || ^19.0 || ^19.0.0-rc' - globalize@0.1.1: - resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} + '@vitejs/plugin-react@5.1.4': + resolution: {integrity: sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - globals@17.4.0: - resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} - engines: {node: '>=18'} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - google-auth-library@9.15.1: - resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} - engines: {node: '>=14'} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} - engines: {node: '>=14.0.0'} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + '@xmldom/is-dom-node@1.0.1': + resolution: {integrity: sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==} + engines: {node: '>= 16'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} + engines: {node: '>=10.0.0'} + deprecated: this version has critical issues, please update to the latest version - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} + acorn-globals@6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - http_ece@1.2.0: - resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==} - engines: {node: '>=16'} + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true - ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + addresser@1.1.20: + resolution: {integrity: sha512-+RF7y2RkgulLWdiKNwWW2d21RXneDcYasFdeR+kbUmSXp5HqrAAIh3f8YLaHV4WsjzN4L0XG2GhlfHwa1jkeLg==} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} + adjust-sourcemap-loader@4.0.0: + resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} + engines: {node: '>=8.9'} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} + ansi-html@0.0.9: + resolution: {integrity: sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==} + engines: {'0': node >= 0.8.0} + hasBin: true - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + array.prototype.reduce@1.0.8: + resolution: {integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==} engines: {node: '>= 0.4'} - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + autoprefixer@10.4.27: + resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} + engines: {node: ^10 || ^12 || >=14} hasBin: true + peerDependencies: + postcss: ^8.1.0 - js-object-utilities@2.2.1: - resolution: {integrity: sha512-0Ki0uXeMEga6OVM7ESxLjSaCYMdrQ46av0VomzaQT7BWNwMsEodmrtImkdD6K7SCq0ADw1uoQm4HBrsMQqtEww==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true + axe-core@4.11.2: + resolution: {integrity: sha512-byD6KPdvo72y/wj2T/4zGEvvlis+PsZsn/yPS3pEO+sFpcrqRpX/TJCxvVaEsNeMrfQbCr7w163YqoD9IYwHXw==} + engines: {node: '>=4'} - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true + axios@1.13.6: + resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + babel-jest@27.5.1: + resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.8.0 - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + babel-loader@8.4.1: + resolution: {integrity: sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==} + engines: {node: '>= 8.9'} + peerDependencies: + '@babel/core': ^7.0.0 + webpack: '>=2' - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + babel-plugin-jest-hoist@27.5.1: + resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + babel-plugin-named-asset-import@0.3.8: + resolution: {integrity: sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==} + peerDependencies: + '@babel/core': ^7.1.0 - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - jsonwebtoken@9.0.3: - resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} - engines: {node: '>=12', npm: '>=6'} + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + babel-plugin-transform-react-remove-prop-types@0.4.24: + resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 - kdbush@4.0.2: - resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + babel-preset-jest@27.5.1: + resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.0.0 - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + babel-preset-react-app@10.1.0: + resolution: {integrity: sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==} - kruptein@2.2.3: - resolution: {integrity: sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==} - engines: {node: '>6'} + bagpipe@0.3.5: + resolution: {integrity: sha512-42sAlmPDKes1nLm/aly+0VdaopSU9br+jkRELedhQxI5uXHgtk47I83Mpmf4zoNTRMASdLFtUkimlu/Z9zQ8+g==} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] + baseline-browser-mapping@2.9.3: + resolution: {integrity: sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA==} + hasBin: true - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] + better-result@2.8.2: + resolution: {integrity: sha512-YOf0VSj5nUPI27doTtXF+BBnsiRq3qY7avHqfIWnppxTLGyvkLq1QV2RTxkwoZwJ60ywLfZ0raFF4J/G886i7A==} - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] + bfj@7.1.0: + resolution: {integrity: sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==} + engines: {node: '>= 8.0.0'} - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} + bn.js@4.12.3: + resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + body-parser@1.20.4: + resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + bonjour-service@1.3.0: + resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} - lodash-es@4.17.23: - resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - lodash.isnil@4.0.0: - resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + browser-process-hrtime@1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - long-timeout@0.1.1: - resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} + c12@3.1.0: + resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} - luxon@3.7.2: - resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} - engines: {node: '>=12'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - memoize-one@6.0.0: - resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + caniuse-lite@1.0.30001759: + resolution: {integrity: sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + caniuse-lite@1.0.30001777: + resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + case-sensitive-paths-webpack-plugin@2.4.0: + resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} + engines: {node: '>=4'} - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - hasBin: true - mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} + char-regex@2.0.2: + resolution: {integrity: sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==} + engines: {node: '>=12.20'} - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + chart.js@4.5.1: + resolution: {integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==} + engines: {pnpm: '>=8'} - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + check-types@11.2.3: + resolution: {integrity: sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==} - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} - mnemonist@0.38.3: - resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} - mocha@11.7.5: - resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} - moment-timezone@0.5.48: - resolution: {integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + citty@0.2.2: + resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} - engines: {node: '>= 0.4'} + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - node-schedule@2.1.1: - resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} - engines: {node: '>=6'} + coa@2.0.2: + resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} + engines: {node: '>= 4.0'} - nodemon@3.1.14: - resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==} - engines: {node: '>=10'} - hasBin: true + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} - obliterator@1.6.1: - resolution: {integrity: sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} engines: {node: '>= 0.8.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - passport-strategy@1.0.0: - resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} - engines: {node: '>= 0.4.0'} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - passport@0.7.0: - resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==} - engines: {node: '>= 0.4.0'} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + cookie-signature@1.0.7: + resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - path-expression-matcher@1.1.2: - resolution: {integrity: sha512-LXWqJmcpp2BKOEmgt4CyuESFmBfPuhJlAHKJsFzuJU6CxErWk75BrO+Ni77M9OxHN6dCYKM4vj+21Z6cOL96YQ==} - engines: {node: '>=14.0.0'} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + core-js-pure@3.49.0: + resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + core-js@3.49.0: + resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - pause@0.0.1: - resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} - picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} + cron-parser@4.9.0: + resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} + engines: {node: '>=12.0.0'} - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} - engines: {node: ^10 || ^12 || >=14} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + css-blank-pseudo@3.0.3: + resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==} + engines: {node: ^12 || ^14 || >=16} hasBin: true + peerDependencies: + postcss: ^8.4 - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + css-has-pseudo@3.0.4: + resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + css-loader@6.11.0: + resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true - pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + css-minimizer-webpack-plugin@3.4.1: + resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@parcel/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + css-prefers-color-scheme@6.0.3: + resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==} + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 - qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} - engines: {node: '>=0.6'} + css-select-base-adapter@0.1.1: + resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} - qs@6.15.0: - resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} - engines: {node: '>=0.6'} + css-select@2.1.0: + resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==} - random-bytes@1.0.0: - resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} - engines: {node: '>= 0.8'} + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + css-tree@1.0.0-alpha.37: + resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==} + engines: {node: '>=8.0.0'} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} + css-what@3.4.2: + resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} + engines: {node: '>= 6'} - react-big-calendar@1.19.4: - resolution: {integrity: sha512-FrvbDx2LF6JAWFD96LU1jjloppC5OgIvMYUYIPzAw5Aq+ArYFPxAjLqXc4DyxfsQDN0TJTMuS/BIbcSB7Pg0YA==} - peerDependencies: - react: ^16.14.0 || ^17 || ^18 || ^19 - react-dom: ^16.14.0 || ^17 || ^18 || ^19 + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} - react-csv@2.2.2: - resolution: {integrity: sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw==} + cssdb@7.11.2: + resolution: {integrity: sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==} - react-datepicker@9.1.0: - resolution: {integrity: sha512-lOp+m5bc+ttgtB5MHEjwiVu4nlp4CvJLS/PG1OiOe5pmg9kV73pEqO8H0Geqvg2E8gjqTaL9eRhSe+ZpeKP3nA==} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - date-fns-tz: ^3.0.0 - react: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc - react-dom: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc - peerDependenciesMeta: - date-fns-tz: - optional: true + postcss: ^8.2.15 - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - react: ^18.3.1 + postcss: ^8.2.15 - react-hook-form@7.71.2: - resolution: {integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==} - engines: {node: '>=18.0.0'} + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + postcss: ^8.2.15 - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} - react-is@19.2.4: - resolution: {integrity: sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==} + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - react-lifecycles-compat@3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + cssom@0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - react-overlays@5.2.1: - resolution: {integrity: sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==} - peerDependencies: - react: '>=16.3.0' - react-dom: '>=16.3.0' + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} - react-refresh@0.18.0: - resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} - engines: {node: '>=0.10.0'} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - react-router-dom@6.30.3: - resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - react-router-hash-link@2.4.3: - resolution: {integrity: sha512-NU7GWc265m92xh/aYD79Vr1W+zAIXDWp3L2YZOYP4rCqPnJ6LI6vh3+rKgkidtYijozHclaEQTAHaAaMWPVI4A==} - peerDependencies: - react: '>=15' - react-router-dom: '>=4' + data-urls@2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} - react-router@6.30.3: - resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} - react-select@5.10.2: - resolution: {integrity: sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + date-arithmetic@4.1.0: + resolution: {integrity: sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg==} + + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - reactjs-popup@2.0.6: - resolution: {integrity: sha512-A+tt+x9wdgZiZjv0e2WzYLD3IfFwJALaRaqwrCSXGjo0iQdsry/EtBEbQXRSmQs7cHmOi5eytCiSlOm8k4C+dg==} + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} - peerDependencies: - react: '>=16' - react-dom: '>=16' - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + deepmerge-ts@7.1.5: + resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} + engines: {node: '>=16.0.0'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - hasBin: true - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - hasBin: true - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} - rollup@4.60.1: - resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - sax@1.5.0: - resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} - engines: {node: '>=11.0.0'} + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} hasBin: true - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} + diff-sequences@27.5.1: + resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - session-file-store@1.5.0: - resolution: {integrity: sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==} - engines: {node: '>= 6'} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} + dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} + domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + domexception@2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + deprecated: Use your platform's native DOMException instead - simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} - sorted-array-functions@1.3.0: - resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==} + domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + dotenv@10.0.0: + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} + engines: {node: '>=10'} - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.2.0: - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} - engines: {node: '>=12'} + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + dynamoose-utils@4.1.5: + resolution: {integrity: sha512-flC/H02WyBjG02BTKF5Vj7dd+3rUQISyi1xEC8B7hlwoQWRWEUY+c062nDudpUGoxq7WM9NaKPLfh8lmX80icg==} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + dynamoose@4.1.5: + resolution: {integrity: sha512-DS9HJuBYCKsvsfwsjo6bsfPg2py4sSTS5Dj+CrntHJCc1WMhqJzG4j9MSeNGevGW3q5B1Gh+dx9J/ScUZqAz1g==} - strnum@2.2.0: - resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - superagent@10.3.0: - resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==} - engines: {node: '>=14.18.0'} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - supercluster@8.0.1: - resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + effect@3.20.0: + resolution: {integrity: sha512-qMLfDJscrNG8p/aw+IkT9W7fgj50Z4wG5bLBy0Txsxz8iUHjDIkOgO3SV0WZfnQbNG2VJYb0b+rDLMrhM4+Krw==} - supertest@7.2.2: - resolution: {integrity: sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==} - engines: {node: '>=14.18.0'} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + electron-to-chromium@1.5.266: + resolution: {integrity: sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==} - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + emittery@0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + emittery@0.8.1: + resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} - engines: {node: '>=6'} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + engines: {node: '>=10.13.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} - hasBin: true + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - ts-node@9.1.1: - resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + engines: {node: '>= 0.4'} - tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true + es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} - engines: {node: '>=4'} + es-iterator-helpers@1.2.2: + resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} + engines: {node: '>= 0.4'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} hasBin: true - uid-safe@2.1.5: - resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} - engines: {node: '>= 0.8'} - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - uncontrollable@7.2.1: - resolution: {integrity: sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==} - peerDependencies: - react: '>=15.0.0' + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} - undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true - update-browserslist-db@1.2.2: - resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + eslint: '>=7.0.0' - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + eslint-config-react-app@7.0.1: + resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} + engines: {node: '>=14.0.0'} + peerDependencies: + eslint: ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - use-isomorphic-layout-effect@1.2.1: - resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + unrs-resolver: ^1.0.0 peerDependenciesMeta: - '@types/react': + unrs-resolver: optional: true - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - validator@13.15.26: - resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} - engines: {node: '>= 0.10'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vite-tsconfig-paths@5.1.4: - resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} + eslint-import-resolver-typescript@4.4.4: + resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} + engines: {node: ^16.17.0 || >=18.6.0} peerDependencies: - vite: '*' + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' peerDependenciesMeta: - vite: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: optional: true - vite@7.3.2: - resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + engines: {node: '>=4'} peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: + '@typescript-eslint/parser': optional: true - sass: + eslint: optional: true - sass-embedded: + eslint-import-resolver-node: optional: true - stylus: + eslint-import-resolver-typescript: optional: true - sugarss: + eslint-import-resolver-webpack: optional: true - terser: + + eslint-plugin-flowtype@8.0.3: + resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@babel/plugin-syntax-flow': ^7.14.5 + '@babel/plugin-transform-react-jsx': ^7.14.9 + eslint: ^8.1.0 + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': optional: true - tsx: + + eslint-plugin-jest@25.7.0: + resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': optional: true - yaml: + jest: optional: true - warning@4.0.3: - resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - web-push@3.6.7: - resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==} - engines: {node: '>= 16'} - hasBin: true + eslint-plugin-promise@7.2.1: + resolution: {integrity: sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} + eslint-plugin-testing-library@5.11.1: + resolution: {integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} + peerDependencies: + eslint: ^7.5.0 || ^8.0.0 - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - workerpool@9.3.4: - resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + eslint-webpack-plugin@3.2.0: + resolution: {integrity: sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + webpack: ^5.0.0 - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + eslint@9.39.4: + resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - xml-crypto@6.1.2: - resolution: {integrity: sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==} - engines: {node: '>=16'} + esprima@1.2.5: + resolution: {integrity: sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==} + engines: {node: '>=0.4.0'} + hasBin: true - xml-encryption@3.1.0: - resolution: {integrity: sha512-PV7qnYpoAMXbf1kvQkqMScLeQpjCMixddAKq9PtqVrho8HnYbBOWNfG0kA4R7zxQDo7w9kiYAyzS/ullAyO55Q==} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - xmlbuilder@15.1.1: - resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} - engines: {node: '>=8.0'} - - xpath@0.0.32: - resolution: {integrity: sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==} - engines: {node: '>=0.6.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - xpath@0.0.33: - resolution: {integrity: sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==} - engines: {node: '>=0.6.0'} + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - xpath@0.0.34: - resolution: {integrity: sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==} - engines: {node: '>=0.6.0'} + estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + expect@27.5.1: + resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + express-session@1.19.0: + resolution: {integrity: sha512-0csaMkGq+vaiZTmSMMGkfdCOabYv192VbytFypcvI0MANrp+4i/7yEkJ0sbAEhycQjntaKGzYfjfXQyVb7BHMA==} + engines: {node: '>= 0.8.0'} - zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 + express@4.22.1: + resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} + engines: {node: '>= 0.10.0'} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-check@3.23.2: + resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-equals@5.4.0: + resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} + engines: {node: '>=6.0.0'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fast-xml-builder@1.1.0: + resolution: {integrity: sha512-7mtITW/we2/wTUZqMyBOR2F8xP4CRxMiSEcQxPIqdRWdO2L/HZSOlzoNyghmyDwNB8BDxePooV1ZTJpkOUhdRg==} + + fast-xml-parser@5.4.1: + resolution: {integrity: sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==} + hasBin: true + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + filelist@1.0.6: + resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.2: + resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + engines: {node: '>= 0.8'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.4.1: + resolution: {integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==} + + focus-trap-react@10.3.1: + resolution: {integrity: sha512-PN4Ya9xf9nyj/Nd9VxBNMuD7IrlRbmaG6POAQ8VLqgtc6IY/Ln1tYakow+UIq4fihYYYFM70/2oyidE6bbiPgw==} + peerDependencies: + prop-types: ^15.8.1 + react: '>=16.3.0' + react-dom: '>=16.3.0' + + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@6.5.3: + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data@3.0.4: + resolution: {integrity: sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==} + engines: {node: '>= 6'} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + formidable@3.5.4: + resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} + engines: {node: '>=14.0.0'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-monkey@1.1.0: + resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + + gcp-metadata@6.1.1: + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + engines: {node: '>=14'} + + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + + giget@2.0.0: + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globalize@0.1.1: + resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + google-auth-library@9.15.1: + resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} + engines: {node: '>=14'} + + google-logging-utils@0.0.2: + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + grammex@3.1.12: + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphmatch@1.1.1: + resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==} + + gtoken@7.1.0: + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + engines: {node: '>=14.0.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + harmony-reflect@1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hono@4.12.12: + resolution: {integrity: sha512-p1JfQMKaceuCbpJKAPKVqyqviZdS0eUxH9v82oWo1kb9xjQ5wA6iP3FNVAPDFlz5/p7d45lO+BpSk1tuSZMF4Q==} + engines: {node: '>=16.9.0'} + + hoopy@0.1.4: + resolution: {integrity: sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==} + engines: {node: '>= 6.0.0'} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-encoding-sniffer@2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-webpack-plugin@5.6.6: + resolution: {integrity: sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.10: + resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + http-proxy-middleware@2.0.9: + resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + + http_ece@1.2.0: + resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==} + engines: {node: '>=16'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + identity-obj-proxy@3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.3.0: + resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} + engines: {node: '>= 10'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true + + jest-changed-files@27.5.1: + resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-circus@27.5.1: + resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-cli@27.5.1: + resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@27.5.1: + resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + + jest-diff@27.5.1: + resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-docblock@27.5.1: + resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-each@27.5.1: + resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-environment-jsdom@27.5.1: + resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-environment-node@27.5.1: + resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-get-type@27.5.1: + resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-haste-map@27.5.1: + resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-jasmine2@27.5.1: + resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-leak-detector@27.5.1: + resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-matcher-utils@27.5.1: + resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-message-util@27.5.1: + resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-message-util@28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-mock@27.5.1: + resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@27.5.1: + resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-regex-util@28.0.2: + resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-resolve-dependencies@27.5.1: + resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-resolve@27.5.1: + resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-runner@27.5.1: + resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-runtime@27.5.1: + resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-serializer@27.5.1: + resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-snapshot@27.5.1: + resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-util@27.5.1: + resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-util@28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-validate@27.5.1: + resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-watch-typeahead@1.1.0: + resolution: {integrity: sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + jest: ^27.0.0 || ^28.0.0 + + jest-watcher@27.5.1: + resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-watcher@28.1.3: + resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@28.1.3: + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest@27.5.1: + resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-object-utilities@2.2.1: + resolution: {integrity: sha512-0Ki0uXeMEga6OVM7ESxLjSaCYMdrQ46av0VomzaQT7BWNwMsEodmrtImkdD6K7SCq0ADw1uoQm4HBrsMQqtEww==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsdom@16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + jsonpath@1.3.0: + resolution: {integrity: sha512-0kjkYHJBkAy50Z5QzArZ7udmvxrJzkpKYW27fiF//BrMY7TQibYLl+FYIXN2BiYmwMIVzSfD8aDRj6IzgBX2/w==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} + engines: {node: '>=12', npm: '>=6'} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + + jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + + kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + kruptein@2.2.3: + resolution: {integrity: sha512-BTwprBPTzkFT9oTugxKd3WnWrX630MqUDsnmBuoa98eQs12oD4n4TeI0GbpdGcYn/73Xueg2rfnw+oK4dovnJg==} + engines: {node: '>6'} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + launch-editor@2.13.2: + resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.23: + resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + long-timeout@0.1.1: + resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} + + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru.min@1.1.4: + resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + + luxon@3.7.2: + resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} + engines: {node: '>=12'} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.4: + resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mini-css-extract-plugin@2.10.2: + resolution: {integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mnemonist@0.38.3: + resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==} + + mocha@11.7.5: + resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + moment-timezone@0.5.48: + resolution: {integrity: sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + mysql2@3.15.3: + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} + engines: {node: '>= 8.0'} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + node-schedule@2.1.1: + resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} + engines: {node: '>=6'} + + nodemon@3.1.14: + resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==} + engines: {node: '>=10'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nth-check@1.0.2: + resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + + nypm@0.6.5: + resolution: {integrity: sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==} + engines: {node: '>=18'} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.getownpropertydescriptors@2.1.9: + resolution: {integrity: sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + obliterator@1.6.1: + resolution: {integrity: sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + passport-strategy@1.0.0: + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} + engines: {node: '>= 0.4.0'} + + passport@0.7.0: + resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==} + engines: {node: '>= 0.4.0'} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-expression-matcher@1.1.2: + resolution: {integrity: sha512-LXWqJmcpp2BKOEmgt4CyuESFmBfPuhJlAHKJsFzuJU6CxErWk75BrO+Ni77M9OxHN6dCYKM4vj+21Z6cOL96YQ==} + engines: {node: '>=14.0.0'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pause@0.0.1: + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + pg-cloudflare@1.3.0: + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} + + pg-connection-string@2.12.0: + resolution: {integrity: sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.13.0: + resolution: {integrity: sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.13.0: + resolution: {integrity: sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-attribute-case-insensitive@5.0.2: + resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-browser-comments@4.0.0: + resolution: {integrity: sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==} + engines: {node: '>=8'} + peerDependencies: + browserslist: '>=4' + postcss: '>=8' + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-clamp@4.1.0: + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 + + postcss-color-functional-notation@4.2.4: + resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-color-hex-alpha@8.0.4: + resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + + postcss-color-rebeccapurple@7.1.1: + resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-custom-media@8.0.2: + resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + + postcss-custom-properties@12.1.11: + resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-custom-selectors@6.0.3: + resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + + postcss-dir-pseudo-class@6.0.5: + resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-double-position-gradients@3.1.2: + resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-env-function@4.0.6: + resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + + postcss-flexbugs-fixes@5.0.2: + resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==} + peerDependencies: + postcss: ^8.1.4 + + postcss-focus-visible@6.0.4: + resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + + postcss-focus-within@5.0.4: + resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + + postcss-font-variant@5.0.0: + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} + peerDependencies: + postcss: ^8.1.0 + + postcss-gap-properties@3.0.5: + resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-image-set-function@4.0.7: + resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-initial@4.0.1: + resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-lab-function@4.2.1: + resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-loader@6.2.1: + resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-logical@5.0.4: + resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + + postcss-media-minmax@5.0.0: + resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.1.0 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-nesting@10.2.0: + resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize@10.0.1: + resolution: {integrity: sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==} + engines: {node: '>= 12'} + peerDependencies: + browserslist: '>= 4' + postcss: '>= 8' + + postcss-opacity-percentage@1.1.3: + resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-overflow-shorthand@3.0.4: + resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-page-break@3.0.4: + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + peerDependencies: + postcss: ^8 + + postcss-place@7.0.5: + resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-preset-env@7.8.3: + resolution: {integrity: sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-pseudo-class-any-link@7.1.6: + resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-replace-overflow-wrap@4.0.0: + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} + peerDependencies: + postcss: ^8.0.3 + + postcss-selector-not@6.0.1: + resolution: {integrity: sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} + + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-array@3.0.4: + resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} + engines: {node: '>=12'} + + postgres-bytea@1.0.1: + resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + postgres@3.4.7: + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} + engines: {node: '>=12'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + pretty-format@28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + prisma@7.7.0: + resolution: {integrity: sha512-HlgwRBt1uEFB9LStHL4HLYDvoi4BNu1rYA0hPG0zCAEyK9SaZBqp7E5Rjpc3Qh8Lex/ye/svoHZ0OWoFNhWxuQ==} + engines: {node: ^20.19 || ^22.12 || >=24.0} + hasBin: true + peerDependencies: + better-sqlite3: '>=9.0.0' + typescript: '>=5.4.0' + peerDependenciesMeta: + better-sqlite3: + optional: true + typescript: + optional: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + engines: {node: '>=0.6'} + + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} + engines: {node: '>=0.6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + + random-bytes@1.0.0: + resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} + engines: {node: '>= 0.8'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + react-app-polyfill@3.0.0: + resolution: {integrity: sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==} + engines: {node: '>=14'} + + react-big-calendar@1.19.4: + resolution: {integrity: sha512-FrvbDx2LF6JAWFD96LU1jjloppC5OgIvMYUYIPzAw5Aq+ArYFPxAjLqXc4DyxfsQDN0TJTMuS/BIbcSB7Pg0YA==} + peerDependencies: + react: ^16.14.0 || ^17 || ^18 || ^19 + react-dom: ^16.14.0 || ^17 || ^18 || ^19 + + react-csv@2.2.2: + resolution: {integrity: sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw==} + + react-datepicker@9.1.0: + resolution: {integrity: sha512-lOp+m5bc+ttgtB5MHEjwiVu4nlp4CvJLS/PG1OiOe5pmg9kV73pEqO8H0Geqvg2E8gjqTaL9eRhSe+ZpeKP3nA==} + peerDependencies: + date-fns-tz: ^3.0.0 + react: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + peerDependenciesMeta: + date-fns-tz: + optional: true + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-error-overlay@6.1.0: + resolution: {integrity: sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==} + + react-hook-form@7.71.2: + resolution: {integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-is@19.2.4: + resolution: {integrity: sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==} + + react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + + react-overlays@5.2.1: + resolution: {integrity: sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==} + peerDependencies: + react: '>=16.3.0' + react-dom: '>=16.3.0' + + react-refresh@0.11.0: + resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} + engines: {node: '>=0.10.0'} + + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} + engines: {node: '>=0.10.0'} + + react-router-dom@6.30.3: + resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router-hash-link@2.4.3: + resolution: {integrity: sha512-NU7GWc265m92xh/aYD79Vr1W+zAIXDWp3L2YZOYP4rCqPnJ6LI6vh3+rKgkidtYijozHclaEQTAHaAaMWPVI4A==} + peerDependencies: + react: '>=15' + react-router-dom: '>=4' + + react-router@6.30.3: + resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-scripts@5.0.1: + resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} + engines: {node: '>=14.0.0'} + hasBin: true + peerDependencies: + eslint: '*' + react: '>= 16' + typescript: ^3.2.1 || ^4 + peerDependenciesMeta: + typescript: + optional: true + + react-select@5.10.2: + resolution: {integrity: sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + reactjs-popup@2.0.6: + resolution: {integrity: sha512-A+tt+x9wdgZiZjv0e2WzYLD3IfFwJALaRaqwrCSXGjo0iQdsry/EtBEbQXRSmQs7cHmOi5eytCiSlOm8k4C+dg==} + engines: {node: '>=10'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regex-parser@2.3.1: + resolution: {integrity: sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + hasBin: true + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remeda@2.33.4: + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url-loader@4.0.0: + resolution: {integrity: sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==} + engines: {node: '>=8.9'} + peerDependencies: + rework: 1.0.1 + rework-visit: 1.0.0 + peerDependenciesMeta: + rework: + optional: true + rework-visit: + optional: true + + resolve.exports@1.1.1: + resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + engines: {node: '>=10'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + engines: {node: '>= 0.4'} + hasBin: true + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup-plugin-terser@7.0.2: + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + + rollup@2.80.0: + resolution: {integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize.css@13.0.0: + resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} + + sass-loader@12.6.0: + resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + + sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + + sax@1.5.0: + resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} + engines: {node: '>=11.0.0'} + + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@2.7.1: + resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + + serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-index@1.9.2: + resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + session-file-store@1.5.0: + resolution: {integrity: sha512-60IZaJNzyu2tIeHutkYE8RiXVx3KRvacOxfLr2Mj92SIsRIroDsH0IlUUR6fJAjoTW4RQISbaOApa2IZpIwFdQ==} + engines: {node: '>= 6'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + sorted-array-functions@1.3.0: + resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==} + + source-list-map@2.0.1: + resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@3.0.2: + resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} + engines: {node: '>=12.0.0'} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + static-eval@2.1.1: + resolution: {integrity: sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-length@5.0.1: + resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==} + engines: {node: '>=12.20'} + + string-natural-compare@3.0.1: + resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@2.2.0: + resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} + + style-loader@3.3.4: + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superagent@10.3.0: + resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==} + engines: {node: '>=14.18.0'} + + supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + + supertest@7.2.2: + resolution: {integrity: sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==} + engines: {node: '>=14.18.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@1.3.2: + resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==} + engines: {node: '>=4.0.0'} + deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x. + hasBin: true + + svgo@2.8.2: + resolution: {integrity: sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==} + engines: {node: '>=10.13.0'} + hasBin: true + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + + tailwindcss@3.4.19: + resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@4.2.2: + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + engines: {node: '>=6'} + + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + + tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + + terser-webpack-plugin@5.4.0: + resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throat@6.0.2: + resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tr46@2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + + tryer@1.0.1: + resolution: {integrity: sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==} + + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-node@9.1.1: + resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} + engines: {node: '>=10.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' + + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + 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' + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uid-safe@2.1.5: + resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} + engines: {node: '>= 0.8'} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + uncontrollable@7.2.1: + resolution: {integrity: sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==} + peerDependencies: + react: '>=15.0.0' + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unquote@1.1.1: + resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} + + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + update-browserslist-db@1.2.2: + resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + use-isomorphic-layout-effect@1.2.1: + resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util.promisify@1.0.1: + resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@13.0.0: + resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-to-istanbul@8.1.1: + resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + engines: {node: '>=10.12.0'} + + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + + validator@13.15.26: + resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} + engines: {node: '>= 0.10'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-tsconfig-paths@5.1.4: + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vite@7.3.2: + resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + w3c-hr-time@1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. + + w3c-xmlserializer@2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + web-push@3.6.7: + resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==} + engines: {node: '>= 16'} + hasBin: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + + webidl-conversions@6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-manifest-plugin@4.1.1: + resolution: {integrity: sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==} + engines: {node: '>=12.22.0'} + peerDependencies: + webpack: ^4.44.2 || ^5.47.0 + + webpack-sources@1.4.3: + resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + + webpack-sources@2.3.1: + resolution: {integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==} + engines: {node: '>=10.13.0'} + + webpack-sources@3.3.4: + resolution: {integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==} + engines: {node: '>=10.13.0'} + + webpack@5.106.1: + resolution: {integrity: sha512-EW8af29ak8Oaf4T8k8YsajjrDBDYgnKZ5er6ljWFJsXABfTNowQfvHLftwcepVgdz+IoLSdEAbBiM9DFXoll9w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + whatwg-mimetype@2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + whatwg-url@8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + workbox-background-sync@6.6.0: + resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} + + workbox-broadcast-update@6.6.0: + resolution: {integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==} + + workbox-build@6.6.0: + resolution: {integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==} + engines: {node: '>=10.0.0'} + + workbox-cacheable-response@6.6.0: + resolution: {integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==} + deprecated: workbox-background-sync@6.6.0 + + workbox-core@6.6.0: + resolution: {integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==} + + workbox-expiration@6.6.0: + resolution: {integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==} + + workbox-google-analytics@6.6.0: + resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained + + workbox-navigation-preload@6.6.0: + resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==} + + workbox-precaching@6.6.0: + resolution: {integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==} + + workbox-range-requests@6.6.0: + resolution: {integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==} + + workbox-recipes@6.6.0: + resolution: {integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==} + + workbox-routing@6.6.0: + resolution: {integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==} + + workbox-strategies@6.6.0: + resolution: {integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==} + + workbox-streams@6.6.0: + resolution: {integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==} + + workbox-sw@6.6.0: + resolution: {integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==} + + workbox-webpack-plugin@6.6.0: + resolution: {integrity: sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==} + engines: {node: '>=10.0.0'} + peerDependencies: + webpack: ^4.4.0 || ^5.9.0 + + workbox-window@6.6.0: + resolution: {integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==} + + workerpool@9.3.4: + resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-crypto@6.1.2: + resolution: {integrity: sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==} + engines: {node: '>=16'} + + xml-encryption@3.1.0: + resolution: {integrity: sha512-PV7qnYpoAMXbf1kvQkqMScLeQpjCMixddAKq9PtqVrho8HnYbBOWNfG0kA4R7zxQDo7w9kiYAyzS/ullAyO55Q==} + + xml-name-validator@3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + + xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xpath@0.0.32: + resolution: {integrity: sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==} + engines: {node: '>=0.6.0'} + + xpath@0.0.33: + resolution: {integrity: sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==} + engines: {node: '>=0.6.0'} + + xpath@0.0.34: + resolution: {integrity: sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==} + engines: {node: '>=0.6.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zeptomatch@2.1.0: + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@apideck/better-ajv-errors@0.3.7(ajv@8.18.0)': + dependencies: + ajv: 8.18.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.5 + tslib: 2.8.1 + + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.5 + tslib: 2.8.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-locate-window': 3.965.5 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-locate-window': 3.965.5 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.5 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-sdk/client-dynamodb@3.1006.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-node': 3.972.19 + '@aws-sdk/dynamodb-codec': 3.972.20 + '@aws-sdk/middleware-endpoint-discovery': 3.972.7 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.12 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-s3@3.1006.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-node': 3.972.19 + '@aws-sdk/middleware-bucket-endpoint': 3.972.7 + '@aws-sdk/middleware-expect-continue': 3.972.7 + '@aws-sdk/middleware-flexible-checksums': 3.973.5 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-location-constraint': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-sdk-s3': 3.972.19 + '@aws-sdk/middleware-ssec': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/signature-v4-multi-region': 3.996.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/eventstream-serde-browser': 4.2.11 + '@smithy/eventstream-serde-config-resolver': 4.3.11 + '@smithy/eventstream-serde-node': 4.2.11 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-blob-browser': 4.2.12 + '@smithy/hash-node': 4.2.11 + '@smithy/hash-stream-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/md5-js': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.12 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sns@3.1006.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-node': 3.972.19 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.973.19': + dependencies: + '@aws-sdk/types': 3.973.5 + '@aws-sdk/xml-builder': 3.972.10 + '@smithy/core': 3.23.9 + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/util-base64': 4.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/crc64-nvme@3.972.4': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.972.17': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.19': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/node-http-handler': 4.4.14 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/util-stream': 4.5.17 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.18': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-env': 3.972.17 + '@aws-sdk/credential-provider-http': 3.972.19 + '@aws-sdk/credential-provider-login': 3.972.18 + '@aws-sdk/credential-provider-process': 3.972.17 + '@aws-sdk/credential-provider-sso': 3.972.18 + '@aws-sdk/credential-provider-web-identity': 3.972.18 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-login@3.972.18': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.972.19': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.17 + '@aws-sdk/credential-provider-http': 3.972.19 + '@aws-sdk/credential-provider-ini': 3.972.18 + '@aws-sdk/credential-provider-process': 3.972.17 + '@aws-sdk/credential-provider-sso': 3.972.18 + '@aws-sdk/credential-provider-web-identity': 3.972.18 + '@aws-sdk/types': 3.973.5 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.972.17': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.972.18': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/token-providers': 3.1005.0 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.972.18': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/dynamodb-codec@3.972.20': + dependencies: + '@aws-sdk/core': 3.973.19 + '@smithy/core': 3.23.9 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/endpoint-cache@3.972.4': + dependencies: + mnemonist: 0.38.3 + tslib: 2.8.1 + + '@aws-sdk/middleware-bucket-endpoint@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-endpoint-discovery@3.972.7': + dependencies: + '@aws-sdk/endpoint-cache': 3.972.4 + '@aws-sdk/types': 3.973.5 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.973.5': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/crc64-nvme': 3.972.4 + '@aws-sdk/types': 3.973.5 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-location-constraint@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@aws/lambda-invoke-store': 0.2.3 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.972.19': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.9 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.972.20': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@smithy/core': 3.23.9 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-retry': 4.2.11 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.996.8': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/node-config-provider': 4.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.996.7': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.972.19 + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1005.0': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.973.5': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.972.3': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-dynamodb@3.996.2(@aws-sdk/client-dynamodb@3.1006.0)': + dependencies: + '@aws-sdk/client-dynamodb': 3.1006.0 + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.996.4': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-endpoints': 3.3.2 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.965.5': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.972.7': + dependencies: + '@aws-sdk/types': 3.973.5 + '@smithy/types': 4.13.0 + bowser: 2.14.1 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.973.5': + dependencies: + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/types': 3.973.5 + '@smithy/node-config-provider': 4.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.972.10': + dependencies: + '@smithy/types': 4.13.0 + fast-xml-parser: 5.4.1 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.3': {} + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.4(jiti@1.21.7))': + dependencies: + '@babel/core': 7.29.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.39.4(jiti@1.21.7) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.4(jiti@2.6.1))': + dependencies: + '@babel/core': 7.29.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.39.4(jiti@2.6.1) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/preset-env@7.29.2(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 + esutils: 2.0.3 + + '@babel/preset-react@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.28.6': {} + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@csstools/normalize.css@12.1.1': {} + + '@csstools/postcss-cascade-layers@1.1.1(postcss@8.5.8)': + dependencies: + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + + '@csstools/postcss-color-function@1.1.1(postcss@8.5.8)': + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-font-format-keywords@1.0.1(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-hwb-function@1.0.2(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-ic-unit@1.0.1(postcss@8.5.8)': + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.5.8)': + dependencies: + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + + '@csstools/postcss-nested-calc@1.0.0(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-normalize-display-values@1.0.1(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-oklab-function@1.1.1(postcss@8.5.8)': + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-text-decoration-shorthand@1.0.0(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-trigonometric-functions@1.0.2(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-unset-value@1.0.2(postcss@8.5.8)': + dependencies: + postcss: 8.5.8 + + '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 + + '@electric-sql/pglite-socket@0.1.1(@electric-sql/pglite@0.4.1)': + dependencies: + '@electric-sql/pglite': 0.4.1 + + '@electric-sql/pglite-tools@0.3.1(@electric-sql/pglite@0.4.1)': + dependencies: + '@electric-sql/pglite': 0.4.1 + + '@electric-sql/pglite@0.4.1': {} + + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/runtime': 7.28.6 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.14.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.4.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.2.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@emotion/babel-plugin': 11.13.5 + '@emotion/is-prop-valid': 1.4.0 + '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@1.21.7))': + dependencies: + eslint: 9.39.4(jiti@1.21.7) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))': + dependencies: + eslint: 9.39.4(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/compat@2.0.3(eslint@9.39.4(jiti@2.6.1))': + dependencies: + '@eslint/core': 1.1.1 + optionalDependencies: + eslint: 9.39.4(jiti@2.6.1) + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@1.1.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.5': + dependencies: + ajv: 6.14.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@10.0.1(eslint@9.39.4(jiti@2.6.1))': + optionalDependencies: + eslint: 9.39.4(jiti@2.6.1) + + '@eslint/js@9.39.4': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@fast-csv/format@5.0.5': + dependencies: + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + + '@floating-ui/dom@1.7.6': + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.7.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/react@0.27.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.11 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.4.0 + + '@floating-ui/utils@0.2.11': {} + + '@googlemaps/markerclusterer@2.6.2': + dependencies: + '@types/supercluster': 7.1.3 + fast-equals: 5.4.0 + supercluster: 8.0.1 + + '@hono/node-server@1.19.11(hono@4.12.12)': + dependencies: + hono: 4.12.12 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@27.5.1': + dependencies: + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + jest-message-util: 27.5.1 + jest-util: 27.5.1 + slash: 3.0.0 + + '@jest/console@28.1.3': + dependencies: + '@jest/types': 28.1.3 + '@types/node': 22.19.15 + chalk: 4.1.2 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + + '@jest/core@27.5.1(ts-node@9.1.1(typescript@5.9.3))': + dependencies: + '@jest/console': 27.5.1 + '@jest/reporters': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.8.1 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 27.5.1 + jest-config: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + jest-haste-map: 27.5.1 + jest-message-util: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-resolve-dependencies: 27.5.1 + jest-runner: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + jest-watcher: 27.5.1 + micromatch: 4.0.8 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + '@jest/environment@27.5.1': + dependencies: + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + jest-mock: 27.5.1 + + '@jest/fake-timers@27.5.1': + dependencies: + '@jest/types': 27.5.1 + '@sinonjs/fake-timers': 8.1.0 + '@types/node': 22.19.15 + jest-message-util: 27.5.1 + jest-mock: 27.5.1 + jest-util: 27.5.1 + + '@jest/globals@27.5.1': + dependencies: + '@jest/environment': 27.5.1 + '@jest/types': 27.5.1 + expect: 27.5.1 + + '@jest/reporters@27.5.1': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-haste-map: 27.5.1 + jest-resolve: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 8.1.1 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@28.1.3': + dependencies: + '@sinclair/typebox': 0.24.51 + + '@jest/source-map@27.5.1': + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.11 + source-map: 0.6.1 + + '@jest/test-result@27.5.1': + dependencies: + '@jest/console': 27.5.1 + '@jest/types': 27.5.1 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-result@28.1.3': + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@27.5.1': + dependencies: + '@jest/test-result': 27.5.1 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-runtime: 27.5.1 + transitivePeerDependencies: + - supports-color + + '@jest/transform@27.5.1': + dependencies: + '@babel/core': 7.29.0 + '@jest/types': 27.5.1 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-regex-util: 27.5.1 + jest-util: 27.5.1 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + + '@jest/types@27.5.1': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.19.15 + '@types/yargs': 16.0.11 + chalk: 4.1.2 + + '@jest/types@28.1.3': + dependencies: + '@jest/schemas': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.19.15 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@kurkle/color@0.3.4': {} + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@mui/core-downloads-tracker@6.5.0': {} + + '@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/core-downloads-tracker': 6.5.0 + '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@mui/types': 7.2.24(@types/react@18.3.28) + '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.12(@types/react@18.3.28) + clsx: 2.1.1 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 19.2.4 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@types/react': 18.3.28 + + '@mui/private-theming@6.4.9(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/sheet': 1.4.0 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + + '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/private-theming': 6.4.9(@types/react@18.3.28)(react@18.3.1) + '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.24(@types/react@18.3.28) + '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@types/react': 18.3.28 + + '@mui/types@7.2.24(@types/react@18.3.28)': + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/types@7.4.12(@types/react@18.3.28)': + dependencies: + '@babel/runtime': 7.28.6 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/utils@6.4.9(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/types': 7.2.24(@types/react@18.3.28) + '@types/prop-types': 15.7.15 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 19.2.4 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/utils@7.3.9(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/types': 7.4.12(@types/react@18.3.28) + '@types/prop-types': 15.7.15 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 19.2.4 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/x-date-pickers@7.29.4(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(date-fns@2.30.0)(dayjs@1.11.19)(luxon@3.7.2)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@mui/utils': 7.3.9(@types/react@18.3.28)(react@18.3.1) + '@mui/x-internals': 7.29.0(@types/react@18.3.28)(react@18.3.1) + '@types/react-transition-group': 4.4.12(@types/react@18.3.28) + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + date-fns: 2.30.0 + dayjs: 1.11.19 + luxon: 3.7.2 + moment: 2.30.1 + transitivePeerDependencies: + - '@types/react' + + '@mui/x-internals@7.29.0(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.28.6 + '@mui/utils': 7.3.9(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + transitivePeerDependencies: + - '@types/react' + + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + dependencies: + eslint-scope: 5.1.1 + + '@noble/hashes@1.8.0': {} + + '@node-saml/node-saml@5.1.0': + dependencies: + '@types/debug': 4.1.12 + '@types/qs': 6.15.0 + '@types/xml-encryption': 1.2.4 + '@types/xml2js': 0.4.14 + '@xmldom/is-dom-node': 1.0.1 + '@xmldom/xmldom': 0.8.11 + debug: 4.4.3 + xml-crypto: 6.1.2 + xml-encryption: 3.1.0 + xml2js: 0.6.2 + xmlbuilder: 15.1.1 + xpath: 0.0.34 + transitivePeerDependencies: + - supports-color + + '@node-saml/passport-saml@5.1.0': + dependencies: + '@node-saml/node-saml': 5.1.0 + '@types/express': 4.17.25 + '@types/passport': 1.0.17 + '@types/passport-strategy': 0.2.38 + passport: 0.7.0 + passport-strategy: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@paralleldrive/cuid2@2.3.1': + dependencies: + '@noble/hashes': 1.8.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.2(webpack@5.106.1))(webpack@5.106.1)': + dependencies: + ansi-html: 0.0.9 + core-js-pure: 3.49.0 + error-stack-parser: 2.1.4 + html-entities: 2.6.0 + loader-utils: 2.0.4 + react-refresh: 0.11.0 + schema-utils: 4.3.3 + source-map: 0.7.6 + webpack: 5.106.1 + optionalDependencies: + type-fest: 0.21.3 + webpack-dev-server: 4.15.2(webpack@5.106.1) + + '@popperjs/core@2.11.8': {} + + '@prisma/adapter-pg@7.4.2': + dependencies: + '@prisma/driver-adapter-utils': 7.4.2 + pg: 8.20.0 + postgres-array: 3.0.4 + transitivePeerDependencies: + - pg-native + + '@prisma/client-runtime-utils@7.4.2': {} + + '@prisma/client@7.4.2(prisma@7.7.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(typescript@5.9.3)': + dependencies: + '@prisma/client-runtime-utils': 7.4.2 + optionalDependencies: + prisma: 7.7.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + typescript: 5.9.3 + + '@prisma/config@7.7.0': + dependencies: + c12: 3.1.0 + deepmerge-ts: 7.1.5 + effect: 3.20.0 + empathic: 2.0.0 + transitivePeerDependencies: + - magicast + + '@prisma/debug@7.2.0': {} + + '@prisma/debug@7.4.2': {} + + '@prisma/debug@7.7.0': {} + + '@prisma/dev@0.24.3(typescript@5.9.3)': + dependencies: + '@electric-sql/pglite': 0.4.1 + '@electric-sql/pglite-socket': 0.1.1(@electric-sql/pglite@0.4.1) + '@electric-sql/pglite-tools': 0.3.1(@electric-sql/pglite@0.4.1) + '@hono/node-server': 1.19.11(hono@4.12.12) + '@prisma/get-platform': 7.2.0 + '@prisma/query-plan-executor': 7.2.0 + '@prisma/streams-local': 0.1.2 + foreground-child: 3.3.1 + get-port-please: 3.2.0 + hono: 4.12.12 + http-status-codes: 2.3.0 + pathe: 2.0.3 + proper-lockfile: 4.1.2 + remeda: 2.33.4 + std-env: 3.10.0 + valibot: 1.2.0(typescript@5.9.3) + zeptomatch: 2.1.0 + transitivePeerDependencies: + - typescript + + '@prisma/driver-adapter-utils@7.4.2': + dependencies: + '@prisma/debug': 7.4.2 + + '@prisma/engines-version@7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711': {} + + '@prisma/engines@7.7.0': + dependencies: + '@prisma/debug': 7.7.0 + '@prisma/engines-version': 7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711 + '@prisma/fetch-engine': 7.7.0 + '@prisma/get-platform': 7.7.0 + + '@prisma/fetch-engine@7.7.0': + dependencies: + '@prisma/debug': 7.7.0 + '@prisma/engines-version': 7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711 + '@prisma/get-platform': 7.7.0 + + '@prisma/get-platform@7.2.0': + dependencies: + '@prisma/debug': 7.2.0 + + '@prisma/get-platform@7.7.0': + dependencies: + '@prisma/debug': 7.7.0 + + '@prisma/query-plan-executor@7.2.0': {} + + '@prisma/streams-local@0.1.2': + dependencies: + ajv: 8.18.0 + better-result: 2.8.2 + env-paths: 3.0.0 + proper-lockfile: 4.1.2 + + '@prisma/studio-core@0.27.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/react': 18.3.28 + chart.js: 4.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react-dom' + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-slot@1.2.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-toggle@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@react-aria/ssr@3.9.10(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.19 + react: 18.3.1 + + '@react-aria/utils@3.33.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.10(react@18.3.1) + '@react-stately/flags': 3.1.2 + '@react-stately/utils': 3.11.0(react@18.3.1) + '@react-types/shared': 3.33.1(react@18.3.1) + '@swc/helpers': 0.5.19 + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-stately/flags@3.1.2': + dependencies: + '@swc/helpers': 0.5.19 + + '@react-stately/utils@3.11.0(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.19 + react: 18.3.1 + + '@react-types/shared@3.33.1(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@remix-run/router@1.23.2': {} + + '@restart/hooks@0.4.16(react@18.3.1)': + dependencies: + dequal: 2.0.3 + react: 18.3.1 + + '@rolldown/pluginutils@1.0.0-rc.3': {} + + '@rollup/plugin-babel@5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@rollup/pluginutils': 3.1.0(rollup@2.80.0) + rollup: 2.80.0 + optionalDependencies: + '@types/babel__core': 7.20.5 + transitivePeerDependencies: + - supports-color + + '@rollup/plugin-node-resolve@11.2.1(rollup@2.80.0)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.80.0) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.11 + rollup: 2.80.0 + + '@rollup/plugin-replace@2.4.2(rollup@2.80.0)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.80.0) + magic-string: 0.25.9 + rollup: 2.80.0 + + '@rollup/pluginutils@3.1.0(rollup@2.80.0)': + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.80.0 + + '@rollup/rollup-android-arm-eabi@4.59.0': + optional: true + + '@rollup/rollup-android-arm64@4.59.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.59.0': + optional: true + + '@rollup/rollup-darwin-x64@4.59.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.59.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.59.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.59.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.59.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.59.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.59.0': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.16.1': {} + + '@sinclair/typebox@0.24.51': {} + + '@sinonjs/commons@1.8.6': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@8.1.0': + dependencies: + '@sinonjs/commons': 1.8.6 + + '@smithy/abort-controller@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.2.3': + dependencies: + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.4.10': + dependencies: + '@smithy/node-config-provider': 4.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + tslib: 2.8.1 + + '@smithy/core@3.23.9': + dependencies: + '@smithy/middleware-serde': 4.2.12 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.2.11': + dependencies: + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.2.11': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.13.0 + '@smithy/util-hex-encoding': 4.2.2 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.2.11': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.3.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.2.11': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.2.11': + dependencies: + '@smithy/eventstream-codec': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.3.13': + dependencies: + '@smithy/protocol-http': 5.3.11 + '@smithy/querystring-builder': 4.2.11 + '@smithy/types': 4.13.0 + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.2.12': + dependencies: + '@smithy/chunked-blob-reader': 5.2.2 + '@smithy/chunked-blob-reader-native': 4.2.3 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.2.11': + dependencies: + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.4.23': + dependencies: + '@smithy/core': 3.23.9 + '@smithy/middleware-serde': 4.2.12 + '@smithy/node-config-provider': 4.3.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + '@smithy/url-parser': 4.2.11 + '@smithy/util-middleware': 4.2.11 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.4.40': + dependencies: + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/service-error-classification': 4.2.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.2.12': + dependencies: + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.3.11': + dependencies: + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.4.14': + dependencies: + '@smithy/abort-controller': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/querystring-builder': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.3.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + '@smithy/util-uri-escape': 4.2.2 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + + '@smithy/shared-ini-file-loader@4.4.6': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.3.11': + dependencies: + '@smithy/is-array-buffer': 4.2.2 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-uri-escape': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/smithy-client@4.12.3': + dependencies: + '@smithy/core': 3.23.9 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-stack': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/types': 4.13.0 + '@smithy/util-stream': 4.5.17 + tslib: 2.8.1 + + '@smithy/types@4.13.0': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.2.11': + dependencies: + '@smithy/querystring-parser': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-base64@4.3.2': + dependencies: + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.2.3': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.2.2': + dependencies: + '@smithy/is-array-buffer': 4.2.2 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.3.39': + dependencies: + '@smithy/property-provider': 4.2.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.2.42': + dependencies: + '@smithy/config-resolver': 4.4.10 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 + '@smithy/smithy-client': 4.12.3 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.3.2': + dependencies: + '@smithy/node-config-provider': 4.3.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@4.2.11': + dependencies: + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.2.11': + dependencies: + '@smithy/service-error-classification': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.5.17': + dependencies: + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/node-http-handler': 4.4.14 + '@smithy/types': 4.13.0 + '@smithy/util-base64': 4.3.2 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/util-uri-escape@4.2.2': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.2.2': + dependencies: + '@smithy/util-buffer-from': 4.2.2 + tslib: 2.8.1 + + '@smithy/util-waiter@4.2.12': + dependencies: + '@smithy/abort-controller': 4.2.11 + '@smithy/types': 4.13.0 + tslib: 2.8.1 + + '@smithy/uuid@1.1.2': + dependencies: + tslib: 2.8.1 + + '@standard-schema/spec@1.1.0': {} + + '@surma/rollup-plugin-off-main-thread@2.2.3': + dependencies: + ejs: 3.1.10 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.12 + + '@svgr/babel-plugin-add-jsx-attribute@5.4.0': {} + + '@svgr/babel-plugin-remove-jsx-attribute@5.4.0': {} + + '@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1': {} + + '@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1': {} + + '@svgr/babel-plugin-svg-dynamic-title@5.4.0': {} + + '@svgr/babel-plugin-svg-em-dimensions@5.4.0': {} + + '@svgr/babel-plugin-transform-react-native-svg@5.4.0': {} + + '@svgr/babel-plugin-transform-svg-component@5.5.0': {} + + '@svgr/babel-preset@5.5.0': + dependencies: + '@svgr/babel-plugin-add-jsx-attribute': 5.4.0 + '@svgr/babel-plugin-remove-jsx-attribute': 5.4.0 + '@svgr/babel-plugin-remove-jsx-empty-expression': 5.0.1 + '@svgr/babel-plugin-replace-jsx-attribute-value': 5.0.1 + '@svgr/babel-plugin-svg-dynamic-title': 5.4.0 + '@svgr/babel-plugin-svg-em-dimensions': 5.4.0 + '@svgr/babel-plugin-transform-react-native-svg': 5.4.0 + '@svgr/babel-plugin-transform-svg-component': 5.5.0 + + '@svgr/core@5.5.0': + dependencies: + '@svgr/plugin-jsx': 5.5.0 + camelcase: 6.3.0 + cosmiconfig: 7.1.0 + transitivePeerDependencies: + - supports-color + + '@svgr/hast-util-to-babel-ast@5.5.0': + dependencies: + '@babel/types': 7.29.0 + + '@svgr/plugin-jsx@5.5.0': + dependencies: + '@babel/core': 7.29.0 + '@svgr/babel-preset': 5.5.0 + '@svgr/hast-util-to-babel-ast': 5.5.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + + '@svgr/plugin-svgo@5.5.0': + dependencies: + cosmiconfig: 7.1.0 + deepmerge: 4.3.1 + svgo: 1.3.2 + + '@svgr/webpack@5.5.0': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.29.0) + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) + '@babel/preset-react': 7.28.5(@babel/core@7.29.0) + '@svgr/core': 5.5.0 + '@svgr/plugin-jsx': 5.5.0 + '@svgr/plugin-svgo': 5.5.0 + loader-utils: 2.0.4 + transitivePeerDependencies: + - supports-color + + '@swc/helpers@0.5.19': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.2.2': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.20.1 + jiti: 2.6.1 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.2 + + '@tailwindcss/oxide-android-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.2.2': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + optional: true + + '@tailwindcss/oxide@4.2.2': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-x64': 4.2.2 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + + '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1))': + dependencies: + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + tailwindcss: 4.2.2 + vite: 7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1) + + '@tootallnate/once@1.1.2': {} + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.19.15 + + '@types/bonjour@3.5.13': + dependencies: + '@types/node': 22.19.15 + + '@types/chai@4.3.20': {} + + '@types/connect-history-api-fallback@1.5.4': + dependencies: + '@types/express-serve-static-core': 4.19.8 + '@types/node': 22.19.15 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.19.15 + + '@types/cookiejar@2.1.5': {} + + '@types/cors@2.8.19': + dependencies: + '@types/node': 22.19.15 + + '@types/crypto-js@4.2.2': {} + + '@types/date-arithmetic@4.1.4': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@8.56.12': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/estree@0.0.39': {} + + '@types/estree@1.0.8': {} + + '@types/express-serve-static-core@4.19.8': + dependencies: + '@types/node': 22.19.15 + '@types/qs': 6.15.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express-session@1.18.2': + dependencies: + '@types/express': 4.17.25 + + '@types/express@4.17.25': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.8 + '@types/qs': 6.15.0 + '@types/serve-static': 1.15.10 + + '@types/geojson@7946.0.16': {} + + '@types/google.maps@3.58.1': {} + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 22.19.15 + + '@types/history@4.7.11': {} + + '@types/html-minifier-terser@6.1.0': {} + + '@types/http-errors@2.0.5': {} + + '@types/http-proxy@1.17.17': + dependencies: + '@types/node': 22.19.15 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/jsonwebtoken@9.0.10': + dependencies: + '@types/ms': 2.1.0 + '@types/node': 22.19.15 + + '@types/methods@1.1.4': {} + + '@types/mime@1.3.5': {} + + '@types/mocha@10.0.10': {} + + '@types/ms@2.1.0': {} + + '@types/node-forge@1.3.14': + dependencies: + '@types/node': 22.19.15 + + '@types/node-schedule@2.1.8': + dependencies: + '@types/node': 22.19.15 + + '@types/node@22.19.15': + dependencies: + undici-types: 6.21.0 + + '@types/parse-json@4.0.2': {} + + '@types/passport-strategy@0.2.38': + dependencies: + '@types/express': 4.17.25 + '@types/passport': 1.0.17 + + '@types/passport@1.0.17': + dependencies: + '@types/express': 4.17.25 + + '@types/pg@8.20.0': + dependencies: + '@types/node': 22.19.15 + pg-protocol: 1.13.0 + pg-types: 2.2.0 + + '@types/prettier@2.7.3': {} + + '@types/prop-types@15.7.15': {} + + '@types/q@1.5.8': {} + + '@types/qs@6.15.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-big-calendar@1.16.3': + dependencies: + '@types/date-arithmetic': 4.1.4 + '@types/prop-types': 15.7.15 + '@types/react': 18.3.28 + + '@types/react-csv@1.1.10': + dependencies: + '@types/react': 18.3.28 + + '@types/react-dom@18.3.7(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + + '@types/react-router-dom@5.3.3': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.28 + '@types/react-router': 5.1.20 + + '@types/react-router-hash-link@2.4.9': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.28 + '@types/react-router-dom': 5.3.3 + + '@types/react-router@5.1.20': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.28 + + '@types/react-transition-group@4.4.12(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + + '@types/react@18.3.28': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@types/resolve@1.17.1': + dependencies: + '@types/node': 22.19.15 + + '@types/retry@0.12.0': {} + + '@types/semver@7.7.1': {} + + '@types/send@0.17.6': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.19.15 + + '@types/send@1.2.1': + dependencies: + '@types/node': 22.19.15 + + '@types/serve-index@1.9.4': + dependencies: + '@types/express': 4.17.25 + + '@types/serve-static@1.15.10': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 22.19.15 + '@types/send': 0.17.6 + + '@types/session-file-store@1.2.6': + dependencies: + '@types/express': 4.17.25 + '@types/express-session': 1.18.2 + + '@types/sockjs@0.3.36': + dependencies: + '@types/node': 22.19.15 + + '@types/stack-utils@2.0.3': {} + + '@types/superagent@8.1.9': + dependencies: + '@types/cookiejar': 2.1.5 + '@types/methods': 1.1.4 + '@types/node': 22.19.15 + form-data: 4.0.5 + + '@types/supercluster@7.1.3': + dependencies: + '@types/geojson': 7946.0.16 + + '@types/supertest@6.0.3': + dependencies: + '@types/methods': 1.1.4 + '@types/superagent': 8.1.9 + + '@types/trusted-types@2.0.7': {} + + '@types/uuid@10.0.0': {} + + '@types/validator@13.15.10': {} + + '@types/warning@3.0.3': {} + + '@types/web-push@3.6.4': + dependencies: + '@types/node': 22.19.15 - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.19.15 -snapshots: + '@types/xml-encryption@1.2.4': + dependencies: + '@types/node': 22.19.15 - '@aws-crypto/crc32@5.2.0': + '@types/xml2js@0.4.14': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.5 - tslib: 2.8.1 + '@types/node': 22.19.15 - '@aws-crypto/crc32c@5.2.0': + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@16.0.11': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.5 - tslib: 2.8.1 + '@types/yargs-parser': 21.0.3 - '@aws-crypto/sha1-browser@5.2.0': + '@types/yargs@17.0.35': dependencies: - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-locate-window': 3.965.5 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@types/yargs-parser': 21.0.3 - '@aws-crypto/sha256-browser@5.2.0': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-locate-window': 3.965.5 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@1.21.7) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare-lite: 1.4.0 + semver: 7.7.4 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-crypto/sha256-js@5.2.0': + '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.5 - tslib: 2.8.1 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/type-utils': 8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + eslint: 9.39.4(jiti@1.21.7) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-crypto/supports-web-crypto@5.2.0': + '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - tslib: 2.8.1 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/type-utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + eslint: 9.39.4(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-crypto/util@5.2.0': + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@typescript-eslint/utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + transitivePeerDependencies: + - supports-color + - typescript - '@aws-sdk/client-dynamodb@3.1006.0': + '@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.19 - '@aws-sdk/credential-provider-node': 3.972.19 - '@aws-sdk/dynamodb-codec': 3.972.20 - '@aws-sdk/middleware-endpoint-discovery': 3.972.7 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.20 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.12 - tslib: 2.8.1 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@1.21.7) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/client-s3@3.1006.0': + '@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-crypto/sha1-browser': 5.2.0 - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.19 - '@aws-sdk/credential-provider-node': 3.972.19 - '@aws-sdk/middleware-bucket-endpoint': 3.972.7 - '@aws-sdk/middleware-expect-continue': 3.972.7 - '@aws-sdk/middleware-flexible-checksums': 3.973.5 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-location-constraint': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-sdk-s3': 3.972.19 - '@aws-sdk/middleware-ssec': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.20 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/signature-v4-multi-region': 3.996.7 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/eventstream-serde-browser': 4.2.11 - '@smithy/eventstream-serde-config-resolver': 4.3.11 - '@smithy/eventstream-serde-node': 4.2.11 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-blob-browser': 4.2.12 - '@smithy/hash-node': 4.2.11 - '@smithy/hash-stream-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/md5-js': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.12 - tslib: 2.8.1 + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + debug: 4.4.3 + eslint: 9.39.4(jiti@1.21.7) + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/client-sns@3.1006.0': + '@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.19 - '@aws-sdk/credential-provider-node': 3.972.19 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.20 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.0 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color + + '@typescript-eslint/project-service@8.57.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) + '@typescript-eslint/types': 8.57.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/scope-manager@8.57.0': + dependencies: + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 - '@aws-sdk/core@3.973.19': + '@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)': dependencies: - '@aws-sdk/types': 3.973.5 - '@aws-sdk/xml-builder': 3.972.10 - '@smithy/core': 3.23.9 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + typescript: 5.9.3 - '@aws-sdk/crc64-nvme@3.972.4': + '@typescript-eslint/type-utils@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@1.21.7) + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-sdk/credential-provider-env@3.972.17': + '@typescript-eslint/type-utils@8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@1.21.7) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-sdk/credential-provider-http@3.972.19': + '@typescript-eslint/type-utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/types': 3.973.5 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/node-http-handler': 4.4.14 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.17 - tslib: 2.8.1 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-sdk/credential-provider-ini@3.972.18': + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/types@8.57.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/credential-provider-env': 3.972.17 - '@aws-sdk/credential-provider-http': 3.972.19 - '@aws-sdk/credential-provider-login': 3.972.18 - '@aws-sdk/credential-provider-process': 3.972.17 - '@aws-sdk/credential-provider-sso': 3.972.18 - '@aws-sdk/credential-provider-web-identity': 3.972.18 - '@aws-sdk/nested-clients': 3.996.8 - '@aws-sdk/types': 3.973.5 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.3 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.7.4 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/credential-provider-login@3.972.18': + '@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/nested-clients': 3.996.8 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@typescript-eslint/project-service': 8.57.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 + debug: 4.4.3 + minimatch: 10.2.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/credential-provider-node@3.972.19': + '@typescript-eslint/utils@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-sdk/credential-provider-env': 3.972.17 - '@aws-sdk/credential-provider-http': 3.972.19 - '@aws-sdk/credential-provider-ini': 3.972.18 - '@aws-sdk/credential-provider-process': 3.972.17 - '@aws-sdk/credential-provider-sso': 3.972.18 - '@aws-sdk/credential-provider-web-identity': 3.972.18 - '@aws-sdk/types': 3.973.5 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@1.21.7)) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + eslint-scope: 5.1.1 + semver: 7.7.4 transitivePeerDependencies: - - aws-crt + - supports-color + - typescript - '@aws-sdk/credential-provider-process@3.972.17': + '@typescript-eslint/utils@8.57.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@1.21.7)) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - '@aws-sdk/credential-provider-sso@3.972.18': + '@typescript-eslint/utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/nested-clients': 3.996.8 - '@aws-sdk/token-providers': 3.1005.0 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/credential-provider-web-identity@3.972.18': + '@typescript-eslint/visitor-keys@5.62.0': dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/nested-clients': 3.996.8 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.57.0': + dependencies: + '@typescript-eslint/types': 8.57.0 + eslint-visitor-keys: 5.0.1 + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@vis.gl/react-google-maps@1.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@types/google.maps': 3.58.1 + fast-deep-equal: 3.1.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@vitejs/plugin-react@5.1.4(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.3 + '@types/babel__core': 7.20.5 + react-refresh: 0.18.0 + vite: 7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1) transitivePeerDependencies: - - aws-crt + - supports-color + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@aws-sdk/dynamodb-codec@3.972.20': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@aws-sdk/core': 3.973.19 - '@smithy/core': 3.23.9 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@aws-sdk/endpoint-cache@3.972.4': + '@webassemblyjs/ieee754@1.13.2': dependencies: - mnemonist: 0.38.3 - tslib: 2.8.1 + '@xtuc/ieee754': 1.2.0 - '@aws-sdk/middleware-bucket-endpoint@3.972.7': + '@webassemblyjs/leb128@1.13.2': dependencies: - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - tslib: 2.8.1 + '@xtuc/long': 4.2.2 - '@aws-sdk/middleware-endpoint-discovery@3.972.7': + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@aws-sdk/endpoint-cache': 3.972.4 - '@aws-sdk/types': 3.973.5 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@aws-sdk/middleware-expect-continue@3.972.7': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@aws-sdk/middleware-flexible-checksums@3.973.5': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/crc32c': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.19 - '@aws-sdk/crc64-nvme': 3.972.4 - '@aws-sdk/types': 3.973.5 - '@smithy/is-array-buffer': 4.2.2 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@aws-sdk/middleware-host-header@3.972.7': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@aws-sdk/middleware-location-constraint@3.972.7': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 - '@aws-sdk/middleware-logger@3.972.7': + '@xmldom/is-dom-node@1.0.1': {} + + '@xmldom/xmldom@0.8.11': {} + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abab@2.0.6: {} + + accepts@1.3.8: dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + mime-types: 2.1.35 + negotiator: 0.6.3 - '@aws-sdk/middleware-recursion-detection@3.972.7': + acorn-globals@6.0.0: dependencies: - '@aws-sdk/types': 3.973.5 - '@aws/lambda-invoke-store': 0.2.3 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + acorn: 7.4.1 + acorn-walk: 7.2.0 - '@aws-sdk/middleware-sdk-s3@3.972.19': + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/core': 3.23.9 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + acorn: 8.16.0 - '@aws-sdk/middleware-ssec@3.972.7': + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + acorn: 8.16.0 - '@aws-sdk/middleware-user-agent@3.972.20': + acorn-walk@7.2.0: {} + + acorn@7.4.1: {} + + acorn@8.16.0: {} + + address@1.2.2: {} + + addresser@1.1.20: {} + + adjust-sourcemap-loader@4.0.0: dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@smithy/core': 3.23.9 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-retry': 4.2.11 - tslib: 2.8.1 + loader-utils: 2.0.4 + regex-parser: 2.3.1 - '@aws-sdk/nested-clients@3.996.8': + agent-base@6.0.2: dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.19 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.20 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + debug: 4.4.3 transitivePeerDependencies: - - aws-crt + - supports-color - '@aws-sdk/region-config-resolver@3.972.7': + agent-base@7.1.4: {} + + ajv-formats@2.1.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + + ajv-keywords@3.5.2(ajv@6.14.0): dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + ajv: 6.14.0 - '@aws-sdk/signature-v4-multi-region@3.996.7': + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.19 - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + ajv: 8.18.0 + fast-deep-equal: 3.1.3 - '@aws-sdk/token-providers@3.1005.0': + ajv@6.14.0: dependencies: - '@aws-sdk/core': 3.973.19 - '@aws-sdk/nested-clients': 3.996.8 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 - '@aws-sdk/types@3.973.5': + ajv@8.18.0: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 - '@aws-sdk/util-arn-parser@3.972.3': + ansi-escapes@4.3.2: dependencies: - tslib: 2.8.1 + type-fest: 0.21.3 - '@aws-sdk/util-dynamodb@3.996.2(@aws-sdk/client-dynamodb@3.1006.0)': + ansi-html-community@0.0.8: {} + + ansi-html@0.0.9: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@3.2.1: dependencies: - '@aws-sdk/client-dynamodb': 3.1006.0 - tslib: 2.8.1 + color-convert: 1.9.3 - '@aws-sdk/util-endpoints@3.996.4': + ansi-styles@4.3.0: dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-endpoints': 3.3.2 - tslib: 2.8.1 + color-convert: 2.0.1 - '@aws-sdk/util-locate-window@3.965.5': + ansi-styles@5.2.0: {} + + ansi-styles@6.2.3: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: dependencies: - tslib: 2.8.1 + normalize-path: 3.0.0 + picomatch: 2.3.1 - '@aws-sdk/util-user-agent-browser@3.972.7': + arg@4.1.3: {} + + arg@5.0.2: {} + + argparse@1.0.10: dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - bowser: 2.14.1 - tslib: 2.8.1 + sprintf-js: 1.0.3 - '@aws-sdk/util-user-agent-node@3.973.5': + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: dependencies: - '@aws-sdk/middleware-user-agent': 3.972.20 - '@aws-sdk/types': 3.973.5 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + call-bound: 1.0.4 + is-array-buffer: 3.0.5 - '@aws-sdk/xml-builder@3.972.10': + array-flatten@1.1.1: {} + + array-includes@3.1.9: dependencies: - '@smithy/types': 4.13.0 - fast-xml-parser: 5.4.1 - tslib: 2.8.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array-union@2.1.0: {} - '@aws/lambda-invoke-store@0.2.3': {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 - '@babel/code-frame@7.29.0': + array.prototype.findlastindex@1.2.6: dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 - '@babel/compat-data@7.29.0': {} + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 - '@babel/core@7.29.0': + array.prototype.flatmap@1.3.3: dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 - '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.4(jiti@2.6.1))': + array.prototype.reduce@1.0.8: dependencies: - '@babel/core': 7.29.0 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.39.4(jiti@2.6.1) - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + is-string: 1.1.1 - '@babel/generator@7.29.1': + array.prototype.tosorted@1.1.4: dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 - '@babel/helper-compilation-targets@7.28.6': + arraybuffer.prototype.slice@1.0.4: dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 - '@babel/helper-globals@7.28.0': {} + asap@2.0.6: {} - '@babel/helper-module-imports@7.28.6': + asn1.js@5.4.1: dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color + bn.js: 4.12.3 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + assertion-error@1.1.0: {} - '@babel/helper-plugin-utils@7.28.6': {} + ast-types-flow@0.0.8: {} - '@babel/helper-string-parser@7.27.1': {} + async-function@1.0.0: {} - '@babel/helper-validator-identifier@7.28.5': {} + async@3.2.6: {} - '@babel/helper-validator-option@7.27.1': {} + asynckit@0.4.0: {} - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + at-least-node@1.0.0: {} - '@babel/parser@7.29.0': + autoprefixer@10.4.27(postcss@8.5.8): dependencies: - '@babel/types': 7.29.0 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001777 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + available-typed-arrays@1.0.7: dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + possible-typed-array-names: 1.1.0 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + aws-ssl-profiles@1.1.2: {} - '@babel/runtime@7.28.6': {} + axe-core@4.11.2: {} - '@babel/template@7.28.6': + axios@1.13.6: dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + follow-redirects: 1.15.11 + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug - '@babel/traverse@7.29.0': + axobject-query@4.1.0: {} + + babel-jest@27.5.1(@babel/core@7.29.0): dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3 + '@babel/core': 7.29.0 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1(@babel/core@7.29.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@emnapi/core@1.8.1': + babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.106.1): dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true + '@babel/core': 7.29.0 + find-cache-dir: 3.3.2 + loader-utils: 2.0.4 + make-dir: 3.1.0 + schema-utils: 2.7.1 + webpack: 5.106.1 - '@emnapi/runtime@1.8.1': + babel-plugin-istanbul@6.1.1: dependencies: - tslib: 2.8.1 - optional: true + '@babel/helper-plugin-utils': 7.28.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color - '@emnapi/wasi-threads@1.1.0': + babel-plugin-jest-hoist@27.5.1: dependencies: - tslib: 2.8.1 - optional: true + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 - '@emotion/babel-plugin@11.13.5': + babel-plugin-macros@3.1.0: dependencies: - '@babel/helper-module-imports': 7.28.6 '@babel/runtime': 7.28.6 - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.3 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - transitivePeerDependencies: - - supports-color + cosmiconfig: 7.1.0 + resolve: 1.22.11 - '@emotion/cache@11.14.0': + babel-plugin-named-asset-import@0.3.8(@babel/core@7.29.0): dependencies: - '@emotion/memoize': 0.9.0 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - stylis: 4.2.0 - - '@emotion/hash@0.9.2': {} + '@babel/core': 7.29.0 - '@emotion/is-prop-valid@1.4.0': + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): dependencies: - '@emotion/memoize': 0.9.0 - - '@emotion/memoize@0.9.0': {} + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1)': + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): dependencies: - '@babel/runtime': 7.28.6 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color - '@emotion/serialize@1.3.3': + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0): dependencies: - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.2 - csstype: 3.2.3 - - '@emotion/sheet@1.4.0': {} + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@emotion/babel-plugin': 11.13.5 - '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@emotion/unitless@0.10.0': {} + babel-plugin-transform-react-remove-prop-types@0.4.24: {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): dependencies: - react: 18.3.1 + '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + + babel-preset-jest@27.5.1(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jest-hoist: 27.5.1 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) - '@emotion/utils@1.4.2': {} + babel-preset-react-app@10.1.0: + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.29.0) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) + '@babel/preset-react': 7.28.5(@babel/core@7.29.0) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + '@babel/runtime': 7.28.6 + babel-plugin-macros: 3.1.0 + babel-plugin-transform-react-remove-prop-types: 0.4.24 + transitivePeerDependencies: + - supports-color - '@emotion/weak-memoize@0.4.0': {} + bagpipe@0.3.5: {} - '@esbuild/aix-ppc64@0.27.7': - optional: true + balanced-match@1.0.2: {} - '@esbuild/android-arm64@0.27.7': - optional: true + balanced-match@4.0.4: {} - '@esbuild/android-arm@0.27.7': - optional: true + base64-js@1.5.1: {} - '@esbuild/android-x64@0.27.7': - optional: true + baseline-browser-mapping@2.9.3: {} - '@esbuild/darwin-arm64@0.27.7': - optional: true + batch@0.6.1: {} - '@esbuild/darwin-x64@0.27.7': - optional: true + better-result@2.8.2: {} - '@esbuild/freebsd-arm64@0.27.7': - optional: true + bfj@7.1.0: + dependencies: + bluebird: 3.7.2 + check-types: 11.2.3 + hoopy: 0.1.4 + jsonpath: 1.3.0 + tryer: 1.0.1 - '@esbuild/freebsd-x64@0.27.7': - optional: true + big.js@5.2.2: {} - '@esbuild/linux-arm64@0.27.7': - optional: true + bignumber.js@9.3.1: {} - '@esbuild/linux-arm@0.27.7': - optional: true + binary-extensions@2.3.0: {} - '@esbuild/linux-ia32@0.27.7': - optional: true + bluebird@3.7.2: {} - '@esbuild/linux-loong64@0.27.7': - optional: true + bn.js@4.12.3: {} - '@esbuild/linux-mips64el@0.27.7': - optional: true + body-parser@1.20.4: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.14.2 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color - '@esbuild/linux-ppc64@0.27.7': - optional: true + bonjour-service@1.3.0: + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 - '@esbuild/linux-riscv64@0.27.7': - optional: true + boolbase@1.0.0: {} - '@esbuild/linux-s390x@0.27.7': - optional: true + bowser@2.14.1: {} - '@esbuild/linux-x64@0.27.7': - optional: true + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 - '@esbuild/netbsd-arm64@0.27.7': - optional: true + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 - '@esbuild/netbsd-x64@0.27.7': - optional: true + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 - '@esbuild/openbsd-arm64@0.27.7': - optional: true + braces@3.0.3: + dependencies: + fill-range: 7.1.1 - '@esbuild/openbsd-x64@0.27.7': - optional: true + browser-process-hrtime@1.0.0: {} - '@esbuild/openharmony-arm64@0.27.7': - optional: true + browser-stdout@1.3.1: {} - '@esbuild/sunos-x64@0.27.7': - optional: true + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.3 + caniuse-lite: 1.0.30001759 + electron-to-chromium: 1.5.266 + node-releases: 2.0.27 + update-browserslist-db: 1.2.2(browserslist@4.28.1) - '@esbuild/win32-arm64@0.27.7': - optional: true + bser@2.1.1: + dependencies: + node-int64: 0.4.0 - '@esbuild/win32-ia32@0.27.7': - optional: true + buffer-equal-constant-time@1.0.1: {} - '@esbuild/win32-x64@0.27.7': - optional: true + buffer-from@1.1.2: {} - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))': - dependencies: - eslint: 9.39.4(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 + builtin-modules@3.3.0: {} - '@eslint-community/regexpp@4.12.2': {} + bytes@3.1.2: {} - '@eslint/compat@2.0.3(eslint@9.39.4(jiti@2.6.1))': + c12@3.1.0: dependencies: - '@eslint/core': 1.1.1 - optionalDependencies: - eslint: 9.39.4(jiti@2.6.1) + chokidar: 4.0.3 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 16.6.1 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 - '@eslint/config-array@0.21.2': + call-bind-apply-helpers@1.0.2: dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3 - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color + es-errors: 1.3.0 + function-bind: 1.1.2 - '@eslint/config-helpers@0.4.2': + call-bind@1.0.7: dependencies: - '@eslint/core': 0.17.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 - '@eslint/core@0.17.0': + call-bind@1.0.8: dependencies: - '@types/json-schema': 7.0.15 + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 - '@eslint/core@1.1.1': + call-bound@1.0.4: dependencies: - '@types/json-schema': 7.0.15 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 - '@eslint/eslintrc@3.3.5': + callsites@3.1.0: {} + + camel-case@4.1.2: dependencies: - ajv: 6.14.0 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + pascal-case: 3.1.2 + tslib: 2.8.1 - '@eslint/js@10.0.1(eslint@9.39.4(jiti@2.6.1))': - optionalDependencies: - eslint: 9.39.4(jiti@2.6.1) + camelcase-css@2.0.1: {} - '@eslint/js@9.39.4': {} + camelcase@5.3.1: {} - '@eslint/object-schema@2.1.7': {} + camelcase@6.3.0: {} - '@eslint/plugin-kit@0.4.1': + caniuse-api@3.0.0: dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001777 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 - '@fast-csv/format@5.0.5': + caniuse-lite@1.0.30001759: {} + + caniuse-lite@1.0.30001777: {} + + case-sensitive-paths-webpack-plugin@2.4.0: {} + + chai@4.5.0: dependencies: - lodash.escaperegexp: 4.1.2 - lodash.isboolean: 3.0.3 - lodash.isfunction: 3.0.9 - lodash.isnil: 4.0.0 + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 - '@floating-ui/core@1.7.5': + chalk@2.4.2: dependencies: - '@floating-ui/utils': 0.2.11 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 - '@floating-ui/dom@1.7.6': + chalk@4.1.2: dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 + ansi-styles: 4.3.0 + supports-color: 7.2.0 - '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + char-regex@1.0.2: {} + + char-regex@2.0.2: {} + + chart.js@4.5.1: dependencies: - '@floating-ui/dom': 1.7.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@kurkle/color': 0.3.4 - '@floating-ui/react@0.27.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + check-error@1.0.3: dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.11 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tabbable: 6.4.0 + get-func-name: 2.0.2 - '@floating-ui/utils@0.2.11': {} + check-types@11.2.3: {} - '@googlemaps/markerclusterer@2.6.2': + chokidar@3.6.0: dependencies: - '@types/supercluster': 7.1.3 - fast-equals: 5.4.0 - supercluster: 8.0.1 + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 - '@humanfs/core@0.19.1': {} + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 - '@humanfs/node@0.16.7': + chrome-trace-event@1.0.4: {} + + ci-info@3.9.0: {} + + citty@0.1.6: dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 + consola: 3.4.2 - '@humanwhocodes/module-importer@1.0.1': {} + citty@0.2.2: {} - '@humanwhocodes/retry@0.4.3': {} + cjs-module-lexer@1.4.3: {} - '@isaacs/cliui@8.0.2': + classnames@2.5.1: {} + + clean-css@5.3.3: dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.2.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + source-map: 0.6.1 - '@jridgewell/gen-mapping@0.3.13': + cliui@7.0.4: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 - '@jridgewell/remapping@2.3.5': + cliui@8.0.1: dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 - '@jridgewell/resolve-uri@3.1.2': {} + clsx@1.2.1: {} - '@jridgewell/sourcemap-codec@1.5.5': {} + clsx@2.1.1: {} + + co@4.6.0: {} - '@jridgewell/trace-mapping@0.3.31': + coa@2.0.2: dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@types/q': 1.5.8 + chalk: 2.4.2 + q: 1.5.1 - '@mui/core-downloads-tracker@6.5.0': {} + collect-v8-coverage@1.0.3: {} - '@mui/icons-material@6.5.0(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + color-convert@1.9.3: dependencies: - '@babel/runtime': 7.28.6 - '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + color-name: 1.1.3 - '@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + color-convert@2.0.1: dependencies: - '@babel/runtime': 7.28.6 - '@mui/core-downloads-tracker': 6.5.0 - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - '@mui/types': 7.2.24(@types/react@18.3.28) - '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) - '@popperjs/core': 2.11.8 - '@types/react-transition-group': 4.4.12(@types/react@18.3.28) - clsx: 2.1.1 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 19.2.4 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - '@types/react': 18.3.28 + color-name: 1.1.4 - '@mui/private-theming@6.4.9(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.28 + color-name@1.1.3: {} - '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/sheet': 1.4.0 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + color-name@1.1.4: {} - '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@mui/private-theming': 6.4.9(@types/react@18.3.28)(react@18.3.1) - '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.24(@types/react@18.3.28) - '@mui/utils': 6.4.9(@types/react@18.3.28)(react@18.3.1) - clsx: 2.1.1 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - '@types/react': 18.3.28 + colord@2.9.3: {} - '@mui/types@7.2.24(@types/react@18.3.28)': - optionalDependencies: - '@types/react': 18.3.28 + colorette@2.0.20: {} - '@mui/types@7.4.12(@types/react@18.3.28)': + combined-stream@1.0.8: dependencies: - '@babel/runtime': 7.28.6 - optionalDependencies: - '@types/react': 18.3.28 + delayed-stream: 1.0.0 - '@mui/utils@6.4.9(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@mui/types': 7.2.24(@types/react@18.3.28) - '@types/prop-types': 15.7.15 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 19.2.4 - optionalDependencies: - '@types/react': 18.3.28 + commander@2.20.3: {} - '@mui/utils@7.3.9(@types/react@18.3.28)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.6 - '@mui/types': 7.4.12(@types/react@18.3.28) - '@types/prop-types': 15.7.15 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 19.2.4 - optionalDependencies: - '@types/react': 18.3.28 + commander@4.1.1: {} - '@mui/x-date-pickers@7.29.4(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(date-fns@2.30.0)(dayjs@1.11.19)(luxon@3.7.2)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + commander@7.2.0: {} + + commander@8.3.0: {} + + common-tags@1.8.2: {} + + commondir@1.0.1: {} + + component-emitter@1.3.1: {} + + compressible@2.0.18: dependencies: - '@babel/runtime': 7.28.6 - '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - '@mui/utils': 7.3.9(@types/react@18.3.28)(react@18.3.1) - '@mui/x-internals': 7.29.0(@types/react@18.3.28)(react@18.3.1) - '@types/react-transition-group': 4.4.12(@types/react@18.3.28) - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.28)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) - date-fns: 2.30.0 - dayjs: 1.11.19 - luxon: 3.7.2 - moment: 2.30.1 - transitivePeerDependencies: - - '@types/react' + mime-db: 1.52.0 - '@mui/x-internals@7.29.0(@types/react@18.3.28)(react@18.3.1)': + compression@1.8.1: dependencies: - '@babel/runtime': 7.28.6 - '@mui/utils': 7.3.9(@types/react@18.3.28)(react@18.3.1) - react: 18.3.1 + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 transitivePeerDependencies: - - '@types/react' + - supports-color - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 - optional: true + concat-map@0.0.1: {} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + confbox@0.2.4: {} + + confusing-browser-globals@1.0.11: {} + + connect-history-api-fallback@2.0.0: {} + + consola@3.4.2: {} + + content-disposition@0.5.4: dependencies: - eslint-scope: 5.1.1 + safe-buffer: 5.2.1 - '@noble/hashes@1.8.0': {} + content-type@1.0.5: {} - '@node-saml/node-saml@5.1.0': + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.7: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + + cookiejar@2.1.4: {} + + core-js-compat@3.49.0: dependencies: - '@types/debug': 4.1.12 - '@types/qs': 6.15.0 - '@types/xml-encryption': 1.2.4 - '@types/xml2js': 0.4.14 - '@xmldom/is-dom-node': 1.0.1 - '@xmldom/xmldom': 0.8.11 - debug: 4.4.3 - xml-crypto: 6.1.2 - xml-encryption: 3.1.0 - xml2js: 0.6.2 - xmlbuilder: 15.1.1 - xpath: 0.0.34 - transitivePeerDependencies: - - supports-color + browserslist: 4.28.1 - '@node-saml/passport-saml@5.1.0': + core-js-pure@3.49.0: {} + + core-js@3.49.0: {} + + core-util-is@1.0.3: {} + + cors@2.8.6: dependencies: - '@node-saml/node-saml': 5.1.0 - '@types/express': 4.17.25 - '@types/passport': 1.0.17 - '@types/passport-strategy': 0.2.38 - passport: 0.7.0 - passport-strategy: 1.0.0 - transitivePeerDependencies: - - supports-color + object-assign: 4.1.1 + vary: 1.1.2 - '@paralleldrive/cuid2@2.3.1': + cosmiconfig@6.0.0: dependencies: - '@noble/hashes': 1.8.0 + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 - '@pkgjs/parseargs@0.11.0': - optional: true + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 - '@popperjs/core@2.11.8': {} + create-require@1.1.1: {} - '@react-aria/ssr@3.9.10(react@18.3.1)': + cron-parser@4.9.0: dependencies: - '@swc/helpers': 0.5.19 - react: 18.3.1 + luxon: 3.7.2 - '@react-aria/utils@3.33.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + cross-env@7.0.3: dependencies: - '@react-aria/ssr': 3.9.10(react@18.3.1) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.11.0(react@18.3.1) - '@react-types/shared': 3.33.1(react@18.3.1) - '@swc/helpers': 0.5.19 - clsx: 2.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + cross-spawn: 7.0.6 - '@react-stately/flags@3.1.2': + cross-spawn@7.0.6: dependencies: - '@swc/helpers': 0.5.19 + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - '@react-stately/utils@3.11.0(react@18.3.1)': + crypto-js@4.2.0: {} + + crypto-random-string@2.0.0: {} + + css-blank-pseudo@3.0.3(postcss@8.5.8): dependencies: - '@swc/helpers': 0.5.19 - react: 18.3.1 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - '@react-types/shared@3.33.1(react@18.3.1)': + css-declaration-sorter@6.4.1(postcss@8.5.8): dependencies: - react: 18.3.1 + postcss: 8.5.8 - '@remix-run/router@1.23.2': {} + css-has-pseudo@3.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - '@restart/hooks@0.4.16(react@18.3.1)': + css-loader@6.11.0(webpack@5.106.1): dependencies: - dequal: 2.0.3 - react: 18.3.1 + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) + postcss-modules-scope: 3.2.1(postcss@8.5.8) + postcss-modules-values: 4.0.0(postcss@8.5.8) + postcss-value-parser: 4.2.0 + semver: 7.7.4 + optionalDependencies: + webpack: 5.106.1 - '@rolldown/pluginutils@1.0.0-rc.3': {} + css-minimizer-webpack-plugin@3.4.1(webpack@5.106.1): + dependencies: + cssnano: 5.1.15(postcss@8.5.8) + jest-worker: 27.5.1 + postcss: 8.5.8 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + source-map: 0.6.1 + webpack: 5.106.1 - '@rollup/rollup-android-arm-eabi@4.60.1': - optional: true + css-prefers-color-scheme@6.0.3(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - '@rollup/rollup-android-arm64@4.60.1': - optional: true + css-select-base-adapter@0.1.1: {} - '@rollup/rollup-darwin-arm64@4.60.1': - optional: true + css-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 3.4.2 + domutils: 1.7.0 + nth-check: 1.0.2 - '@rollup/rollup-darwin-x64@4.60.1': - optional: true + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 - '@rollup/rollup-freebsd-arm64@4.60.1': - optional: true + css-tree@1.0.0-alpha.37: + dependencies: + mdn-data: 2.0.4 + source-map: 0.6.1 - '@rollup/rollup-freebsd-x64@4.60.1': - optional: true + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - optional: true + css-what@3.4.2: {} - '@rollup/rollup-linux-arm-musleabihf@4.60.1': - optional: true + css-what@6.2.2: {} - '@rollup/rollup-linux-arm64-gnu@4.60.1': - optional: true + cssdb@7.11.2: {} - '@rollup/rollup-linux-arm64-musl@4.60.1': - optional: true + cssesc@3.0.0: {} - '@rollup/rollup-linux-loong64-gnu@4.60.1': - optional: true + cssnano-preset-default@5.2.14(postcss@8.5.8): + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.5.8) + cssnano-utils: 3.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-calc: 8.2.4(postcss@8.5.8) + postcss-colormin: 5.3.1(postcss@8.5.8) + postcss-convert-values: 5.1.3(postcss@8.5.8) + postcss-discard-comments: 5.1.2(postcss@8.5.8) + postcss-discard-duplicates: 5.1.0(postcss@8.5.8) + postcss-discard-empty: 5.1.1(postcss@8.5.8) + postcss-discard-overridden: 5.1.0(postcss@8.5.8) + postcss-merge-longhand: 5.1.7(postcss@8.5.8) + postcss-merge-rules: 5.1.4(postcss@8.5.8) + postcss-minify-font-values: 5.1.0(postcss@8.5.8) + postcss-minify-gradients: 5.1.1(postcss@8.5.8) + postcss-minify-params: 5.1.4(postcss@8.5.8) + postcss-minify-selectors: 5.2.1(postcss@8.5.8) + postcss-normalize-charset: 5.1.0(postcss@8.5.8) + postcss-normalize-display-values: 5.1.0(postcss@8.5.8) + postcss-normalize-positions: 5.1.1(postcss@8.5.8) + postcss-normalize-repeat-style: 5.1.1(postcss@8.5.8) + postcss-normalize-string: 5.1.0(postcss@8.5.8) + postcss-normalize-timing-functions: 5.1.0(postcss@8.5.8) + postcss-normalize-unicode: 5.1.1(postcss@8.5.8) + postcss-normalize-url: 5.1.0(postcss@8.5.8) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.8) + postcss-ordered-values: 5.1.3(postcss@8.5.8) + postcss-reduce-initial: 5.1.2(postcss@8.5.8) + postcss-reduce-transforms: 5.1.0(postcss@8.5.8) + postcss-svgo: 5.1.0(postcss@8.5.8) + postcss-unique-selectors: 5.1.1(postcss@8.5.8) + + cssnano-utils@3.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - '@rollup/rollup-linux-loong64-musl@4.60.1': - optional: true + cssnano@5.1.15(postcss@8.5.8): + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.5.8) + lilconfig: 2.1.0 + postcss: 8.5.8 + yaml: 1.10.2 - '@rollup/rollup-linux-ppc64-gnu@4.60.1': - optional: true + csso@4.2.0: + dependencies: + css-tree: 1.1.3 - '@rollup/rollup-linux-ppc64-musl@4.60.1': - optional: true + cssom@0.3.8: {} - '@rollup/rollup-linux-riscv64-gnu@4.60.1': - optional: true + cssom@0.4.4: {} - '@rollup/rollup-linux-riscv64-musl@4.60.1': - optional: true + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 - '@rollup/rollup-linux-s390x-gnu@4.60.1': - optional: true + csstype@3.2.3: {} - '@rollup/rollup-linux-x64-gnu@4.60.1': - optional: true + damerau-levenshtein@1.0.8: {} - '@rollup/rollup-linux-x64-musl@4.60.1': - optional: true + data-urls@2.0.0: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 - '@rollup/rollup-openbsd-x64@4.60.1': - optional: true + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 - '@rollup/rollup-openharmony-arm64@4.60.1': - optional: true + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 - '@rollup/rollup-win32-arm64-msvc@4.60.1': - optional: true + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 - '@rollup/rollup-win32-ia32-msvc@4.60.1': - optional: true + date-arithmetic@4.1.0: {} - '@rollup/rollup-win32-x64-gnu@4.60.1': - optional: true + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.28.6 - '@rollup/rollup-win32-x64-msvc@4.60.1': - optional: true + date-fns@4.1.0: {} - '@rtsao/scc@1.1.0': {} + dayjs@1.11.19: {} - '@smithy/abort-controller@4.2.11': + debug@2.6.9: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + ms: 2.0.0 - '@smithy/chunked-blob-reader-native@4.2.3': + debug@3.2.7: dependencies: - '@smithy/util-base64': 4.3.2 - tslib: 2.8.1 + ms: 2.1.3 - '@smithy/chunked-blob-reader@5.2.2': + debug@4.4.3: dependencies: - tslib: 2.8.1 + ms: 2.1.3 - '@smithy/config-resolver@4.4.10': + debug@4.4.3(supports-color@5.5.0): dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - tslib: 2.8.1 + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 - '@smithy/core@3.23.9': + debug@4.4.3(supports-color@8.1.1): dependencies: - '@smithy/middleware-serde': 4.2.12 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 - '@smithy/credential-provider-imds@4.2.11': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - tslib: 2.8.1 + decamelize@4.0.0: {} - '@smithy/eventstream-codec@4.2.11': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.2 - tslib: 2.8.1 + decimal.js@10.6.0: {} - '@smithy/eventstream-serde-browser@4.2.11': - dependencies: - '@smithy/eventstream-serde-universal': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + dedent@0.7.0: {} - '@smithy/eventstream-serde-config-resolver@4.3.11': + deep-eql@4.1.4: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + type-detect: 4.1.0 - '@smithy/eventstream-serde-node@4.2.11': - dependencies: - '@smithy/eventstream-serde-universal': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + deep-is@0.1.4: {} - '@smithy/eventstream-serde-universal@4.2.11': - dependencies: - '@smithy/eventstream-codec': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + deepmerge-ts@7.1.5: {} - '@smithy/fetch-http-handler@5.3.13': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - tslib: 2.8.1 + deepmerge@4.3.1: {} - '@smithy/hash-blob-browser@4.2.12': + default-gateway@6.0.3: dependencies: - '@smithy/chunked-blob-reader': 5.2.2 - '@smithy/chunked-blob-reader-native': 4.2.3 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + execa: 5.1.1 - '@smithy/hash-node@4.2.11': + define-data-property@1.1.4: dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 - '@smithy/hash-stream-node@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + define-lazy-prop@2.0.0: {} - '@smithy/invalid-dependency@4.2.11': + define-properties@1.2.1: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 + defu@6.1.7: {} - '@smithy/is-array-buffer@4.2.2': - dependencies: - tslib: 2.8.1 + delayed-stream@1.0.0: {} - '@smithy/md5-js@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + denque@2.1.0: {} - '@smithy/middleware-content-length@4.2.11': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + depd@1.1.2: {} - '@smithy/middleware-endpoint@4.4.23': - dependencies: - '@smithy/core': 3.23.9 - '@smithy/middleware-serde': 4.2.12 - '@smithy/node-config-provider': 4.3.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-middleware': 4.2.11 - tslib: 2.8.1 + depd@2.0.0: {} - '@smithy/middleware-retry@4.4.40': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/service-error-classification': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 + dequal@2.0.3: {} - '@smithy/middleware-serde@4.2.12': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + destr@2.0.5: {} - '@smithy/middleware-stack@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + destroy@1.2.0: {} - '@smithy/node-config-provider@4.3.11': + detect-libc@2.1.2: {} + + detect-newline@3.1.0: {} + + detect-node@2.1.0: {} + + detect-port-alt@1.1.6: dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + address: 1.2.2 + debug: 2.6.9 + transitivePeerDependencies: + - supports-color - '@smithy/node-http-handler@4.4.14': + dezalgo@1.0.4: dependencies: - '@smithy/abort-controller': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + asap: 2.0.6 + wrappy: 1.0.2 + + didyoumean@1.2.2: {} + + diff-sequences@27.5.1: {} + + diff@4.0.4: {} + + diff@7.0.0: {} - '@smithy/property-provider@4.2.11': + dir-glob@3.0.1: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + path-type: 4.0.0 - '@smithy/protocol-http@5.3.11': + dlv@1.1.3: {} + + dns-packet@5.6.1: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@leichtgewicht/ip-codec': 2.0.5 - '@smithy/querystring-builder@4.2.11': + doctrine@2.1.0: dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-uri-escape': 4.2.2 - tslib: 2.8.1 + esutils: 2.0.3 - '@smithy/querystring-parser@4.2.11': + dom-converter@0.2.0: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + utila: 0.4.0 - '@smithy/service-error-classification@4.2.11': + dom-helpers@5.2.1: dependencies: - '@smithy/types': 4.13.0 + '@babel/runtime': 7.28.6 + csstype: 3.2.3 - '@smithy/shared-ini-file-loader@4.4.6': + dom-serializer@0.2.2: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + domelementtype: 2.3.0 + entities: 2.2.0 - '@smithy/signature-v4@5.3.11': + dom-serializer@1.4.1: dependencies: - '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-uri-escape': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 - '@smithy/smithy-client@4.12.3': + domelementtype@1.3.1: {} + + domelementtype@2.3.0: {} + + domexception@2.0.1: dependencies: - '@smithy/core': 3.23.9 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-stack': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.17 - tslib: 2.8.1 + webidl-conversions: 5.0.0 - '@smithy/types@4.13.0': + domhandler@4.3.1: dependencies: - tslib: 2.8.1 + domelementtype: 2.3.0 - '@smithy/url-parser@4.2.11': + domutils@1.7.0: dependencies: - '@smithy/querystring-parser': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + dom-serializer: 0.2.2 + domelementtype: 1.3.1 - '@smithy/util-base64@4.3.2': + domutils@2.8.0: dependencies: - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 - '@smithy/util-body-length-browser@4.2.2': + dot-case@3.0.4: dependencies: + no-case: 3.0.4 tslib: 2.8.1 - '@smithy/util-body-length-node@4.2.3': + dotenv-expand@5.1.0: {} + + dotenv@10.0.0: {} + + dotenv@16.6.1: {} + + dunder-proto@1.0.1: dependencies: - tslib: 2.8.1 + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 - '@smithy/util-buffer-from@2.2.0': + duplexer@0.1.2: {} + + dynamoose-utils@4.1.5: dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 + js-object-utilities: 2.2.1 - '@smithy/util-buffer-from@4.2.2': + dynamoose@4.1.5: dependencies: - '@smithy/is-array-buffer': 4.2.2 - tslib: 2.8.1 + '@aws-sdk/client-dynamodb': 3.1006.0 + '@aws-sdk/util-dynamodb': 3.996.2(@aws-sdk/client-dynamodb@3.1006.0) + dynamoose-utils: 4.1.5 + js-object-utilities: 2.2.1 + transitivePeerDependencies: + - aws-crt - '@smithy/util-config-provider@4.2.2': + eastasianwidth@0.2.0: {} + + ecdsa-sig-formatter@1.0.11: dependencies: - tslib: 2.8.1 + safe-buffer: 5.2.1 - '@smithy/util-defaults-mode-browser@4.3.39': + ee-first@1.1.1: {} + + effect@3.20.0: dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + '@standard-schema/spec': 1.1.0 + fast-check: 3.23.2 - '@smithy/util-defaults-mode-node@4.2.42': + ejs@3.1.10: dependencies: - '@smithy/config-resolver': 4.4.10 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + jake: 10.9.4 - '@smithy/util-endpoints@3.3.2': + electron-to-chromium@1.5.266: {} + + emittery@0.10.2: {} + + emittery@0.8.1: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojis-list@3.0.0: {} + + empathic@2.0.0: {} + + encodeurl@2.0.0: {} + + enhanced-resolve@5.20.1: dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + graceful-fs: 4.2.11 + tapable: 2.3.2 - '@smithy/util-hex-encoding@4.2.2': + entities@2.2.0: {} + + env-paths@3.0.0: {} + + error-ex@1.3.4: dependencies: - tslib: 2.8.1 + is-arrayish: 0.2.1 - '@smithy/util-middleware@4.2.11': + error-stack-parser@2.1.4: dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 + stackframe: 1.3.4 - '@smithy/util-retry@4.2.11': + es-abstract@1.24.1: dependencies: - '@smithy/service-error-classification': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.20 - '@smithy/util-stream@4.5.17': + es-array-method-boxes-properly@1.0.0: {} + + es-define-property@1.0.0: dependencies: - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/node-http-handler': 4.4.14 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 + get-intrinsic: 1.3.0 - '@smithy/util-uri-escape@4.2.2': + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.2: dependencies: - tslib: 2.8.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 - '@smithy/util-utf8@2.3.0': + es-module-lexer@2.0.0: {} + + es-object-atoms@1.1.1: dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 + es-errors: 1.3.0 - '@smithy/util-utf8@4.2.2': + es-set-tostringtag@2.1.0: dependencies: - '@smithy/util-buffer-from': 4.2.2 - tslib: 2.8.1 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - '@smithy/util-waiter@4.2.12': + es-shim-unscopables@1.1.0: dependencies: - '@smithy/abort-controller': 4.2.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 + hasown: 2.0.2 - '@smithy/uuid@1.1.2': + es-to-primitive@1.3.0: dependencies: - tslib: 2.8.1 + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} - '@swc/helpers@0.5.19': - dependencies: - tslib: 2.8.1 + escape-string-regexp@1.0.5: {} - '@tailwindcss/node@4.2.2': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.1 - jiti: 2.6.1 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.2.2 + escape-string-regexp@2.0.0: {} - '@tailwindcss/oxide-android-arm64@4.2.2': - optional: true + escape-string-regexp@4.0.0: {} - '@tailwindcss/oxide-darwin-arm64@4.2.2': - optional: true + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 - '@tailwindcss/oxide-darwin-x64@4.2.2': - optional: true + eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@1.21.7)): + dependencies: + eslint: 9.39.4(jiti@1.21.7) - '@tailwindcss/oxide-freebsd-x64@4.2.2': - optional: true + eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.6.1)): + dependencies: + eslint: 9.39.4(jiti@2.6.1) - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - optional: true + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7))(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3): + dependencies: + '@babel/core': 7.29.0 + '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@9.39.4(jiti@1.21.7)) + '@rushstack/eslint-patch': 1.16.1 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/parser': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + babel-preset-react-app: 10.1.0 + confusing-browser-globals: 1.0.11 + eslint: 9.39.4(jiti@1.21.7) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(eslint@9.39.4(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7)) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@1.21.7)) + eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@1.21.7)) + eslint-plugin-react-hooks: 4.6.2(eslint@9.39.4(jiti@1.21.7)) + eslint-plugin-testing-library: 5.11.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - optional: true + eslint-import-context@0.1.9(unrs-resolver@1.11.1): + dependencies: + get-tsconfig: 4.13.6 + stable-hash-x: 0.2.0 + optionalDependencies: + unrs-resolver: 1.11.1 - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - optional: true + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - optional: true + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): + dependencies: + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + get-tsconfig: 4.13.6 + is-bun-module: 2.0.0 + stable-hash-x: 0.2.0 + tinyglobby: 0.2.15 + unrs-resolver: 1.11.1 + optionalDependencies: + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - optional: true + eslint-module-utils@2.12.1(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - optional: true + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - optional: true + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(eslint@9.39.4(jiti@1.21.7)): + dependencies: + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + eslint: 9.39.4(jiti@1.21.7) + lodash: 4.17.23 + string-natural-compare: 3.0.1 - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - optional: true + eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.4(jiti@1.21.7) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color - '@tailwindcss/oxide@4.2.2': + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.4(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color - '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0))': + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3): dependencies: - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - tailwindcss: 4.2.2 - vite: 7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0) + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + jest: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + transitivePeerDependencies: + - supports-color + - typescript - '@tybys/wasm-util@0.10.1': + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@1.21.7)): dependencies: - tslib: 2.8.1 - optional: true + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.11.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.39.4(jiti@1.21.7) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 - '@types/babel__core@7.20.5': + eslint-plugin-promise@7.2.1(eslint@9.39.4(jiti@2.6.1)): dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + eslint: 9.39.4(jiti@2.6.1) - '@types/babel__generator@7.27.0': + eslint-plugin-react-hooks@4.6.2(eslint@9.39.4(jiti@1.21.7)): dependencies: - '@babel/types': 7.29.0 + eslint: 9.39.4(jiti@1.21.7) - '@types/babel__template@7.4.4': + eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@1.21.7)): dependencies: + '@babel/core': 7.29.0 '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + eslint: 9.39.4(jiti@1.21.7) + hermes-parser: 0.25.1 + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) + transitivePeerDependencies: + - supports-color - '@types/babel__traverse@7.28.0': + eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@2.6.1)): dependencies: - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + eslint: 9.39.4(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) + transitivePeerDependencies: + - supports-color - '@types/body-parser@1.19.6': + eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@1.21.7)): dependencies: - '@types/connect': 3.4.38 - '@types/node': 22.19.15 + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.2 + eslint: 9.39.4(jiti@1.21.7) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.6 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 - '@types/chai@4.3.20': {} + eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.6.1)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.2 + eslint: 9.39.4(jiti@2.6.1) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.6 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 - '@types/connect@3.4.38': + eslint-plugin-testing-library@5.11.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@types/node': 22.19.15 + '@typescript-eslint/utils': 5.62.0(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.4(jiti@1.21.7) + transitivePeerDependencies: + - supports-color + - typescript - '@types/cookiejar@2.1.5': {} + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 - '@types/cors@2.8.19': + eslint-scope@8.4.0: dependencies: - '@types/node': 22.19.15 + esrecurse: 4.3.0 + estraverse: 5.3.0 - '@types/crypto-js@4.2.2': {} + eslint-visitor-keys@2.1.0: {} - '@types/date-arithmetic@4.1.4': {} + eslint-visitor-keys@3.4.3: {} - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 + eslint-visitor-keys@4.2.1: {} - '@types/estree@1.0.8': {} + eslint-visitor-keys@5.0.1: {} - '@types/express-serve-static-core@4.19.8': + eslint-webpack-plugin@3.2.0(eslint@9.39.4(jiti@1.21.7))(webpack@5.106.1): dependencies: - '@types/node': 22.19.15 - '@types/qs': 6.15.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 + '@types/eslint': 8.56.12 + eslint: 9.39.4(jiti@1.21.7) + jest-worker: 28.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + schema-utils: 4.3.3 + webpack: 5.106.1 - '@types/express-session@1.18.2': + eslint@9.39.4(jiti@1.21.7): dependencies: - '@types/express': 4.17.25 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@1.21.7)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.7 + transitivePeerDependencies: + - supports-color - '@types/express@4.17.25': + eslint@9.39.4(jiti@2.6.1): dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.15.0 - '@types/serve-static': 1.15.10 - - '@types/geojson@7946.0.16': {} - - '@types/google.maps@3.58.1': {} - - '@types/history@4.7.11': {} + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color - '@types/http-errors@2.0.5': {} + espree@10.4.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 4.2.1 - '@types/json-schema@7.0.15': {} + esprima@1.2.5: {} - '@types/json5@0.0.29': {} + esprima@4.0.1: {} - '@types/jsonwebtoken@9.0.10': + esquery@1.7.0: dependencies: - '@types/ms': 2.1.0 - '@types/node': 22.19.15 + estraverse: 5.3.0 - '@types/methods@1.1.4': {} + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 - '@types/mime@1.3.5': {} + estraverse@4.3.0: {} - '@types/mocha@10.0.10': {} + estraverse@5.3.0: {} - '@types/ms@2.1.0': {} + estree-walker@1.0.1: {} - '@types/node-schedule@2.1.8': - dependencies: - '@types/node': 22.19.15 + esutils@2.0.3: {} - '@types/node@22.19.15': - dependencies: - undici-types: 6.21.0 + etag@1.8.1: {} - '@types/parse-json@4.0.2': {} + eventemitter3@4.0.7: {} - '@types/passport-strategy@0.2.38': - dependencies: - '@types/express': 4.17.25 - '@types/passport': 1.0.17 + events@3.3.0: {} - '@types/passport@1.0.17': + execa@5.1.1: dependencies: - '@types/express': 4.17.25 - - '@types/prop-types@15.7.15': {} - - '@types/qs@6.15.0': {} + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 - '@types/range-parser@1.2.7': {} + exit@0.1.2: {} - '@types/react-big-calendar@1.16.3': + expect@27.5.1: dependencies: - '@types/date-arithmetic': 4.1.4 - '@types/prop-types': 15.7.15 - '@types/react': 18.3.28 + '@jest/types': 27.5.1 + jest-get-type: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 - '@types/react-csv@1.1.10': + express-session@1.19.0: dependencies: - '@types/react': 18.3.28 + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: 2.0.0 + on-headers: 1.1.0 + parseurl: 1.3.3 + safe-buffer: 5.2.1 + uid-safe: 2.1.5 + transitivePeerDependencies: + - supports-color - '@types/react-dom@18.3.7(@types/react@18.3.28)': + express@4.22.1: dependencies: - '@types/react': 18.3.28 + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.4 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.2 + fresh: 0.5.2 + http-errors: 2.0.1 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.14.2 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.2 + serve-static: 1.16.3 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color - '@types/react-router-dom@5.3.3': - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.28 - '@types/react-router': 5.1.20 + exsolve@1.0.8: {} - '@types/react-router-hash-link@2.4.9': - dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.28 - '@types/react-router-dom': 5.3.3 + extend@3.0.2: {} - '@types/react-router@5.1.20': + fast-check@3.23.2: dependencies: - '@types/history': 4.7.11 - '@types/react': 18.3.28 + pure-rand: 6.1.0 - '@types/react-transition-group@4.4.12(@types/react@18.3.28)': - dependencies: - '@types/react': 18.3.28 + fast-deep-equal@3.1.3: {} - '@types/react@18.3.28': - dependencies: - '@types/prop-types': 15.7.15 - csstype: 3.2.3 + fast-equals@5.4.0: {} - '@types/send@0.17.6': + fast-glob@3.3.3: dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.19.15 + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 - '@types/send@1.2.1': - dependencies: - '@types/node': 22.19.15 + fast-json-stable-stringify@2.1.0: {} - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 22.19.15 - '@types/send': 0.17.6 + fast-levenshtein@2.0.6: {} + + fast-safe-stringify@2.1.1: {} - '@types/session-file-store@1.2.6': + fast-uri@3.1.0: {} + + fast-xml-builder@1.1.0: dependencies: - '@types/express': 4.17.25 - '@types/express-session': 1.18.2 + path-expression-matcher: 1.1.2 - '@types/superagent@8.1.9': + fast-xml-parser@5.4.1: dependencies: - '@types/cookiejar': 2.1.5 - '@types/methods': 1.1.4 - '@types/node': 22.19.15 - form-data: 4.0.5 + fast-xml-builder: 1.1.0 + strnum: 2.2.0 - '@types/supercluster@7.1.3': + fastq@1.20.1: dependencies: - '@types/geojson': 7946.0.16 + reusify: 1.1.0 - '@types/supertest@6.0.3': + faye-websocket@0.11.4: dependencies: - '@types/methods': 1.1.4 - '@types/superagent': 8.1.9 + websocket-driver: 0.7.4 - '@types/uuid@10.0.0': {} + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 - '@types/validator@13.15.10': {} + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 - '@types/warning@3.0.3': {} + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 - '@types/web-push@3.6.4': + file-loader@6.2.0(webpack@5.106.1): dependencies: - '@types/node': 22.19.15 + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.106.1 - '@types/xml-encryption@1.2.4': + filelist@1.0.6: dependencies: - '@types/node': 22.19.15 + minimatch: 5.1.9 - '@types/xml2js@0.4.14': + filesize@8.0.7: {} + + fill-range@7.1.1: dependencies: - '@types/node': 22.19.15 + to-regex-range: 5.0.1 - '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + finalhandler@1.3.2: dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.0 - '@typescript-eslint/type-utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.0 - eslint: 9.39.4(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + unpipe: 1.0.0 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + find-cache-dir@3.3.2: dependencies: - '@typescript-eslint/scope-manager': 8.57.0 - '@typescript-eslint/types': 8.57.0 - '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.0 - debug: 4.4.3 - eslint: 9.39.4(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 - '@typescript-eslint/project-service@8.57.0(typescript@5.9.3)': + find-root@1.1.0: {} + + find-up@3.0.0: dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) - '@typescript-eslint/types': 8.57.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + locate-path: 3.0.0 - '@typescript-eslint/scope-manager@8.57.0': + find-up@4.1.0: dependencies: - '@typescript-eslint/types': 8.57.0 - '@typescript-eslint/visitor-keys': 8.57.0 + locate-path: 5.0.0 + path-exists: 4.0.0 - '@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)': + find-up@5.0.0: dependencies: - typescript: 5.9.3 + locate-path: 6.0.0 + path-exists: 4.0.0 - '@typescript-eslint/type-utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + flat-cache@4.0.1: dependencies: - '@typescript-eslint/types': 8.57.0 - '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3 - eslint: 9.39.4(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + flatted: 3.4.1 + keyv: 4.5.4 - '@typescript-eslint/types@8.57.0': {} + flat@5.0.2: {} - '@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.57.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) - '@typescript-eslint/types': 8.57.0 - '@typescript-eslint/visitor-keys': 8.57.0 - debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.16 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + flatted@3.4.1: {} - '@typescript-eslint/utils@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + focus-trap-react@10.3.1(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.57.0 - '@typescript-eslint/types': 8.57.0 - '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) - eslint: 9.39.4(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + focus-trap: 7.8.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.4.0 - '@typescript-eslint/visitor-keys@8.57.0': + focus-trap@7.8.0: dependencies: - '@typescript-eslint/types': 8.57.0 - eslint-visitor-keys: 5.0.1 + tabbable: 6.4.0 - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true + follow-redirects@1.15.11: {} - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)(webpack@5.106.1): + dependencies: + '@babel/code-frame': 7.29.0 + '@types/json-schema': 7.0.15 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 6.0.0 + deepmerge: 4.3.1 + fs-extra: 9.1.0 + glob: 7.2.3 + memfs: 3.5.3 + minimatch: 3.1.5 + schema-utils: 2.7.0 + semver: 7.7.4 + tapable: 1.1.3 + typescript: 5.9.3 + webpack: 5.106.1 + optionalDependencies: + eslint: 9.39.4(jiti@1.21.7) - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true + form-data@3.0.4: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true + formidable@3.5.4: + dependencies: + '@paralleldrive/cuid2': 2.3.1 + dezalgo: 1.0.4 + once: 1.4.0 - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true + forwarded@0.2.0: {} - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true + fraction.js@5.3.4: {} - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true + fresh@0.5.2: {} - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true + fs-monkey@1.1.0: {} - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true + fs.realpath@1.0.0: {} - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + fsevents@2.3.3: optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true + function-bind@1.1.2: {} - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true + functions-have-names@1.2.3: {} - '@vis.gl/react-google-maps@1.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + gaxios@6.7.1: dependencies: - '@types/google.maps': 3.58.1 - fast-deep-equal: 3.1.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color - '@vitejs/plugin-react@5.1.4(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0))': + gcp-metadata@6.1.1: dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) - '@rolldown/pluginutils': 1.0.0-rc.3 - '@types/babel__core': 7.20.5 - react-refresh: 0.18.0 - vite: 7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0) + gaxios: 6.7.1 + google-logging-utils: 0.0.2 + json-bigint: 1.0.0 transitivePeerDependencies: + - encoding - supports-color - '@xmldom/is-dom-node@1.0.1': {} + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + + generator-function@2.0.1: {} - '@xmldom/xmldom@0.8.11': {} + gensync@1.0.0-beta.2: {} - accepts@1.3.8: + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.2.4: dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 - acorn-jsx@5.3.2(acorn@8.16.0): + get-intrinsic@1.3.0: dependencies: - acorn: 8.16.0 + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 - acorn@8.16.0: {} + get-own-enumerable-property-symbols@3.0.2: {} - addresser@1.1.20: {} + get-package-type@0.1.0: {} - agent-base@7.1.4: {} + get-port-please@3.2.0: {} - ajv@6.14.0: + get-proto@1.0.1: dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 - ansi-regex@6.2.2: {} + get-stream@6.0.1: {} - ansi-styles@4.3.0: + get-symbol-description@1.1.0: dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 - anymatch@3.1.3: + get-tsconfig@4.13.6: dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.2 + resolve-pkg-maps: 1.0.0 - arg@4.1.3: {} + giget@2.0.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.7 + node-fetch-native: 1.6.7 + nypm: 0.6.5 + pathe: 2.0.3 - argparse@2.0.1: {} + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 - array-buffer-byte-length@1.0.2: + glob-parent@6.0.2: dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 + is-glob: 4.0.3 - array-flatten@1.1.1: {} + glob-to-regexp@0.4.1: {} - array-includes@3.1.9: + glob@10.5.0: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - math-intrinsics: 1.1.0 + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 - array.prototype.findlast@1.2.5: + glob@7.2.3: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 - array.prototype.findlastindex@1.2.6: + global-modules@2.0.0: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + global-prefix: 3.0.0 - array.prototype.flat@1.3.3: + global-prefix@3.0.0: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 + globalize@0.1.1: {} - array.prototype.tosorted@1.1.4: + globals@14.0.0: {} + + globals@17.4.0: {} + + globalthis@1.0.4: dependencies: - call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 + gopd: 1.2.0 - arraybuffer.prototype.slice@1.0.4: + globby@11.1.0: dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 - asap@2.0.6: {} + globrex@0.1.2: {} - asn1.js@5.4.1: + google-auth-library@9.15.1: dependencies: - bn.js: 4.12.3 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 6.7.1 + gcp-metadata: 6.1.1 + gtoken: 7.1.0 + jws: 4.0.1 + transitivePeerDependencies: + - encoding + - supports-color - assertion-error@1.1.0: {} + google-logging-utils@0.0.2: {} - async-function@1.0.0: {} + gopd@1.2.0: {} - asynckit@0.4.0: {} + graceful-fs@4.2.11: {} - autoprefixer@10.4.27(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001777 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 + grammex@3.1.12: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 + graphemer@1.4.0: {} - axios@1.13.6: + graphmatch@1.1.1: {} + + gtoken@7.1.0: dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.5 - proxy-from-env: 1.1.0 + gaxios: 6.7.1 + jws: 4.0.1 transitivePeerDependencies: - - debug + - encoding + - supports-color - babel-plugin-macros@3.1.0: + gzip-size@6.0.0: dependencies: - '@babel/runtime': 7.28.6 - cosmiconfig: 7.1.0 - resolve: 1.22.11 + duplexer: 0.1.2 - bagpipe@0.3.5: {} + handle-thing@2.0.1: {} - balanced-match@1.0.2: {} + harmony-reflect@1.6.2: {} - balanced-match@4.0.4: {} + has-bigints@1.1.0: {} - base64-js@1.5.1: {} + has-flag@3.0.0: {} - baseline-browser-mapping@2.9.3: {} + has-flag@4.0.0: {} - bignumber.js@9.3.1: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 - binary-extensions@2.3.0: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 - bn.js@4.12.3: {} + has-symbols@1.1.0: {} - body-parser@1.20.4: + has-tostringtag@1.0.2: dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.14.2 - raw-body: 2.5.3 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color + has-symbols: 1.1.0 - bowser@2.14.1: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 - brace-expansion@1.1.12: + he@1.2.0: {} + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + hermes-estree: 0.25.1 - brace-expansion@2.0.2: + hoist-non-react-statics@3.3.2: dependencies: - balanced-match: 1.0.2 + react-is: 16.13.1 - brace-expansion@5.0.4: + hono@4.12.12: {} + + hoopy@0.1.4: {} + + hpack.js@2.1.6: dependencies: - balanced-match: 4.0.4 + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 - braces@3.0.3: + html-encoding-sniffer@2.0.1: dependencies: - fill-range: 7.1.1 + whatwg-encoding: 1.0.5 - browser-stdout@1.3.1: {} + html-entities@2.6.0: {} - browserslist@4.28.1: + html-escaper@2.0.2: {} + + html-minifier-terser@6.1.0: dependencies: - baseline-browser-mapping: 2.9.3 - caniuse-lite: 1.0.30001759 - electron-to-chromium: 1.5.266 - node-releases: 2.0.27 - update-browserslist-db: 1.2.2(browserslist@4.28.1) + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.46.1 - buffer-equal-constant-time@1.0.1: {} + html-webpack-plugin@5.6.6(webpack@5.106.1): + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.23 + pretty-error: 4.0.0 + tapable: 2.3.2 + optionalDependencies: + webpack: 5.106.1 - buffer-from@1.1.2: {} + htmlparser2@6.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 - bytes@3.1.2: {} + http-deceiver@1.2.7: {} - call-bind-apply-helpers@1.0.2: + http-errors@1.8.1: dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 - call-bind@1.0.7: + http-errors@2.0.1: dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 - call-bind@1.0.8: + http-parser-js@0.5.10: {} + + http-proxy-agent@4.0.1: dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color - call-bound@1.0.4: + http-proxy-middleware@2.0.9(@types/express@4.17.25): dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 + '@types/http-proxy': 1.17.17 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.8 + optionalDependencies: + '@types/express': 4.17.25 + transitivePeerDependencies: + - debug - callsites@3.1.0: {} + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.11 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug - camelcase@6.3.0: {} + http-status-codes@2.3.0: {} - caniuse-lite@1.0.30001759: {} + http_ece@1.2.0: {} - caniuse-lite@1.0.30001777: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color - chai@4.5.0: + https-proxy-agent@7.0.6: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.1.0 + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color - chalk@4.1.2: + human-signals@2.1.0: {} + + husky@9.1.7: {} + + iconv-lite@0.4.24: dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + safer-buffer: 2.1.2 - check-error@1.0.3: + iconv-lite@0.6.3: dependencies: - get-func-name: 2.0.2 + safer-buffer: 2.1.2 - chokidar@3.6.0: + iconv-lite@0.7.2: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 + safer-buffer: 2.1.2 - chokidar@4.0.3: + icss-utils@5.1.0(postcss@8.5.8): dependencies: - readdirp: 4.1.2 + postcss: 8.5.8 - classnames@2.5.1: {} + idb@7.1.1: {} - cliui@8.0.1: + identity-obj-proxy@3.0.0: dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 + harmony-reflect: 1.6.2 - clsx@1.2.1: {} + ignore-by-default@1.0.1: {} - clsx@2.1.1: {} + ignore@5.3.2: {} - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 + ignore@7.0.5: {} - color-name@1.1.4: {} + immer@9.0.21: {} - combined-stream@1.0.8: + import-fresh@3.3.1: dependencies: - delayed-stream: 1.0.0 + parent-module: 1.0.1 + resolve-from: 4.0.0 - component-emitter@1.3.1: {} + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 - concat-map@0.0.1: {} + imurmurhash@0.1.4: {} - content-disposition@0.5.4: + inflight@1.0.6: dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} + once: 1.4.0 + wrappy: 1.0.2 - convert-source-map@1.9.0: {} + inherits@2.0.4: {} - convert-source-map@2.0.0: {} + ini@1.3.8: {} - cookie-signature@1.0.7: {} + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 - cookie-signature@1.2.2: {} + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 - cookie@0.7.2: {} + ipaddr.js@1.9.1: {} - cookiejar@2.1.4: {} + ipaddr.js@2.3.0: {} - cors@2.8.6: + is-array-buffer@3.0.5: dependencies: - object-assign: 4.1.1 - vary: 1.1.2 + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 + is-arrayish@0.2.1: {} - create-require@1.1.1: {} + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 - cron-parser@4.9.0: + is-bigint@1.1.0: dependencies: - luxon: 3.7.2 + has-bigints: 1.1.0 - cross-env@7.0.3: + is-binary-path@2.1.0: dependencies: - cross-spawn: 7.0.6 + binary-extensions: 2.3.0 - cross-spawn@7.0.6: + is-boolean-object@1.2.2: dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 - crypto-js@4.2.0: {} + is-bun-module@2.0.0: + dependencies: + semver: 7.7.4 - csstype@3.2.3: {} + is-callable@1.2.7: {} - data-view-buffer@1.0.2: + is-core-module@2.16.1: dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 + hasown: 2.0.2 - data-view-byte-length@1.0.2: + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 - data-view-byte-offset@1.0.1: + is-date-object@1.1.0: dependencies: call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 + has-tostringtag: 1.0.2 - date-arithmetic@4.1.0: {} + is-docker@2.2.1: {} - date-fns@2.30.0: + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: dependencies: - '@babel/runtime': 7.28.6 + call-bound: 1.0.4 - date-fns@4.1.0: {} + is-fullwidth-code-point@3.0.0: {} - dayjs@1.11.19: {} + is-generator-fn@2.1.0: {} - debug@2.6.9: + is-generator-function@1.1.2: dependencies: - ms: 2.0.0 + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 - debug@3.2.7: + is-glob@4.0.3: dependencies: - ms: 2.1.3 + is-extglob: 2.1.1 - debug@4.4.3: - dependencies: - ms: 2.1.3 + is-map@2.0.3: {} - debug@4.4.3(supports-color@5.5.0): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 5.5.0 + is-module@1.0.0: {} - debug@4.4.3(supports-color@8.1.1): + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 + call-bound: 1.0.4 + has-tostringtag: 1.0.2 - decamelize@4.0.0: {} + is-number@7.0.0: {} - deep-eql@4.1.4: - dependencies: - type-detect: 4.1.0 + is-obj@1.0.1: {} - deep-is@0.1.4: {} + is-path-inside@3.0.3: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 + is-plain-obj@2.1.0: {} - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 + is-plain-obj@3.0.0: {} - delayed-stream@1.0.0: {} + is-potential-custom-element-name@1.0.1: {} + + is-property@1.0.2: {} - depd@2.0.0: {} + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - dequal@2.0.3: {} + is-regexp@1.0.0: {} - destroy@1.2.0: {} + is-root@2.1.0: {} - detect-libc@2.1.2: {} + is-set@2.0.3: {} - dezalgo@1.0.4: + is-shared-array-buffer@1.0.4: dependencies: - asap: 2.0.6 - wrappy: 1.0.2 + call-bound: 1.0.4 - diff@4.0.4: {} + is-stream@2.0.1: {} - diff@7.0.0: {} + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 - doctrine@2.1.0: + is-symbol@1.1.1: dependencies: - esutils: 2.0.3 + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 - dom-helpers@5.2.1: + is-typed-array@1.1.15: dependencies: - '@babel/runtime': 7.28.6 - csstype: 3.2.3 + which-typed-array: 1.1.20 - dotenv@16.6.1: {} + is-typedarray@1.0.0: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 + is-unicode-supported@0.1.0: {} - dynamoose-utils@4.1.5: - dependencies: - js-object-utilities: 2.2.1 + is-weakmap@2.0.2: {} - dynamoose@4.1.5: + is-weakref@1.1.1: dependencies: - '@aws-sdk/client-dynamodb': 3.1006.0 - '@aws-sdk/util-dynamodb': 3.996.2(@aws-sdk/client-dynamodb@3.1006.0) - dynamoose-utils: 4.1.5 - js-object-utilities: 2.2.1 - transitivePeerDependencies: - - aws-crt + call-bound: 1.0.4 - eastasianwidth@0.2.0: {} + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 - ecdsa-sig-formatter@1.0.11: + is-wsl@2.2.0: dependencies: - safe-buffer: 5.2.1 + is-docker: 2.2.1 - ee-first@1.1.1: {} + isarray@1.0.0: {} - electron-to-chromium@1.5.266: {} + isarray@2.0.5: {} - emoji-regex@8.0.0: {} + isexe@2.0.0: {} - emoji-regex@9.2.2: {} + istanbul-lib-coverage@3.2.2: {} - encodeurl@2.0.0: {} + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - enhanced-resolve@5.20.1: + istanbul-lib-report@3.0.1: dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.2 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 - error-ex@1.3.4: + istanbul-lib-source-maps@4.0.1: dependencies: - is-arrayish: 0.2.1 + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color - es-abstract@1.24.1: + istanbul-reports@3.2.0: dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 get-intrinsic: 1.3.0 get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + set-function-name: 2.0.2 - es-define-property@1.0.0: + jackspeak@3.4.3: dependencies: - get-intrinsic: 1.3.0 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - es-iterator-helpers@1.2.2: + jake@10.9.4: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 + async: 3.2.6 + filelist: 1.0.6 + picocolors: 1.1.1 - es-object-atoms@1.1.1: + jest-changed-files@27.5.1: dependencies: - es-errors: 1.3.0 + '@jest/types': 27.5.1 + execa: 5.1.1 + throat: 6.0.2 - es-set-tostringtag@2.1.0: + jest-circus@27.5.1: dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + '@jest/environment': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + expect: 27.5.1 + is-generator-fn: 2.1.0 + jest-each: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 + slash: 3.0.0 + stack-utils: 2.0.6 + throat: 6.0.2 + transitivePeerDependencies: + - supports-color - es-shim-unscopables@1.1.0: + jest-cli@27.5.1(ts-node@9.1.1(typescript@5.9.3)): dependencies: - hasown: 2.0.2 + '@jest/core': 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.2.0 + jest-config: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + jest-util: 27.5.1 + jest-validate: 27.5.1 + prompts: 2.4.2 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate - es-to-primitive@1.3.0: + jest-config@27.5.1(ts-node@9.1.1(typescript@5.9.3)): dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - esbuild@0.27.7: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 27.5.1 + '@jest/types': 27.5.1 + babel-jest: 27.5.1(@babel/core@7.29.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 27.5.1 + jest-environment-jsdom: 27.5.1 + jest-environment-node: 27.5.1 + jest-get-type: 27.5.1 + jest-jasmine2: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-runner: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 27.5.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 + ts-node: 9.1.1(typescript@5.9.3) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate - escalade@3.2.0: {} + jest-diff@27.5.1: + dependencies: + chalk: 4.1.2 + diff-sequences: 27.5.1 + jest-get-type: 27.5.1 + pretty-format: 27.5.1 - escape-html@1.0.3: {} + jest-docblock@27.5.1: + dependencies: + detect-newline: 3.1.0 - escape-string-regexp@4.0.0: {} + jest-each@27.5.1: + dependencies: + '@jest/types': 27.5.1 + chalk: 4.1.2 + jest-get-type: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 - eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.6.1)): + jest-environment-jsdom@27.5.1: dependencies: - eslint: 9.39.4(jiti@2.6.1) + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + jest-mock: 27.5.1 + jest-util: 27.5.1 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate - eslint-import-context@0.1.9(unrs-resolver@1.11.1): + jest-environment-node@27.5.1: dependencies: - get-tsconfig: 4.13.6 - stable-hash-x: 0.2.0 + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + jest-mock: 27.5.1 + jest-util: 27.5.1 + + jest-get-type@27.5.1: {} + + jest-haste-map@27.5.1: + dependencies: + '@jest/types': 27.5.1 + '@types/graceful-fs': 4.1.9 + '@types/node': 22.19.15 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 27.5.1 + jest-serializer: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + micromatch: 4.0.8 + walker: 1.0.8 optionalDependencies: - unrs-resolver: 1.11.1 + fsevents: 2.3.3 - eslint-import-resolver-node@0.3.9: + jest-jasmine2@27.5.1: dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.11 + '@jest/environment': 27.5.1 + '@jest/source-map': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + co: 4.6.0 + expect: 27.5.1 + is-generator-fn: 2.1.0 + jest-each: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 + throat: 6.0.2 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): + jest-leak-detector@27.5.1: dependencies: - debug: 4.4.3 - eslint: 9.39.4(jiti@2.6.1) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.6 - is-bun-module: 2.0.0 - stable-hash-x: 0.2.0 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 + jest-get-type: 27.5.1 + pretty-format: 27.5.1 + + jest-matcher-utils@27.5.1: + dependencies: + chalk: 4.1.2 + jest-diff: 27.5.1 + jest-get-type: 27.5.1 + pretty-format: 27.5.1 + + jest-message-util@27.5.1: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 27.5.1 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 27.5.1 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-message-util@28.1.3: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@27.5.1: + dependencies: + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + + jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + jest-resolve: 27.5.1 + + jest-regex-util@27.5.1: {} + + jest-regex-util@28.0.2: {} + + jest-resolve-dependencies@27.5.1: + dependencies: + '@jest/types': 27.5.1 + jest-regex-util: 27.5.1 + jest-snapshot: 27.5.1 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + jest-resolve@27.5.1: dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.4(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) + '@jest/types': 27.5.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-pnp-resolver: 1.2.3(jest-resolve@27.5.1) + jest-util: 27.5.1 + jest-validate: 27.5.1 + resolve: 1.22.11 + resolve.exports: 1.1.1 + slash: 3.0.0 + + jest-runner@27.5.1: + dependencies: + '@jest/console': 27.5.1 + '@jest/environment': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + emittery: 0.8.1 + graceful-fs: 4.2.11 + jest-docblock: 27.5.1 + jest-environment-jsdom: 27.5.1 + jest-environment-node: 27.5.1 + jest-haste-map: 27.5.1 + jest-leak-detector: 27.5.1 + jest-message-util: 27.5.1 + jest-resolve: 27.5.1 + jest-runtime: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + source-map-support: 0.5.21 + throat: 6.0.2 transitivePeerDependencies: + - bufferutil + - canvas - supports-color + - utf-8-validate - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + jest-runtime@27.5.1: dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.39.4(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.5 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.57.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/globals': 27.5.1 + '@jest/source-map': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-message-util: 27.5.1 + jest-mock: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + slash: 3.0.0 + strip-bom: 4.0.0 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - eslint-plugin-promise@7.2.1(eslint@9.39.4(jiti@2.6.1)): + jest-serializer@27.5.1: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - eslint: 9.39.4(jiti@2.6.1) + '@types/node': 22.19.15 + graceful-fs: 4.2.11 - eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@2.6.1)): + jest-snapshot@27.5.1: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - eslint: 9.39.4(jiti@2.6.1) - hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) + '@babel/generator': 7.29.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__traverse': 7.28.0 + '@types/prettier': 2.7.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + chalk: 4.1.2 + expect: 27.5.1 + graceful-fs: 4.2.11 + jest-diff: 27.5.1 + jest-get-type: 27.5.1 + jest-haste-map: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-util: 27.5.1 + natural-compare: 1.4.0 + pretty-format: 27.5.1 + semver: 7.7.4 transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.6.1)): + jest-util@27.5.1: dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 - eslint: 9.39.4(jiti@2.6.1) - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.5 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.6 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 - eslint-scope@5.1.1: + jest-util@28.1.3: dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + '@jest/types': 28.1.3 + '@types/node': 22.19.15 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 - eslint-scope@8.4.0: + jest-validate@27.5.1: dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + '@jest/types': 27.5.1 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 27.5.1 + leven: 3.1.0 + pretty-format: 27.5.1 - eslint-visitor-keys@2.1.0: {} + jest-watch-typeahead@1.1.0(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3))): + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + jest-regex-util: 28.0.2 + jest-watcher: 28.1.3 + slash: 4.0.0 + string-length: 5.0.1 + strip-ansi: 7.2.0 - eslint-visitor-keys@3.4.3: {} + jest-watcher@27.5.1: + dependencies: + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 22.19.15 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 27.5.1 + string-length: 4.0.2 - eslint-visitor-keys@4.2.1: {} + jest-watcher@28.1.3: + dependencies: + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.19.15 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 28.1.3 + string-length: 4.0.2 - eslint-visitor-keys@5.0.1: {} + jest-worker@26.6.2: + dependencies: + '@types/node': 22.19.15 + merge-stream: 2.0.0 + supports-color: 7.2.0 - eslint@9.39.4(jiti@2.6.1): + jest-worker@27.5.1: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.2 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.5 - '@eslint/js': 9.39.4 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.14.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 + '@types/node': 22.19.15 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest-worker@28.1.3: + dependencies: + '@types/node': 22.19.15 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@27.5.1(ts-node@9.1.1(typescript@5.9.3)): + dependencies: + '@jest/core': 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + import-local: 3.2.0 + jest-cli: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) transitivePeerDependencies: + - bufferutil + - canvas - supports-color + - ts-node + - utf-8-validate - espree@10.4.0: + jiti@1.21.7: {} + + jiti@2.6.1: {} + + js-object-utilities@2.2.1: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 4.2.1 + argparse: 1.0.10 + esprima: 4.0.1 - esquery@1.7.0: + js-yaml@4.1.1: dependencies: - estraverse: 5.3.0 + argparse: 2.0.1 - esrecurse@4.3.0: + jsdom@16.7.0: dependencies: - estraverse: 5.3.0 + abab: 2.0.6 + acorn: 8.16.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.6.0 + domexception: 2.0.1 + escodegen: 2.1.0 + form-data: 3.0.4 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.23 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.5.10 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - estraverse@4.3.0: {} + jsesc@3.1.0: {} - estraverse@5.3.0: {} + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.3.1 - esutils@2.0.3: {} + json-buffer@3.0.1: {} - etag@1.8.1: {} + json-parse-even-better-errors@2.3.1: {} - express-session@1.19.0: + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: dependencies: - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - on-headers: 1.1.0 - parseurl: 1.3.3 - safe-buffer: 5.2.1 - uid-safe: 2.1.5 - transitivePeerDependencies: - - supports-color + minimist: 1.2.8 - express@4.22.1: + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.2.0: dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.4 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.14.2 - range-parser: 1.2.1 + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonpath@1.3.0: + dependencies: + esprima: 1.2.5 + static-eval: 2.1.1 + underscore: 1.13.6 + + jsonpointer@5.0.1: {} + + jsonwebtoken@9.0.3: + dependencies: + jws: 4.0.1 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.7.4 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - extend@3.0.2: {} + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 - fast-deep-equal@3.1.3: {} + jwt-decode@4.0.0: {} - fast-equals@5.4.0: {} + kdbush@4.0.2: {} - fast-json-stable-stringify@2.1.0: {} + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 - fast-levenshtein@2.0.6: {} + kind-of@6.0.3: {} - fast-safe-stringify@2.1.1: {} + kleur@3.0.3: {} - fast-xml-builder@1.1.0: - dependencies: - path-expression-matcher: 1.1.2 + klona@2.0.6: {} - fast-xml-parser@5.4.1: + kruptein@2.2.3: dependencies: - fast-xml-builder: 1.1.0 - strnum: 2.2.0 + asn1.js: 5.4.1 - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 + language-subtag-registry@0.3.23: {} - file-entry-cache@8.0.0: + language-tags@1.0.9: dependencies: - flat-cache: 4.0.1 + language-subtag-registry: 0.3.23 - fill-range@7.1.1: + launch-editor@2.13.2: dependencies: - to-regex-range: 5.0.1 + picocolors: 1.1.1 + shell-quote: 1.8.3 - finalhandler@1.3.2: + leven@3.1.0: {} + + levn@0.4.1: dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color + prelude-ls: 1.2.1 + type-check: 0.4.0 - find-root@1.1.0: {} + lightningcss-android-arm64@1.32.0: + optional: true - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 + lightningcss-darwin-arm64@1.32.0: + optional: true - flat-cache@4.0.1: - dependencies: - flatted: 3.4.1 - keyv: 4.5.4 + lightningcss-darwin-x64@1.32.0: + optional: true - flat@5.0.2: {} + lightningcss-freebsd-x64@1.32.0: + optional: true - flatted@3.4.1: {} + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true - focus-trap-react@10.3.1(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - focus-trap: 7.8.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tabbable: 6.4.0 + lightningcss-linux-arm64-gnu@1.32.0: + optional: true - focus-trap@7.8.0: + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: dependencies: - tabbable: 6.4.0 + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 - follow-redirects@1.15.11: {} + lilconfig@2.1.0: {} - for-each@0.3.5: + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + loader-runner@4.3.1: {} + + loader-utils@2.0.4: dependencies: - is-callable: 1.2.7 + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 - foreground-child@3.3.1: + loader-utils@3.3.1: {} + + locate-path@3.0.0: dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 + p-locate: 3.0.0 + path-exists: 3.0.0 - form-data@4.0.5: + locate-path@5.0.0: dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 + p-locate: 4.1.0 - formidable@3.5.4: + locate-path@6.0.0: dependencies: - '@paralleldrive/cuid2': 2.3.1 - dezalgo: 1.0.4 - once: 1.4.0 + p-locate: 5.0.0 - forwarded@0.2.0: {} + lodash-es@4.17.23: {} - fraction.js@5.3.4: {} + lodash.debounce@4.0.8: {} - fresh@0.5.2: {} + lodash.escaperegexp@4.1.2: {} - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 + lodash.includes@4.3.0: {} - fsevents@2.3.3: - optional: true + lodash.isboolean@3.0.3: {} - function-bind@1.1.2: {} + lodash.isfunction@3.0.9: {} - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 + lodash.isinteger@4.0.4: {} - functions-have-names@1.2.3: {} + lodash.isnil@4.0.0: {} - gaxios@6.7.1: - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0 - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color + lodash.isnumber@3.0.3: {} - gcp-metadata@6.1.1: - dependencies: - gaxios: 6.7.1 - google-logging-utils: 0.0.2 - json-bigint: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color + lodash.isplainobject@4.0.6: {} - generator-function@2.0.1: {} + lodash.isstring@4.0.1: {} - gensync@1.0.0-beta.2: {} + lodash.memoize@4.1.2: {} - get-caller-file@2.0.5: {} + lodash.merge@4.6.2: {} - get-func-name@2.0.2: {} + lodash.once@4.1.1: {} - get-intrinsic@1.2.4: + lodash.sortby@4.7.0: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.23: {} + + log-symbols@4.1.0: dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 + chalk: 4.1.2 + is-unicode-supported: 0.1.0 - get-intrinsic@1.3.0: + long-timeout@0.1.1: {} + + long@5.3.2: {} + + loose-envify@1.4.0: dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 + js-tokens: 4.0.0 - get-proto@1.0.1: + loupe@2.3.7: dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + get-func-name: 2.0.2 - get-symbol-description@1.1.0: + lower-case@2.0.2: dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 + tslib: 2.8.1 - get-tsconfig@4.13.6: + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru.min@1.1.4: {} + + luxon@3.7.2: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.30.21: dependencies: - resolve-pkg-maps: 1.0.0 + '@jridgewell/sourcemap-codec': 1.5.5 - glob-parent@5.1.2: + make-dir@3.1.0: dependencies: - is-glob: 4.0.3 + semver: 6.3.1 - glob-parent@6.0.2: + make-dir@4.0.0: dependencies: - is-glob: 4.0.3 + semver: 7.7.4 - glob@10.5.0: + make-error@1.3.6: {} + + makeerror@1.0.12: dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.9 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 + tmpl: 1.0.5 - globalize@0.1.1: {} + math-intrinsics@1.1.0: {} - globals@14.0.0: {} + mdn-data@2.0.14: {} - globals@17.4.0: {} + mdn-data@2.0.4: {} - globalthis@1.0.4: + media-typer@0.3.0: {} + + memfs@3.5.3: dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 + fs-monkey: 1.1.0 - globrex@0.1.2: {} + memoize-one@6.0.0: {} - google-auth-library@9.15.1: - dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1 - gcp-metadata: 6.1.1 - gtoken: 7.1.0 - jws: 4.0.1 - transitivePeerDependencies: - - encoding - - supports-color + merge-descriptors@1.0.3: {} - google-logging-utils@0.0.2: {} + merge-stream@2.0.0: {} - gopd@1.2.0: {} + merge2@1.4.1: {} - graceful-fs@4.2.11: {} + methods@1.1.2: {} - gtoken@7.1.0: + micromatch@4.0.8: dependencies: - gaxios: 6.7.1 - jws: 4.0.1 - transitivePeerDependencies: - - encoding - - supports-color + braces: 3.0.3 + picomatch: 2.3.1 - has-bigints@1.1.0: {} + mime-db@1.52.0: {} - has-flag@3.0.0: {} + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 - has-flag@4.0.0: {} + mime@1.6.0: {} - has-property-descriptors@1.0.2: + mime@2.6.0: {} + + mimic-fn@2.1.0: {} + + mini-css-extract-plugin@2.10.2(webpack@5.106.1): dependencies: - es-define-property: 1.0.1 + schema-utils: 4.3.3 + tapable: 2.3.2 + webpack: 5.106.1 - has-proto@1.2.0: + minimalistic-assert@1.0.1: {} + + minimatch@10.2.4: dependencies: - dunder-proto: 1.0.1 + brace-expansion: 5.0.4 - has-symbols@1.1.0: {} + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 - has-tostringtag@1.0.2: + minimatch@5.1.9: dependencies: - has-symbols: 1.1.0 + brace-expansion: 2.0.2 - hasown@2.0.2: + minimatch@9.0.9: dependencies: - function-bind: 1.1.2 + brace-expansion: 2.0.2 - he@1.2.0: {} + minimist@1.2.8: {} - hermes-estree@0.25.1: {} + minipass@7.1.3: {} - hermes-parser@0.25.1: + mkdirp@0.5.6: dependencies: - hermes-estree: 0.25.1 + minimist: 1.2.8 - hoist-non-react-statics@3.3.2: + mnemonist@0.38.3: dependencies: - react-is: 16.13.1 + obliterator: 1.6.1 - http-errors@2.0.1: + mocha@11.7.5: dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 + browser-stdout: 1.3.1 + chokidar: 4.0.3 + debug: 4.4.3(supports-color@8.1.1) + diff: 7.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 10.5.0 + he: 1.2.0 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + log-symbols: 4.1.0 + minimatch: 9.0.9 + ms: 2.1.3 + picocolors: 1.1.1 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 9.3.4 + yargs: 17.7.2 + yargs-parser: 21.1.1 + yargs-unparser: 2.0.0 - http_ece@1.2.0: {} + moment-timezone@0.5.48: + dependencies: + moment: 2.30.1 - https-proxy-agent@7.0.6: + moment@2.30.1: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + multicast-dns@7.2.5: dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color + dns-packet: 5.6.1 + thunky: 1.1.0 - husky@9.1.7: {} + mysql2@3.15.3: + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + seq-queue: 0.0.5 + sqlstring: 2.3.3 - iconv-lite@0.4.24: + mz@2.7.0: dependencies: - safer-buffer: 2.1.2 + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 - ignore-by-default@1.0.1: {} + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.4 - ignore@5.3.2: {} + nanoid@3.3.11: {} - ignore@7.0.5: {} + napi-postinstall@0.3.4: {} - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + natural-compare-lite@1.4.0: {} - imurmurhash@0.1.4: {} + natural-compare@1.4.0: {} - inherits@2.0.4: {} + negotiator@0.6.3: {} - internal-slot@1.1.0: + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + no-case@3.0.4: dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 + lower-case: 2.0.2 + tslib: 2.8.1 - invariant@2.2.4: + node-exports-info@1.6.0: dependencies: - loose-envify: 1.4.0 + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 - ipaddr.js@1.9.1: {} + node-fetch-native@1.6.7: {} - is-array-buffer@3.0.5: + node-fetch@2.7.0: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + whatwg-url: 5.0.0 - is-arrayish@0.2.1: {} + node-forge@1.4.0: {} - is-async-function@2.1.1: + node-int64@0.4.0: {} + + node-releases@2.0.27: {} + + node-schedule@2.1.1: dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 + cron-parser: 4.9.0 + long-timeout: 0.1.1 + sorted-array-functions: 1.3.0 - is-bigint@1.1.0: + nodemon@3.1.14: dependencies: - has-bigints: 1.1.0 + chokidar: 3.6.0 + debug: 4.4.3(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 10.2.4 + pstree.remy: 1.1.8 + semver: 7.7.4 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 - is-binary-path@2.1.0: + normalize-path@3.0.0: {} + + normalize-url@6.1.0: {} + + npm-run-path@4.0.1: dependencies: - binary-extensions: 2.3.0 + path-key: 3.1.1 - is-boolean-object@1.2.2: + nth-check@1.0.2: dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 + boolbase: 1.0.0 - is-bun-module@2.0.0: + nth-check@2.1.1: dependencies: - semver: 7.7.4 + boolbase: 1.0.0 - is-callable@1.2.7: {} + nwsapi@2.2.23: {} - is-core-module@2.16.1: + nypm@0.6.5: dependencies: - hasown: 2.0.2 + citty: 0.2.2 + pathe: 2.0.3 + tinyexec: 1.1.1 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 + object-assign@4.1.1: {} - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 + object-hash@3.0.0: {} - is-extglob@2.1.1: {} + object-inspect@1.13.4: {} - is-finalizationregistry@1.1.1: + object-keys@1.1.1: {} + + object.assign@4.1.7: dependencies: + call-bind: 1.0.8 call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 - is-fullwidth-code-point@3.0.0: {} - - is-generator-function@1.1.2: + object.entries@1.1.9: dependencies: + call-bind: 1.0.8 call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 - is-glob@4.0.3: + object.getownpropertydescriptors@2.1.9: dependencies: - is-extglob: 2.1.1 - - is-map@2.0.3: {} + array.prototype.reduce: 1.0.8 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + gopd: 1.2.0 + safe-array-concat: 1.1.3 - is-negative-zero@2.0.3: {} + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 - is-number-object@1.1.1: + object.values@1.2.1: dependencies: + call-bind: 1.0.8 call-bound: 1.0.4 - has-tostringtag: 1.0.2 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 - is-number@7.0.0: {} + obliterator@1.6.1: {} - is-path-inside@3.0.3: {} + obuf@1.1.2: {} - is-plain-obj@2.1.0: {} + ohash@2.0.11: {} - is-regex@1.2.1: + on-finished@2.4.1: dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + ee-first: 1.1.1 - is-set@2.0.3: {} + on-headers@1.1.0: {} - is-shared-array-buffer@1.0.4: + once@1.4.0: dependencies: - call-bound: 1.0.4 + wrappy: 1.0.2 - is-stream@2.0.1: {} + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 - is-string@1.1.1: + open@8.4.2: dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 - is-symbol@1.1.1: + optionator@0.9.4: dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 - is-typed-array@1.1.15: + own-keys@1.0.1: dependencies: - which-typed-array: 1.1.20 + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 - is-typedarray@1.0.0: {} + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 - is-unicode-supported@0.1.0: {} + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 - is-weakmap@2.0.2: {} + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 - is-weakref@1.1.1: + p-locate@4.1.0: dependencies: - call-bound: 1.0.4 + p-limit: 2.3.0 - is-weakset@2.0.3: + p-locate@5.0.0: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + p-limit: 3.1.0 - isarray@2.0.5: {} + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 - isexe@2.0.0: {} + p-try@2.2.0: {} - iterator.prototype@1.1.5: + package-json-from-dist@1.0.1: {} + + param-case@3.0.4: dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 + dot-case: 3.0.4 + tslib: 2.8.1 - jackspeak@3.4.3: + parent-module@1.0.1: dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + callsites: 3.1.0 - jiti@2.6.1: {} + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.0 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 - js-object-utilities@2.2.1: {} + parse5@6.0.1: {} - js-tokens@4.0.0: {} + parseurl@1.3.3: {} - js-yaml@4.1.1: + pascal-case@3.1.2: dependencies: - argparse: 2.0.1 + no-case: 3.0.4 + tslib: 2.8.1 - jsesc@3.1.0: {} + passport-strategy@1.0.0: {} - json-bigint@1.0.0: + passport@0.7.0: dependencies: - bignumber.js: 9.3.1 - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} + passport-strategy: 1.0.0 + pause: 0.0.1 + utils-merge: 1.0.1 - json-schema-traverse@0.4.1: {} + path-exists@3.0.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} + path-exists@4.0.0: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 + path-expression-matcher@1.1.2: {} - json5@2.2.3: {} + path-is-absolute@1.0.1: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 + path-key@3.1.1: {} - jsonwebtoken@9.0.3: - dependencies: - jws: 4.0.1 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.4 + path-parse@1.0.7: {} - jsx-ast-utils@3.3.5: + path-scurry@1.11.1: dependencies: - array-includes: 3.1.9 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 + lru-cache: 10.4.3 + minipass: 7.1.3 - jwa@2.0.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 + path-to-regexp@0.1.12: {} - jws@4.0.1: - dependencies: - jwa: 2.0.1 - safe-buffer: 5.2.1 + path-type@4.0.0: {} - jwt-decode@4.0.0: {} + pathe@2.0.3: {} - kdbush@4.0.2: {} + pathval@1.1.1: {} - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 + pause@0.0.1: {} - kruptein@2.2.3: - dependencies: - asn1.js: 5.4.1 + perfect-debounce@1.0.0: {} - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + performance-now@2.1.0: {} - lightningcss-android-arm64@1.32.0: + pg-cloudflare@1.3.0: optional: true - lightningcss-darwin-arm64@1.32.0: - optional: true + pg-connection-string@2.12.0: {} - lightningcss-darwin-x64@1.32.0: - optional: true + pg-int8@1.0.1: {} - lightningcss-freebsd-x64@1.32.0: - optional: true + pg-pool@3.13.0(pg@8.20.0): + dependencies: + pg: 8.20.0 - lightningcss-linux-arm-gnueabihf@1.32.0: - optional: true + pg-protocol@1.13.0: {} - lightningcss-linux-arm64-gnu@1.32.0: - optional: true + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.1 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 - lightningcss-linux-arm64-musl@1.32.0: - optional: true + pg@8.20.0: + dependencies: + pg-connection-string: 2.12.0 + pg-pool: 3.13.0(pg@8.20.0) + pg-protocol: 1.13.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.3.0 - lightningcss-linux-x64-gnu@1.32.0: - optional: true + pgpass@1.0.5: + dependencies: + split2: 4.2.0 - lightningcss-linux-x64-musl@1.32.0: - optional: true + picocolors@0.2.1: {} - lightningcss-win32-arm64-msvc@1.32.0: - optional: true + picocolors@1.1.1: {} - lightningcss-win32-x64-msvc@1.32.0: - optional: true + picomatch@2.3.1: {} - lightningcss@1.32.0: - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 + picomatch@4.0.3: {} - lines-and-columns@1.2.4: {} + pify@2.3.0: {} - locate-path@6.0.0: + pirates@4.0.7: {} + + pkg-dir@4.2.0: dependencies: - p-locate: 5.0.0 + find-up: 4.1.0 - lodash-es@4.17.23: {} + pkg-types@2.3.0: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 - lodash.escaperegexp@4.1.2: {} + pkg-up@3.1.0: + dependencies: + find-up: 3.0.0 - lodash.includes@4.3.0: {} + possible-typed-array-names@1.1.0: {} - lodash.isboolean@3.0.3: {} + postcss-attribute-case-insensitive@5.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - lodash.isfunction@3.0.9: {} + postcss-browser-comments@4.0.0(browserslist@4.28.1)(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 - lodash.isinteger@4.0.4: {} + postcss-calc@8.2.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 - lodash.isnil@4.0.0: {} + postcss-clamp@4.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash.isnumber@3.0.3: {} + postcss-color-functional-notation@4.2.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash.isplainobject@4.0.6: {} + postcss-color-hex-alpha@8.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash.isstring@4.0.1: {} + postcss-color-rebeccapurple@7.1.1(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash.merge@4.6.2: {} + postcss-colormin@5.3.1(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash.once@4.1.1: {} + postcss-convert-values@5.1.3(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - lodash@4.17.23: {} + postcss-custom-media@8.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - log-symbols@4.1.0: + postcss-custom-properties@12.1.11(postcss@8.5.8): dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - long-timeout@0.1.1: {} + postcss-custom-selectors@6.0.3(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - loose-envify@1.4.0: + postcss-dir-pseudo-class@6.0.5(postcss@8.5.8): dependencies: - js-tokens: 4.0.0 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - loupe@2.3.7: + postcss-discard-comments@5.1.2(postcss@8.5.8): dependencies: - get-func-name: 2.0.2 + postcss: 8.5.8 - lru-cache@10.4.3: {} + postcss-discard-duplicates@5.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - lru-cache@5.1.1: + postcss-discard-empty@5.1.1(postcss@8.5.8): dependencies: - yallist: 3.1.1 + postcss: 8.5.8 - luxon@3.7.2: {} + postcss-discard-overridden@5.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - magic-string@0.30.21: + postcss-double-position-gradients@3.1.2(postcss@8.5.8): dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - make-error@1.3.6: {} + postcss-env-function@4.0.6(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - math-intrinsics@1.1.0: {} + postcss-flexbugs-fixes@5.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - media-typer@0.3.0: {} + postcss-focus-visible@6.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - memoize-one@6.0.0: {} + postcss-focus-within@5.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - merge-descriptors@1.0.3: {} + postcss-font-variant@5.0.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - methods@1.1.2: {} + postcss-gap-properties@3.0.5(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - mime-db@1.52.0: {} + postcss-image-set-function@4.0.7(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - mime-types@2.1.35: + postcss-import@15.1.0(postcss@8.5.8): dependencies: - mime-db: 1.52.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.11 - mime@1.6.0: {} + postcss-initial@4.0.1(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - mime@2.6.0: {} + postcss-js@4.1.0(postcss@8.5.8): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.8 - minimalistic-assert@1.0.1: {} + postcss-lab-function@4.2.1(postcss@8.5.8): + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - minimatch@10.2.4: + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8): dependencies: - brace-expansion: 5.0.4 + lilconfig: 3.1.3 + optionalDependencies: + jiti: 1.21.7 + postcss: 8.5.8 - minimatch@3.1.5: + postcss-loader@6.2.1(postcss@8.5.8)(webpack@5.106.1): dependencies: - brace-expansion: 1.1.12 + cosmiconfig: 7.1.0 + klona: 2.0.6 + postcss: 8.5.8 + semver: 7.7.4 + webpack: 5.106.1 - minimatch@9.0.9: + postcss-logical@5.0.4(postcss@8.5.8): dependencies: - brace-expansion: 2.0.2 + postcss: 8.5.8 - minimist@1.2.8: {} + postcss-media-minmax@5.0.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - minipass@7.1.3: {} + postcss-merge-longhand@5.1.7(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.5.8) - mnemonist@0.38.3: + postcss-merge-rules@5.1.4(postcss@8.5.8): dependencies: - obliterator: 1.6.1 + browserslist: 4.28.1 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - mocha@11.7.5: + postcss-minify-font-values@5.1.0(postcss@8.5.8): dependencies: - browser-stdout: 1.3.1 - chokidar: 4.0.3 - debug: 4.4.3(supports-color@8.1.1) - diff: 7.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 10.5.0 - he: 1.2.0 - is-path-inside: 3.0.3 - js-yaml: 4.1.1 - log-symbols: 4.1.0 - minimatch: 9.0.9 - ms: 2.1.3 - picocolors: 1.1.1 - serialize-javascript: 6.0.2 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 9.3.4 - yargs: 17.7.2 - yargs-parser: 21.1.1 - yargs-unparser: 2.0.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - moment-timezone@0.5.48: + postcss-minify-gradients@5.1.1(postcss@8.5.8): dependencies: - moment: 2.30.1 + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - moment@2.30.1: {} + postcss-minify-params@5.1.4(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + cssnano-utils: 3.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - ms@2.0.0: {} + postcss-minify-selectors@5.2.1(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - ms@2.1.3: {} + postcss-modules-extract-imports@3.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - nanoid@3.3.11: {} + postcss-modules-local-by-default@4.2.0(postcss@8.5.8): + dependencies: + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-selector-parser: 7.1.1 + postcss-value-parser: 4.2.0 - napi-postinstall@0.3.4: {} + postcss-modules-scope@3.2.1(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 7.1.1 - natural-compare@1.4.0: {} + postcss-modules-values@4.0.0(postcss@8.5.8): + dependencies: + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 - negotiator@0.6.3: {} + postcss-nested@6.2.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - node-exports-info@1.6.0: + postcss-nesting@10.2.0(postcss@8.5.8): dependencies: - array.prototype.flatmap: 1.3.3 - es-errors: 1.3.0 - object.entries: 1.1.9 - semver: 6.3.1 + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - node-fetch@2.7.0: + postcss-normalize-charset@5.1.0(postcss@8.5.8): dependencies: - whatwg-url: 5.0.0 + postcss: 8.5.8 - node-releases@2.0.27: {} + postcss-normalize-display-values@5.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - node-schedule@2.1.1: + postcss-normalize-positions@5.1.1(postcss@8.5.8): dependencies: - cron-parser: 4.9.0 - long-timeout: 0.1.1 - sorted-array-functions: 1.3.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - nodemon@3.1.14: + postcss-normalize-repeat-style@5.1.1(postcss@8.5.8): dependencies: - chokidar: 3.6.0 - debug: 4.4.3(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 10.2.4 - pstree.remy: 1.1.8 - semver: 7.7.4 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.1 - undefsafe: 2.0.5 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - normalize-path@3.0.0: {} + postcss-normalize-string@5.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object-assign@4.1.1: {} + postcss-normalize-timing-functions@5.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object-inspect@1.13.4: {} + postcss-normalize-unicode@5.1.1(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object-keys@1.1.1: {} + postcss-normalize-url@5.1.0(postcss@8.5.8): + dependencies: + normalize-url: 6.1.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object.assign@4.1.7: + postcss-normalize-whitespace@5.1.1(postcss@8.5.8): dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object.entries@1.1.9: + postcss-normalize@10.0.1(browserslist@4.28.1)(postcss@8.5.8): dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 + '@csstools/normalize.css': 12.1.1 + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-browser-comments: 4.0.0(browserslist@4.28.1)(postcss@8.5.8) + sanitize.css: 13.0.0 - object.fromentries@2.0.8: + postcss-opacity-percentage@1.1.3(postcss@8.5.8): dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 + postcss: 8.5.8 - object.groupby@1.0.3: + postcss-ordered-values@5.1.3(postcss@8.5.8): dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 + cssnano-utils: 3.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - object.values@1.2.1: + postcss-overflow-shorthand@3.0.4(postcss@8.5.8): dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - obliterator@1.6.1: {} + postcss-page-break@3.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 - on-finished@2.4.1: + postcss-place@7.0.5(postcss@8.5.8): dependencies: - ee-first: 1.1.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - on-headers@1.1.0: {} + postcss-preset-env@7.8.3(postcss@8.5.8): + dependencies: + '@csstools/postcss-cascade-layers': 1.1.1(postcss@8.5.8) + '@csstools/postcss-color-function': 1.1.1(postcss@8.5.8) + '@csstools/postcss-font-format-keywords': 1.0.1(postcss@8.5.8) + '@csstools/postcss-hwb-function': 1.0.2(postcss@8.5.8) + '@csstools/postcss-ic-unit': 1.0.1(postcss@8.5.8) + '@csstools/postcss-is-pseudo-class': 2.0.7(postcss@8.5.8) + '@csstools/postcss-nested-calc': 1.0.0(postcss@8.5.8) + '@csstools/postcss-normalize-display-values': 1.0.1(postcss@8.5.8) + '@csstools/postcss-oklab-function': 1.1.1(postcss@8.5.8) + '@csstools/postcss-progressive-custom-properties': 1.3.0(postcss@8.5.8) + '@csstools/postcss-stepped-value-functions': 1.0.1(postcss@8.5.8) + '@csstools/postcss-text-decoration-shorthand': 1.0.0(postcss@8.5.8) + '@csstools/postcss-trigonometric-functions': 1.0.2(postcss@8.5.8) + '@csstools/postcss-unset-value': 1.0.2(postcss@8.5.8) + autoprefixer: 10.4.27(postcss@8.5.8) + browserslist: 4.28.1 + css-blank-pseudo: 3.0.3(postcss@8.5.8) + css-has-pseudo: 3.0.4(postcss@8.5.8) + css-prefers-color-scheme: 6.0.3(postcss@8.5.8) + cssdb: 7.11.2 + postcss: 8.5.8 + postcss-attribute-case-insensitive: 5.0.2(postcss@8.5.8) + postcss-clamp: 4.1.0(postcss@8.5.8) + postcss-color-functional-notation: 4.2.4(postcss@8.5.8) + postcss-color-hex-alpha: 8.0.4(postcss@8.5.8) + postcss-color-rebeccapurple: 7.1.1(postcss@8.5.8) + postcss-custom-media: 8.0.2(postcss@8.5.8) + postcss-custom-properties: 12.1.11(postcss@8.5.8) + postcss-custom-selectors: 6.0.3(postcss@8.5.8) + postcss-dir-pseudo-class: 6.0.5(postcss@8.5.8) + postcss-double-position-gradients: 3.1.2(postcss@8.5.8) + postcss-env-function: 4.0.6(postcss@8.5.8) + postcss-focus-visible: 6.0.4(postcss@8.5.8) + postcss-focus-within: 5.0.4(postcss@8.5.8) + postcss-font-variant: 5.0.0(postcss@8.5.8) + postcss-gap-properties: 3.0.5(postcss@8.5.8) + postcss-image-set-function: 4.0.7(postcss@8.5.8) + postcss-initial: 4.0.1(postcss@8.5.8) + postcss-lab-function: 4.2.1(postcss@8.5.8) + postcss-logical: 5.0.4(postcss@8.5.8) + postcss-media-minmax: 5.0.0(postcss@8.5.8) + postcss-nesting: 10.2.0(postcss@8.5.8) + postcss-opacity-percentage: 1.1.3(postcss@8.5.8) + postcss-overflow-shorthand: 3.0.4(postcss@8.5.8) + postcss-page-break: 3.0.4(postcss@8.5.8) + postcss-place: 7.0.5(postcss@8.5.8) + postcss-pseudo-class-any-link: 7.1.6(postcss@8.5.8) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.8) + postcss-selector-not: 6.0.1(postcss@8.5.8) + postcss-value-parser: 4.2.0 - once@1.4.0: + postcss-pseudo-class-any-link@7.1.6(postcss@8.5.8): dependencies: - wrappy: 1.0.2 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + + postcss-reduce-initial@5.1.2(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + postcss: 8.5.8 - optionator@0.9.4: + postcss-reduce-transforms@5.1.0(postcss@8.5.8): dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 - own-keys@1.0.1: + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.8): dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 + postcss: 8.5.8 - p-limit@3.1.0: + postcss-selector-not@6.0.1(postcss@8.5.8): dependencies: - yocto-queue: 0.1.0 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - p-locate@5.0.0: + postcss-selector-parser@6.1.2: dependencies: - p-limit: 3.1.0 + cssesc: 3.0.0 + util-deprecate: 1.0.2 - package-json-from-dist@1.0.1: {} + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 - parent-module@1.0.1: + postcss-svgo@5.1.0(postcss@8.5.8): dependencies: - callsites: 3.1.0 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + svgo: 2.8.2 - parse-json@5.2.0: + postcss-unique-selectors@5.1.1(postcss@8.5.8): dependencies: - '@babel/code-frame': 7.29.0 - error-ex: 1.3.4 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - parseurl@1.3.3: {} + postcss-value-parser@4.2.0: {} - passport-strategy@1.0.0: {} + postcss@7.0.39: + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 - passport@0.7.0: + postcss@8.5.8: dependencies: - passport-strategy: 1.0.0 - pause: 0.0.1 - utils-merge: 1.0.1 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - path-exists@4.0.0: {} + postgres-array@2.0.0: {} - path-expression-matcher@1.1.2: {} + postgres-array@3.0.4: {} - path-key@3.1.1: {} + postgres-bytea@1.0.1: {} - path-parse@1.0.7: {} + postgres-date@1.0.7: {} - path-scurry@1.11.1: + postgres-interval@1.2.0: dependencies: - lru-cache: 10.4.3 - minipass: 7.1.3 + xtend: 4.0.2 - path-to-regexp@0.1.12: {} + postgres@3.4.7: {} - path-type@4.0.0: {} + prelude-ls@1.2.1: {} - pathval@1.1.1: {} + prettier@2.8.8: {} - pause@0.0.1: {} + pretty-bytes@5.6.0: {} - picocolors@1.1.1: {} + pretty-error@4.0.0: + dependencies: + lodash: 4.17.23 + renderkid: 3.0.0 - picomatch@2.3.2: {} + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 - picomatch@4.0.4: {} + pretty-format@28.1.3: + dependencies: + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.3.1 - possible-typed-array-names@1.1.0: {} + prisma@7.7.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3): + dependencies: + '@prisma/config': 7.7.0 + '@prisma/dev': 0.24.3(typescript@5.9.3) + '@prisma/engines': 7.7.0 + '@prisma/studio-core': 0.27.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + mysql2: 3.15.3 + postgres: 3.4.7 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - magicast + - react + - react-dom - postcss-value-parser@4.2.0: {} + process-nextick-args@2.0.1: {} - postcss@8.5.8: + promise@8.3.0: dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} + asap: 2.0.6 - prettier@2.8.8: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 prop-types@15.8.1: dependencies: @@ -8294,6 +16716,12 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -8301,10 +16729,18 @@ snapshots: proxy-from-env@1.1.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 + pstree.remy@1.1.8: {} punycode@2.3.1: {} + pure-rand@6.1.0: {} + + q@1.5.1: {} + qs@6.14.2: dependencies: side-channel: 1.1.0 @@ -8313,6 +16749,14 @@ snapshots: dependencies: side-channel: 1.1.0 + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + raf@3.4.1: + dependencies: + performance-now: 2.1.0 + random-bytes@1.0.0: {} randombytes@2.1.0: @@ -8328,6 +16772,20 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + rc9@2.1.2: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + + react-app-polyfill@3.0.0: + dependencies: + core-js: 3.49.0 + object-assign: 4.1.1 + promise: 8.3.0 + raf: 3.4.1 + regenerator-runtime: 0.13.11 + whatwg-fetch: 3.6.20 + react-big-calendar@1.19.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.6 @@ -8359,18 +16817,58 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-dev-utils@12.0.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)(webpack@5.106.1): + dependencies: + '@babel/code-frame': 7.29.0 + address: 1.2.2 + browserslist: 4.28.1 + chalk: 4.1.2 + cross-spawn: 7.0.6 + detect-port-alt: 1.1.6 + escape-string-regexp: 4.0.0 + filesize: 8.0.7 + find-up: 5.0.0 + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)(webpack@5.106.1) + global-modules: 2.0.0 + globby: 11.1.0 + gzip-size: 6.0.0 + immer: 9.0.21 + is-root: 2.1.0 + loader-utils: 3.3.1 + open: 8.4.2 + pkg-up: 3.1.0 + prompts: 2.4.2 + react-error-overlay: 6.1.0 + recursive-readdir: 2.2.3 + shell-quote: 1.8.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + webpack: 5.106.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - eslint + - supports-color + - vue-template-compiler + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 + react-error-overlay@6.1.0: {} + react-hook-form@7.71.2(react@18.3.1): dependencies: react: 18.3.1 react-is@16.13.1: {} + react-is@17.0.2: {} + + react-is@18.3.1: {} + react-is@19.2.4: {} react-lifecycles-compat@3.0.4: {} @@ -8388,6 +16886,8 @@ snapshots: uncontrollable: 7.2.1(react@18.3.1) warning: 4.0.3 + react-refresh@0.11.0: {} + react-refresh@0.18.0: {} react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -8408,6 +16908,95 @@ snapshots: '@remix-run/router': 1.23.2 react: 18.3.1 + react-scripts@5.0.1(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(@types/babel__core@7.20.5)(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7))(react@18.3.1)(ts-node@9.1.1(typescript@5.9.3))(type-fest@0.21.3)(typescript@5.9.3): + dependencies: + '@babel/core': 7.29.0 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.2(webpack@5.106.1))(webpack@5.106.1) + '@svgr/webpack': 5.5.0 + babel-jest: 27.5.1(@babel/core@7.29.0) + babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.106.1) + babel-plugin-named-asset-import: 0.3.8(@babel/core@7.29.0) + babel-preset-react-app: 10.1.0 + bfj: 7.1.0 + browserslist: 4.28.1 + camelcase: 6.3.0 + case-sensitive-paths-webpack-plugin: 2.4.0 + css-loader: 6.11.0(webpack@5.106.1) + css-minimizer-webpack-plugin: 3.4.1(webpack@5.106.1) + dotenv: 10.0.0 + dotenv-expand: 5.1.0 + eslint: 9.39.4(jiti@1.21.7) + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@1.21.7))(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3) + eslint-webpack-plugin: 3.2.0(eslint@9.39.4(jiti@1.21.7))(webpack@5.106.1) + file-loader: 6.2.0(webpack@5.106.1) + fs-extra: 10.1.0 + html-webpack-plugin: 5.6.6(webpack@5.106.1) + identity-obj-proxy: 3.0.0 + jest: 27.5.1(ts-node@9.1.1(typescript@5.9.3)) + jest-resolve: 27.5.1 + jest-watch-typeahead: 1.1.0(jest@27.5.1(ts-node@9.1.1(typescript@5.9.3))) + mini-css-extract-plugin: 2.10.2(webpack@5.106.1) + postcss: 8.5.8 + postcss-flexbugs-fixes: 5.0.2(postcss@8.5.8) + postcss-loader: 6.2.1(postcss@8.5.8)(webpack@5.106.1) + postcss-normalize: 10.0.1(browserslist@4.28.1)(postcss@8.5.8) + postcss-preset-env: 7.8.3(postcss@8.5.8) + prompts: 2.4.2 + react: 18.3.1 + react-app-polyfill: 3.0.0 + react-dev-utils: 12.0.1(eslint@9.39.4(jiti@1.21.7))(typescript@5.9.3)(webpack@5.106.1) + react-refresh: 0.11.0 + resolve: 1.22.11 + resolve-url-loader: 4.0.0 + sass-loader: 12.6.0(webpack@5.106.1) + semver: 7.7.4 + source-map-loader: 3.0.2(webpack@5.106.1) + style-loader: 3.3.4(webpack@5.106.1) + tailwindcss: 3.4.19 + terser-webpack-plugin: 5.4.0(webpack@5.106.1) + webpack: 5.106.1 + webpack-dev-server: 4.15.2(webpack@5.106.1) + webpack-manifest-plugin: 4.1.1(webpack@5.106.1) + workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.106.1) + optionalDependencies: + fsevents: 2.3.3 + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@types/babel__core' + - '@types/webpack' + - bufferutil + - canvas + - clean-css + - csso + - debug + - esbuild + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - fibers + - node-notifier + - node-sass + - rework + - rework-visit + - sass + - sass-embedded + - sockjs-client + - supports-color + - ts-node + - tsx + - type-fest + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + - webpack-hot-middleware + - webpack-plugin-serve + - yaml + react-select@5.10.2(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.6 @@ -8443,12 +17032,36 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readdirp@3.6.0: dependencies: - picomatch: 2.3.2 + picomatch: 2.3.1 readdirp@4.1.2: {} + recursive-readdir@2.2.3: + dependencies: + minimatch: 3.1.5 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -8460,6 +17073,16 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.13.11: {} + + regex-parser@2.3.1: {} + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -8469,12 +17092,59 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.1: + dependencies: + jsesc: 3.1.0 + + relateurl@0.2.7: {} + + remeda@2.33.4: {} + + renderkid@3.0.0: + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.23 + strip-ansi: 6.0.1 + require-directory@2.1.1: {} + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + resolve-from@4.0.0: {} + resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve-url-loader@4.0.0: + dependencies: + adjust-sourcemap-loader: 4.0.0 + convert-source-map: 1.9.0 + loader-utils: 2.0.4 + postcss: 7.0.39 + source-map: 0.6.1 + + resolve.exports@1.1.1: {} + resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -8492,37 +17162,61 @@ snapshots: retry@0.12.0: {} - rollup@4.60.1: + retry@0.13.1: {} + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup-plugin-terser@7.0.2(rollup@2.80.0): + dependencies: + '@babel/code-frame': 7.29.0 + jest-worker: 26.6.2 + rollup: 2.80.0 + serialize-javascript: 4.0.0 + terser: 5.46.1 + + rollup@2.80.0: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.59.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.1 - '@rollup/rollup-android-arm64': 4.60.1 - '@rollup/rollup-darwin-arm64': 4.60.1 - '@rollup/rollup-darwin-x64': 4.60.1 - '@rollup/rollup-freebsd-arm64': 4.60.1 - '@rollup/rollup-freebsd-x64': 4.60.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 - '@rollup/rollup-linux-arm-musleabihf': 4.60.1 - '@rollup/rollup-linux-arm64-gnu': 4.60.1 - '@rollup/rollup-linux-arm64-musl': 4.60.1 - '@rollup/rollup-linux-loong64-gnu': 4.60.1 - '@rollup/rollup-linux-loong64-musl': 4.60.1 - '@rollup/rollup-linux-ppc64-gnu': 4.60.1 - '@rollup/rollup-linux-ppc64-musl': 4.60.1 - '@rollup/rollup-linux-riscv64-gnu': 4.60.1 - '@rollup/rollup-linux-riscv64-musl': 4.60.1 - '@rollup/rollup-linux-s390x-gnu': 4.60.1 - '@rollup/rollup-linux-x64-gnu': 4.60.1 - '@rollup/rollup-linux-x64-musl': 4.60.1 - '@rollup/rollup-openbsd-x64': 4.60.1 - '@rollup/rollup-openharmony-arm64': 4.60.1 - '@rollup/rollup-win32-arm64-msvc': 4.60.1 - '@rollup/rollup-win32-ia32-msvc': 4.60.1 - '@rollup/rollup-win32-x64-gnu': 4.60.1 - '@rollup/rollup-win32-x64-msvc': 4.60.1 + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 fsevents: 2.3.3 + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -8531,6 +17225,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -8546,12 +17242,58 @@ snapshots: safer-buffer@2.1.2: {} + sanitize.css@13.0.0: {} + + sass-loader@12.6.0(webpack@5.106.1): + dependencies: + klona: 2.0.6 + neo-async: 2.6.2 + webpack: 5.106.1 + + sax@1.2.4: {} + sax@1.5.0: {} + saxes@5.0.1: + dependencies: + xmlchars: 2.2.0 + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 + schema-utils@2.7.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) + + schema-utils@2.7.1: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.18.0 + ajv-formats: 2.1.1(ajv@8.18.0) + ajv-keywords: 5.1.0(ajv@8.18.0) + + select-hose@2.0.0: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.14 + node-forge: 1.4.0 + semver@6.3.1: {} semver@7.7.4: {} @@ -8574,10 +17316,28 @@ snapshots: transitivePeerDependencies: - supports-color + seq-queue@0.0.5: {} + + serialize-javascript@4.0.0: + dependencies: + randombytes: 2.1.0 + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 + serve-index@1.9.2: + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.8.1 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + serve-static@1.16.3: dependencies: encodeurl: 2.0.0 @@ -8626,6 +17386,8 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.3: {} + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -8662,10 +17424,31 @@ snapshots: dependencies: semver: 7.7.4 + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slash@4.0.0: {} + + sockjs@0.3.24: + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + sorted-array-functions@1.3.0: {} + source-list-map@2.0.1: {} + source-map-js@1.2.1: {} + source-map-loader@3.0.2(webpack@5.106.1): + dependencies: + abab: 2.0.6 + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.106.1 + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -8675,15 +17458,78 @@ snapshots: source-map@0.6.1: {} + source-map@0.7.6: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + sourcemap-codec@1.4.8: {} + + spdy-transport@3.0.0: + dependencies: + debug: 4.4.3 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + + spdy@4.0.2: + dependencies: + debug: 4.4.3 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + + split2@4.2.0: {} + + sprintf-js@1.0.3: {} + + sqlstring@2.3.3: {} + stable-hash-x@0.2.0: {} + stable@0.1.8: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + stackframe@1.3.4: {} + + static-eval@2.1.1: + dependencies: + escodegen: 2.1.0 + + statuses@1.5.0: {} + statuses@2.0.2: {} + std-env@3.10.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-length@5.0.1: + dependencies: + char-regex: 2.0.2 + strip-ansi: 7.2.0 + + string-natural-compare@3.0.1: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -8696,6 +17542,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.2.0 + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 @@ -8740,6 +17592,20 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -8750,12 +17616,38 @@ snapshots: strip-bom@3.0.0: {} + strip-bom@4.0.0: {} + + strip-comments@2.0.1: {} + + strip-final-newline@2.0.0: {} + strip-json-comments@3.1.1: {} strnum@2.2.0: {} + style-loader@3.3.4(webpack@5.106.1): + dependencies: + webpack: 5.106.1 + + stylehacks@5.1.1(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + stylis@4.2.0: {} + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + superagent@10.3.0: dependencies: component-emitter: 1.3.1 @@ -8794,23 +17686,136 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} + svg-parser@2.0.4: {} + + svgo@1.3.2: + dependencies: + chalk: 2.4.2 + coa: 2.0.2 + css-select: 2.1.0 + css-select-base-adapter: 0.1.1 + css-tree: 1.0.0-alpha.37 + csso: 4.2.0 + js-yaml: 3.14.2 + mkdirp: 0.5.6 + object.values: 1.2.1 + sax: 1.2.4 + stable: 0.1.8 + unquote: 1.1.1 + util.promisify: 1.0.1 + + svgo@2.8.2: + dependencies: + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.1.1 + sax: 1.5.0 + stable: 0.1.8 + + symbol-tree@3.2.4: {} + tabbable@6.4.0: {} + tailwindcss@3.4.19: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.8 + postcss-import: 15.1.0(postcss@8.5.8) + postcss-js: 4.1.0(postcss@8.5.8) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8) + postcss-nested: 6.2.0(postcss@8.5.8) + postcss-selector-parser: 6.1.2 + resolve: 1.22.11 + sucrase: 3.35.1 + transitivePeerDependencies: + - tsx + - yaml + tailwindcss@4.2.2: {} + tapable@1.1.3: {} + tapable@2.3.2: {} - tinyglobby@0.2.15: + temp-dir@2.0.0: {} + + tempy@0.6.0: + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + terser-webpack-plugin@5.4.0(webpack@5.106.1): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.46.1 + webpack: 5.106.1 + + terser@5.46.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.16.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.5 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + throat@6.0.2: {} + + thunky@1.1.0: {} - tinyglobby@0.2.16: + tinyexec@1.1.1: {} + + tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tmpl@1.0.5: {} to-regex-range@5.0.1: dependencies: @@ -8820,12 +17825,31 @@ snapshots: touch@3.1.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tr46@2.1.0: + dependencies: + punycode: 2.3.1 + + tryer@1.0.1: {} + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 + ts-interface-checker@0.1.13: {} + ts-node@9.1.1(typescript@5.9.3): dependencies: arg: 4.1.3 @@ -8847,14 +17871,27 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@1.14.1: {} + tslib@2.8.1: {} + tsutils@3.21.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + type-detect@4.0.8: {} + type-detect@4.1.0: {} + type-fest@0.16.0: {} + + type-fest@0.21.3: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -8920,12 +17957,35 @@ snapshots: undefsafe@2.0.5: {} + underscore@1.13.6: {} + undici-types@6.21.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + universalify@0.1.2: {} + universalify@0.2.0: {} + + universalify@2.0.1: {} + unpipe@1.0.0: {} + unquote@1.1.1: {} + unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.4 @@ -8950,6 +18010,8 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + upath@1.2.0: {} + update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -8960,53 +18022,103 @@ snapshots: dependencies: punycode: 2.3.1 + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + use-isomorphic-layout-effect@1.2.1(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.28 + util-deprecate@1.0.2: {} + + util.promisify@1.0.1: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.1 + has-symbols: 1.1.0 + object.getownpropertydescriptors: 2.1.9 + + utila@0.4.0: {} + utils-merge@1.0.1: {} uuid@10.0.0: {} uuid@13.0.0: {} + uuid@8.3.2: {} + uuid@9.0.1: {} + v8-to-istanbul@8.1.1: + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 1.9.0 + source-map: 0.7.6 + + valibot@1.2.0(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + validator@13.15.26: {} vary@1.1.2: {} - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0) + vite: 7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1) transitivePeerDependencies: - supports-color - typescript - vite@7.3.2(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0): + vite@7.3.2(@types/node@22.19.15)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.46.1): dependencies: - esbuild: 0.27.7 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 postcss: 8.5.8 - rollup: 4.60.1 - tinyglobby: 0.2.16 + rollup: 4.59.0 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.15 fsevents: 2.3.3 - jiti: 2.6.1 + jiti: 1.21.7 lightningcss: 1.32.0 + terser: 5.46.1 + + w3c-hr-time@1.0.2: + dependencies: + browser-process-hrtime: 1.0.0 + + w3c-xmlserializer@2.0.0: + dependencies: + xml-name-validator: 3.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 warning@4.0.3: dependencies: loose-envify: 1.4.0 + watchpack@2.5.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wbuf@1.7.3: + dependencies: + minimalistic-assert: 1.0.1 + web-push@3.6.7: dependencies: asn1.js: 5.4.1 @@ -9019,11 +18131,144 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + + webidl-conversions@5.0.0: {} + + webidl-conversions@6.1.0: {} + + webpack-dev-middleware@5.3.4(webpack@5.106.1): + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.3.3 + webpack: 5.106.1 + + webpack-dev-server@4.15.2(webpack@5.106.1): + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.25 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.10 + '@types/sockjs': 0.3.36 + '@types/ws': 8.18.1 + ansi-html-community: 0.0.8 + bonjour-service: 1.3.0 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.8.1 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.22.1 + graceful-fs: 4.2.11 + html-entities: 2.6.0 + http-proxy-middleware: 2.0.9(@types/express@4.17.25) + ipaddr.js: 2.3.0 + launch-editor: 2.13.2 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.3.3 + selfsigned: 2.4.1 + serve-index: 1.9.2 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack-dev-middleware: 5.3.4(webpack@5.106.1) + ws: 8.20.0 + optionalDependencies: + webpack: 5.106.1 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + webpack-manifest-plugin@4.1.1(webpack@5.106.1): + dependencies: + tapable: 2.3.2 + webpack: 5.106.1 + webpack-sources: 2.3.1 + + webpack-sources@1.4.3: + dependencies: + source-list-map: 2.0.1 + source-map: 0.6.1 + + webpack-sources@2.3.1: + dependencies: + source-list-map: 2.0.1 + source-map: 0.6.1 + + webpack-sources@3.3.4: {} + + webpack@5.106.1: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) + browserslist: 4.28.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.20.1 + es-module-lexer: 2.0.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.2 + terser-webpack-plugin: 5.4.0(webpack@5.106.1) + watchpack: 2.5.1 + webpack-sources: 3.3.4 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.10 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + whatwg-encoding@1.0.5: + dependencies: + iconv-lite: 0.4.24 + + whatwg-fetch@3.6.20: {} + + whatwg-mimetype@2.3.0: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + whatwg-url@8.7.0: + dependencies: + lodash: 4.17.23 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -9065,12 +18310,141 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 word-wrap@1.2.5: {} + workbox-background-sync@6.6.0: + dependencies: + idb: 7.1.1 + workbox-core: 6.6.0 + + workbox-broadcast-update@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-build@6.6.0(@types/babel__core@7.20.5): + dependencies: + '@apideck/better-ajv-errors': 0.3.7(ajv@8.18.0) + '@babel/core': 7.29.0 + '@babel/preset-env': 7.29.2(@babel/core@7.29.0) + '@babel/runtime': 7.28.6 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.80.0) + '@rollup/plugin-replace': 2.4.2(rollup@2.80.0) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.18.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.23 + pretty-bytes: 5.6.0 + rollup: 2.80.0 + rollup-plugin-terser: 7.0.2(rollup@2.80.0) + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 6.6.0 + workbox-broadcast-update: 6.6.0 + workbox-cacheable-response: 6.6.0 + workbox-core: 6.6.0 + workbox-expiration: 6.6.0 + workbox-google-analytics: 6.6.0 + workbox-navigation-preload: 6.6.0 + workbox-precaching: 6.6.0 + workbox-range-requests: 6.6.0 + workbox-recipes: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 + workbox-streams: 6.6.0 + workbox-sw: 6.6.0 + workbox-window: 6.6.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + + workbox-cacheable-response@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-core@6.6.0: {} + + workbox-expiration@6.6.0: + dependencies: + idb: 7.1.1 + workbox-core: 6.6.0 + + workbox-google-analytics@6.6.0: + dependencies: + workbox-background-sync: 6.6.0 + workbox-core: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 + + workbox-navigation-preload@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-precaching@6.6.0: + dependencies: + workbox-core: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 + + workbox-range-requests@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-recipes@6.6.0: + dependencies: + workbox-cacheable-response: 6.6.0 + workbox-core: 6.6.0 + workbox-expiration: 6.6.0 + workbox-precaching: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 + + workbox-routing@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-strategies@6.6.0: + dependencies: + workbox-core: 6.6.0 + + workbox-streams@6.6.0: + dependencies: + workbox-core: 6.6.0 + workbox-routing: 6.6.0 + + workbox-sw@6.6.0: {} + + workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.106.1): + dependencies: + fast-json-stable-stringify: 2.1.0 + pretty-bytes: 5.6.0 + upath: 1.2.0 + webpack: 5.106.1 + webpack-sources: 1.4.3 + workbox-build: 6.6.0(@types/babel__core@7.20.5) + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + + workbox-window@6.6.0: + dependencies: + '@types/trusted-types': 2.0.7 + workbox-core: 6.6.0 + workerpool@9.3.4: {} wrap-ansi@7.0.0: @@ -9094,6 +18468,10 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 + ws@7.5.10: {} + + ws@8.20.0: {} + xml-crypto@6.1.2: dependencies: '@xmldom/is-dom-node': 1.0.1 @@ -9106,6 +18484,8 @@ snapshots: escape-html: 1.0.3 xpath: 0.0.32 + xml-name-validator@3.0.0: {} + xml2js@0.6.2: dependencies: sax: 1.5.0 @@ -9115,18 +18495,24 @@ snapshots: xmlbuilder@15.1.1: {} + xmlchars@2.2.0: {} + xpath@0.0.32: {} xpath@0.0.33: {} xpath@0.0.34: {} + xtend@4.0.2: {} + y18n@5.0.8: {} yallist@3.1.1: {} yaml@1.10.2: {} + yargs-parser@20.2.9: {} + yargs-parser@21.1.1: {} yargs-unparser@2.0.0: @@ -9136,6 +18522,16 @@ snapshots: flat: 5.0.2 is-plain-obj: 2.1.0 + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -9150,6 +18546,11 @@ snapshots: yocto-queue@0.1.0: {} + zeptomatch@2.1.0: + dependencies: + grammex: 3.1.12 + graphmatch: 1.1.1 + zod-validation-error@4.0.2(zod@4.3.6): dependencies: zod: 4.3.6 diff --git a/server/generated/prisma/browser.ts b/server/generated/prisma/browser.ts new file mode 100644 index 000000000..4cb40fa66 --- /dev/null +++ b/server/generated/prisma/browser.ts @@ -0,0 +1,53 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma-related types and utilities in a browser. + * Use it to get access to models, enums, and input types. + * + * This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only. + * See `client.ts` for the standard, server-side entry point. + * + * 🟢 You can import this file directly. + */ + +import * as Prisma from './internal/prismaNamespaceBrowser.js'; +export { Prisma }; +export * as $Enums from './enums.js'; +export * from './enums.js'; +/** + * Model Location + * A named pickup or drop-off point used in rides + */ +export type Location = Prisma.LocationModel; +/** + * Model Employee + * A platform employee who may be an admin, a driver, or both + */ +export type Employee = Prisma.EmployeeModel; +/** + * Model Rider + * A rider who requests and takes rides + */ +export type Rider = Prisma.RiderModel; +/** + * Model Ride + * A scheduled trip from a start location to an end location + */ +export type Ride = Prisma.RideModel; +/** + * Model Favorite + * Tracks which riders have favorited which rides + */ +export type Favorite = Prisma.FavoriteModel; +/** + * Model Stats + * Aggregated daily ride statistics -- year and day of year + */ +export type Stats = Prisma.StatsModel; +/** + * Model Notification + * A push notification sent to a user about a ride status change + */ +export type Notification = Prisma.NotificationModel; diff --git a/server/generated/prisma/client.ts b/server/generated/prisma/client.ts new file mode 100644 index 000000000..36ed751c3 --- /dev/null +++ b/server/generated/prisma/client.ts @@ -0,0 +1,81 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types. + * If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead. + * + * 🟢 You can import this file directly. + */ + +import * as process from 'node:process'; +import * as path from 'node:path'; +import { fileURLToPath } from 'node:url'; +globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url)); + +import * as runtime from '@prisma/client/runtime/client'; +import * as $Enums from './enums.js'; +import * as $Class from './internal/class.js'; +import * as Prisma from './internal/prismaNamespace.js'; + +export * as $Enums from './enums.js'; +export * from './enums.js'; +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Locations + * const locations = await prisma.location.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ +export const PrismaClient = $Class.getPrismaClientClass(); +export type PrismaClient< + LogOpts extends Prisma.LogLevel = never, + OmitOpts extends Prisma.PrismaClientOptions['omit'] = Prisma.PrismaClientOptions['omit'], + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = $Class.PrismaClient; +export { Prisma }; + +/** + * Model Location + * A named pickup or drop-off point used in rides + */ +export type Location = Prisma.LocationModel; +/** + * Model Employee + * A platform employee who may be an admin, a driver, or both + */ +export type Employee = Prisma.EmployeeModel; +/** + * Model Rider + * A rider who requests and takes rides + */ +export type Rider = Prisma.RiderModel; +/** + * Model Ride + * A scheduled trip from a start location to an end location + */ +export type Ride = Prisma.RideModel; +/** + * Model Favorite + * Tracks which riders have favorited which rides + */ +export type Favorite = Prisma.FavoriteModel; +/** + * Model Stats + * Aggregated daily ride statistics -- year and day of year + */ +export type Stats = Prisma.StatsModel; +/** + * Model Notification + * A push notification sent to a user about a ride status change + */ +export type Notification = Prisma.NotificationModel; diff --git a/server/generated/prisma/commonInputTypes.ts b/server/generated/prisma/commonInputTypes.ts new file mode 100644 index 000000000..a63b5a036 --- /dev/null +++ b/server/generated/prisma/commonInputTypes.ts @@ -0,0 +1,964 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports various common sort, input & filter types that are not directly linked to a particular model. + * + * 🟢 You can import this file directly. + */ + +import type * as runtime from '@prisma/client/runtime/client'; +import * as $Enums from './enums.js'; +import type * as Prisma from './internal/prismaNamespace.js'; + +export type StringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel>; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + mode?: Prisma.QueryMode; + not?: Prisma.NestedStringFilter<$PrismaModel> | string; +}; + +export type StringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + mode?: Prisma.QueryMode; + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null; +}; + +export type EnumLocationTagFilter<$PrismaModel = never> = { + equals?: + | $Enums.LocationTag + | Prisma.EnumLocationTagFieldRefInput<$PrismaModel>; + in?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumLocationTagFilter<$PrismaModel> | $Enums.LocationTag; +}; + +export type FloatFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + not?: Prisma.NestedFloatFilter<$PrismaModel> | number; +}; + +export type SortOrderInput = { + sort: Prisma.SortOrder; + nulls?: Prisma.NullsOrder; +}; + +export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel>; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + mode?: Prisma.QueryMode; + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedStringFilter<$PrismaModel>; + _max?: Prisma.NestedStringFilter<$PrismaModel>; +}; + +export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + mode?: Prisma.QueryMode; + not?: + | Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> + | string + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedStringNullableFilter<$PrismaModel>; + _max?: Prisma.NestedStringNullableFilter<$PrismaModel>; +}; + +export type EnumLocationTagWithAggregatesFilter<$PrismaModel = never> = { + equals?: + | $Enums.LocationTag + | Prisma.EnumLocationTagFieldRefInput<$PrismaModel>; + in?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumLocationTagWithAggregatesFilter<$PrismaModel> + | $Enums.LocationTag; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumLocationTagFilter<$PrismaModel>; + _max?: Prisma.NestedEnumLocationTagFilter<$PrismaModel>; +}; + +export type FloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + not?: Prisma.NestedFloatWithAggregatesFilter<$PrismaModel> | number; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _avg?: Prisma.NestedFloatFilter<$PrismaModel>; + _sum?: Prisma.NestedFloatFilter<$PrismaModel>; + _min?: Prisma.NestedFloatFilter<$PrismaModel>; + _max?: Prisma.NestedFloatFilter<$PrismaModel>; +}; + +export type BoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>; + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean; +}; + +export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string; +}; + +export type BoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>; + not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedBoolFilter<$PrismaModel>; + _max?: Prisma.NestedBoolFilter<$PrismaModel>; +}; + +export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedDateTimeFilter<$PrismaModel>; + _max?: Prisma.NestedDateTimeFilter<$PrismaModel>; +}; + +export type EnumOrganizationNullableFilter<$PrismaModel = never> = { + equals?: + | $Enums.Organization + | Prisma.EnumOrganizationFieldRefInput<$PrismaModel> + | null; + in?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + notIn?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + not?: + | Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel> + | $Enums.Organization + | null; +}; + +export type DateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null; + in?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + notIn?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedDateTimeNullableFilter<$PrismaModel> + | Date + | string + | null; +}; + +export type EnumOrganizationNullableWithAggregatesFilter<$PrismaModel = never> = + { + equals?: + | $Enums.Organization + | Prisma.EnumOrganizationFieldRefInput<$PrismaModel> + | null; + in?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + notIn?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + not?: + | Prisma.NestedEnumOrganizationNullableWithAggregatesFilter<$PrismaModel> + | $Enums.Organization + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel>; + _max?: Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel>; + }; + +export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null; + in?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + notIn?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> + | Date + | string + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>; + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>; +}; + +export type EnumRideTypeFilter<$PrismaModel = never> = { + equals?: $Enums.RideType | Prisma.EnumRideTypeFieldRefInput<$PrismaModel>; + in?: $Enums.RideType[] | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideType[] + | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumRideTypeFilter<$PrismaModel> | $Enums.RideType; +}; + +export type EnumRideStatusFilter<$PrismaModel = never> = { + equals?: $Enums.RideStatus | Prisma.EnumRideStatusFieldRefInput<$PrismaModel>; + in?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumRideStatusFilter<$PrismaModel> | $Enums.RideStatus; +}; + +export type EnumSchedulingStateFilter<$PrismaModel = never> = { + equals?: + | $Enums.SchedulingState + | Prisma.EnumSchedulingStateFieldRefInput<$PrismaModel>; + in?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumSchedulingStateFilter<$PrismaModel> + | $Enums.SchedulingState; +}; + +export type EnumRideTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.RideType | Prisma.EnumRideTypeFieldRefInput<$PrismaModel>; + in?: $Enums.RideType[] | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideType[] + | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumRideTypeWithAggregatesFilter<$PrismaModel> + | $Enums.RideType; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumRideTypeFilter<$PrismaModel>; + _max?: Prisma.NestedEnumRideTypeFilter<$PrismaModel>; +}; + +export type EnumRideStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.RideStatus | Prisma.EnumRideStatusFieldRefInput<$PrismaModel>; + in?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumRideStatusWithAggregatesFilter<$PrismaModel> + | $Enums.RideStatus; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumRideStatusFilter<$PrismaModel>; + _max?: Prisma.NestedEnumRideStatusFilter<$PrismaModel>; +}; + +export type EnumSchedulingStateWithAggregatesFilter<$PrismaModel = never> = { + equals?: + | $Enums.SchedulingState + | Prisma.EnumSchedulingStateFieldRefInput<$PrismaModel>; + in?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumSchedulingStateWithAggregatesFilter<$PrismaModel> + | $Enums.SchedulingState; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumSchedulingStateFilter<$PrismaModel>; + _max?: Prisma.NestedEnumSchedulingStateFilter<$PrismaModel>; +}; + +export type IntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + lt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + lte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + not?: Prisma.NestedIntFilter<$PrismaModel> | number; +}; + +export type JsonFilter<$PrismaModel = never> = + | Prisma.PatchUndefined< + Prisma.Either< + Required>, + Exclude>, 'path'> + >, + Required> + > + | Prisma.OptionalFlat>, 'path'>>; + +export type JsonFilterBase<$PrismaModel = never> = { + equals?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; + path?: string[]; + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>; + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + array_starts_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_ends_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_contains?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + not?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; +}; + +export type IntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + lt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + lte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _avg?: Prisma.NestedFloatFilter<$PrismaModel>; + _sum?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedIntFilter<$PrismaModel>; + _max?: Prisma.NestedIntFilter<$PrismaModel>; +}; + +export type JsonWithAggregatesFilter<$PrismaModel = never> = + | Prisma.PatchUndefined< + Prisma.Either< + Required>, + Exclude< + keyof Required>, + 'path' + > + >, + Required> + > + | Prisma.OptionalFlat< + Omit>, 'path'> + >; + +export type JsonWithAggregatesFilterBase<$PrismaModel = never> = { + equals?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; + path?: string[]; + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>; + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + array_starts_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_ends_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_contains?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + not?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedJsonFilter<$PrismaModel>; + _max?: Prisma.NestedJsonFilter<$PrismaModel>; +}; + +export type EnumNotificationEventFilter<$PrismaModel = never> = { + equals?: + | $Enums.NotificationEvent + | Prisma.EnumNotificationEventFieldRefInput<$PrismaModel>; + in?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumNotificationEventFilter<$PrismaModel> + | $Enums.NotificationEvent; +}; + +export type EnumNotificationEventWithAggregatesFilter<$PrismaModel = never> = { + equals?: + | $Enums.NotificationEvent + | Prisma.EnumNotificationEventFieldRefInput<$PrismaModel>; + in?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumNotificationEventWithAggregatesFilter<$PrismaModel> + | $Enums.NotificationEvent; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumNotificationEventFilter<$PrismaModel>; + _max?: Prisma.NestedEnumNotificationEventFilter<$PrismaModel>; +}; + +export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel>; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + not?: Prisma.NestedStringFilter<$PrismaModel> | string; +}; + +export type NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null; +}; + +export type NestedEnumLocationTagFilter<$PrismaModel = never> = { + equals?: + | $Enums.LocationTag + | Prisma.EnumLocationTagFieldRefInput<$PrismaModel>; + in?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumLocationTagFilter<$PrismaModel> | $Enums.LocationTag; +}; + +export type NestedFloatFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + not?: Prisma.NestedFloatFilter<$PrismaModel> | number; +}; + +export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel>; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedStringFilter<$PrismaModel>; + _max?: Prisma.NestedStringFilter<$PrismaModel>; +}; + +export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + lt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + lte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + not?: Prisma.NestedIntFilter<$PrismaModel> | number; +}; + +export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null; + in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + lt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + lte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gt?: string | Prisma.StringFieldRefInput<$PrismaModel>; + gte?: string | Prisma.StringFieldRefInput<$PrismaModel>; + contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> + | string + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedStringNullableFilter<$PrismaModel>; + _max?: Prisma.NestedStringNullableFilter<$PrismaModel>; +}; + +export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null; + in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null; + notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null; + lt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + lte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null; +}; + +export type NestedEnumLocationTagWithAggregatesFilter<$PrismaModel = never> = { + equals?: + | $Enums.LocationTag + | Prisma.EnumLocationTagFieldRefInput<$PrismaModel>; + in?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.LocationTag[] + | Prisma.ListEnumLocationTagFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumLocationTagWithAggregatesFilter<$PrismaModel> + | $Enums.LocationTag; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumLocationTagFilter<$PrismaModel>; + _max?: Prisma.NestedEnumLocationTagFilter<$PrismaModel>; +}; + +export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel>; + lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>; + not?: Prisma.NestedFloatWithAggregatesFilter<$PrismaModel> | number; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _avg?: Prisma.NestedFloatFilter<$PrismaModel>; + _sum?: Prisma.NestedFloatFilter<$PrismaModel>; + _min?: Prisma.NestedFloatFilter<$PrismaModel>; + _max?: Prisma.NestedFloatFilter<$PrismaModel>; +}; + +export type NestedBoolFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>; + not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean; +}; + +export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string; +}; + +export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>; + not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedBoolFilter<$PrismaModel>; + _max?: Prisma.NestedBoolFilter<$PrismaModel>; +}; + +export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedDateTimeFilter<$PrismaModel>; + _max?: Prisma.NestedDateTimeFilter<$PrismaModel>; +}; + +export type NestedEnumOrganizationNullableFilter<$PrismaModel = never> = { + equals?: + | $Enums.Organization + | Prisma.EnumOrganizationFieldRefInput<$PrismaModel> + | null; + in?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + notIn?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + not?: + | Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel> + | $Enums.Organization + | null; +}; + +export type NestedDateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null; + in?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + notIn?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedDateTimeNullableFilter<$PrismaModel> + | Date + | string + | null; +}; + +export type NestedEnumOrganizationNullableWithAggregatesFilter< + $PrismaModel = never +> = { + equals?: + | $Enums.Organization + | Prisma.EnumOrganizationFieldRefInput<$PrismaModel> + | null; + in?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + notIn?: + | $Enums.Organization[] + | Prisma.ListEnumOrganizationFieldRefInput<$PrismaModel> + | null; + not?: + | Prisma.NestedEnumOrganizationNullableWithAggregatesFilter<$PrismaModel> + | $Enums.Organization + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel>; + _max?: Prisma.NestedEnumOrganizationNullableFilter<$PrismaModel>; +}; + +export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null; + in?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + notIn?: + | Date[] + | string[] + | Prisma.ListDateTimeFieldRefInput<$PrismaModel> + | null; + lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> + | Date + | string + | null; + _count?: Prisma.NestedIntNullableFilter<$PrismaModel>; + _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>; + _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>; +}; + +export type NestedEnumRideTypeFilter<$PrismaModel = never> = { + equals?: $Enums.RideType | Prisma.EnumRideTypeFieldRefInput<$PrismaModel>; + in?: $Enums.RideType[] | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideType[] + | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumRideTypeFilter<$PrismaModel> | $Enums.RideType; +}; + +export type NestedEnumRideStatusFilter<$PrismaModel = never> = { + equals?: $Enums.RideStatus | Prisma.EnumRideStatusFieldRefInput<$PrismaModel>; + in?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + not?: Prisma.NestedEnumRideStatusFilter<$PrismaModel> | $Enums.RideStatus; +}; + +export type NestedEnumSchedulingStateFilter<$PrismaModel = never> = { + equals?: + | $Enums.SchedulingState + | Prisma.EnumSchedulingStateFieldRefInput<$PrismaModel>; + in?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumSchedulingStateFilter<$PrismaModel> + | $Enums.SchedulingState; +}; + +export type NestedEnumRideTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.RideType | Prisma.EnumRideTypeFieldRefInput<$PrismaModel>; + in?: $Enums.RideType[] | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideType[] + | Prisma.ListEnumRideTypeFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumRideTypeWithAggregatesFilter<$PrismaModel> + | $Enums.RideType; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumRideTypeFilter<$PrismaModel>; + _max?: Prisma.NestedEnumRideTypeFilter<$PrismaModel>; +}; + +export type NestedEnumRideStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.RideStatus | Prisma.EnumRideStatusFieldRefInput<$PrismaModel>; + in?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.RideStatus[] + | Prisma.ListEnumRideStatusFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumRideStatusWithAggregatesFilter<$PrismaModel> + | $Enums.RideStatus; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumRideStatusFilter<$PrismaModel>; + _max?: Prisma.NestedEnumRideStatusFilter<$PrismaModel>; +}; + +export type NestedEnumSchedulingStateWithAggregatesFilter< + $PrismaModel = never +> = { + equals?: + | $Enums.SchedulingState + | Prisma.EnumSchedulingStateFieldRefInput<$PrismaModel>; + in?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.SchedulingState[] + | Prisma.ListEnumSchedulingStateFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumSchedulingStateWithAggregatesFilter<$PrismaModel> + | $Enums.SchedulingState; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumSchedulingStateFilter<$PrismaModel>; + _max?: Prisma.NestedEnumSchedulingStateFilter<$PrismaModel>; +}; + +export type NestedIntWithAggregatesFilter<$PrismaModel = never> = { + equals?: number | Prisma.IntFieldRefInput<$PrismaModel>; + in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel>; + lt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + lte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gt?: number | Prisma.IntFieldRefInput<$PrismaModel>; + gte?: number | Prisma.IntFieldRefInput<$PrismaModel>; + not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _avg?: Prisma.NestedFloatFilter<$PrismaModel>; + _sum?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedIntFilter<$PrismaModel>; + _max?: Prisma.NestedIntFilter<$PrismaModel>; +}; + +export type NestedJsonFilter<$PrismaModel = never> = + | Prisma.PatchUndefined< + Prisma.Either< + Required>, + Exclude>, 'path'> + >, + Required> + > + | Prisma.OptionalFlat< + Omit>, 'path'> + >; + +export type NestedJsonFilterBase<$PrismaModel = never> = { + equals?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; + path?: string[]; + mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>; + string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>; + array_starts_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_ends_with?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + array_contains?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | null; + lt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + lte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gt?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + gte?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel>; + not?: + | runtime.InputJsonValue + | Prisma.JsonFieldRefInput<$PrismaModel> + | Prisma.JsonNullValueFilter; +}; + +export type NestedEnumNotificationEventFilter<$PrismaModel = never> = { + equals?: + | $Enums.NotificationEvent + | Prisma.EnumNotificationEventFieldRefInput<$PrismaModel>; + in?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumNotificationEventFilter<$PrismaModel> + | $Enums.NotificationEvent; +}; + +export type NestedEnumNotificationEventWithAggregatesFilter< + $PrismaModel = never +> = { + equals?: + | $Enums.NotificationEvent + | Prisma.EnumNotificationEventFieldRefInput<$PrismaModel>; + in?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + notIn?: + | $Enums.NotificationEvent[] + | Prisma.ListEnumNotificationEventFieldRefInput<$PrismaModel>; + not?: + | Prisma.NestedEnumNotificationEventWithAggregatesFilter<$PrismaModel> + | $Enums.NotificationEvent; + _count?: Prisma.NestedIntFilter<$PrismaModel>; + _min?: Prisma.NestedEnumNotificationEventFilter<$PrismaModel>; + _max?: Prisma.NestedEnumNotificationEventFilter<$PrismaModel>; +}; diff --git a/server/generated/prisma/enums.ts b/server/generated/prisma/enums.ts new file mode 100644 index 000000000..59eb8d61d --- /dev/null +++ b/server/generated/prisma/enums.ts @@ -0,0 +1,107 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports all enum related types from the schema. + * + * 🟢 You can import this file directly. + */ + +export const RideType = { + UPCOMING: 'UPCOMING', + PAST: 'PAST', + ACTIVE: 'ACTIVE', +} as const; + +export type RideType = (typeof RideType)[keyof typeof RideType]; + +export const SchedulingState = { + SCHEDULED: 'SCHEDULED', + UNSCHEDULED: 'UNSCHEDULED', +} as const; + +export type SchedulingState = + (typeof SchedulingState)[keyof typeof SchedulingState]; + +export const RideStatus = { + NOT_STARTED: 'NOT_STARTED', + ON_THE_WAY: 'ON_THE_WAY', + ARRIVED: 'ARRIVED', + PICKED_UP: 'PICKED_UP', + COMPLETED: 'COMPLETED', + NO_SHOW: 'NO_SHOW', + CANCELLED: 'CANCELLED', +} as const; + +export type RideStatus = (typeof RideStatus)[keyof typeof RideStatus]; + +export const DayOfWeek = { + MON: 'MON', + TUE: 'TUE', + WED: 'WED', + THURS: 'THURS', + FRI: 'FRI', +} as const; + +export type DayOfWeek = (typeof DayOfWeek)[keyof typeof DayOfWeek]; + +export const Accessibility = { + ASSISTANT: 'ASSISTANT', + CRUTCHES: 'CRUTCHES', + WHEELCHAIR: 'WHEELCHAIR', + MOTOR_SCOOTER: 'MOTOR_SCOOTER', + KNEE_SCOOTER: 'KNEE_SCOOTER', + LOW_VISION: 'LOW_VISION', + SERVICE_ANIMALS: 'SERVICE_ANIMALS', +} as const; + +export type Accessibility = (typeof Accessibility)[keyof typeof Accessibility]; + +export const Organization = { + REDRUNNER: 'REDRUNNER', + CULIFT: 'CULIFT', +} as const; + +export type Organization = (typeof Organization)[keyof typeof Organization]; + +export const LocationTag = { + EAST: 'EAST', + CENTRAL: 'CENTRAL', + NORTH: 'NORTH', + WEST: 'WEST', + CTOWN: 'CTOWN', + DTOWN: 'DTOWN', + INACTIVE: 'INACTIVE', + CUSTOM: 'CUSTOM', +} as const; + +export type LocationTag = (typeof LocationTag)[keyof typeof LocationTag]; + +export const UserType = { + ADMIN: 'ADMIN', + RIDER: 'RIDER', + DRIVER: 'DRIVER', +} as const; + +export type UserType = (typeof UserType)[keyof typeof UserType]; + +export const AdminRole = { + SDS_ADMIN: 'SDS_ADMIN', + REDRUNNER_ADMIN: 'REDRUNNER_ADMIN', +} as const; + +export type AdminRole = (typeof AdminRole)[keyof typeof AdminRole]; + +export const NotificationEvent = { + NOT_STARTED: 'NOT_STARTED', + ON_THE_WAY: 'ON_THE_WAY', + ARRIVED: 'ARRIVED', + PICKED_UP: 'PICKED_UP', + COMPLETED: 'COMPLETED', + NO_SHOW: 'NO_SHOW', + CANCELLED: 'CANCELLED', +} as const; + +export type NotificationEvent = + (typeof NotificationEvent)[keyof typeof NotificationEvent]; diff --git a/server/generated/prisma/internal/class.ts b/server/generated/prisma/internal/class.ts new file mode 100644 index 000000000..6ffe23ad5 --- /dev/null +++ b/server/generated/prisma/internal/class.ts @@ -0,0 +1,319 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * Please import the `PrismaClient` class from the `client.ts` file instead. + */ + +import * as runtime from '@prisma/client/runtime/client'; +import type * as Prisma from './prismaNamespace.js'; + +const config: runtime.GetPrismaClientConfig = { + previewFeatures: [], + clientVersion: '7.7.0', + engineVersion: '75cbdc1eb7150937890ad5465d861175c6624711', + activeProvider: 'postgresql', + inlineSchema: + '// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = "prisma-client"\n output = "../generated/prisma"\n}\n\ndatasource db {\n provider = "postgresql"\n}\n\n// -------ENUMS-------\n\nenum RideType {\n UPCOMING\n PAST\n ACTIVE\n}\n\nenum SchedulingState {\n SCHEDULED\n UNSCHEDULED\n}\n\nenum RideStatus {\n NOT_STARTED\n ON_THE_WAY\n ARRIVED\n PICKED_UP\n COMPLETED\n NO_SHOW\n CANCELLED\n}\n\nenum DayOfWeek {\n MON\n TUE\n WED\n THURS\n FRI\n}\n\nenum Accessibility {\n ASSISTANT\n CRUTCHES\n WHEELCHAIR\n MOTOR_SCOOTER\n KNEE_SCOOTER\n LOW_VISION\n SERVICE_ANIMALS\n}\n\nenum Organization {\n REDRUNNER\n CULIFT\n}\n\nenum LocationTag {\n EAST\n CENTRAL\n NORTH\n WEST\n CTOWN\n DTOWN\n INACTIVE\n CUSTOM\n}\n\nenum UserType {\n ADMIN\n RIDER\n DRIVER\n}\n\nenum AdminRole {\n SDS_ADMIN\n REDRUNNER_ADMIN\n}\n\nenum NotificationEvent {\n NOT_STARTED\n ON_THE_WAY\n ARRIVED\n PICKED_UP\n COMPLETED\n NO_SHOW\n CANCELLED\n}\n\n// -----MODELS-----------\n\n/// A named pickup or drop-off point used in rides\nmodel Location {\n id String @id @default(uuid())\n name String\n address String\n shortName String\n info String?\n tag LocationTag\n lat Float\n lng Float\n photoLink String?\n images String[]\n\n ridesAsStart Ride[] @relation("StartLocation")\n ridesAsEnd Ride[] @relation("EndLocation")\n}\n\n//--------------------\n\n/// A platform employee who may be an admin, a driver, or both\nmodel Employee {\n id String @id @default(uuid())\n firstName String\n lastName String\n phoneNumber String\n email String @unique\n photoLink String?\n isAdmin Boolean @default(false)\n adminRoles AdminRole[]\n isDriver Boolean @default(false)\n availability DayOfWeek[]\n active Boolean @default(true)\n joinDate DateTime @default(now())\n rides Ride[]\n}\n\n//--------------------\n\n/// A rider who requests and takes rides\nmodel Rider {\n id String @id @default(uuid())\n firstName String\n lastName String\n phoneNumber String?\n email String @unique\n accessibility Accessibility[]\n organization Organization?\n description String?\n joinDate DateTime @default(now())\n endDate DateTime?\n address String?\n photoLink String?\n active Boolean @default(true)\n\n rides Ride[] @relation("RideRiders")\n favorites Favorite[]\n}\n\n//--------------------\n\n/// A scheduled trip from a start location to an end location\nmodel Ride {\n id String @id @default(uuid())\n type RideType @default(UPCOMING)\n status RideStatus @default(NOT_STARTED)\n schedulingState SchedulingState @default(UNSCHEDULED)\n\n startLocationId String\n startLocation Location @relation("StartLocation", fields: [startLocationId], references: [id])\n\n endLocationId String\n endLocation Location @relation("EndLocation", fields: [endLocationId], references: [id])\n\n startTime DateTime\n endTime DateTime\n\n riders Rider[] @relation("RideRiders")\n\n driverId String?\n driver Employee? @relation(fields: [driverId], references: [id])\n\n // RFC 5545 recurrence placeholders\n isRecurring Boolean @default(false)\n rrule String?\n exdate String[]\n rdate String[]\n parentRideId String?\n recurrenceId String?\n timezone String @default("America/New_York")\n\n favorites Favorite[]\n notifications Notification[]\n\n @@index([startTime])\n @@index([endTime])\n @@index([driverId])\n}\n\n//--------------------\n\n/// Tracks which riders have favorited which rides\nmodel Favorite {\n userId String\n rideId String\n favoritedAt DateTime @default(now())\n\n rider Rider @relation(fields: [userId], references: [id])\n ride Ride @relation(fields: [rideId], references: [id])\n\n @@id([userId, rideId])\n}\n\n//--------------------\n\n//--------------------\n\n/// Aggregated daily ride statistics -- year and day of year\nmodel Stats {\n year String\n monthDay String // Format: MM-DD\n dayCount Int @default(0)\n dayNoShow Int @default(0)\n dayCancel Int @default(0)\n nightCount Int @default(0)\n nightNoShow Int @default(0)\n nightCancel Int @default(0)\n drivers Json @default("{}") // Dynamic map of driverId -> ride count\n\n @@id([year, monthDay])\n}\n\n//--------------------\n\n/// A push notification sent to a user about a ride status change\nmodel Notification {\n id String @id @default(uuid())\n notifEvent NotificationEvent\n userID String\n rideID String\n title String\n body String\n timeSent DateTime\n read Boolean\n\n ride Ride @relation(fields: [rideID], references: [id])\n}\n', + runtimeDataModel: { + models: {}, + enums: {}, + types: {}, + }, + parameterizationSchema: { + strings: [], + graph: '', + }, +}; + +config.runtimeDataModel = JSON.parse( + '{"models":{"Location":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"name","kind":"scalar","type":"String"},{"name":"address","kind":"scalar","type":"String"},{"name":"shortName","kind":"scalar","type":"String"},{"name":"info","kind":"scalar","type":"String"},{"name":"tag","kind":"enum","type":"LocationTag"},{"name":"lat","kind":"scalar","type":"Float"},{"name":"lng","kind":"scalar","type":"Float"},{"name":"photoLink","kind":"scalar","type":"String"},{"name":"images","kind":"scalar","type":"String"},{"name":"ridesAsStart","kind":"object","type":"Ride","relationName":"StartLocation"},{"name":"ridesAsEnd","kind":"object","type":"Ride","relationName":"EndLocation"}],"dbName":null},"Employee":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"firstName","kind":"scalar","type":"String"},{"name":"lastName","kind":"scalar","type":"String"},{"name":"phoneNumber","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"photoLink","kind":"scalar","type":"String"},{"name":"isAdmin","kind":"scalar","type":"Boolean"},{"name":"adminRoles","kind":"enum","type":"AdminRole"},{"name":"isDriver","kind":"scalar","type":"Boolean"},{"name":"availability","kind":"enum","type":"DayOfWeek"},{"name":"active","kind":"scalar","type":"Boolean"},{"name":"joinDate","kind":"scalar","type":"DateTime"},{"name":"rides","kind":"object","type":"Ride","relationName":"EmployeeToRide"}],"dbName":null},"Rider":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"firstName","kind":"scalar","type":"String"},{"name":"lastName","kind":"scalar","type":"String"},{"name":"phoneNumber","kind":"scalar","type":"String"},{"name":"email","kind":"scalar","type":"String"},{"name":"accessibility","kind":"enum","type":"Accessibility"},{"name":"organization","kind":"enum","type":"Organization"},{"name":"description","kind":"scalar","type":"String"},{"name":"joinDate","kind":"scalar","type":"DateTime"},{"name":"endDate","kind":"scalar","type":"DateTime"},{"name":"address","kind":"scalar","type":"String"},{"name":"photoLink","kind":"scalar","type":"String"},{"name":"active","kind":"scalar","type":"Boolean"},{"name":"rides","kind":"object","type":"Ride","relationName":"RideRiders"},{"name":"favorites","kind":"object","type":"Favorite","relationName":"FavoriteToRider"}],"dbName":null},"Ride":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"type","kind":"enum","type":"RideType"},{"name":"status","kind":"enum","type":"RideStatus"},{"name":"schedulingState","kind":"enum","type":"SchedulingState"},{"name":"startLocationId","kind":"scalar","type":"String"},{"name":"startLocation","kind":"object","type":"Location","relationName":"StartLocation"},{"name":"endLocationId","kind":"scalar","type":"String"},{"name":"endLocation","kind":"object","type":"Location","relationName":"EndLocation"},{"name":"startTime","kind":"scalar","type":"DateTime"},{"name":"endTime","kind":"scalar","type":"DateTime"},{"name":"riders","kind":"object","type":"Rider","relationName":"RideRiders"},{"name":"driverId","kind":"scalar","type":"String"},{"name":"driver","kind":"object","type":"Employee","relationName":"EmployeeToRide"},{"name":"isRecurring","kind":"scalar","type":"Boolean"},{"name":"rrule","kind":"scalar","type":"String"},{"name":"exdate","kind":"scalar","type":"String"},{"name":"rdate","kind":"scalar","type":"String"},{"name":"parentRideId","kind":"scalar","type":"String"},{"name":"recurrenceId","kind":"scalar","type":"String"},{"name":"timezone","kind":"scalar","type":"String"},{"name":"favorites","kind":"object","type":"Favorite","relationName":"FavoriteToRide"},{"name":"notifications","kind":"object","type":"Notification","relationName":"NotificationToRide"}],"dbName":null},"Favorite":{"fields":[{"name":"userId","kind":"scalar","type":"String"},{"name":"rideId","kind":"scalar","type":"String"},{"name":"favoritedAt","kind":"scalar","type":"DateTime"},{"name":"rider","kind":"object","type":"Rider","relationName":"FavoriteToRider"},{"name":"ride","kind":"object","type":"Ride","relationName":"FavoriteToRide"}],"dbName":null},"Stats":{"fields":[{"name":"year","kind":"scalar","type":"String"},{"name":"monthDay","kind":"scalar","type":"String"},{"name":"dayCount","kind":"scalar","type":"Int"},{"name":"dayNoShow","kind":"scalar","type":"Int"},{"name":"dayCancel","kind":"scalar","type":"Int"},{"name":"nightCount","kind":"scalar","type":"Int"},{"name":"nightNoShow","kind":"scalar","type":"Int"},{"name":"nightCancel","kind":"scalar","type":"Int"},{"name":"drivers","kind":"scalar","type":"Json"}],"dbName":null},"Notification":{"fields":[{"name":"id","kind":"scalar","type":"String"},{"name":"notifEvent","kind":"enum","type":"NotificationEvent"},{"name":"userID","kind":"scalar","type":"String"},{"name":"rideID","kind":"scalar","type":"String"},{"name":"title","kind":"scalar","type":"String"},{"name":"body","kind":"scalar","type":"String"},{"name":"timeSent","kind":"scalar","type":"DateTime"},{"name":"read","kind":"scalar","type":"Boolean"},{"name":"ride","kind":"object","type":"Ride","relationName":"NotificationToRide"}],"dbName":null}},"enums":{},"types":{}}' +); +config.parameterizationSchema = { + strings: JSON.parse( + '["where","orderBy","cursor","startLocation","endLocation","rides","rider","ride","favorites","_count","riders","driver","notifications","ridesAsStart","ridesAsEnd","Location.findUnique","Location.findUniqueOrThrow","Location.findFirst","Location.findFirstOrThrow","Location.findMany","data","Location.createOne","Location.createMany","Location.createManyAndReturn","Location.updateOne","Location.updateMany","Location.updateManyAndReturn","create","update","Location.upsertOne","Location.deleteOne","Location.deleteMany","having","_avg","_sum","_min","_max","Location.groupBy","Location.aggregate","Employee.findUnique","Employee.findUniqueOrThrow","Employee.findFirst","Employee.findFirstOrThrow","Employee.findMany","Employee.createOne","Employee.createMany","Employee.createManyAndReturn","Employee.updateOne","Employee.updateMany","Employee.updateManyAndReturn","Employee.upsertOne","Employee.deleteOne","Employee.deleteMany","Employee.groupBy","Employee.aggregate","Rider.findUnique","Rider.findUniqueOrThrow","Rider.findFirst","Rider.findFirstOrThrow","Rider.findMany","Rider.createOne","Rider.createMany","Rider.createManyAndReturn","Rider.updateOne","Rider.updateMany","Rider.updateManyAndReturn","Rider.upsertOne","Rider.deleteOne","Rider.deleteMany","Rider.groupBy","Rider.aggregate","Ride.findUnique","Ride.findUniqueOrThrow","Ride.findFirst","Ride.findFirstOrThrow","Ride.findMany","Ride.createOne","Ride.createMany","Ride.createManyAndReturn","Ride.updateOne","Ride.updateMany","Ride.updateManyAndReturn","Ride.upsertOne","Ride.deleteOne","Ride.deleteMany","Ride.groupBy","Ride.aggregate","Favorite.findUnique","Favorite.findUniqueOrThrow","Favorite.findFirst","Favorite.findFirstOrThrow","Favorite.findMany","Favorite.createOne","Favorite.createMany","Favorite.createManyAndReturn","Favorite.updateOne","Favorite.updateMany","Favorite.updateManyAndReturn","Favorite.upsertOne","Favorite.deleteOne","Favorite.deleteMany","Favorite.groupBy","Favorite.aggregate","Stats.findUnique","Stats.findUniqueOrThrow","Stats.findFirst","Stats.findFirstOrThrow","Stats.findMany","Stats.createOne","Stats.createMany","Stats.createManyAndReturn","Stats.updateOne","Stats.updateMany","Stats.updateManyAndReturn","Stats.upsertOne","Stats.deleteOne","Stats.deleteMany","Stats.groupBy","Stats.aggregate","Notification.findUnique","Notification.findUniqueOrThrow","Notification.findFirst","Notification.findFirstOrThrow","Notification.findMany","Notification.createOne","Notification.createMany","Notification.createManyAndReturn","Notification.updateOne","Notification.updateMany","Notification.updateManyAndReturn","Notification.upsertOne","Notification.deleteOne","Notification.deleteMany","Notification.groupBy","Notification.aggregate","AND","OR","NOT","id","NotificationEvent","notifEvent","userID","rideID","title","body","timeSent","read","equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","year","monthDay","dayCount","dayNoShow","dayCancel","nightCount","nightNoShow","nightCancel","drivers","string_contains","string_starts_with","string_ends_with","array_starts_with","array_ends_with","array_contains","year_monthDay","userId","rideId","favoritedAt","RideType","type","RideStatus","status","SchedulingState","schedulingState","startLocationId","endLocationId","startTime","endTime","driverId","isRecurring","rrule","exdate","rdate","parentRideId","recurrenceId","timezone","has","hasEvery","hasSome","firstName","lastName","phoneNumber","email","accessibility","Organization","organization","description","joinDate","endDate","address","photoLink","active","Accessibility","isAdmin","adminRoles","isDriver","availability","DayOfWeek","AdminRole","every","some","none","name","shortName","info","LocationTag","tag","lat","lng","images","userId_rideId","is","isNot","connectOrCreate","upsert","createMany","set","disconnect","delete","connect","updateMany","deleteMany","push","increment","decrement","multiply","divide"]' + ), + graph: + '4wNBcA8NAAD7AQAgDgAA-wEAIIcBAACCAgAwiAEAACIAEIkBAACCAgAwigEBAAAAAdABAQDYAQAh0QEBAPgBACHdAQEA2AEAId4BAQDYAQAh3wEBAPgBACHhAQAAgwLhASLiAQgAhAIAIeMBCACEAgAh5AEAAOIBACABAAAAAQAgGQMAAJMCACAEAACTAgAgCAAAjgIAIAoAAJQCACALAACVAgAgDAAAlgIAIIcBAACPAgAwiAEAAAMAEIkBAACPAgAwigEBANgBACGyAQAAkAKyASK0AQAAkQK0ASK2AQAAkgK2ASK3AQEA2AEAIbgBAQDYAQAhuQFAAPoBACG6AUAA-gEAIbsBAQD4AQAhvAEgAPkBACG9AQEA-AEAIb4BAADiAQAgvwEAAOIBACDAAQEA-AEAIcEBAQD4AQAhwgEBANgBACEKAwAAvAMAIAQAALwDACAIAAC7AwAgCgAAvQMAIAsAAL4DACAMAAC_AwAguwEAAK0CACC9AQAArQIAIMABAACtAgAgwQEAAK0CACAZAwAAkwIAIAQAAJMCACAIAACOAgAgCgAAlAIAIAsAAJUCACAMAACWAgAghwEAAI8CADCIAQAAAwAQiQEAAI8CADCKAQEAAAABsgEAAJACsgEitAEAAJECtAEitgEAAJICtgEitwEBANgBACG4AQEA2AEAIbkBQAD6AQAhugFAAPoBACG7AQEA-AEAIbwBIAD5AQAhvQEBAPgBACG-AQAA4gEAIL8BAADiAQAgwAEBAPgBACHBAQEA-AEAIcIBAQDYAQAhAwAAAAMAIAEAAAQAMAIAAAUAIBIFAAD7AQAgCAAAjgIAIIcBAACLAgAwiAEAAAcAEIkBAACLAgAwigEBANgBACHGAQEA2AEAIccBAQDYAQAhyAEBAPgBACHJAQEA2AEAIcoBAADtAQAgzAEAAIwCzAEjzQEBAPgBACHOAUAA-gEAIc8BQACNAgAh0AEBAPgBACHRAQEA-AEAIdIBIAD5AQAhCAUAAJkDACAIAAC7AwAgyAEAAK0CACDMAQAArQIAIM0BAACtAgAgzwEAAK0CACDQAQAArQIAINEBAACtAgAgEgUAAPsBACAIAACOAgAghwEAAIsCADCIAQAABwAQiQEAAIsCADCKAQEAAAABxgEBANgBACHHAQEA2AEAIcgBAQD4AQAhyQEBAAAAAcoBAADtAQAgzAEAAIwCzAEjzQEBAPgBACHOAUAA-gEAIc8BQACNAgAh0AEBAPgBACHRAQEA-AEAIdIBIAD5AQAhAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAADACABAAAEADACAAAFACAIBgAAigIAIAcAAIcCACCHAQAAiQIAMIgBAAAMABCJAQAAiQIAMK4BAQDYAQAhrwEBANgBACGwAUAA-gEAIQIGAAC6AwAgBwAAuQMAIAkGAACKAgAgBwAAhwIAIIcBAACJAgAwiAEAAAwAEIkBAACJAgAwrgEBANgBACGvAQEA2AEAIbABQAD6AQAh5QEAAIgCACADAAAADAAgAQAADQAwAgAADgAgAQAAAAMAIAEAAAAMACAQBQAA-wEAIIcBAAD3AQAwiAEAABIAEIkBAAD3AQAwigEBANgBACHGAQEA2AEAIccBAQDYAQAhyAEBANgBACHJAQEA2AEAIc4BQAD6AQAh0QEBAPgBACHSASAA-QEAIdQBIAD5AQAh1QEAAPUBACDWASAA-QEAIdcBAAD2AQAgAQAAABIAIAMAAAADACABAAAEADACAAAFACABAAAAAwAgAwAAAAwAIAEAAA0AMAIAAA4AIAwHAACHAgAghwEAAIUCADCIAQAAFwAQiQEAAIUCADCKAQEA2AEAIYwBAACGAowBIo0BAQDYAQAhjgEBANgBACGPAQEA2AEAIZABAQDYAQAhkQFAAPoBACGSASAA-QEAIQEHAAC5AwAgDAcAAIcCACCHAQAAhQIAMIgBAAAXABCJAQAAhQIAMIoBAQAAAAGMAQAAhgKMASKNAQEA2AEAIY4BAQDYAQAhjwEBANgBACGQAQEA2AEAIZEBQAD6AQAhkgEgAPkBACEDAAAAFwAgAQAAGAAwAgAAGQAgAQAAAAcAIAEAAAAMACABAAAAFwAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAADACABAAAAAwAgAQAAAAEAIA8NAAD7AQAgDgAA-wEAIIcBAACCAgAwiAEAACIAEIkBAACCAgAwigEBANgBACHQAQEA2AEAIdEBAQD4AQAh3QEBANgBACHeAQEA2AEAId8BAQD4AQAh4QEAAIMC4QEi4gEIAIQCACHjAQgAhAIAIeQBAADiAQAgBA0AAJkDACAOAACZAwAg0QEAAK0CACDfAQAArQIAIAMAAAAiACABAAAjADACAAABACADAAAAIgAgAQAAIwAwAgAAAQAgAwAAACIAIAEAACMAMAIAAAEAIAwNAAC3AwAgDgAAuAMAIIoBAQAAAAHQAQEAAAAB0QEBAAAAAd0BAQAAAAHeAQEAAAAB3wEBAAAAAeEBAAAA4QEC4gEIAAAAAeMBCAAAAAHkAQAAtgMAIAEUAAAnACAKigEBAAAAAdABAQAAAAHRAQEAAAAB3QEBAAAAAd4BAQAAAAHfAQEAAAAB4QEAAADhAQLiAQgAAAAB4wEIAAAAAeQBAAC2AwAgARQAACkAMAEUAAApADAMDQAAogMAIA4AAKMDACCKAQEAmgIAIdABAQCaAgAh0QEBALQCACHdAQEAmgIAId4BAQCaAgAh3wEBALQCACHhAQAAnwPhASLiAQgAoAMAIeMBCACgAwAh5AEAAKEDACACAAAAAQAgFAAALAAgCooBAQCaAgAh0AEBAJoCACHRAQEAtAIAId0BAQCaAgAh3gEBAJoCACHfAQEAtAIAIeEBAACfA-EBIuIBCACgAwAh4wEIAKADACHkAQAAoQMAIAIAAAAiACAUAAAuACACAAAAIgAgFAAALgAgAwAAAAEAIBsAACcAIBwAACwAIAEAAAABACABAAAAIgAgBwkAAJoDACAhAACbAwAgIgAAngMAICMAAJ0DACAkAACcAwAg0QEAAK0CACDfAQAArQIAIA2HAQAA_AEAMIgBAAA1ABCJAQAA_AEAMIoBAQDEAQAh0AEBAMQBACHRAQEA4QEAId0BAQDEAQAh3gEBAMQBACHfAQEA4QEAIeEBAAD9AeEBIuIBCAD-AQAh4wEIAP4BACHkAQAA4gEAIAMAAAAiACABAAA0ADAgAAA1ACADAAAAIgAgAQAAIwAwAgAAAQAgEAUAAPsBACCHAQAA9wEAMIgBAAASABCJAQAA9wEAMIoBAQAAAAHGAQEA2AEAIccBAQDYAQAhyAEBANgBACHJAQEAAAABzgFAAPoBACHRAQEA-AEAIdIBIAD5AQAh1AEgAPkBACHVAQAA9QEAINYBIAD5AQAh1wEAAPYBACABAAAAOAAgAQAAADgAIAIFAACZAwAg0QEAAK0CACADAAAAEgAgAQAAOwAwAgAAOAAgAwAAABIAIAEAADsAMAIAADgAIAMAAAASACABAAA7ADACAAA4ACANBQAAmAMAIIoBAQAAAAHGAQEAAAABxwEBAAAAAcgBAQAAAAHJAQEAAAABzgFAAAAAAdEBAQAAAAHSASAAAAAB1AEgAAAAAdUBAACWAwAg1gEgAAAAAdcBAACXAwAgARQAAD8AIAyKAQEAAAABxgEBAAAAAccBAQAAAAHIAQEAAAAByQEBAAAAAc4BQAAAAAHRAQEAAAAB0gEgAAAAAdQBIAAAAAHVAQAAlgMAINYBIAAAAAHXAQAAlwMAIAEUAABBADABFAAAQQAwDQUAAIwDACCKAQEAmgIAIcYBAQCaAgAhxwEBAJoCACHIAQEAmgIAIckBAQCaAgAhzgFAAJwCACHRAQEAtAIAIdIBIACdAgAh1AEgAJ0CACHVAQAAigMAINYBIACdAgAh1wEAAIsDACACAAAAOAAgFAAARAAgDIoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQCaAgAhyQEBAJoCACHOAUAAnAIAIdEBAQC0AgAh0gEgAJ0CACHUASAAnQIAIdUBAACKAwAg1gEgAJ0CACHXAQAAiwMAIAIAAAASACAUAABGACACAAAAEgAgFAAARgAgAwAAADgAIBsAAD8AIBwAAEQAIAEAAAA4ACABAAAAEgAgBAkAAIcDACAjAACJAwAgJAAAiAMAINEBAACtAgAgD4cBAAD0AQAwiAEAAE0AEIkBAAD0AQAwigEBAMQBACHGAQEAxAEAIccBAQDEAQAhyAEBAMQBACHJAQEAxAEAIc4BQADGAQAh0QEBAOEBACHSASAAxwEAIdQBIADHAQAh1QEAAPUBACDWASAAxwEAIdcBAAD2AQAgAwAAABIAIAEAAEwAMCAAAE0AIAMAAAASACABAAA7ADACAAA4ACABAAAACQAgAQAAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIA8FAACGAwAgCAAA7gIAIIoBAQAAAAHGAQEAAAABxwEBAAAAAcgBAQAAAAHJAQEAAAABygEAAO0CACDMAQAAAMwBA80BAQAAAAHOAUAAAAABzwFAAAAAAdABAQAAAAHRAQEAAAAB0gEgAAAAAQEUAABVACANigEBAAAAAcYBAQAAAAHHAQEAAAAByAEBAAAAAckBAQAAAAHKAQAA7QIAIMwBAAAAzAEDzQEBAAAAAc4BQAAAAAHPAUAAAAAB0AEBAAAAAdEBAQAAAAHSASAAAAABARQAAFcAMAEUAABXADAPBQAA-gIAIAgAAOICACCKAQEAmgIAIcYBAQCaAgAhxwEBAJoCACHIAQEAtAIAIckBAQCaAgAhygEAAN4CACDMAQAA3wLMASPNAQEAtAIAIc4BQACcAgAhzwFAAOACACHQAQEAtAIAIdEBAQC0AgAh0gEgAJ0CACECAAAACQAgFAAAWgAgDYoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQC0AgAhyQEBAJoCACHKAQAA3gIAIMwBAADfAswBI80BAQC0AgAhzgFAAJwCACHPAUAA4AIAIdABAQC0AgAh0QEBALQCACHSASAAnQIAIQIAAAAHACAUAABcACACAAAABwAgFAAAXAAgAwAAAAkAIBsAAFUAIBwAAFoAIAEAAAAJACABAAAABwAgCQkAAPcCACAjAAD5AgAgJAAA-AIAIMgBAACtAgAgzAEAAK0CACDNAQAArQIAIM8BAACtAgAg0AEAAK0CACDRAQAArQIAIBCHAQAA7AEAMIgBAABjABCJAQAA7AEAMIoBAQDEAQAhxgEBAMQBACHHAQEAxAEAIcgBAQDhAQAhyQEBAMQBACHKAQAA7QEAIMwBAADuAcwBI80BAQDhAQAhzgFAAMYBACHPAUAA7wEAIdABAQDhAQAh0QEBAOEBACHSASAAxwEAIQMAAAAHACABAABiADAgAABjACADAAAABwAgAQAACAAwAgAACQAgAQAAAAUAIAEAAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACAWAwAA8QIAIAQAAPICACAIAAD1AgAgCgAA8wIAIAsAAPQCACAMAAD2AgAgigEBAAAAAbIBAAAAsgECtAEAAAC0AQK2AQAAALYBArcBAQAAAAG4AQEAAAABuQFAAAAAAboBQAAAAAG7AQEAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABARQAAGsAIBCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECtwEBAAAAAbgBAQAAAAG5AUAAAAABugFAAAAAAbsBAQAAAAG8ASAAAAABvQEBAAAAAb4BAADvAgAgvwEAAPACACDAAQEAAAABwQEBAAAAAcIBAQAAAAEBFAAAbQAwARQAAG0AMAEAAAASACAWAwAAtwIAIAQAALgCACAIAAC7AgAgCgAAuQIAIAsAALoCACAMAAC8AgAgigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACECAAAABQAgFAAAcQAgEIoBAQCaAgAhsgEAALECsgEitAEAALICtAEitgEAALMCtgEitwEBAJoCACG4AQEAmgIAIbkBQACcAgAhugFAAJwCACG7AQEAtAIAIbwBIACdAgAhvQEBALQCACG-AQAAtQIAIL8BAAC2AgAgwAEBALQCACHBAQEAtAIAIcIBAQCaAgAhAgAAAAMAIBQAAHMAIAIAAAADACAUAABzACABAAAAEgAgAwAAAAUAIBsAAGsAIBwAAHEAIAEAAAAFACABAAAAAwAgBwkAAK4CACAjAACwAgAgJAAArwIAILsBAACtAgAgvQEAAK0CACDAAQAArQIAIMEBAACtAgAgE4cBAADdAQAwiAEAAHsAEIkBAADdAQAwigEBAMQBACGyAQAA3gGyASK0AQAA3wG0ASK2AQAA4AG2ASK3AQEAxAEAIbgBAQDEAQAhuQFAAMYBACG6AUAAxgEAIbsBAQDhAQAhvAEgAMcBACG9AQEA4QEAIb4BAADiAQAgvwEAAOIBACDAAQEA4QEAIcEBAQDhAQAhwgEBAMQBACEDAAAAAwAgAQAAegAwIAAAewAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAOACABAAAADgAgAwAAAAwAIAEAAA0AMAIAAA4AIAMAAAAMACABAAANADACAAAOACADAAAADAAgAQAADQAwAgAADgAgBQYAAKsCACAHAACsAgAgrgEBAAAAAa8BAQAAAAGwAUAAAAABARQAAIMBACADrgEBAAAAAa8BAQAAAAGwAUAAAAABARQAAIUBADABFAAAhQEAMAUGAACpAgAgBwAAqgIAIK4BAQCaAgAhrwEBAJoCACGwAUAAnAIAIQIAAAAOACAUAACIAQAgA64BAQCaAgAhrwEBAJoCACGwAUAAnAIAIQIAAAAMACAUAACKAQAgAgAAAAwAIBQAAIoBACADAAAADgAgGwAAgwEAIBwAAIgBACABAAAADgAgAQAAAAwAIAMJAACmAgAgIwAAqAIAICQAAKcCACAGhwEAANwBADCIAQAAkQEAEIkBAADcAQAwrgEBAMQBACGvAQEAxAEAIbABQADGAQAhAwAAAAwAIAEAAJABADAgAACRAQAgAwAAAAwAIAEAAA0AMAIAAA4AIA2HAQAA1wEAMIgBAACXAQAQiQEAANcBADCeAQEA2AEAIZ8BAQDYAQAhoAECANkBACGhAQIA2QEAIaIBAgDZAQAhowECANkBACGkAQIA2QEAIaUBAgDZAQAhpgEAANoBACCtAQAA2wEAIAEAAACUAQAgAQAAAJQBACAMhwEAANcBADCIAQAAlwEAEIkBAADXAQAwngEBANgBACGfAQEA2AEAIaABAgDZAQAhoQECANkBACGiAQIA2QEAIaMBAgDZAQAhpAECANkBACGlAQIA2QEAIaYBAADaAQAgAAMAAACXAQAgAQAAmAEAMAIAAJQBACADAAAAlwEAIAEAAJgBADACAACUAQAgAwAAAJcBACABAACYAQAwAgAAlAEAIAmeAQEAAAABnwEBAAAAAaABAgAAAAGhAQIAAAABogECAAAAAaMBAgAAAAGkAQIAAAABpQECAAAAAaYBgAAAAAEBFAAAnAEAIAmeAQEAAAABnwEBAAAAAaABAgAAAAGhAQIAAAABogECAAAAAaMBAgAAAAGkAQIAAAABpQECAAAAAaYBgAAAAAEBFAAAngEAMAEUAACeAQAwCZ4BAQCaAgAhnwEBAJoCACGgAQIApQIAIaEBAgClAgAhogECAKUCACGjAQIApQIAIaQBAgClAgAhpQECAKUCACGmAYAAAAABAgAAAJQBACAUAAChAQAgCZ4BAQCaAgAhnwEBAJoCACGgAQIApQIAIaEBAgClAgAhogECAKUCACGjAQIApQIAIaQBAgClAgAhpQECAKUCACGmAYAAAAABAgAAAJcBACAUAACjAQAgAgAAAJcBACAUAACjAQAgAwAAAJQBACAbAACcAQAgHAAAoQEAIAEAAACUAQAgAQAAAJcBACAFCQAAoAIAICEAAKECACAiAACkAgAgIwAAowIAICQAAKICACAMhwEAANEBADCIAQAAqgEAEIkBAADRAQAwngEBAMQBACGfAQEAxAEAIaABAgDSAQAhoQECANIBACGiAQIA0gEAIaMBAgDSAQAhpAECANIBACGlAQIA0gEAIaYBAADTAQAgAwAAAJcBACABAACpAQAwIAAAqgEAIAMAAACXAQAgAQAAmAEAMAIAAJQBACABAAAAGQAgAQAAABkAIAMAAAAXACABAAAYADACAAAZACADAAAAFwAgAQAAGAAwAgAAGQAgAwAAABcAIAEAABgAMAIAABkAIAkHAACfAgAgigEBAAAAAYwBAAAAjAECjQEBAAAAAY4BAQAAAAGPAQEAAAABkAEBAAAAAZEBQAAAAAGSASAAAAABARQAALIBACAIigEBAAAAAYwBAAAAjAECjQEBAAAAAY4BAQAAAAGPAQEAAAABkAEBAAAAAZEBQAAAAAGSASAAAAABARQAALQBADABFAAAtAEAMAkHAACeAgAgigEBAJoCACGMAQAAmwKMASKNAQEAmgIAIY4BAQCaAgAhjwEBAJoCACGQAQEAmgIAIZEBQACcAgAhkgEgAJ0CACECAAAAGQAgFAAAtwEAIAiKAQEAmgIAIYwBAACbAowBIo0BAQCaAgAhjgEBAJoCACGPAQEAmgIAIZABAQCaAgAhkQFAAJwCACGSASAAnQIAIQIAAAAXACAUAAC5AQAgAgAAABcAIBQAALkBACADAAAAGQAgGwAAsgEAIBwAALcBACABAAAAGQAgAQAAABcAIAMJAACXAgAgIwAAmQIAICQAAJgCACALhwEAAMMBADCIAQAAwAEAEIkBAADDAQAwigEBAMQBACGMAQAAxQGMASKNAQEAxAEAIY4BAQDEAQAhjwEBAMQBACGQAQEAxAEAIZEBQADGAQAhkgEgAMcBACEDAAAAFwAgAQAAvwEAMCAAAMABACADAAAAFwAgAQAAGAAwAgAAGQAgC4cBAADDAQAwiAEAAMABABCJAQAAwwEAMIoBAQDEAQAhjAEAAMUBjAEijQEBAMQBACGOAQEAxAEAIY8BAQDEAQAhkAEBAMQBACGRAUAAxgEAIZIBIADHAQAhDgkAAMkBACAjAADQAQAgJAAA0AEAIJMBAQAAAAGUAQEAzwEAIZUBAQAAAASWAQEAAAAElwEBAAAAAZgBAQAAAAGZAQEAAAABmgEBAAAAAZsBAQAAAAGcAQEAAAABnQEBAAAAAQcJAADJAQAgIwAAzgEAICQAAM4BACCTAQAAAIwBApQBAADNAYwBIpUBAAAAjAEIlgEAAACMAQgLCQAAyQEAICMAAMwBACAkAADMAQAgkwFAAAAAAZQBQADLAQAhlQFAAAAABJYBQAAAAASXAUAAAAABmAFAAAAAAZkBQAAAAAGaAUAAAAABBQkAAMkBACAjAADKAQAgJAAAygEAIJMBIAAAAAGUASAAyAEAIQUJAADJAQAgIwAAygEAICQAAMoBACCTASAAAAABlAEgAMgBACEIkwECAAAAAZQBAgDJAQAhlQECAAAABJYBAgAAAASXAQIAAAABmAECAAAAAZkBAgAAAAGaAQIAAAABApMBIAAAAAGUASAAygEAIQsJAADJAQAgIwAAzAEAICQAAMwBACCTAUAAAAABlAFAAMsBACGVAUAAAAAElgFAAAAABJcBQAAAAAGYAUAAAAABmQFAAAAAAZoBQAAAAAEIkwFAAAAAAZQBQADMAQAhlQFAAAAABJYBQAAAAASXAUAAAAABmAFAAAAAAZkBQAAAAAGaAUAAAAABBwkAAMkBACAjAADOAQAgJAAAzgEAIJMBAAAAjAEClAEAAM0BjAEilQEAAACMAQiWAQAAAIwBCASTAQAAAIwBApQBAADOAYwBIpUBAAAAjAEIlgEAAACMAQgOCQAAyQEAICMAANABACAkAADQAQAgkwEBAAAAAZQBAQDPAQAhlQEBAAAABJYBAQAAAASXAQEAAAABmAEBAAAAAZkBAQAAAAGaAQEAAAABmwEBAAAAAZwBAQAAAAGdAQEAAAABC5MBAQAAAAGUAQEA0AEAIZUBAQAAAASWAQEAAAAElwEBAAAAAZgBAQAAAAGZAQEAAAABmgEBAAAAAZsBAQAAAAGcAQEAAAABnQEBAAAAAQyHAQAA0QEAMIgBAACqAQAQiQEAANEBADCeAQEAxAEAIZ8BAQDEAQAhoAECANIBACGhAQIA0gEAIaIBAgDSAQAhowECANIBACGkAQIA0gEAIaUBAgDSAQAhpgEAANMBACANCQAAyQEAICEAANYBACAiAADJAQAgIwAAyQEAICQAAMkBACCTAQIAAAABlAECANUBACGVAQIAAAAElgECAAAABJcBAgAAAAGYAQIAAAABmQECAAAAAZoBAgAAAAEPCQAAyQEAICMAANQBACAkAADUAQAgkwGAAAAAAZQBgAAAAAGXAYAAAAABmAGAAAAAAZkBgAAAAAGaAYAAAAABpwEBAAAAAagBAQAAAAGpAQEAAAABqgGAAAAAAasBgAAAAAGsAYAAAAABDJMBgAAAAAGUAYAAAAABlwGAAAAAAZgBgAAAAAGZAYAAAAABmgGAAAAAAacBAQAAAAGoAQEAAAABqQEBAAAAAaoBgAAAAAGrAYAAAAABrAGAAAAAAQ0JAADJAQAgIQAA1gEAICIAAMkBACAjAADJAQAgJAAAyQEAIJMBAgAAAAGUAQIA1QEAIZUBAgAAAASWAQIAAAAElwECAAAAAZgBAgAAAAGZAQIAAAABmgECAAAAAQiTAQgAAAABlAEIANYBACGVAQgAAAAElgEIAAAABJcBCAAAAAGYAQgAAAABmQEIAAAAAZoBCAAAAAEMhwEAANcBADCIAQAAlwEAEIkBAADXAQAwngEBANgBACGfAQEA2AEAIaABAgDZAQAhoQECANkBACGiAQIA2QEAIaMBAgDZAQAhpAECANkBACGlAQIA2QEAIaYBAADaAQAgC5MBAQAAAAGUAQEA0AEAIZUBAQAAAASWAQEAAAAElwEBAAAAAZgBAQAAAAGZAQEAAAABmgEBAAAAAZsBAQAAAAGcAQEAAAABnQEBAAAAAQiTAQIAAAABlAECAMkBACGVAQIAAAAElgECAAAABJcBAgAAAAGYAQIAAAABmQECAAAAAZoBAgAAAAEMkwGAAAAAAZQBgAAAAAGXAYAAAAABmAGAAAAAAZkBgAAAAAGaAYAAAAABpwEBAAAAAagBAQAAAAGpAQEAAAABqgGAAAAAAasBgAAAAAGsAYAAAAABAp4BAQAAAAGfAQEAAAABBocBAADcAQAwiAEAAJEBABCJAQAA3AEAMK4BAQDEAQAhrwEBAMQBACGwAUAAxgEAIROHAQAA3QEAMIgBAAB7ABCJAQAA3QEAMIoBAQDEAQAhsgEAAN4BsgEitAEAAN8BtAEitgEAAOABtgEitwEBAMQBACG4AQEAxAEAIbkBQADGAQAhugFAAMYBACG7AQEA4QEAIbwBIADHAQAhvQEBAOEBACG-AQAA4gEAIL8BAADiAQAgwAEBAOEBACHBAQEA4QEAIcIBAQDEAQAhBwkAAMkBACAjAADrAQAgJAAA6wEAIJMBAAAAsgEClAEAAOoBsgEilQEAAACyAQiWAQAAALIBCAcJAADJAQAgIwAA6QEAICQAAOkBACCTAQAAALQBApQBAADoAbQBIpUBAAAAtAEIlgEAAAC0AQgHCQAAyQEAICMAAOcBACAkAADnAQAgkwEAAAC2AQKUAQAA5gG2ASKVAQAAALYBCJYBAAAAtgEIDgkAAOQBACAjAADlAQAgJAAA5QEAIJMBAQAAAAGUAQEA4wEAIZUBAQAAAAWWAQEAAAAFlwEBAAAAAZgBAQAAAAGZAQEAAAABmgEBAAAAAZsBAQAAAAGcAQEAAAABnQEBAAAAAQSTAQEAAAAFwwEBAAAAAcQBAQAAAATFAQEAAAAEDgkAAOQBACAjAADlAQAgJAAA5QEAIJMBAQAAAAGUAQEA4wEAIZUBAQAAAAWWAQEAAAAFlwEBAAAAAZgBAQAAAAGZAQEAAAABmgEBAAAAAZsBAQAAAAGcAQEAAAABnQEBAAAAAQiTAQIAAAABlAECAOQBACGVAQIAAAAFlgECAAAABZcBAgAAAAGYAQIAAAABmQECAAAAAZoBAgAAAAELkwEBAAAAAZQBAQDlAQAhlQEBAAAABZYBAQAAAAWXAQEAAAABmAEBAAAAAZkBAQAAAAGaAQEAAAABmwEBAAAAAZwBAQAAAAGdAQEAAAABBwkAAMkBACAjAADnAQAgJAAA5wEAIJMBAAAAtgEClAEAAOYBtgEilQEAAAC2AQiWAQAAALYBCASTAQAAALYBApQBAADnAbYBIpUBAAAAtgEIlgEAAAC2AQgHCQAAyQEAICMAAOkBACAkAADpAQAgkwEAAAC0AQKUAQAA6AG0ASKVAQAAALQBCJYBAAAAtAEIBJMBAAAAtAEClAEAAOkBtAEilQEAAAC0AQiWAQAAALQBCAcJAADJAQAgIwAA6wEAICQAAOsBACCTAQAAALIBApQBAADqAbIBIpUBAAAAsgEIlgEAAACyAQgEkwEAAACyAQKUAQAA6wGyASKVAQAAALIBCJYBAAAAsgEIEIcBAADsAQAwiAEAAGMAEIkBAADsAQAwigEBAMQBACHGAQEAxAEAIccBAQDEAQAhyAEBAOEBACHJAQEAxAEAIcoBAADtAQAgzAEAAO4BzAEjzQEBAOEBACHOAUAAxgEAIc8BQADvAQAh0AEBAOEBACHRAQEA4QEAIdIBIADHAQAhBJMBAAAA1AEJwwEAAADUAQPEAQAAANQBCMUBAAAA1AEIBwkAAOQBACAjAADzAQAgJAAA8wEAIJMBAAAAzAEDlAEAAPIBzAEjlQEAAADMAQmWAQAAAMwBCQsJAADkAQAgIwAA8QEAICQAAPEBACCTAUAAAAABlAFAAPABACGVAUAAAAAFlgFAAAAABZcBQAAAAAGYAUAAAAABmQFAAAAAAZoBQAAAAAELCQAA5AEAICMAAPEBACAkAADxAQAgkwFAAAAAAZQBQADwAQAhlQFAAAAABZYBQAAAAAWXAUAAAAABmAFAAAAAAZkBQAAAAAGaAUAAAAABCJMBQAAAAAGUAUAA8QEAIZUBQAAAAAWWAUAAAAAFlwFAAAAAAZgBQAAAAAGZAUAAAAABmgFAAAAAAQcJAADkAQAgIwAA8wEAICQAAPMBACCTAQAAAMwBA5QBAADyAcwBI5UBAAAAzAEJlgEAAADMAQkEkwEAAADMAQOUAQAA8wHMASOVAQAAAMwBCZYBAAAAzAEJD4cBAAD0AQAwiAEAAE0AEIkBAAD0AQAwigEBAMQBACHGAQEAxAEAIccBAQDEAQAhyAEBAMQBACHJAQEAxAEAIc4BQADGAQAh0QEBAOEBACHSASAAxwEAIdQBIADHAQAh1QEAAPUBACDWASAAxwEAIdcBAAD2AQAgBJMBAAAA2gEJwwEAAADaAQPEAQAAANoBCMUBAAAA2gEIBJMBAAAA2QEJwwEAAADZAQPEAQAAANkBCMUBAAAA2QEIEAUAAPsBACCHAQAA9wEAMIgBAAASABCJAQAA9wEAMIoBAQDYAQAhxgEBANgBACHHAQEA2AEAIcgBAQDYAQAhyQEBANgBACHOAUAA-gEAIdEBAQD4AQAh0gEgAPkBACHUASAA-QEAIdUBAAD1AQAg1gEgAPkBACHXAQAA9gEAIAuTAQEAAAABlAEBAOUBACGVAQEAAAAFlgEBAAAABZcBAQAAAAGYAQEAAAABmQEBAAAAAZoBAQAAAAGbAQEAAAABnAEBAAAAAZ0BAQAAAAECkwEgAAAAAZQBIADKAQAhCJMBQAAAAAGUAUAAzAEAIZUBQAAAAASWAUAAAAAElwFAAAAAAZgBQAAAAAGZAUAAAAABmgFAAAAAAQPaAQAAAwAg2wEAAAMAINwBAAADACANhwEAAPwBADCIAQAANQAQiQEAAPwBADCKAQEAxAEAIdABAQDEAQAh0QEBAOEBACHdAQEAxAEAId4BAQDEAQAh3wEBAOEBACHhAQAA_QHhASLiAQgA_gEAIeMBCAD-AQAh5AEAAOIBACAHCQAAyQEAICMAAIECACAkAACBAgAgkwEAAADhAQKUAQAAgALhASKVAQAAAOEBCJYBAAAA4QEIDQkAAMkBACAhAADWAQAgIgAA1gEAICMAANYBACAkAADWAQAgkwEIAAAAAZQBCAD_AQAhlQEIAAAABJYBCAAAAASXAQgAAAABmAEIAAAAAZkBCAAAAAGaAQgAAAABDQkAAMkBACAhAADWAQAgIgAA1gEAICMAANYBACAkAADWAQAgkwEIAAAAAZQBCAD_AQAhlQEIAAAABJYBCAAAAASXAQgAAAABmAEIAAAAAZkBCAAAAAGaAQgAAAABBwkAAMkBACAjAACBAgAgJAAAgQIAIJMBAAAA4QEClAEAAIAC4QEilQEAAADhAQiWAQAAAOEBCASTAQAAAOEBApQBAACBAuEBIpUBAAAA4QEIlgEAAADhAQgPDQAA-wEAIA4AAPsBACCHAQAAggIAMIgBAAAiABCJAQAAggIAMIoBAQDYAQAh0AEBANgBACHRAQEA-AEAId0BAQDYAQAh3gEBANgBACHfAQEA-AEAIeEBAACDAuEBIuIBCACEAgAh4wEIAIQCACHkAQAA4gEAIASTAQAAAOEBApQBAACBAuEBIpUBAAAA4QEIlgEAAADhAQgIkwEIAAAAAZQBCADWAQAhlQEIAAAABJYBCAAAAASXAQgAAAABmAEIAAAAAZkBCAAAAAGaAQgAAAABDAcAAIcCACCHAQAAhQIAMIgBAAAXABCJAQAAhQIAMIoBAQDYAQAhjAEAAIYCjAEijQEBANgBACGOAQEA2AEAIY8BAQDYAQAhkAEBANgBACGRAUAA-gEAIZIBIAD5AQAhBJMBAAAAjAEClAEAAM4BjAEilQEAAACMAQiWAQAAAIwBCBsDAACTAgAgBAAAkwIAIAgAAI4CACAKAACUAgAgCwAAlQIAIAwAAJYCACCHAQAAjwIAMIgBAAADABCJAQAAjwIAMIoBAQDYAQAhsgEAAJACsgEitAEAAJECtAEitgEAAJICtgEitwEBANgBACG4AQEA2AEAIbkBQAD6AQAhugFAAPoBACG7AQEA-AEAIbwBIAD5AQAhvQEBAPgBACG-AQAA4gEAIL8BAADiAQAgwAEBAPgBACHBAQEA-AEAIcIBAQDYAQAh5gEAAAMAIOcBAAADACACrgEBAAAAAa8BAQAAAAEIBgAAigIAIAcAAIcCACCHAQAAiQIAMIgBAAAMABCJAQAAiQIAMK4BAQDYAQAhrwEBANgBACGwAUAA-gEAIRQFAAD7AQAgCAAAjgIAIIcBAACLAgAwiAEAAAcAEIkBAACLAgAwigEBANgBACHGAQEA2AEAIccBAQDYAQAhyAEBAPgBACHJAQEA2AEAIcoBAADtAQAgzAEAAIwCzAEjzQEBAPgBACHOAUAA-gEAIc8BQACNAgAh0AEBAPgBACHRAQEA-AEAIdIBIAD5AQAh5gEAAAcAIOcBAAAHACASBQAA-wEAIAgAAI4CACCHAQAAiwIAMIgBAAAHABCJAQAAiwIAMIoBAQDYAQAhxgEBANgBACHHAQEA2AEAIcgBAQD4AQAhyQEBANgBACHKAQAA7QEAIMwBAACMAswBI80BAQD4AQAhzgFAAPoBACHPAUAAjQIAIdABAQD4AQAh0QEBAPgBACHSASAA-QEAIQSTAQAAAMwBA5QBAADzAcwBI5UBAAAAzAEJlgEAAADMAQkIkwFAAAAAAZQBQADxAQAhlQFAAAAABZYBQAAAAAWXAUAAAAABmAFAAAAAAZkBQAAAAAGaAUAAAAABA9oBAAAMACDbAQAADAAg3AEAAAwAIBkDAACTAgAgBAAAkwIAIAgAAI4CACAKAACUAgAgCwAAlQIAIAwAAJYCACCHAQAAjwIAMIgBAAADABCJAQAAjwIAMIoBAQDYAQAhsgEAAJACsgEitAEAAJECtAEitgEAAJICtgEitwEBANgBACG4AQEA2AEAIbkBQAD6AQAhugFAAPoBACG7AQEA-AEAIbwBIAD5AQAhvQEBAPgBACG-AQAA4gEAIL8BAADiAQAgwAEBAPgBACHBAQEA-AEAIcIBAQDYAQAhBJMBAAAAsgEClAEAAOsBsgEilQEAAACyAQiWAQAAALIBCASTAQAAALQBApQBAADpAbQBIpUBAAAAtAEIlgEAAAC0AQgEkwEAAAC2AQKUAQAA5wG2ASKVAQAAALYBCJYBAAAAtgEIEQ0AAPsBACAOAAD7AQAghwEAAIICADCIAQAAIgAQiQEAAIICADCKAQEA2AEAIdABAQDYAQAh0QEBAPgBACHdAQEA2AEAId4BAQDYAQAh3wEBAPgBACHhAQAAgwLhASLiAQgAhAIAIeMBCACEAgAh5AEAAOIBACDmAQAAIgAg5wEAACIAIAPaAQAABwAg2wEAAAcAINwBAAAHACASBQAA-wEAIIcBAAD3AQAwiAEAABIAEIkBAAD3AQAwigEBANgBACHGAQEA2AEAIccBAQDYAQAhyAEBANgBACHJAQEA2AEAIc4BQAD6AQAh0QEBAPgBACHSASAA-QEAIdQBIAD5AQAh1QEAAPUBACDWASAA-QEAIdcBAAD2AQAg5gEAABIAIOcBAAASACAD2gEAABcAINsBAAAXACDcAQAAFwAgAAAAAesBAQAAAAEB6wEAAACMAQIB6wFAAAAAAQHrASAAAAABBRsAAN8DACAcAADiAwAg6AEAAOADACDpAQAA4QMAIO4BAAAFACADGwAA3wMAIOgBAADgAwAg7gEAAAUAIAAAAAAABesBAgAAAAHyAQIAAAAB8wECAAAAAfQBAgAAAAH1AQIAAAABAAAABRsAANcDACAcAADdAwAg6AEAANgDACDpAQAA3AMAIO4BAAAJACAFGwAA1QMAIBwAANoDACDoAQAA1gMAIOkBAADZAwAg7gEAAAUAIAMbAADXAwAg6AEAANgDACDuAQAACQAgAxsAANUDACDoAQAA1gMAIO4BAAAFACAAAAAAAesBAAAAsgECAesBAAAAtAECAesBAAAAtgECAesBAQAAAAEC6wEBAAAABPEBAQAAAAUC6wEBAAAABPEBAQAAAAUFGwAAxwMAIBwAANMDACDoAQAAyAMAIOkBAADSAwAg7gEAAAEAIAUbAADFAwAgHAAA0AMAIOgBAADGAwAg6QEAAM8DACDuAQAAAQAgChsAANUCADAcAADZAgAw6AEAANYCADDpAQAA1wIAMOsBAADYAgAw7AEAANgCADDtAQAA2AIAMO4BAADYAgAw7wEAANoCADDwAQAA2wIAMAcbAADDAwAgHAAAzQMAIOgBAADEAwAg6QEAAMwDACDsAQAAEgAg7QEAABIAIO4BAAA4ACALGwAAyQIAMBwAAM4CADDoAQAAygIAMOkBAADLAgAw6gEAAMwCACDrAQAAzQIAMOwBAADNAgAw7QEAAM0CADDuAQAAzQIAMO8BAADPAgAw8AEAANACADALGwAAvQIAMBwAAMICADDoAQAAvgIAMOkBAAC_AgAw6gEAAMACACDrAQAAwQIAMOwBAADBAgAw7QEAAMECADDuAQAAwQIAMO8BAADDAgAw8AEAAMQCADAHigEBAAAAAYwBAAAAjAECjQEBAAAAAY8BAQAAAAGQAQEAAAABkQFAAAAAAZIBIAAAAAECAAAAGQAgGwAAyAIAIAMAAAAZACAbAADIAgAgHAAAxwIAIAEUAADLAwAwDAcAAIcCACCHAQAAhQIAMIgBAAAXABCJAQAAhQIAMIoBAQAAAAGMAQAAhgKMASKNAQEA2AEAIY4BAQDYAQAhjwEBANgBACGQAQEA2AEAIZEBQAD6AQAhkgEgAPkBACECAAAAGQAgFAAAxwIAIAIAAADFAgAgFAAAxgIAIAuHAQAAxAIAMIgBAADFAgAQiQEAAMQCADCKAQEA2AEAIYwBAACGAowBIo0BAQDYAQAhjgEBANgBACGPAQEA2AEAIZABAQDYAQAhkQFAAPoBACGSASAA-QEAIQuHAQAAxAIAMIgBAADFAgAQiQEAAMQCADCKAQEA2AEAIYwBAACGAowBIo0BAQDYAQAhjgEBANgBACGPAQEA2AEAIZABAQDYAQAhkQFAAPoBACGSASAA-QEAIQeKAQEAmgIAIYwBAACbAowBIo0BAQCaAgAhjwEBAJoCACGQAQEAmgIAIZEBQACcAgAhkgEgAJ0CACEHigEBAJoCACGMAQAAmwKMASKNAQEAmgIAIY8BAQCaAgAhkAEBAJoCACGRAUAAnAIAIZIBIACdAgAhB4oBAQAAAAGMAQAAAIwBAo0BAQAAAAGPAQEAAAABkAEBAAAAAZEBQAAAAAGSASAAAAABAwYAAKsCACCuAQEAAAABsAFAAAAAAQIAAAAOACAbAADUAgAgAwAAAA4AIBsAANQCACAcAADTAgAgARQAAMoDADAJBgAAigIAIAcAAIcCACCHAQAAiQIAMIgBAAAMABCJAQAAiQIAMK4BAQDYAQAhrwEBANgBACGwAUAA-gEAIeUBAACIAgAgAgAAAA4AIBQAANMCACACAAAA0QIAIBQAANICACAGhwEAANACADCIAQAA0QIAEIkBAADQAgAwrgEBANgBACGvAQEA2AEAIbABQAD6AQAhBocBAADQAgAwiAEAANECABCJAQAA0AIAMK4BAQDYAQAhrwEBANgBACGwAUAA-gEAIQKuAQEAmgIAIbABQACcAgAhAwYAAKkCACCuAQEAmgIAIbABQACcAgAhAwYAAKsCACCuAQEAAAABsAFAAAAAAQ4IAADuAgAgigEBAAAAAcYBAQAAAAHHAQEAAAAByAEBAAAAAckBAQAAAAHKAQAA7QIAIMwBAAAAzAEDzQEBAAAAAc4BQAAAAAHPAUAAAAAB0AEBAAAAAdEBAQAAAAHSASAAAAABAgAAAAkAIBsAAOwCACADAAAACQAgGwAA7AIAIBwAAOECACASBQAA-wEAIAgAAI4CACCHAQAAiwIAMIgBAAAHABCJAQAAiwIAMIoBAQAAAAHGAQEA2AEAIccBAQDYAQAhyAEBAPgBACHJAQEAAAABygEAAO0BACDMAQAAjALMASPNAQEA-AEAIc4BQAD6AQAhzwFAAI0CACHQAQEA-AEAIdEBAQD4AQAh0gEgAPkBACECAAAACQAgFAAA4QIAIAIAAADcAgAgFAAA3QIAIBCHAQAA2wIAMIgBAADcAgAQiQEAANsCADCKAQEA2AEAIcYBAQDYAQAhxwEBANgBACHIAQEA-AEAIckBAQDYAQAhygEAAO0BACDMAQAAjALMASPNAQEA-AEAIc4BQAD6AQAhzwFAAI0CACHQAQEA-AEAIdEBAQD4AQAh0gEgAPkBACEQhwEAANsCADCIAQAA3AIAEIkBAADbAgAwigEBANgBACHGAQEA2AEAIccBAQDYAQAhyAEBAPgBACHJAQEA2AEAIcoBAADtAQAgzAEAAIwCzAEjzQEBAPgBACHOAUAA-gEAIc8BQACNAgAh0AEBAPgBACHRAQEA-AEAIdIBIAD5AQAhDYoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQC0AgAhyQEBAJoCACHKAQAA3gIAIMwBAADfAswBI80BAQC0AgAhzgFAAJwCACHPAUAA4AIAIdABAQC0AgAh0QEBALQCACHSASAAnQIAIQLrAQAAANQBCPEBAAAA1AECAesBAAAAzAEDAesBQAAAAAEOCAAA4gIAIIoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQC0AgAhyQEBAJoCACHKAQAA3gIAIMwBAADfAswBI80BAQC0AgAhzgFAAJwCACHPAUAA4AIAIdABAQC0AgAh0QEBALQCACHSASAAnQIAIQsbAADjAgAwHAAA5wIAMOgBAADkAgAw6QEAAOUCADDqAQAA5gIAIOsBAADNAgAw7AEAAM0CADDtAQAAzQIAMO4BAADNAgAw7wEAAOgCADDwAQAA0AIAMAMHAACsAgAgrwEBAAAAAbABQAAAAAECAAAADgAgGwAA6wIAIAMAAAAOACAbAADrAgAgHAAA6gIAIAEUAADJAwAwAgAAAA4AIBQAAOoCACACAAAA0QIAIBQAAOkCACACrwEBAJoCACGwAUAAnAIAIQMHAACqAgAgrwEBAJoCACGwAUAAnAIAIQMHAACsAgAgrwEBAAAAAbABQAAAAAEOCAAA7gIAIIoBAQAAAAHGAQEAAAABxwEBAAAAAcgBAQAAAAHJAQEAAAABygEAAO0CACDMAQAAAMwBA80BAQAAAAHOAUAAAAABzwFAAAAAAdABAQAAAAHRAQEAAAAB0gEgAAAAAQHrAQAAANQBCAQbAADjAgAw6AEAAOQCADDqAQAA5gIAIO4BAADNAgAwAesBAQAAAAQB6wEBAAAABAMbAADHAwAg6AEAAMgDACDuAQAAAQAgAxsAAMUDACDoAQAAxgMAIO4BAAABACADGwAA1QIAMOgBAADWAgAw7gEAANgCADADGwAAwwMAIOgBAADEAwAg7gEAADgAIAQbAADJAgAw6AEAAMoCADDqAQAAzAIAIO4BAADNAgAwBBsAAL0CADDoAQAAvgIAMOoBAADAAgAg7gEAAMECADAAAAAKGwAA-wIAMBwAAP8CADDoAQAA_AIAMOkBAAD9AgAw6wEAAP4CADDsAQAA_gIAMO0BAAD-AgAw7gEAAP4CADDvAQAAgAMAMPABAACBAwAwFQMAAPECACAEAADyAgAgCAAA9QIAIAsAAPQCACAMAAD2AgAgigEBAAAAAbIBAAAAsgECtAEAAAC0AQK2AQAAALYBArcBAQAAAAG4AQEAAAABuQFAAAAAAboBQAAAAAG7AQEAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABAgAAAAUAIBsAAIUDACADAAAABQAgGwAAhQMAIBwAAIQDACAZAwAAkwIAIAQAAJMCACAIAACOAgAgCgAAlAIAIAsAAJUCACAMAACWAgAghwEAAI8CADCIAQAAAwAQiQEAAI8CADCKAQEAAAABsgEAAJACsgEitAEAAJECtAEitgEAAJICtgEitwEBANgBACG4AQEA2AEAIbkBQAD6AQAhugFAAPoBACG7AQEA-AEAIbwBIAD5AQAhvQEBAPgBACG-AQAA4gEAIL8BAADiAQAgwAEBAPgBACHBAQEA-AEAIcIBAQDYAQAhAgAAAAUAIBQAAIQDACACAAAAggMAIBQAAIMDACAThwEAAIEDADCIAQAAggMAEIkBAACBAwAwigEBANgBACGyAQAAkAKyASK0AQAAkQK0ASK2AQAAkgK2ASK3AQEA2AEAIbgBAQDYAQAhuQFAAPoBACG6AUAA-gEAIbsBAQD4AQAhvAEgAPkBACG9AQEA-AEAIb4BAADiAQAgvwEAAOIBACDAAQEA-AEAIcEBAQD4AQAhwgEBANgBACEThwEAAIEDADCIAQAAggMAEIkBAACBAwAwigEBANgBACGyAQAAkAKyASK0AQAAkQK0ASK2AQAAkgK2ASK3AQEA2AEAIbgBAQDYAQAhuQFAAPoBACG6AUAA-gEAIbsBAQD4AQAhvAEgAPkBACG9AQEA-AEAIb4BAADiAQAgvwEAAOIBACDAAQEA-AEAIcEBAQD4AQAhwgEBANgBACEQigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEVAwAAtwIAIAQAALgCACAIAAC7AgAgCwAAugIAIAwAALwCACCKAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrcBAQCaAgAhuAEBAJoCACG5AUAAnAIAIboBQACcAgAhuwEBALQCACG8ASAAnQIAIb0BAQC0AgAhvgEAALUCACC_AQAAtgIAIMABAQC0AgAhwQEBALQCACHCAQEAmgIAIRUDAADxAgAgBAAA8gIAIAgAAPUCACALAAD0AgAgDAAA9gIAIIoBAQAAAAGyAQAAALIBArQBAAAAtAECtgEAAAC2AQK3AQEAAAABuAEBAAAAAbkBQAAAAAG6AUAAAAABuwEBAAAAAbwBIAAAAAG9AQEAAAABvgEAAO8CACC_AQAA8AIAIMABAQAAAAHBAQEAAAABwgEBAAAAAQMbAAD7AgAw6AEAAPwCADDuAQAA_gIAMAAAAALrAQAAANoBCPEBAAAA2gECAusBAAAA2QEI8QEAAADZAQILGwAAjQMAMBwAAJEDADDoAQAAjgMAMOkBAACPAwAw6gEAAJADACDrAQAA_gIAMOwBAAD-AgAw7QEAAP4CADDuAQAA_gIAMO8BAACSAwAw8AEAAIEDADAUAwAA8QIAIAQAAPICACAIAAD1AgAgCgAA8wIAIAwAAPYCACCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECtwEBAAAAAbgBAQAAAAG5AUAAAAABugFAAAAAAbwBIAAAAAG9AQEAAAABvgEAAO8CACC_AQAA8AIAIMABAQAAAAHBAQEAAAABwgEBAAAAAQIAAAAFACAbAACVAwAgAwAAAAUAIBsAAJUDACAcAACUAwAgARQAAMIDADACAAAABQAgFAAAlAMAIAIAAACCAwAgFAAAkwMAIA-KAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrcBAQCaAgAhuAEBAJoCACG5AUAAnAIAIboBQACcAgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEUAwAAtwIAIAQAALgCACAIAAC7AgAgCgAAuQIAIAwAALwCACCKAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrcBAQCaAgAhuAEBAJoCACG5AUAAnAIAIboBQACcAgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEUAwAA8QIAIAQAAPICACAIAAD1AgAgCgAA8wIAIAwAAPYCACCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECtwEBAAAAAbgBAQAAAAG5AUAAAAABugFAAAAAAbwBIAAAAAG9AQEAAAABvgEAAO8CACC_AQAA8AIAIMABAQAAAAHBAQEAAAABwgEBAAAAAQHrAQAAANoBCAHrAQAAANkBCAQbAACNAwAw6AEAAI4DADDqAQAAkAMAIO4BAAD-AgAwAAAAAAAAAesBAAAA4QECBesBCAAAAAHyAQgAAAAB8wEIAAAAAfQBCAAAAAH1AQgAAAABAusBAQAAAATxAQEAAAAFCxsAAK0DADAcAACxAwAw6AEAAK4DADDpAQAArwMAMOoBAACwAwAg6wEAAP4CADDsAQAA_gIAMO0BAAD-AgAw7gEAAP4CADDvAQAAsgMAMPABAACBAwAwCxsAAKQDADAcAACoAwAw6AEAAKUDADDpAQAApgMAMOoBAACnAwAg6wEAAP4CADDsAQAA_gIAMO0BAAD-AgAw7gEAAP4CADDvAQAAqQMAMPABAACBAwAwFAMAAPECACAIAAD1AgAgCgAA8wIAIAsAAPQCACAMAAD2AgAgigEBAAAAAbIBAAAAsgECtAEAAAC0AQK2AQAAALYBArcBAQAAAAG5AUAAAAABugFAAAAAAbsBAQAAAAG8ASAAAAABvQEBAAAAAb4BAADvAgAgvwEAAPACACDAAQEAAAABwQEBAAAAAcIBAQAAAAECAAAABQAgGwAArAMAIAMAAAAFACAbAACsAwAgHAAAqwMAIAEUAADBAwAwAgAAAAUAIBQAAKsDACACAAAAggMAIBQAAKoDACAPigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbkBQACcAgAhugFAAJwCACG7AQEAtAIAIbwBIACdAgAhvQEBALQCACG-AQAAtQIAIL8BAAC2AgAgwAEBALQCACHBAQEAtAIAIcIBAQCaAgAhFAMAALcCACAIAAC7AgAgCgAAuQIAIAsAALoCACAMAAC8AgAgigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbkBQACcAgAhugFAAJwCACG7AQEAtAIAIbwBIACdAgAhvQEBALQCACG-AQAAtQIAIL8BAAC2AgAgwAEBALQCACHBAQEAtAIAIcIBAQCaAgAhFAMAAPECACAIAAD1AgAgCgAA8wIAIAsAAPQCACAMAAD2AgAgigEBAAAAAbIBAAAAsgECtAEAAAC0AQK2AQAAALYBArcBAQAAAAG5AUAAAAABugFAAAAAAbsBAQAAAAG8ASAAAAABvQEBAAAAAb4BAADvAgAgvwEAAPACACDAAQEAAAABwQEBAAAAAcIBAQAAAAEUBAAA8gIAIAgAAPUCACAKAADzAgAgCwAA9AIAIAwAAPYCACCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECuAEBAAAAAbkBQAAAAAG6AUAAAAABuwEBAAAAAbwBIAAAAAG9AQEAAAABvgEAAO8CACC_AQAA8AIAIMABAQAAAAHBAQEAAAABwgEBAAAAAQIAAAAFACAbAAC1AwAgAwAAAAUAIBsAALUDACAcAAC0AwAgARQAAMADADACAAAABQAgFAAAtAMAIAIAAACCAwAgFAAAswMAIA-KAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEUBAAAuAIAIAgAALsCACAKAAC5AgAgCwAAugIAIAwAALwCACCKAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEUBAAA8gIAIAgAAPUCACAKAADzAgAgCwAA9AIAIAwAAPYCACCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECuAEBAAAAAbkBQAAAAAG6AUAAAAABuwEBAAAAAbwBIAAAAAG9AQEAAAABvgEAAO8CACC_AQAA8AIAIMABAQAAAAHBAQEAAAABwgEBAAAAAQHrAQEAAAAEBBsAAK0DADDoAQAArgMAMOoBAACwAwAg7gEAAP4CADAEGwAApAMAMOgBAAClAwAw6gEAAKcDACDuAQAA_gIAMAoDAAC8AwAgBAAAvAMAIAgAALsDACAKAAC9AwAgCwAAvgMAIAwAAL8DACC7AQAArQIAIL0BAACtAgAgwAEAAK0CACDBAQAArQIAIAgFAACZAwAgCAAAuwMAIMgBAACtAgAgzAEAAK0CACDNAQAArQIAIM8BAACtAgAg0AEAAK0CACDRAQAArQIAIAAEDQAAmQMAIA4AAJkDACDRAQAArQIAIN8BAACtAgAgAAIFAACZAwAg0QEAAK0CACAAD4oBAQAAAAGyAQAAALIBArQBAAAAtAECtgEAAAC2AQK4AQEAAAABuQFAAAAAAboBQAAAAAG7AQEAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABD4oBAQAAAAGyAQAAALIBArQBAAAAtAECtgEAAAC2AQK3AQEAAAABuQFAAAAAAboBQAAAAAG7AQEAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABD4oBAQAAAAGyAQAAALIBArQBAAAAtAECtgEAAAC2AQK3AQEAAAABuAEBAAAAAbkBQAAAAAG6AUAAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABDIoBAQAAAAHGAQEAAAABxwEBAAAAAcgBAQAAAAHJAQEAAAABzgFAAAAAAdEBAQAAAAHSASAAAAAB1AEgAAAAAdUBAACWAwAg1gEgAAAAAdcBAACXAwAgAgAAADgAIBsAAMMDACALDQAAtwMAIIoBAQAAAAHQAQEAAAAB0QEBAAAAAd0BAQAAAAHeAQEAAAAB3wEBAAAAAeEBAAAA4QEC4gEIAAAAAeMBCAAAAAHkAQAAtgMAIAIAAAABACAbAADFAwAgCw4AALgDACCKAQEAAAAB0AEBAAAAAdEBAQAAAAHdAQEAAAAB3gEBAAAAAd8BAQAAAAHhAQAAAOEBAuIBCAAAAAHjAQgAAAAB5AEAALYDACACAAAAAQAgGwAAxwMAIAKvAQEAAAABsAFAAAAAAQKuAQEAAAABsAFAAAAAAQeKAQEAAAABjAEAAACMAQKNAQEAAAABjwEBAAAAAZABAQAAAAGRAUAAAAABkgEgAAAAAQMAAAASACAbAADDAwAgHAAAzgMAIA4AAAASACAUAADOAwAgigEBAJoCACHGAQEAmgIAIccBAQCaAgAhyAEBAJoCACHJAQEAmgIAIc4BQACcAgAh0QEBALQCACHSASAAnQIAIdQBIACdAgAh1QEAAIoDACDWASAAnQIAIdcBAACLAwAgDIoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQCaAgAhyQEBAJoCACHOAUAAnAIAIdEBAQC0AgAh0gEgAJ0CACHUASAAnQIAIdUBAACKAwAg1gEgAJ0CACHXAQAAiwMAIAMAAAAiACAbAADFAwAgHAAA0QMAIA0AAAAiACANAACiAwAgFAAA0QMAIIoBAQCaAgAh0AEBAJoCACHRAQEAtAIAId0BAQCaAgAh3gEBAJoCACHfAQEAtAIAIeEBAACfA-EBIuIBCACgAwAh4wEIAKADACHkAQAAoQMAIAsNAACiAwAgigEBAJoCACHQAQEAmgIAIdEBAQC0AgAh3QEBAJoCACHeAQEAmgIAId8BAQC0AgAh4QEAAJ8D4QEi4gEIAKADACHjAQgAoAMAIeQBAAChAwAgAwAAACIAIBsAAMcDACAcAADUAwAgDQAAACIAIA4AAKMDACAUAADUAwAgigEBAJoCACHQAQEAmgIAIdEBAQC0AgAh3QEBAJoCACHeAQEAmgIAId8BAQC0AgAh4QEAAJ8D4QEi4gEIAKADACHjAQgAoAMAIeQBAAChAwAgCw4AAKMDACCKAQEAmgIAIdABAQCaAgAh0QEBALQCACHdAQEAmgIAId4BAQCaAgAh3wEBALQCACHhAQAAnwPhASLiAQgAoAMAIeMBCACgAwAh5AEAAKEDACAVAwAA8QIAIAQAAPICACAKAADzAgAgCwAA9AIAIAwAAPYCACCKAQEAAAABsgEAAACyAQK0AQAAALQBArYBAAAAtgECtwEBAAAAAbgBAQAAAAG5AUAAAAABugFAAAAAAbsBAQAAAAG8ASAAAAABvQEBAAAAAb4BAADvAgAgvwEAAPACACDAAQEAAAABwQEBAAAAAcIBAQAAAAECAAAABQAgGwAA1QMAIA4FAACGAwAgigEBAAAAAcYBAQAAAAHHAQEAAAAByAEBAAAAAckBAQAAAAHKAQAA7QIAIMwBAAAAzAEDzQEBAAAAAc4BQAAAAAHPAUAAAAAB0AEBAAAAAdEBAQAAAAHSASAAAAABAgAAAAkAIBsAANcDACADAAAAAwAgGwAA1QMAIBwAANsDACAXAAAAAwAgAwAAtwIAIAQAALgCACAKAAC5AgAgCwAAugIAIAwAALwCACAUAADbAwAgigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEVAwAAtwIAIAQAALgCACAKAAC5AgAgCwAAugIAIAwAALwCACCKAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrcBAQCaAgAhuAEBAJoCACG5AUAAnAIAIboBQACcAgAhuwEBALQCACG8ASAAnQIAIb0BAQC0AgAhvgEAALUCACC_AQAAtgIAIMABAQC0AgAhwQEBALQCACHCAQEAmgIAIQMAAAAHACAbAADXAwAgHAAA3gMAIBAAAAAHACAFAAD6AgAgFAAA3gMAIIoBAQCaAgAhxgEBAJoCACHHAQEAmgIAIcgBAQC0AgAhyQEBAJoCACHKAQAA3gIAIMwBAADfAswBI80BAQC0AgAhzgFAAJwCACHPAUAA4AIAIdABAQC0AgAh0QEBALQCACHSASAAnQIAIQ4FAAD6AgAgigEBAJoCACHGAQEAmgIAIccBAQCaAgAhyAEBALQCACHJAQEAmgIAIcoBAADeAgAgzAEAAN8CzAEjzQEBALQCACHOAUAAnAIAIc8BQADgAgAh0AEBALQCACHRAQEAtAIAIdIBIACdAgAhFQMAAPECACAEAADyAgAgCAAA9QIAIAoAAPMCACALAAD0AgAgigEBAAAAAbIBAAAAsgECtAEAAAC0AQK2AQAAALYBArcBAQAAAAG4AQEAAAABuQFAAAAAAboBQAAAAAG7AQEAAAABvAEgAAAAAb0BAQAAAAG-AQAA7wIAIL8BAADwAgAgwAEBAAAAAcEBAQAAAAHCAQEAAAABAgAAAAUAIBsAAN8DACADAAAAAwAgGwAA3wMAIBwAAOMDACAXAAAAAwAgAwAAtwIAIAQAALgCACAIAAC7AgAgCgAAuQIAIAsAALoCACAUAADjAwAgigEBAJoCACGyAQAAsQKyASK0AQAAsgK0ASK2AQAAswK2ASK3AQEAmgIAIbgBAQCaAgAhuQFAAJwCACG6AUAAnAIAIbsBAQC0AgAhvAEgAJ0CACG9AQEAtAIAIb4BAAC1AgAgvwEAALYCACDAAQEAtAIAIcEBAQC0AgAhwgEBAJoCACEVAwAAtwIAIAQAALgCACAIAAC7AgAgCgAAuQIAIAsAALoCACCKAQEAmgIAIbIBAACxArIBIrQBAACyArQBIrYBAACzArYBIrcBAQCaAgAhuAEBAJoCACG5AUAAnAIAIboBQACcAgAhuwEBALQCACG8ASAAnQIAIb0BAQC0AgAhvgEAALUCACC_AQAAtgIAIMABAQC0AgAhwQEBALQCACHCAQEAmgIAIQMJAAoNBgIOHgIHAwABBAABCBYECQAJCgoDCxMGDBoIAwULAggPBAkABQIGAAMHAAICBRAACBEAAgUUAgkABwEFFQABBwACAwgcAAobAAwdAAINHwAOIAAAAAAFCQAPIQAQIgARIwASJAATAAAAAAAFCQAPIQAQIgARIwASJAATAAADCQAYIwAZJAAaAAAAAwkAGCMAGSQAGgAAAwkAHyMAICQAIQAAAAMJAB8jACAkACEDAwABBAABC3AGAwMAAQQAAQt2BgMJACYjACckACgAAAADCQAmIwAnJAAoAgYAAwcAAgIGAAMHAAIDCQAtIwAuJAAvAAAAAwkALSMALiQALwAAAAUJADUhADYiADcjADgkADkAAAAAAAUJADUhADYiADcjADgkADkBBwACAQcAAgMJAD4jAD8kAEAAAAADCQA-IwA_JABADwIBECEBESQBEiUBEyYBFSgBFioLFysMGC0BGS8LGjANHTEBHjIBHzMLJTYOJjcUJzkGKDoGKTwGKj0GKz4GLEAGLUILLkMVL0UGMEcLMUgWMkkGM0oGNEsLNU4XNk8bN1ADOFEDOVIDOlMDO1QDPFYDPVgLPlkcP1sDQF0LQV4dQl8DQ2ADRGELRWQeRmUiR2YCSGcCSWgCSmkCS2oCTGwCTW4LTm8jT3ICUHQLUXUkUncCU3gCVHkLVXwlVn0pV34EWH8EWYABBFqBAQRbggEEXIQBBF2GAQtehwEqX4kBBGCLAQthjAErYo0BBGOOAQRkjwELZZIBLGaTATBnlQExaJYBMWmZATFqmgExa5sBMWydATFtnwELbqABMm-iATFwpAELcaUBM3KmATFzpwExdKgBC3WrATR2rAE6d60BCHiuAQh5rwEIerABCHuxAQh8swEIfbUBC362ATt_uAEIgAG6AQuBAbsBPIIBvAEIgwG9AQiEAb4BC4UBwQE9hgHCAUE', +}; + +async function decodeBase64AsWasm( + wasmBase64: string +): Promise { + const { Buffer } = await import('node:buffer'); + const wasmArray = Buffer.from(wasmBase64, 'base64'); + return new WebAssembly.Module(wasmArray); +} + +config.compilerWasm = { + getRuntime: async () => + await import( + '@prisma/client/runtime/query_compiler_fast_bg.postgresql.mjs' + ), + + getQueryCompilerWasmModule: async () => { + const { wasm } = await import( + '@prisma/client/runtime/query_compiler_fast_bg.postgresql.wasm-base64.mjs' + ); + return await decodeBase64AsWasm(wasm); + }, + + importName: './query_compiler_fast_bg.js', +}; + +export type LogOptions = + 'log' extends keyof ClientOptions + ? ClientOptions['log'] extends Array + ? Prisma.GetEvents + : never + : never; + +export interface PrismaClientConstructor { + /** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Locations + * const locations = await prisma.location.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ + + new < + Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + LogOpts extends LogOptions = LogOptions, + OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { + omit: infer U; + } + ? U + : Prisma.PrismaClientOptions['omit'], + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs + >( + options: Prisma.Subset + ): PrismaClient; +} + +/** + * ## Prisma Client + * + * Type-safe database client for TypeScript + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) + * }) + * // Fetch zero or more Locations + * const locations = await prisma.location.findMany() + * ``` + * + * Read more in our [docs](https://pris.ly/d/client). + */ + +export interface PrismaClient< + in LogOpts extends Prisma.LogLevel = never, + in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined, + in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> { + [K: symbol]: { types: Prisma.TypeMap['other'] }; + + $on( + eventType: V, + callback: ( + event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent + ) => void + ): PrismaClient; + + /** + * Connect with the database + */ + $connect(): runtime.Types.Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): runtime.Types.Utils.JsPromise; + + /** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $executeRaw( + query: TemplateStringsArray | Prisma.Sql, + ...values: any[] + ): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $executeRawUnsafe( + query: string, + ...values: any[] + ): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $queryRaw( + query: TemplateStringsArray | Prisma.Sql, + ...values: any[] + ): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://pris.ly/d/raw-queries). + */ + $queryRawUnsafe( + query: string, + ...values: any[] + ): Prisma.PrismaPromise; + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/orm/prisma-client/queries/transactions). + */ + $transaction

[]>( + arg: [...P], + options?: { isolationLevel?: Prisma.TransactionIsolationLevel } + ): runtime.Types.Utils.JsPromise>; + + $transaction( + fn: ( + prisma: Omit + ) => runtime.Types.Utils.JsPromise, + options?: { + maxWait?: number; + timeout?: number; + isolationLevel?: Prisma.TransactionIsolationLevel; + } + ): runtime.Types.Utils.JsPromise; + + $extends: runtime.Types.Extensions.ExtendsHook< + 'extends', + Prisma.TypeMapCb, + ExtArgs, + runtime.Types.Utils.Call< + Prisma.TypeMapCb, + { + extArgs: ExtArgs; + } + > + >; + + /** + * `prisma.location`: Exposes CRUD operations for the **Location** model. + * Example usage: + * ```ts + * // Fetch zero or more Locations + * const locations = await prisma.location.findMany() + * ``` + */ + get location(): Prisma.LocationDelegate; + + /** + * `prisma.employee`: Exposes CRUD operations for the **Employee** model. + * Example usage: + * ```ts + * // Fetch zero or more Employees + * const employees = await prisma.employee.findMany() + * ``` + */ + get employee(): Prisma.EmployeeDelegate; + + /** + * `prisma.rider`: Exposes CRUD operations for the **Rider** model. + * Example usage: + * ```ts + * // Fetch zero or more Riders + * const riders = await prisma.rider.findMany() + * ``` + */ + get rider(): Prisma.RiderDelegate; + + /** + * `prisma.ride`: Exposes CRUD operations for the **Ride** model. + * Example usage: + * ```ts + * // Fetch zero or more Rides + * const rides = await prisma.ride.findMany() + * ``` + */ + get ride(): Prisma.RideDelegate; + + /** + * `prisma.favorite`: Exposes CRUD operations for the **Favorite** model. + * Example usage: + * ```ts + * // Fetch zero or more Favorites + * const favorites = await prisma.favorite.findMany() + * ``` + */ + get favorite(): Prisma.FavoriteDelegate; + + /** + * `prisma.stats`: Exposes CRUD operations for the **Stats** model. + * Example usage: + * ```ts + * // Fetch zero or more Stats + * const stats = await prisma.stats.findMany() + * ``` + */ + get stats(): Prisma.StatsDelegate; + + /** + * `prisma.notification`: Exposes CRUD operations for the **Notification** model. + * Example usage: + * ```ts + * // Fetch zero or more Notifications + * const notifications = await prisma.notification.findMany() + * ``` + */ + get notification(): Prisma.NotificationDelegate; +} + +export function getPrismaClientClass(): PrismaClientConstructor { + return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor; +} diff --git a/server/generated/prisma/internal/prismaNamespace.ts b/server/generated/prisma/internal/prismaNamespace.ts new file mode 100644 index 000000000..0288a276f --- /dev/null +++ b/server/generated/prisma/internal/prismaNamespace.ts @@ -0,0 +1,1578 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from '@prisma/client/runtime/client'; +import type * as Prisma from '../models.js'; +import { type PrismaClient } from './class.js'; + +export type * from '../models.js'; + +export type DMMF = typeof runtime.DMMF; + +export type PrismaPromise = runtime.Types.Public.PrismaPromise; + +/** + * Prisma Errors + */ + +export const PrismaClientKnownRequestError = + runtime.PrismaClientKnownRequestError; +export type PrismaClientKnownRequestError = + runtime.PrismaClientKnownRequestError; + +export const PrismaClientUnknownRequestError = + runtime.PrismaClientUnknownRequestError; +export type PrismaClientUnknownRequestError = + runtime.PrismaClientUnknownRequestError; + +export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError; +export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError; + +export const PrismaClientInitializationError = + runtime.PrismaClientInitializationError; +export type PrismaClientInitializationError = + runtime.PrismaClientInitializationError; + +export const PrismaClientValidationError = runtime.PrismaClientValidationError; +export type PrismaClientValidationError = runtime.PrismaClientValidationError; + +/** + * Re-export of sql-template-tag + */ +export const sql = runtime.sqltag; +export const empty = runtime.empty; +export const join = runtime.join; +export const raw = runtime.raw; +export const Sql = runtime.Sql; +export type Sql = runtime.Sql; + +/** + * Decimal.js + */ +export const Decimal = runtime.Decimal; +export type Decimal = runtime.Decimal; + +export type DecimalJsLike = runtime.DecimalJsLike; + +/** + * Extensions + */ +export type Extension = runtime.Types.Extensions.UserArgs; +export const getExtensionContext = runtime.Extensions.getExtensionContext; +export type Args = runtime.Types.Public.Args< + T, + F +>; +export type Payload< + T, + F extends runtime.Operation = never +> = runtime.Types.Public.Payload; +export type Result< + T, + A, + F extends runtime.Operation +> = runtime.Types.Public.Result; +export type Exact = runtime.Types.Public.Exact; + +export type PrismaVersion = { + client: string; + engine: string; +}; + +/** + * Prisma Client JS version: 7.7.0 + * Query Engine version: 75cbdc1eb7150937890ad5465d861175c6624711 + */ +export const prismaVersion: PrismaVersion = { + client: '7.7.0', + engine: '75cbdc1eb7150937890ad5465d861175c6624711', +}; + +/** + * Utility Types + */ + +export type Bytes = runtime.Bytes; +export type JsonObject = runtime.JsonObject; +export type JsonArray = runtime.JsonArray; +export type JsonValue = runtime.JsonValue; +export type InputJsonObject = runtime.InputJsonObject; +export type InputJsonArray = runtime.InputJsonArray; +export type InputJsonValue = runtime.InputJsonValue; + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as new ( + secret: never + ) => typeof runtime.DbNull, + JsonNull: runtime.NullTypes.JsonNull as new ( + secret: never + ) => typeof runtime.JsonNull, + AnyNull: runtime.NullTypes.AnyNull as new ( + secret: never + ) => typeof runtime.AnyNull, +}; +/** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const DbNull = runtime.DbNull; + +/** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const JsonNull = runtime.JsonNull; + +/** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const AnyNull = runtime.AnyNull; + +type SelectAndInclude = { + select: any; + include: any; +}; + +type SelectAndOmit = { + select: any; + omit: any; +}; + +/** + * From T, pick a set of properties whose keys are in the union K + */ +type Prisma__Pick = { + [P in K]: T[P]; +}; + +export type Enumerable = T | Array; + +/** + * Subset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection + */ +export type Subset = { + [key in keyof T]: key extends keyof U ? T[key] : never; +}; + +/** + * SelectSubset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. + * Additionally, it validates, if both select and include are present. If the case, it errors. + */ +export type SelectSubset = { + [key in keyof T]: key extends keyof U ? T[key] : never; +} & (T extends SelectAndInclude + ? 'Please either choose `select` or `include`.' + : T extends SelectAndOmit + ? 'Please either choose `select` or `omit`.' + : {}); + +/** + * Subset + Intersection + * @desc From `T` pick properties that exist in `U` and intersect `K` + */ +export type SubsetIntersection = { + [key in keyof T]: key extends keyof U ? T[key] : never; +} & K; + +type Without = { [P in Exclude]?: never }; + +/** + * XOR is needed to have a real mutually exclusive union type + * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types + */ +export type XOR = T extends object + ? U extends object + ? (Without & U) | (Without & T) + : U + : T; + +/** + * Is T a Record? + */ +type IsObject = T extends Array + ? False + : T extends Date + ? False + : T extends Uint8Array + ? False + : T extends BigInt + ? False + : T extends object + ? True + : False; + +/** + * If it's T[], return T + */ +export type UnEnumerate = T extends Array ? U : T; + +/** + * From ts-toolbelt + */ + +type __Either = Omit & + { + // Merge all but K + [P in K]: Prisma__Pick; // With K possibilities + }[K]; + +type EitherStrict = Strict<__Either>; + +type EitherLoose = ComputeRaw<__Either>; + +type _Either = { + 1: EitherStrict; + 0: EitherLoose; +}[strict]; + +export type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 +> = O extends unknown ? _Either : never; + +export type Union = any; + +export type PatchUndefined = { + [K in keyof O]: O[K] extends undefined ? At : O[K]; +} & {}; + +/** Helper Types for "Merge" **/ +export type IntersectOf = ( + U extends unknown ? (k: U) => void : never +) extends (k: infer I) => void + ? I + : never; + +export type Overwrite = { + [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; +} & {}; + +type _Merge = IntersectOf< + Overwrite< + U, + { + [K in keyof U]-?: At; + } + > +>; + +type Key = string | number | symbol; +type AtStrict = O[K & keyof O]; +type AtLoose = O extends unknown + ? AtStrict + : never; +export type At = { + 1: AtStrict; + 0: AtLoose; +}[strict]; + +export type ComputeRaw = A extends Function + ? A + : { + [K in keyof A]: A[K]; + } & {}; + +export type OptionalFlat = { + [K in keyof O]?: O[K]; +} & {}; + +type _Record = { + [P in K]: T; +}; + +// cause typescript not to expand types and preserve names +type NoExpand = T extends unknown ? T : never; + +// this type assumes the passed object is entirely optional +export type AtLeast = NoExpand< + O extends unknown + ? + | (K extends keyof O ? { [P in K]: O[P] } & O : O) + | ({ [P in keyof O as P extends K ? P : never]-?: O[P] } & O) + : never +>; + +type _Strict = U extends unknown + ? U & OptionalFlat<_Record, keyof U>, never>> + : never; + +export type Strict = ComputeRaw<_Strict>; +/** End Helper Types for "Merge" **/ + +export type Merge = ComputeRaw<_Merge>>; + +export type Boolean = True | False; + +export type True = 1; + +export type False = 0; + +export type Not = { + 0: 1; + 1: 0; +}[B]; + +export type Extends = [A1] extends [never] + ? 0 // anything `never` is false + : A1 extends A2 + ? 1 + : 0; + +export type Has = Not< + Extends, U1> +>; + +export type Or = { + 0: { + 0: 0; + 1: 1; + }; + 1: { + 0: 1; + 1: 1; + }; +}[B1][B2]; + +export type Keys = U extends unknown ? keyof U : never; + +export type GetScalarType = O extends object + ? { + [P in keyof T]: P extends keyof O ? O[P] : never; + } + : never; + +type FieldPaths< + T, + U = Omit +> = IsObject extends True ? U : T; + +export type GetHavingFields = { + [K in keyof T]: Or< + Or, Extends<'AND', K>>, + Extends<'NOT', K> + > extends True + ? // infer is only needed to not hit TS limit + // based on the brilliant idea of Pierre-Antoine Mills + // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 + T[K] extends infer TK + ? GetHavingFields< + UnEnumerate extends object ? Merge> : never + > + : never + : {} extends FieldPaths + ? never + : K; +}[keyof T]; + +/** + * Convert tuple to union + */ +type _TupleToUnion = T extends (infer E)[] ? E : never; +type TupleToUnion = _TupleToUnion; +export type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T; + +/** + * Like `Pick`, but additionally can also accept an array of keys + */ +export type PickEnumerable< + T, + K extends Enumerable | keyof T +> = Prisma__Pick>; + +/** + * Exclude all keys with underscores + */ +export type ExcludeUnderscoreKeys = T extends `_${string}` + ? never + : T; + +export type FieldRef = runtime.FieldRef; + +type FieldRefInputType = Model extends never + ? never + : FieldRef; + +export const ModelName = { + Location: 'Location', + Employee: 'Employee', + Rider: 'Rider', + Ride: 'Ride', + Favorite: 'Favorite', + Stats: 'Stats', + Notification: 'Notification', +} as const; + +export type ModelName = (typeof ModelName)[keyof typeof ModelName]; + +export interface TypeMapCb + extends runtime.Types.Utils.Fn< + { extArgs: runtime.Types.Extensions.InternalArgs }, + runtime.Types.Utils.Record + > { + returns: TypeMap; +} + +export type TypeMap< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> = { + globalOmitOptions: { + omit: GlobalOmitOptions; + }; + meta: { + modelProps: + | 'location' + | 'employee' + | 'rider' + | 'ride' + | 'favorite' + | 'stats' + | 'notification'; + txIsolationLevel: TransactionIsolationLevel; + }; + model: { + Location: { + payload: Prisma.$LocationPayload; + fields: Prisma.LocationFieldRefs; + operations: { + findUnique: { + args: Prisma.LocationFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.LocationFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.LocationFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.LocationFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.LocationFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.LocationCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.LocationCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.LocationCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.LocationDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.LocationUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.LocationDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.LocationUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.LocationUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.LocationUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.LocationAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.LocationGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.LocationCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Employee: { + payload: Prisma.$EmployeePayload; + fields: Prisma.EmployeeFieldRefs; + operations: { + findUnique: { + args: Prisma.EmployeeFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.EmployeeFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.EmployeeFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.EmployeeFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.EmployeeFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.EmployeeCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.EmployeeCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.EmployeeCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.EmployeeDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.EmployeeUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.EmployeeDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.EmployeeUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.EmployeeUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.EmployeeUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.EmployeeAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.EmployeeGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.EmployeeCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Rider: { + payload: Prisma.$RiderPayload; + fields: Prisma.RiderFieldRefs; + operations: { + findUnique: { + args: Prisma.RiderFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.RiderFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.RiderFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.RiderFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.RiderFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.RiderCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.RiderCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.RiderCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.RiderDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.RiderUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.RiderDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.RiderUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.RiderUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.RiderUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.RiderAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.RiderGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.RiderCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Ride: { + payload: Prisma.$RidePayload; + fields: Prisma.RideFieldRefs; + operations: { + findUnique: { + args: Prisma.RideFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.RideFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.RideFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.RideFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.RideFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.RideCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.RideCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.RideCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.RideDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.RideUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.RideDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.RideUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.RideUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.RideUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.RideAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.RideGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.RideCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Favorite: { + payload: Prisma.$FavoritePayload; + fields: Prisma.FavoriteFieldRefs; + operations: { + findUnique: { + args: Prisma.FavoriteFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.FavoriteFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.FavoriteFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.FavoriteFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.FavoriteFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.FavoriteCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.FavoriteCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.FavoriteCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.FavoriteDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.FavoriteUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.FavoriteDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.FavoriteUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.FavoriteUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.FavoriteUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.FavoriteAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.FavoriteGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.FavoriteCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Stats: { + payload: Prisma.$StatsPayload; + fields: Prisma.StatsFieldRefs; + operations: { + findUnique: { + args: Prisma.StatsFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.StatsFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.StatsFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.StatsFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.StatsFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.StatsCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.StatsCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.StatsCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.StatsDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.StatsUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.StatsDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.StatsUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.StatsUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.StatsUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.StatsAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.StatsGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.StatsCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + Notification: { + payload: Prisma.$NotificationPayload; + fields: Prisma.NotificationFieldRefs; + operations: { + findUnique: { + args: Prisma.NotificationFindUniqueArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findUniqueOrThrow: { + args: Prisma.NotificationFindUniqueOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findFirst: { + args: Prisma.NotificationFindFirstArgs; + result: runtime.Types.Utils.PayloadToResult | null; + }; + findFirstOrThrow: { + args: Prisma.NotificationFindFirstOrThrowArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + findMany: { + args: Prisma.NotificationFindManyArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + create: { + args: Prisma.NotificationCreateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + createMany: { + args: Prisma.NotificationCreateManyArgs; + result: BatchPayload; + }; + createManyAndReturn: { + args: Prisma.NotificationCreateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + delete: { + args: Prisma.NotificationDeleteArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + update: { + args: Prisma.NotificationUpdateArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + deleteMany: { + args: Prisma.NotificationDeleteManyArgs; + result: BatchPayload; + }; + updateMany: { + args: Prisma.NotificationUpdateManyArgs; + result: BatchPayload; + }; + updateManyAndReturn: { + args: Prisma.NotificationUpdateManyAndReturnArgs; + result: runtime.Types.Utils.PayloadToResult[]; + }; + upsert: { + args: Prisma.NotificationUpsertArgs; + result: runtime.Types.Utils.PayloadToResult; + }; + aggregate: { + args: Prisma.NotificationAggregateArgs; + result: runtime.Types.Utils.Optional; + }; + groupBy: { + args: Prisma.NotificationGroupByArgs; + result: runtime.Types.Utils.Optional[]; + }; + count: { + args: Prisma.NotificationCountArgs; + result: + | runtime.Types.Utils.Optional + | number; + }; + }; + }; + }; +} & { + other: { + payload: any; + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]]; + result: any; + }; + $executeRawUnsafe: { + args: [query: string, ...values: any[]]; + result: any; + }; + $queryRaw: { + args: [query: TemplateStringsArray | Sql, ...values: any[]]; + result: any; + }; + $queryRawUnsafe: { + args: [query: string, ...values: any[]]; + result: any; + }; + }; + }; +}; + +/** + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable', +} as const); + +export type TransactionIsolationLevel = + (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]; + +export const LocationScalarFieldEnum = { + id: 'id', + name: 'name', + address: 'address', + shortName: 'shortName', + info: 'info', + tag: 'tag', + lat: 'lat', + lng: 'lng', + photoLink: 'photoLink', + images: 'images', +} as const; + +export type LocationScalarFieldEnum = + (typeof LocationScalarFieldEnum)[keyof typeof LocationScalarFieldEnum]; + +export const EmployeeScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + phoneNumber: 'phoneNumber', + email: 'email', + photoLink: 'photoLink', + isAdmin: 'isAdmin', + adminRoles: 'adminRoles', + isDriver: 'isDriver', + availability: 'availability', + active: 'active', + joinDate: 'joinDate', +} as const; + +export type EmployeeScalarFieldEnum = + (typeof EmployeeScalarFieldEnum)[keyof typeof EmployeeScalarFieldEnum]; + +export const RiderScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + phoneNumber: 'phoneNumber', + email: 'email', + accessibility: 'accessibility', + organization: 'organization', + description: 'description', + joinDate: 'joinDate', + endDate: 'endDate', + address: 'address', + photoLink: 'photoLink', + active: 'active', +} as const; + +export type RiderScalarFieldEnum = + (typeof RiderScalarFieldEnum)[keyof typeof RiderScalarFieldEnum]; + +export const RideScalarFieldEnum = { + id: 'id', + type: 'type', + status: 'status', + schedulingState: 'schedulingState', + startLocationId: 'startLocationId', + endLocationId: 'endLocationId', + startTime: 'startTime', + endTime: 'endTime', + driverId: 'driverId', + isRecurring: 'isRecurring', + rrule: 'rrule', + exdate: 'exdate', + rdate: 'rdate', + parentRideId: 'parentRideId', + recurrenceId: 'recurrenceId', + timezone: 'timezone', +} as const; + +export type RideScalarFieldEnum = + (typeof RideScalarFieldEnum)[keyof typeof RideScalarFieldEnum]; + +export const FavoriteScalarFieldEnum = { + userId: 'userId', + rideId: 'rideId', + favoritedAt: 'favoritedAt', +} as const; + +export type FavoriteScalarFieldEnum = + (typeof FavoriteScalarFieldEnum)[keyof typeof FavoriteScalarFieldEnum]; + +export const StatsScalarFieldEnum = { + year: 'year', + monthDay: 'monthDay', + dayCount: 'dayCount', + dayNoShow: 'dayNoShow', + dayCancel: 'dayCancel', + nightCount: 'nightCount', + nightNoShow: 'nightNoShow', + nightCancel: 'nightCancel', + drivers: 'drivers', +} as const; + +export type StatsScalarFieldEnum = + (typeof StatsScalarFieldEnum)[keyof typeof StatsScalarFieldEnum]; + +export const NotificationScalarFieldEnum = { + id: 'id', + notifEvent: 'notifEvent', + userID: 'userID', + rideID: 'rideID', + title: 'title', + body: 'body', + timeSent: 'timeSent', + read: 'read', +} as const; + +export type NotificationScalarFieldEnum = + (typeof NotificationScalarFieldEnum)[keyof typeof NotificationScalarFieldEnum]; + +export const SortOrder = { + asc: 'asc', + desc: 'desc', +} as const; + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; + +export const JsonNullValueInput = { + JsonNull: JsonNull, +} as const; + +export type JsonNullValueInput = + (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput]; + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive', +} as const; + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]; + +export const NullsOrder = { + first: 'first', + last: 'last', +} as const; + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]; + +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull, +} as const; + +export type JsonNullValueFilter = + (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]; + +/** + * Field references + */ + +/** + * Reference to a field of type 'String' + */ +export type StringFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'String' +>; + +/** + * Reference to a field of type 'String[]' + */ +export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'String[]' +>; + +/** + * Reference to a field of type 'LocationTag' + */ +export type EnumLocationTagFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'LocationTag' +>; + +/** + * Reference to a field of type 'LocationTag[]' + */ +export type ListEnumLocationTagFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'LocationTag[]' +>; + +/** + * Reference to a field of type 'Float' + */ +export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Float' +>; + +/** + * Reference to a field of type 'Float[]' + */ +export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Float[]' +>; + +/** + * Reference to a field of type 'Boolean' + */ +export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Boolean' +>; + +/** + * Reference to a field of type 'AdminRole[]' + */ +export type ListEnumAdminRoleFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'AdminRole[]' +>; + +/** + * Reference to a field of type 'AdminRole' + */ +export type EnumAdminRoleFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'AdminRole' +>; + +/** + * Reference to a field of type 'DayOfWeek[]' + */ +export type ListEnumDayOfWeekFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'DayOfWeek[]' +>; + +/** + * Reference to a field of type 'DayOfWeek' + */ +export type EnumDayOfWeekFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'DayOfWeek' +>; + +/** + * Reference to a field of type 'DateTime' + */ +export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'DateTime' +>; + +/** + * Reference to a field of type 'DateTime[]' + */ +export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'DateTime[]' +>; + +/** + * Reference to a field of type 'Accessibility[]' + */ +export type ListEnumAccessibilityFieldRefInput<$PrismaModel> = + FieldRefInputType<$PrismaModel, 'Accessibility[]'>; + +/** + * Reference to a field of type 'Accessibility' + */ +export type EnumAccessibilityFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Accessibility' +>; + +/** + * Reference to a field of type 'Organization' + */ +export type EnumOrganizationFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Organization' +>; + +/** + * Reference to a field of type 'Organization[]' + */ +export type ListEnumOrganizationFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Organization[]' +>; + +/** + * Reference to a field of type 'RideType' + */ +export type EnumRideTypeFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'RideType' +>; + +/** + * Reference to a field of type 'RideType[]' + */ +export type ListEnumRideTypeFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'RideType[]' +>; + +/** + * Reference to a field of type 'RideStatus' + */ +export type EnumRideStatusFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'RideStatus' +>; + +/** + * Reference to a field of type 'RideStatus[]' + */ +export type ListEnumRideStatusFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'RideStatus[]' +>; + +/** + * Reference to a field of type 'SchedulingState' + */ +export type EnumSchedulingStateFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'SchedulingState' +>; + +/** + * Reference to a field of type 'SchedulingState[]' + */ +export type ListEnumSchedulingStateFieldRefInput<$PrismaModel> = + FieldRefInputType<$PrismaModel, 'SchedulingState[]'>; + +/** + * Reference to a field of type 'Int' + */ +export type IntFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Int' +>; + +/** + * Reference to a field of type 'Int[]' + */ +export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Int[]' +>; + +/** + * Reference to a field of type 'Json' + */ +export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'Json' +>; + +/** + * Reference to a field of type 'QueryMode' + */ +export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType< + $PrismaModel, + 'QueryMode' +>; + +/** + * Reference to a field of type 'NotificationEvent' + */ +export type EnumNotificationEventFieldRefInput<$PrismaModel> = + FieldRefInputType<$PrismaModel, 'NotificationEvent'>; + +/** + * Reference to a field of type 'NotificationEvent[]' + */ +export type ListEnumNotificationEventFieldRefInput<$PrismaModel> = + FieldRefInputType<$PrismaModel, 'NotificationEvent[]'>; + +/** + * Batch Payload for updateMany & deleteMany & createMany + */ +export type BatchPayload = { + count: number; +}; + +export const defineExtension = runtime.Extensions + .defineExtension as unknown as runtime.Types.Extensions.ExtendsHook< + 'define', + TypeMapCb, + runtime.Types.Extensions.DefaultArgs +>; +export type DefaultPrismaClient = PrismaClient; +export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'; +export type PrismaClientOptions = ( + | { + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-pg`. + */ + adapter: runtime.SqlDriverAdapterFactory; + accelerateUrl?: never; + } + | { + /** + * Prisma Accelerate URL allowing the client to connect through Accelerate instead of a direct database. + */ + accelerateUrl: string; + adapter?: never; + } +) & { + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat; + /** + * @example + * ``` + * // Shorthand for `emit: 'stdout'` + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events only + * log: [ + * { emit: 'event', level: 'query' }, + * { emit: 'event', level: 'info' }, + * { emit: 'event', level: 'warn' } + * { emit: 'event', level: 'error' } + * ] + * + * / Emit as events and log to stdout + * og: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * + * ``` + * Read more in our [docs](https://pris.ly/d/logging). + */ + log?: (LogLevel | LogDefinition)[]; + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number; + timeout?: number; + isolationLevel?: TransactionIsolationLevel; + }; + /** + * Global configuration for omitting model fields by default. + * + * @example + * ``` + * const prisma = new PrismaClient({ + * omit: { + * user: { + * password: true + * } + * } + * }) + * ``` + */ + omit?: GlobalOmitConfig; + /** + * SQL commenter plugins that add metadata to SQL queries as comments. + * Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/ + * + * @example + * ``` + * const prisma = new PrismaClient({ + * adapter, + * comments: [ + * traceContext(), + * queryInsights(), + * ], + * }) + * ``` + */ + comments?: runtime.SqlCommenterPlugin[]; +}; +export type GlobalOmitConfig = { + location?: Prisma.LocationOmit; + employee?: Prisma.EmployeeOmit; + rider?: Prisma.RiderOmit; + ride?: Prisma.RideOmit; + favorite?: Prisma.FavoriteOmit; + stats?: Prisma.StatsOmit; + notification?: Prisma.NotificationOmit; +}; + +/* Types for Logging */ +export type LogLevel = 'info' | 'query' | 'warn' | 'error'; +export type LogDefinition = { + level: LogLevel; + emit: 'stdout' | 'event'; +}; + +export type CheckIsLogLevel = T extends LogLevel ? T : never; + +export type GetLogType = CheckIsLogLevel< + T extends LogDefinition ? T['level'] : T +>; + +export type GetEvents = T extends Array< + LogLevel | LogDefinition +> + ? GetLogType + : never; + +export type QueryEvent = { + timestamp: Date; + query: string; + params: string; + duration: number; + target: string; +}; + +export type LogEvent = { + timestamp: Date; + message: string; + target: string; +}; +/* End Types for Logging */ + +export type PrismaAction = + | 'findUnique' + | 'findUniqueOrThrow' + | 'findMany' + | 'findFirst' + | 'findFirstOrThrow' + | 'create' + | 'createMany' + | 'createManyAndReturn' + | 'update' + | 'updateMany' + | 'updateManyAndReturn' + | 'upsert' + | 'delete' + | 'deleteMany' + | 'executeRaw' + | 'queryRaw' + | 'aggregate' + | 'count' + | 'runCommandRaw' + | 'findRaw' + | 'groupBy'; + +/** + * `PrismaClient` proxy available in interactive transactions. + */ +export type TransactionClient = Omit< + DefaultPrismaClient, + runtime.ITXClientDenyList +>; diff --git a/server/generated/prisma/internal/prismaNamespaceBrowser.ts b/server/generated/prisma/internal/prismaNamespaceBrowser.ts new file mode 100644 index 000000000..ab580fdfd --- /dev/null +++ b/server/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -0,0 +1,230 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * WARNING: This is an internal file that is subject to change! + * + * 🛑 Under no circumstances should you import this file directly! 🛑 + * + * All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file. + * While this enables partial backward compatibility, it is not part of the stable public API. + * + * If you are looking for your Models, Enums, and Input Types, please import them from the respective + * model files in the `model` directory! + */ + +import * as runtime from '@prisma/client/runtime/index-browser'; + +export type * from '../models.js'; +export type * from './prismaNamespace.js'; + +export const Decimal = runtime.Decimal; + +export const NullTypes = { + DbNull: runtime.NullTypes.DbNull as new ( + secret: never + ) => typeof runtime.DbNull, + JsonNull: runtime.NullTypes.JsonNull as new ( + secret: never + ) => typeof runtime.JsonNull, + AnyNull: runtime.NullTypes.AnyNull as new ( + secret: never + ) => typeof runtime.AnyNull, +}; +/** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const DbNull = runtime.DbNull; + +/** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const JsonNull = runtime.JsonNull; + +/** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ +export const AnyNull = runtime.AnyNull; + +export const ModelName = { + Location: 'Location', + Employee: 'Employee', + Rider: 'Rider', + Ride: 'Ride', + Favorite: 'Favorite', + Stats: 'Stats', + Notification: 'Notification', +} as const; + +export type ModelName = (typeof ModelName)[keyof typeof ModelName]; + +/* + * Enums + */ + +export const TransactionIsolationLevel = runtime.makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable', +} as const); + +export type TransactionIsolationLevel = + (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]; + +export const LocationScalarFieldEnum = { + id: 'id', + name: 'name', + address: 'address', + shortName: 'shortName', + info: 'info', + tag: 'tag', + lat: 'lat', + lng: 'lng', + photoLink: 'photoLink', + images: 'images', +} as const; + +export type LocationScalarFieldEnum = + (typeof LocationScalarFieldEnum)[keyof typeof LocationScalarFieldEnum]; + +export const EmployeeScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + phoneNumber: 'phoneNumber', + email: 'email', + photoLink: 'photoLink', + isAdmin: 'isAdmin', + adminRoles: 'adminRoles', + isDriver: 'isDriver', + availability: 'availability', + active: 'active', + joinDate: 'joinDate', +} as const; + +export type EmployeeScalarFieldEnum = + (typeof EmployeeScalarFieldEnum)[keyof typeof EmployeeScalarFieldEnum]; + +export const RiderScalarFieldEnum = { + id: 'id', + firstName: 'firstName', + lastName: 'lastName', + phoneNumber: 'phoneNumber', + email: 'email', + accessibility: 'accessibility', + organization: 'organization', + description: 'description', + joinDate: 'joinDate', + endDate: 'endDate', + address: 'address', + photoLink: 'photoLink', + active: 'active', +} as const; + +export type RiderScalarFieldEnum = + (typeof RiderScalarFieldEnum)[keyof typeof RiderScalarFieldEnum]; + +export const RideScalarFieldEnum = { + id: 'id', + type: 'type', + status: 'status', + schedulingState: 'schedulingState', + startLocationId: 'startLocationId', + endLocationId: 'endLocationId', + startTime: 'startTime', + endTime: 'endTime', + driverId: 'driverId', + isRecurring: 'isRecurring', + rrule: 'rrule', + exdate: 'exdate', + rdate: 'rdate', + parentRideId: 'parentRideId', + recurrenceId: 'recurrenceId', + timezone: 'timezone', +} as const; + +export type RideScalarFieldEnum = + (typeof RideScalarFieldEnum)[keyof typeof RideScalarFieldEnum]; + +export const FavoriteScalarFieldEnum = { + userId: 'userId', + rideId: 'rideId', + favoritedAt: 'favoritedAt', +} as const; + +export type FavoriteScalarFieldEnum = + (typeof FavoriteScalarFieldEnum)[keyof typeof FavoriteScalarFieldEnum]; + +export const StatsScalarFieldEnum = { + year: 'year', + monthDay: 'monthDay', + dayCount: 'dayCount', + dayNoShow: 'dayNoShow', + dayCancel: 'dayCancel', + nightCount: 'nightCount', + nightNoShow: 'nightNoShow', + nightCancel: 'nightCancel', + drivers: 'drivers', +} as const; + +export type StatsScalarFieldEnum = + (typeof StatsScalarFieldEnum)[keyof typeof StatsScalarFieldEnum]; + +export const NotificationScalarFieldEnum = { + id: 'id', + notifEvent: 'notifEvent', + userID: 'userID', + rideID: 'rideID', + title: 'title', + body: 'body', + timeSent: 'timeSent', + read: 'read', +} as const; + +export type NotificationScalarFieldEnum = + (typeof NotificationScalarFieldEnum)[keyof typeof NotificationScalarFieldEnum]; + +export const SortOrder = { + asc: 'asc', + desc: 'desc', +} as const; + +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; + +export const JsonNullValueInput = { + JsonNull: JsonNull, +} as const; + +export type JsonNullValueInput = + (typeof JsonNullValueInput)[keyof typeof JsonNullValueInput]; + +export const QueryMode = { + default: 'default', + insensitive: 'insensitive', +} as const; + +export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]; + +export const NullsOrder = { + first: 'first', + last: 'last', +} as const; + +export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]; + +export const JsonNullValueFilter = { + DbNull: DbNull, + JsonNull: JsonNull, + AnyNull: AnyNull, +} as const; + +export type JsonNullValueFilter = + (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]; diff --git a/server/generated/prisma/models.ts b/server/generated/prisma/models.ts new file mode 100644 index 000000000..3f90c62f0 --- /dev/null +++ b/server/generated/prisma/models.ts @@ -0,0 +1,17 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This is a barrel export file for all models and their related types. + * + * 🟢 You can import this file directly. + */ +export type * from './models/Location.js'; +export type * from './models/Employee.js'; +export type * from './models/Rider.js'; +export type * from './models/Ride.js'; +export type * from './models/Favorite.js'; +export type * from './models/Stats.js'; +export type * from './models/Notification.js'; +export type * from './commonInputTypes.js'; diff --git a/server/generated/prisma/models/Employee.ts b/server/generated/prisma/models/Employee.ts new file mode 100644 index 000000000..615330dec --- /dev/null +++ b/server/generated/prisma/models/Employee.ts @@ -0,0 +1,1911 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Employee` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Employee + * A platform employee who may be an admin, a driver, or both + */ +export type EmployeeModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateEmployee = { + _count: EmployeeCountAggregateOutputType | null; + _min: EmployeeMinAggregateOutputType | null; + _max: EmployeeMaxAggregateOutputType | null; +}; + +export type EmployeeMinAggregateOutputType = { + id: string | null; + firstName: string | null; + lastName: string | null; + phoneNumber: string | null; + email: string | null; + photoLink: string | null; + isAdmin: boolean | null; + isDriver: boolean | null; + active: boolean | null; + joinDate: Date | null; +}; + +export type EmployeeMaxAggregateOutputType = { + id: string | null; + firstName: string | null; + lastName: string | null; + phoneNumber: string | null; + email: string | null; + photoLink: string | null; + isAdmin: boolean | null; + isDriver: boolean | null; + active: boolean | null; + joinDate: Date | null; +}; + +export type EmployeeCountAggregateOutputType = { + id: number; + firstName: number; + lastName: number; + phoneNumber: number; + email: number; + photoLink: number; + isAdmin: number; + adminRoles: number; + isDriver: number; + availability: number; + active: number; + joinDate: number; + _all: number; +}; + +export type EmployeeMinAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + photoLink?: true; + isAdmin?: true; + isDriver?: true; + active?: true; + joinDate?: true; +}; + +export type EmployeeMaxAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + photoLink?: true; + isAdmin?: true; + isDriver?: true; + active?: true; + joinDate?: true; +}; + +export type EmployeeCountAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + photoLink?: true; + isAdmin?: true; + adminRoles?: true; + isDriver?: true; + availability?: true; + active?: true; + joinDate?: true; + _all?: true; +}; + +export type EmployeeAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Employee to aggregate. + */ + where?: Prisma.EmployeeWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Employees to fetch. + */ + orderBy?: + | Prisma.EmployeeOrderByWithRelationInput + | Prisma.EmployeeOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.EmployeeWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Employees from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Employees. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Employees + **/ + _count?: true | EmployeeCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: EmployeeMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: EmployeeMaxAggregateInputType; +}; + +export type GetEmployeeAggregateType = { + [P in keyof T & keyof AggregateEmployee]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type EmployeeGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.EmployeeWhereInput; + orderBy?: + | Prisma.EmployeeOrderByWithAggregationInput + | Prisma.EmployeeOrderByWithAggregationInput[]; + by: Prisma.EmployeeScalarFieldEnum[] | Prisma.EmployeeScalarFieldEnum; + having?: Prisma.EmployeeScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: EmployeeCountAggregateInputType | true; + _min?: EmployeeMinAggregateInputType; + _max?: EmployeeMaxAggregateInputType; +}; + +export type EmployeeGroupByOutputType = { + id: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink: string | null; + isAdmin: boolean; + adminRoles: $Enums.AdminRole[]; + isDriver: boolean; + availability: $Enums.DayOfWeek[]; + active: boolean; + joinDate: Date; + _count: EmployeeCountAggregateOutputType | null; + _min: EmployeeMinAggregateOutputType | null; + _max: EmployeeMaxAggregateOutputType | null; +}; + +export type GetEmployeeGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof EmployeeGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type EmployeeWhereInput = { + AND?: Prisma.EmployeeWhereInput | Prisma.EmployeeWhereInput[]; + OR?: Prisma.EmployeeWhereInput[]; + NOT?: Prisma.EmployeeWhereInput | Prisma.EmployeeWhereInput[]; + id?: Prisma.StringFilter<'Employee'> | string; + firstName?: Prisma.StringFilter<'Employee'> | string; + lastName?: Prisma.StringFilter<'Employee'> | string; + phoneNumber?: Prisma.StringFilter<'Employee'> | string; + email?: Prisma.StringFilter<'Employee'> | string; + photoLink?: Prisma.StringNullableFilter<'Employee'> | string | null; + isAdmin?: Prisma.BoolFilter<'Employee'> | boolean; + adminRoles?: Prisma.EnumAdminRoleNullableListFilter<'Employee'>; + isDriver?: Prisma.BoolFilter<'Employee'> | boolean; + availability?: Prisma.EnumDayOfWeekNullableListFilter<'Employee'>; + active?: Prisma.BoolFilter<'Employee'> | boolean; + joinDate?: Prisma.DateTimeFilter<'Employee'> | Date | string; + rides?: Prisma.RideListRelationFilter; +}; + +export type EmployeeOrderByWithRelationInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + isAdmin?: Prisma.SortOrder; + adminRoles?: Prisma.SortOrder; + isDriver?: Prisma.SortOrder; + availability?: Prisma.SortOrder; + active?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + rides?: Prisma.RideOrderByRelationAggregateInput; +}; + +export type EmployeeWhereUniqueInput = Prisma.AtLeast< + { + id?: string; + email?: string; + AND?: Prisma.EmployeeWhereInput | Prisma.EmployeeWhereInput[]; + OR?: Prisma.EmployeeWhereInput[]; + NOT?: Prisma.EmployeeWhereInput | Prisma.EmployeeWhereInput[]; + firstName?: Prisma.StringFilter<'Employee'> | string; + lastName?: Prisma.StringFilter<'Employee'> | string; + phoneNumber?: Prisma.StringFilter<'Employee'> | string; + photoLink?: Prisma.StringNullableFilter<'Employee'> | string | null; + isAdmin?: Prisma.BoolFilter<'Employee'> | boolean; + adminRoles?: Prisma.EnumAdminRoleNullableListFilter<'Employee'>; + isDriver?: Prisma.BoolFilter<'Employee'> | boolean; + availability?: Prisma.EnumDayOfWeekNullableListFilter<'Employee'>; + active?: Prisma.BoolFilter<'Employee'> | boolean; + joinDate?: Prisma.DateTimeFilter<'Employee'> | Date | string; + rides?: Prisma.RideListRelationFilter; + }, + 'id' | 'email' +>; + +export type EmployeeOrderByWithAggregationInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + isAdmin?: Prisma.SortOrder; + adminRoles?: Prisma.SortOrder; + isDriver?: Prisma.SortOrder; + availability?: Prisma.SortOrder; + active?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + _count?: Prisma.EmployeeCountOrderByAggregateInput; + _max?: Prisma.EmployeeMaxOrderByAggregateInput; + _min?: Prisma.EmployeeMinOrderByAggregateInput; +}; + +export type EmployeeScalarWhereWithAggregatesInput = { + AND?: + | Prisma.EmployeeScalarWhereWithAggregatesInput + | Prisma.EmployeeScalarWhereWithAggregatesInput[]; + OR?: Prisma.EmployeeScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.EmployeeScalarWhereWithAggregatesInput + | Prisma.EmployeeScalarWhereWithAggregatesInput[]; + id?: Prisma.StringWithAggregatesFilter<'Employee'> | string; + firstName?: Prisma.StringWithAggregatesFilter<'Employee'> | string; + lastName?: Prisma.StringWithAggregatesFilter<'Employee'> | string; + phoneNumber?: Prisma.StringWithAggregatesFilter<'Employee'> | string; + email?: Prisma.StringWithAggregatesFilter<'Employee'> | string; + photoLink?: + | Prisma.StringNullableWithAggregatesFilter<'Employee'> + | string + | null; + isAdmin?: Prisma.BoolWithAggregatesFilter<'Employee'> | boolean; + adminRoles?: Prisma.EnumAdminRoleNullableListFilter<'Employee'>; + isDriver?: Prisma.BoolWithAggregatesFilter<'Employee'> | boolean; + availability?: Prisma.EnumDayOfWeekNullableListFilter<'Employee'>; + active?: Prisma.BoolWithAggregatesFilter<'Employee'> | boolean; + joinDate?: Prisma.DateTimeWithAggregatesFilter<'Employee'> | Date | string; +}; + +export type EmployeeCreateInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string | null; + isAdmin?: boolean; + adminRoles?: Prisma.EmployeeCreateadminRolesInput | $Enums.AdminRole[]; + isDriver?: boolean; + availability?: Prisma.EmployeeCreateavailabilityInput | $Enums.DayOfWeek[]; + active?: boolean; + joinDate?: Date | string; + rides?: Prisma.RideCreateNestedManyWithoutDriverInput; +}; + +export type EmployeeUncheckedCreateInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string | null; + isAdmin?: boolean; + adminRoles?: Prisma.EmployeeCreateadminRolesInput | $Enums.AdminRole[]; + isDriver?: boolean; + availability?: Prisma.EmployeeCreateavailabilityInput | $Enums.DayOfWeek[]; + active?: boolean; + joinDate?: Date | string; + rides?: Prisma.RideUncheckedCreateNestedManyWithoutDriverInput; +}; + +export type EmployeeUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + rides?: Prisma.RideUpdateManyWithoutDriverNestedInput; +}; + +export type EmployeeUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + rides?: Prisma.RideUncheckedUpdateManyWithoutDriverNestedInput; +}; + +export type EmployeeCreateManyInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string | null; + isAdmin?: boolean; + adminRoles?: Prisma.EmployeeCreateadminRolesInput | $Enums.AdminRole[]; + isDriver?: boolean; + availability?: Prisma.EmployeeCreateavailabilityInput | $Enums.DayOfWeek[]; + active?: boolean; + joinDate?: Date | string; +}; + +export type EmployeeUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type EmployeeUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type EnumAdminRoleNullableListFilter<$PrismaModel = never> = { + equals?: + | $Enums.AdminRole[] + | Prisma.ListEnumAdminRoleFieldRefInput<$PrismaModel> + | null; + has?: + | $Enums.AdminRole + | Prisma.EnumAdminRoleFieldRefInput<$PrismaModel> + | null; + hasEvery?: + | $Enums.AdminRole[] + | Prisma.ListEnumAdminRoleFieldRefInput<$PrismaModel>; + hasSome?: + | $Enums.AdminRole[] + | Prisma.ListEnumAdminRoleFieldRefInput<$PrismaModel>; + isEmpty?: boolean; +}; + +export type EnumDayOfWeekNullableListFilter<$PrismaModel = never> = { + equals?: + | $Enums.DayOfWeek[] + | Prisma.ListEnumDayOfWeekFieldRefInput<$PrismaModel> + | null; + has?: + | $Enums.DayOfWeek + | Prisma.EnumDayOfWeekFieldRefInput<$PrismaModel> + | null; + hasEvery?: + | $Enums.DayOfWeek[] + | Prisma.ListEnumDayOfWeekFieldRefInput<$PrismaModel>; + hasSome?: + | $Enums.DayOfWeek[] + | Prisma.ListEnumDayOfWeekFieldRefInput<$PrismaModel>; + isEmpty?: boolean; +}; + +export type EmployeeCountOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + isAdmin?: Prisma.SortOrder; + adminRoles?: Prisma.SortOrder; + isDriver?: Prisma.SortOrder; + availability?: Prisma.SortOrder; + active?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; +}; + +export type EmployeeMaxOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + isAdmin?: Prisma.SortOrder; + isDriver?: Prisma.SortOrder; + active?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; +}; + +export type EmployeeMinOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + isAdmin?: Prisma.SortOrder; + isDriver?: Prisma.SortOrder; + active?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; +}; + +export type EmployeeNullableScalarRelationFilter = { + is?: Prisma.EmployeeWhereInput | null; + isNot?: Prisma.EmployeeWhereInput | null; +}; + +export type EmployeeCreateadminRolesInput = { + set: $Enums.AdminRole[]; +}; + +export type EmployeeCreateavailabilityInput = { + set: $Enums.DayOfWeek[]; +}; + +export type BoolFieldUpdateOperationsInput = { + set?: boolean; +}; + +export type EmployeeUpdateadminRolesInput = { + set?: $Enums.AdminRole[]; + push?: $Enums.AdminRole | $Enums.AdminRole[]; +}; + +export type EmployeeUpdateavailabilityInput = { + set?: $Enums.DayOfWeek[]; + push?: $Enums.DayOfWeek | $Enums.DayOfWeek[]; +}; + +export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string; +}; + +export type EmployeeCreateNestedOneWithoutRidesInput = { + create?: Prisma.XOR< + Prisma.EmployeeCreateWithoutRidesInput, + Prisma.EmployeeUncheckedCreateWithoutRidesInput + >; + connectOrCreate?: Prisma.EmployeeCreateOrConnectWithoutRidesInput; + connect?: Prisma.EmployeeWhereUniqueInput; +}; + +export type EmployeeUpdateOneWithoutRidesNestedInput = { + create?: Prisma.XOR< + Prisma.EmployeeCreateWithoutRidesInput, + Prisma.EmployeeUncheckedCreateWithoutRidesInput + >; + connectOrCreate?: Prisma.EmployeeCreateOrConnectWithoutRidesInput; + upsert?: Prisma.EmployeeUpsertWithoutRidesInput; + disconnect?: Prisma.EmployeeWhereInput | boolean; + delete?: Prisma.EmployeeWhereInput | boolean; + connect?: Prisma.EmployeeWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.EmployeeUpdateToOneWithWhereWithoutRidesInput, + Prisma.EmployeeUpdateWithoutRidesInput + >, + Prisma.EmployeeUncheckedUpdateWithoutRidesInput + >; +}; + +export type EmployeeCreateWithoutRidesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string | null; + isAdmin?: boolean; + adminRoles?: Prisma.EmployeeCreateadminRolesInput | $Enums.AdminRole[]; + isDriver?: boolean; + availability?: Prisma.EmployeeCreateavailabilityInput | $Enums.DayOfWeek[]; + active?: boolean; + joinDate?: Date | string; +}; + +export type EmployeeUncheckedCreateWithoutRidesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string | null; + isAdmin?: boolean; + adminRoles?: Prisma.EmployeeCreateadminRolesInput | $Enums.AdminRole[]; + isDriver?: boolean; + availability?: Prisma.EmployeeCreateavailabilityInput | $Enums.DayOfWeek[]; + active?: boolean; + joinDate?: Date | string; +}; + +export type EmployeeCreateOrConnectWithoutRidesInput = { + where: Prisma.EmployeeWhereUniqueInput; + create: Prisma.XOR< + Prisma.EmployeeCreateWithoutRidesInput, + Prisma.EmployeeUncheckedCreateWithoutRidesInput + >; +}; + +export type EmployeeUpsertWithoutRidesInput = { + update: Prisma.XOR< + Prisma.EmployeeUpdateWithoutRidesInput, + Prisma.EmployeeUncheckedUpdateWithoutRidesInput + >; + create: Prisma.XOR< + Prisma.EmployeeCreateWithoutRidesInput, + Prisma.EmployeeUncheckedCreateWithoutRidesInput + >; + where?: Prisma.EmployeeWhereInput; +}; + +export type EmployeeUpdateToOneWithWhereWithoutRidesInput = { + where?: Prisma.EmployeeWhereInput; + data: Prisma.XOR< + Prisma.EmployeeUpdateWithoutRidesInput, + Prisma.EmployeeUncheckedUpdateWithoutRidesInput + >; +}; + +export type EmployeeUpdateWithoutRidesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type EmployeeUncheckedUpdateWithoutRidesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.StringFieldUpdateOperationsInput | string; + email?: Prisma.StringFieldUpdateOperationsInput | string; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isAdmin?: Prisma.BoolFieldUpdateOperationsInput | boolean; + adminRoles?: Prisma.EmployeeUpdateadminRolesInput | $Enums.AdminRole[]; + isDriver?: Prisma.BoolFieldUpdateOperationsInput | boolean; + availability?: Prisma.EmployeeUpdateavailabilityInput | $Enums.DayOfWeek[]; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +/** + * Count Type EmployeeCountOutputType + */ + +export type EmployeeCountOutputType = { + rides: number; +}; + +export type EmployeeCountOutputTypeSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rides?: boolean | EmployeeCountOutputTypeCountRidesArgs; +}; + +/** + * EmployeeCountOutputType without action + */ +export type EmployeeCountOutputTypeDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the EmployeeCountOutputType + */ + select?: Prisma.EmployeeCountOutputTypeSelect | null; +}; + +/** + * EmployeeCountOutputType without action + */ +export type EmployeeCountOutputTypeCountRidesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RideWhereInput; +}; + +export type EmployeeSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + photoLink?: boolean; + isAdmin?: boolean; + adminRoles?: boolean; + isDriver?: boolean; + availability?: boolean; + active?: boolean; + joinDate?: boolean; + rides?: boolean | Prisma.Employee$ridesArgs; + _count?: boolean | Prisma.EmployeeCountOutputTypeDefaultArgs; + }, + ExtArgs['result']['employee'] +>; + +export type EmployeeSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + photoLink?: boolean; + isAdmin?: boolean; + adminRoles?: boolean; + isDriver?: boolean; + availability?: boolean; + active?: boolean; + joinDate?: boolean; + }, + ExtArgs['result']['employee'] +>; + +export type EmployeeSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + photoLink?: boolean; + isAdmin?: boolean; + adminRoles?: boolean; + isDriver?: boolean; + availability?: boolean; + active?: boolean; + joinDate?: boolean; + }, + ExtArgs['result']['employee'] +>; + +export type EmployeeSelectScalar = { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + photoLink?: boolean; + isAdmin?: boolean; + adminRoles?: boolean; + isDriver?: boolean; + availability?: boolean; + active?: boolean; + joinDate?: boolean; +}; + +export type EmployeeOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'id' + | 'firstName' + | 'lastName' + | 'phoneNumber' + | 'email' + | 'photoLink' + | 'isAdmin' + | 'adminRoles' + | 'isDriver' + | 'availability' + | 'active' + | 'joinDate', + ExtArgs['result']['employee'] +>; +export type EmployeeInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rides?: boolean | Prisma.Employee$ridesArgs; + _count?: boolean | Prisma.EmployeeCountOutputTypeDefaultArgs; +}; +export type EmployeeIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; +export type EmployeeIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; + +export type $EmployeePayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Employee'; + objects: { + rides: Prisma.$RidePayload[]; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + id: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink: string | null; + isAdmin: boolean; + adminRoles: $Enums.AdminRole[]; + isDriver: boolean; + availability: $Enums.DayOfWeek[]; + active: boolean; + joinDate: Date; + }, + ExtArgs['result']['employee'] + >; + composites: {}; +}; + +export type EmployeeGetPayload< + S extends boolean | null | undefined | EmployeeDefaultArgs +> = runtime.Types.Result.GetResult; + +export type EmployeeCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: EmployeeCountAggregateInputType | true; +}; + +export interface EmployeeDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Employee']; + meta: { name: 'Employee' }; + }; + /** + * Find zero or one Employee that matches the filter. + * @param {EmployeeFindUniqueArgs} args - Arguments to find a Employee + * @example + * // Get one Employee + * const employee = await prisma.employee.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Employee that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {EmployeeFindUniqueOrThrowArgs} args - Arguments to find a Employee + * @example + * // Get one Employee + * const employee = await prisma.employee.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Employee that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeFindFirstArgs} args - Arguments to find a Employee + * @example + * // Get one Employee + * const employee = await prisma.employee.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Employee that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeFindFirstOrThrowArgs} args - Arguments to find a Employee + * @example + * // Get one Employee + * const employee = await prisma.employee.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Employees that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Employees + * const employees = await prisma.employee.findMany() + * + * // Get first 10 Employees + * const employees = await prisma.employee.findMany({ take: 10 }) + * + * // Only select the `id` + * const employeeWithIdOnly = await prisma.employee.findMany({ select: { id: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Employee. + * @param {EmployeeCreateArgs} args - Arguments to create a Employee. + * @example + * // Create one Employee + * const Employee = await prisma.employee.create({ + * data: { + * // ... data to create a Employee + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Employees. + * @param {EmployeeCreateManyArgs} args - Arguments to create many Employees. + * @example + * // Create many Employees + * const employee = await prisma.employee.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Employees and returns the data saved in the database. + * @param {EmployeeCreateManyAndReturnArgs} args - Arguments to create many Employees. + * @example + * // Create many Employees + * const employee = await prisma.employee.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Employees and only return the `id` + * const employeeWithIdOnly = await prisma.employee.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Employee. + * @param {EmployeeDeleteArgs} args - Arguments to delete one Employee. + * @example + * // Delete one Employee + * const Employee = await prisma.employee.delete({ + * where: { + * // ... filter to delete one Employee + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Employee. + * @param {EmployeeUpdateArgs} args - Arguments to update one Employee. + * @example + * // Update one Employee + * const employee = await prisma.employee.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Employees. + * @param {EmployeeDeleteManyArgs} args - Arguments to filter Employees to delete. + * @example + * // Delete a few Employees + * const { count } = await prisma.employee.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Employees. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Employees + * const employee = await prisma.employee.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Employees and returns the data updated in the database. + * @param {EmployeeUpdateManyAndReturnArgs} args - Arguments to update many Employees. + * @example + * // Update many Employees + * const employee = await prisma.employee.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Employees and only return the `id` + * const employeeWithIdOnly = await prisma.employee.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Employee. + * @param {EmployeeUpsertArgs} args - Arguments to update or create a Employee. + * @example + * // Update or create a Employee + * const employee = await prisma.employee.upsert({ + * create: { + * // ... data to create a Employee + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Employee we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Employees. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeCountArgs} args - Arguments to filter Employees to count. + * @example + * // Count the number of Employees + * const count = await prisma.employee.count({ + * where: { + * // ... the filter for the Employees we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Employee. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Employee. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {EmployeeGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends EmployeeGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: EmployeeGroupByArgs['orderBy'] } + : { orderBy?: EmployeeGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetEmployeeGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Employee model + */ + readonly fields: EmployeeFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Employee. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__EmployeeClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + rides = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Employee model + */ +export interface EmployeeFieldRefs { + readonly id: Prisma.FieldRef<'Employee', 'String'>; + readonly firstName: Prisma.FieldRef<'Employee', 'String'>; + readonly lastName: Prisma.FieldRef<'Employee', 'String'>; + readonly phoneNumber: Prisma.FieldRef<'Employee', 'String'>; + readonly email: Prisma.FieldRef<'Employee', 'String'>; + readonly photoLink: Prisma.FieldRef<'Employee', 'String'>; + readonly isAdmin: Prisma.FieldRef<'Employee', 'Boolean'>; + readonly adminRoles: Prisma.FieldRef<'Employee', 'AdminRole[]'>; + readonly isDriver: Prisma.FieldRef<'Employee', 'Boolean'>; + readonly availability: Prisma.FieldRef<'Employee', 'DayOfWeek[]'>; + readonly active: Prisma.FieldRef<'Employee', 'Boolean'>; + readonly joinDate: Prisma.FieldRef<'Employee', 'DateTime'>; +} + +// Custom InputTypes +/** + * Employee findUnique + */ +export type EmployeeFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter, which Employee to fetch. + */ + where: Prisma.EmployeeWhereUniqueInput; +}; + +/** + * Employee findUniqueOrThrow + */ +export type EmployeeFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter, which Employee to fetch. + */ + where: Prisma.EmployeeWhereUniqueInput; +}; + +/** + * Employee findFirst + */ +export type EmployeeFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter, which Employee to fetch. + */ + where?: Prisma.EmployeeWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Employees to fetch. + */ + orderBy?: + | Prisma.EmployeeOrderByWithRelationInput + | Prisma.EmployeeOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Employees. + */ + cursor?: Prisma.EmployeeWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Employees from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Employees. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Employees. + */ + distinct?: Prisma.EmployeeScalarFieldEnum | Prisma.EmployeeScalarFieldEnum[]; +}; + +/** + * Employee findFirstOrThrow + */ +export type EmployeeFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter, which Employee to fetch. + */ + where?: Prisma.EmployeeWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Employees to fetch. + */ + orderBy?: + | Prisma.EmployeeOrderByWithRelationInput + | Prisma.EmployeeOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Employees. + */ + cursor?: Prisma.EmployeeWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Employees from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Employees. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Employees. + */ + distinct?: Prisma.EmployeeScalarFieldEnum | Prisma.EmployeeScalarFieldEnum[]; +}; + +/** + * Employee findMany + */ +export type EmployeeFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter, which Employees to fetch. + */ + where?: Prisma.EmployeeWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Employees to fetch. + */ + orderBy?: + | Prisma.EmployeeOrderByWithRelationInput + | Prisma.EmployeeOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Employees. + */ + cursor?: Prisma.EmployeeWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Employees from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Employees. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Employees. + */ + distinct?: Prisma.EmployeeScalarFieldEnum | Prisma.EmployeeScalarFieldEnum[]; +}; + +/** + * Employee create + */ +export type EmployeeCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * The data needed to create a Employee. + */ + data: Prisma.XOR< + Prisma.EmployeeCreateInput, + Prisma.EmployeeUncheckedCreateInput + >; +}; + +/** + * Employee createMany + */ +export type EmployeeCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Employees. + */ + data: Prisma.EmployeeCreateManyInput | Prisma.EmployeeCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Employee createManyAndReturn + */ +export type EmployeeCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * The data used to create many Employees. + */ + data: Prisma.EmployeeCreateManyInput | Prisma.EmployeeCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Employee update + */ +export type EmployeeUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * The data needed to update a Employee. + */ + data: Prisma.XOR< + Prisma.EmployeeUpdateInput, + Prisma.EmployeeUncheckedUpdateInput + >; + /** + * Choose, which Employee to update. + */ + where: Prisma.EmployeeWhereUniqueInput; +}; + +/** + * Employee updateMany + */ +export type EmployeeUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Employees. + */ + data: Prisma.XOR< + Prisma.EmployeeUpdateManyMutationInput, + Prisma.EmployeeUncheckedUpdateManyInput + >; + /** + * Filter which Employees to update + */ + where?: Prisma.EmployeeWhereInput; + /** + * Limit how many Employees to update. + */ + limit?: number; +}; + +/** + * Employee updateManyAndReturn + */ +export type EmployeeUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * The data used to update Employees. + */ + data: Prisma.XOR< + Prisma.EmployeeUpdateManyMutationInput, + Prisma.EmployeeUncheckedUpdateManyInput + >; + /** + * Filter which Employees to update + */ + where?: Prisma.EmployeeWhereInput; + /** + * Limit how many Employees to update. + */ + limit?: number; +}; + +/** + * Employee upsert + */ +export type EmployeeUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * The filter to search for the Employee to update in case it exists. + */ + where: Prisma.EmployeeWhereUniqueInput; + /** + * In case the Employee found by the `where` argument doesn't exist, create a new Employee with this data. + */ + create: Prisma.XOR< + Prisma.EmployeeCreateInput, + Prisma.EmployeeUncheckedCreateInput + >; + /** + * In case the Employee was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR< + Prisma.EmployeeUpdateInput, + Prisma.EmployeeUncheckedUpdateInput + >; +}; + +/** + * Employee delete + */ +export type EmployeeDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + /** + * Filter which Employee to delete. + */ + where: Prisma.EmployeeWhereUniqueInput; +}; + +/** + * Employee deleteMany + */ +export type EmployeeDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Employees to delete + */ + where?: Prisma.EmployeeWhereInput; + /** + * Limit how many Employees to delete. + */ + limit?: number; +}; + +/** + * Employee.rides + */ +export type Employee$ridesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + where?: Prisma.RideWhereInput; + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + cursor?: Prisma.RideWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Employee without action + */ +export type EmployeeDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; +}; diff --git a/server/generated/prisma/models/Favorite.ts b/server/generated/prisma/models/Favorite.ts new file mode 100644 index 000000000..617c698e8 --- /dev/null +++ b/server/generated/prisma/models/Favorite.ts @@ -0,0 +1,1806 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Favorite` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Favorite + * Tracks which riders have favorited which rides + */ +export type FavoriteModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateFavorite = { + _count: FavoriteCountAggregateOutputType | null; + _min: FavoriteMinAggregateOutputType | null; + _max: FavoriteMaxAggregateOutputType | null; +}; + +export type FavoriteMinAggregateOutputType = { + userId: string | null; + rideId: string | null; + favoritedAt: Date | null; +}; + +export type FavoriteMaxAggregateOutputType = { + userId: string | null; + rideId: string | null; + favoritedAt: Date | null; +}; + +export type FavoriteCountAggregateOutputType = { + userId: number; + rideId: number; + favoritedAt: number; + _all: number; +}; + +export type FavoriteMinAggregateInputType = { + userId?: true; + rideId?: true; + favoritedAt?: true; +}; + +export type FavoriteMaxAggregateInputType = { + userId?: true; + rideId?: true; + favoritedAt?: true; +}; + +export type FavoriteCountAggregateInputType = { + userId?: true; + rideId?: true; + favoritedAt?: true; + _all?: true; +}; + +export type FavoriteAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Favorite to aggregate. + */ + where?: Prisma.FavoriteWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Favorites to fetch. + */ + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.FavoriteWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Favorites from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Favorites. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Favorites + **/ + _count?: true | FavoriteCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: FavoriteMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: FavoriteMaxAggregateInputType; +}; + +export type GetFavoriteAggregateType = { + [P in keyof T & keyof AggregateFavorite]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type FavoriteGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.FavoriteWhereInput; + orderBy?: + | Prisma.FavoriteOrderByWithAggregationInput + | Prisma.FavoriteOrderByWithAggregationInput[]; + by: Prisma.FavoriteScalarFieldEnum[] | Prisma.FavoriteScalarFieldEnum; + having?: Prisma.FavoriteScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: FavoriteCountAggregateInputType | true; + _min?: FavoriteMinAggregateInputType; + _max?: FavoriteMaxAggregateInputType; +}; + +export type FavoriteGroupByOutputType = { + userId: string; + rideId: string; + favoritedAt: Date; + _count: FavoriteCountAggregateOutputType | null; + _min: FavoriteMinAggregateOutputType | null; + _max: FavoriteMaxAggregateOutputType | null; +}; + +export type GetFavoriteGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof FavoriteGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type FavoriteWhereInput = { + AND?: Prisma.FavoriteWhereInput | Prisma.FavoriteWhereInput[]; + OR?: Prisma.FavoriteWhereInput[]; + NOT?: Prisma.FavoriteWhereInput | Prisma.FavoriteWhereInput[]; + userId?: Prisma.StringFilter<'Favorite'> | string; + rideId?: Prisma.StringFilter<'Favorite'> | string; + favoritedAt?: Prisma.DateTimeFilter<'Favorite'> | Date | string; + rider?: Prisma.XOR; + ride?: Prisma.XOR; +}; + +export type FavoriteOrderByWithRelationInput = { + userId?: Prisma.SortOrder; + rideId?: Prisma.SortOrder; + favoritedAt?: Prisma.SortOrder; + rider?: Prisma.RiderOrderByWithRelationInput; + ride?: Prisma.RideOrderByWithRelationInput; +}; + +export type FavoriteWhereUniqueInput = Prisma.AtLeast< + { + userId_rideId?: Prisma.FavoriteUserIdRideIdCompoundUniqueInput; + AND?: Prisma.FavoriteWhereInput | Prisma.FavoriteWhereInput[]; + OR?: Prisma.FavoriteWhereInput[]; + NOT?: Prisma.FavoriteWhereInput | Prisma.FavoriteWhereInput[]; + userId?: Prisma.StringFilter<'Favorite'> | string; + rideId?: Prisma.StringFilter<'Favorite'> | string; + favoritedAt?: Prisma.DateTimeFilter<'Favorite'> | Date | string; + rider?: Prisma.XOR< + Prisma.RiderScalarRelationFilter, + Prisma.RiderWhereInput + >; + ride?: Prisma.XOR; + }, + 'userId_rideId' +>; + +export type FavoriteOrderByWithAggregationInput = { + userId?: Prisma.SortOrder; + rideId?: Prisma.SortOrder; + favoritedAt?: Prisma.SortOrder; + _count?: Prisma.FavoriteCountOrderByAggregateInput; + _max?: Prisma.FavoriteMaxOrderByAggregateInput; + _min?: Prisma.FavoriteMinOrderByAggregateInput; +}; + +export type FavoriteScalarWhereWithAggregatesInput = { + AND?: + | Prisma.FavoriteScalarWhereWithAggregatesInput + | Prisma.FavoriteScalarWhereWithAggregatesInput[]; + OR?: Prisma.FavoriteScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.FavoriteScalarWhereWithAggregatesInput + | Prisma.FavoriteScalarWhereWithAggregatesInput[]; + userId?: Prisma.StringWithAggregatesFilter<'Favorite'> | string; + rideId?: Prisma.StringWithAggregatesFilter<'Favorite'> | string; + favoritedAt?: Prisma.DateTimeWithAggregatesFilter<'Favorite'> | Date | string; +}; + +export type FavoriteCreateInput = { + favoritedAt?: Date | string; + rider: Prisma.RiderCreateNestedOneWithoutFavoritesInput; + ride: Prisma.RideCreateNestedOneWithoutFavoritesInput; +}; + +export type FavoriteUncheckedCreateInput = { + userId: string; + rideId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteUpdateInput = { + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + rider?: Prisma.RiderUpdateOneRequiredWithoutFavoritesNestedInput; + ride?: Prisma.RideUpdateOneRequiredWithoutFavoritesNestedInput; +}; + +export type FavoriteUncheckedUpdateInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string; + rideId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteCreateManyInput = { + userId: string; + rideId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteUpdateManyMutationInput = { + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteUncheckedUpdateManyInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string; + rideId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteListRelationFilter = { + every?: Prisma.FavoriteWhereInput; + some?: Prisma.FavoriteWhereInput; + none?: Prisma.FavoriteWhereInput; +}; + +export type FavoriteOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder; +}; + +export type FavoriteUserIdRideIdCompoundUniqueInput = { + userId: string; + rideId: string; +}; + +export type FavoriteCountOrderByAggregateInput = { + userId?: Prisma.SortOrder; + rideId?: Prisma.SortOrder; + favoritedAt?: Prisma.SortOrder; +}; + +export type FavoriteMaxOrderByAggregateInput = { + userId?: Prisma.SortOrder; + rideId?: Prisma.SortOrder; + favoritedAt?: Prisma.SortOrder; +}; + +export type FavoriteMinOrderByAggregateInput = { + userId?: Prisma.SortOrder; + rideId?: Prisma.SortOrder; + favoritedAt?: Prisma.SortOrder; +}; + +export type FavoriteCreateNestedManyWithoutRiderInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + > + | Prisma.FavoriteCreateWithoutRiderInput[] + | Prisma.FavoriteUncheckedCreateWithoutRiderInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRiderInput + | Prisma.FavoriteCreateOrConnectWithoutRiderInput[]; + createMany?: Prisma.FavoriteCreateManyRiderInputEnvelope; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; +}; + +export type FavoriteUncheckedCreateNestedManyWithoutRiderInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + > + | Prisma.FavoriteCreateWithoutRiderInput[] + | Prisma.FavoriteUncheckedCreateWithoutRiderInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRiderInput + | Prisma.FavoriteCreateOrConnectWithoutRiderInput[]; + createMany?: Prisma.FavoriteCreateManyRiderInputEnvelope; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; +}; + +export type FavoriteUpdateManyWithoutRiderNestedInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + > + | Prisma.FavoriteCreateWithoutRiderInput[] + | Prisma.FavoriteUncheckedCreateWithoutRiderInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRiderInput + | Prisma.FavoriteCreateOrConnectWithoutRiderInput[]; + upsert?: + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRiderInput + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRiderInput[]; + createMany?: Prisma.FavoriteCreateManyRiderInputEnvelope; + set?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + disconnect?: + | Prisma.FavoriteWhereUniqueInput + | Prisma.FavoriteWhereUniqueInput[]; + delete?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + update?: + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRiderInput + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRiderInput[]; + updateMany?: + | Prisma.FavoriteUpdateManyWithWhereWithoutRiderInput + | Prisma.FavoriteUpdateManyWithWhereWithoutRiderInput[]; + deleteMany?: + | Prisma.FavoriteScalarWhereInput + | Prisma.FavoriteScalarWhereInput[]; +}; + +export type FavoriteUncheckedUpdateManyWithoutRiderNestedInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + > + | Prisma.FavoriteCreateWithoutRiderInput[] + | Prisma.FavoriteUncheckedCreateWithoutRiderInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRiderInput + | Prisma.FavoriteCreateOrConnectWithoutRiderInput[]; + upsert?: + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRiderInput + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRiderInput[]; + createMany?: Prisma.FavoriteCreateManyRiderInputEnvelope; + set?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + disconnect?: + | Prisma.FavoriteWhereUniqueInput + | Prisma.FavoriteWhereUniqueInput[]; + delete?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + update?: + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRiderInput + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRiderInput[]; + updateMany?: + | Prisma.FavoriteUpdateManyWithWhereWithoutRiderInput + | Prisma.FavoriteUpdateManyWithWhereWithoutRiderInput[]; + deleteMany?: + | Prisma.FavoriteScalarWhereInput + | Prisma.FavoriteScalarWhereInput[]; +}; + +export type FavoriteCreateNestedManyWithoutRideInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + > + | Prisma.FavoriteCreateWithoutRideInput[] + | Prisma.FavoriteUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRideInput + | Prisma.FavoriteCreateOrConnectWithoutRideInput[]; + createMany?: Prisma.FavoriteCreateManyRideInputEnvelope; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; +}; + +export type FavoriteUncheckedCreateNestedManyWithoutRideInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + > + | Prisma.FavoriteCreateWithoutRideInput[] + | Prisma.FavoriteUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRideInput + | Prisma.FavoriteCreateOrConnectWithoutRideInput[]; + createMany?: Prisma.FavoriteCreateManyRideInputEnvelope; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; +}; + +export type FavoriteUpdateManyWithoutRideNestedInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + > + | Prisma.FavoriteCreateWithoutRideInput[] + | Prisma.FavoriteUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRideInput + | Prisma.FavoriteCreateOrConnectWithoutRideInput[]; + upsert?: + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRideInput + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRideInput[]; + createMany?: Prisma.FavoriteCreateManyRideInputEnvelope; + set?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + disconnect?: + | Prisma.FavoriteWhereUniqueInput + | Prisma.FavoriteWhereUniqueInput[]; + delete?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + update?: + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRideInput + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRideInput[]; + updateMany?: + | Prisma.FavoriteUpdateManyWithWhereWithoutRideInput + | Prisma.FavoriteUpdateManyWithWhereWithoutRideInput[]; + deleteMany?: + | Prisma.FavoriteScalarWhereInput + | Prisma.FavoriteScalarWhereInput[]; +}; + +export type FavoriteUncheckedUpdateManyWithoutRideNestedInput = { + create?: + | Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + > + | Prisma.FavoriteCreateWithoutRideInput[] + | Prisma.FavoriteUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.FavoriteCreateOrConnectWithoutRideInput + | Prisma.FavoriteCreateOrConnectWithoutRideInput[]; + upsert?: + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRideInput + | Prisma.FavoriteUpsertWithWhereUniqueWithoutRideInput[]; + createMany?: Prisma.FavoriteCreateManyRideInputEnvelope; + set?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + disconnect?: + | Prisma.FavoriteWhereUniqueInput + | Prisma.FavoriteWhereUniqueInput[]; + delete?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + connect?: Prisma.FavoriteWhereUniqueInput | Prisma.FavoriteWhereUniqueInput[]; + update?: + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRideInput + | Prisma.FavoriteUpdateWithWhereUniqueWithoutRideInput[]; + updateMany?: + | Prisma.FavoriteUpdateManyWithWhereWithoutRideInput + | Prisma.FavoriteUpdateManyWithWhereWithoutRideInput[]; + deleteMany?: + | Prisma.FavoriteScalarWhereInput + | Prisma.FavoriteScalarWhereInput[]; +}; + +export type FavoriteCreateWithoutRiderInput = { + favoritedAt?: Date | string; + ride: Prisma.RideCreateNestedOneWithoutFavoritesInput; +}; + +export type FavoriteUncheckedCreateWithoutRiderInput = { + rideId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteCreateOrConnectWithoutRiderInput = { + where: Prisma.FavoriteWhereUniqueInput; + create: Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + >; +}; + +export type FavoriteCreateManyRiderInputEnvelope = { + data: + | Prisma.FavoriteCreateManyRiderInput + | Prisma.FavoriteCreateManyRiderInput[]; + skipDuplicates?: boolean; +}; + +export type FavoriteUpsertWithWhereUniqueWithoutRiderInput = { + where: Prisma.FavoriteWhereUniqueInput; + update: Prisma.XOR< + Prisma.FavoriteUpdateWithoutRiderInput, + Prisma.FavoriteUncheckedUpdateWithoutRiderInput + >; + create: Prisma.XOR< + Prisma.FavoriteCreateWithoutRiderInput, + Prisma.FavoriteUncheckedCreateWithoutRiderInput + >; +}; + +export type FavoriteUpdateWithWhereUniqueWithoutRiderInput = { + where: Prisma.FavoriteWhereUniqueInput; + data: Prisma.XOR< + Prisma.FavoriteUpdateWithoutRiderInput, + Prisma.FavoriteUncheckedUpdateWithoutRiderInput + >; +}; + +export type FavoriteUpdateManyWithWhereWithoutRiderInput = { + where: Prisma.FavoriteScalarWhereInput; + data: Prisma.XOR< + Prisma.FavoriteUpdateManyMutationInput, + Prisma.FavoriteUncheckedUpdateManyWithoutRiderInput + >; +}; + +export type FavoriteScalarWhereInput = { + AND?: Prisma.FavoriteScalarWhereInput | Prisma.FavoriteScalarWhereInput[]; + OR?: Prisma.FavoriteScalarWhereInput[]; + NOT?: Prisma.FavoriteScalarWhereInput | Prisma.FavoriteScalarWhereInput[]; + userId?: Prisma.StringFilter<'Favorite'> | string; + rideId?: Prisma.StringFilter<'Favorite'> | string; + favoritedAt?: Prisma.DateTimeFilter<'Favorite'> | Date | string; +}; + +export type FavoriteCreateWithoutRideInput = { + favoritedAt?: Date | string; + rider: Prisma.RiderCreateNestedOneWithoutFavoritesInput; +}; + +export type FavoriteUncheckedCreateWithoutRideInput = { + userId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteCreateOrConnectWithoutRideInput = { + where: Prisma.FavoriteWhereUniqueInput; + create: Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + >; +}; + +export type FavoriteCreateManyRideInputEnvelope = { + data: + | Prisma.FavoriteCreateManyRideInput + | Prisma.FavoriteCreateManyRideInput[]; + skipDuplicates?: boolean; +}; + +export type FavoriteUpsertWithWhereUniqueWithoutRideInput = { + where: Prisma.FavoriteWhereUniqueInput; + update: Prisma.XOR< + Prisma.FavoriteUpdateWithoutRideInput, + Prisma.FavoriteUncheckedUpdateWithoutRideInput + >; + create: Prisma.XOR< + Prisma.FavoriteCreateWithoutRideInput, + Prisma.FavoriteUncheckedCreateWithoutRideInput + >; +}; + +export type FavoriteUpdateWithWhereUniqueWithoutRideInput = { + where: Prisma.FavoriteWhereUniqueInput; + data: Prisma.XOR< + Prisma.FavoriteUpdateWithoutRideInput, + Prisma.FavoriteUncheckedUpdateWithoutRideInput + >; +}; + +export type FavoriteUpdateManyWithWhereWithoutRideInput = { + where: Prisma.FavoriteScalarWhereInput; + data: Prisma.XOR< + Prisma.FavoriteUpdateManyMutationInput, + Prisma.FavoriteUncheckedUpdateManyWithoutRideInput + >; +}; + +export type FavoriteCreateManyRiderInput = { + rideId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteUpdateWithoutRiderInput = { + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + ride?: Prisma.RideUpdateOneRequiredWithoutFavoritesNestedInput; +}; + +export type FavoriteUncheckedUpdateWithoutRiderInput = { + rideId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteUncheckedUpdateManyWithoutRiderInput = { + rideId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteCreateManyRideInput = { + userId: string; + favoritedAt?: Date | string; +}; + +export type FavoriteUpdateWithoutRideInput = { + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + rider?: Prisma.RiderUpdateOneRequiredWithoutFavoritesNestedInput; +}; + +export type FavoriteUncheckedUpdateWithoutRideInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteUncheckedUpdateManyWithoutRideInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string; + favoritedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; +}; + +export type FavoriteSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + userId?: boolean; + rideId?: boolean; + favoritedAt?: boolean; + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['favorite'] +>; + +export type FavoriteSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + userId?: boolean; + rideId?: boolean; + favoritedAt?: boolean; + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['favorite'] +>; + +export type FavoriteSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + userId?: boolean; + rideId?: boolean; + favoritedAt?: boolean; + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['favorite'] +>; + +export type FavoriteSelectScalar = { + userId?: boolean; + rideId?: boolean; + favoritedAt?: boolean; +}; + +export type FavoriteOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + 'userId' | 'rideId' | 'favoritedAt', + ExtArgs['result']['favorite'] +>; +export type FavoriteInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; +}; +export type FavoriteIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; +}; +export type FavoriteIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rider?: boolean | Prisma.RiderDefaultArgs; + ride?: boolean | Prisma.RideDefaultArgs; +}; + +export type $FavoritePayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Favorite'; + objects: { + rider: Prisma.$RiderPayload; + ride: Prisma.$RidePayload; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + userId: string; + rideId: string; + favoritedAt: Date; + }, + ExtArgs['result']['favorite'] + >; + composites: {}; +}; + +export type FavoriteGetPayload< + S extends boolean | null | undefined | FavoriteDefaultArgs +> = runtime.Types.Result.GetResult; + +export type FavoriteCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: FavoriteCountAggregateInputType | true; +}; + +export interface FavoriteDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Favorite']; + meta: { name: 'Favorite' }; + }; + /** + * Find zero or one Favorite that matches the filter. + * @param {FavoriteFindUniqueArgs} args - Arguments to find a Favorite + * @example + * // Get one Favorite + * const favorite = await prisma.favorite.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Favorite that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {FavoriteFindUniqueOrThrowArgs} args - Arguments to find a Favorite + * @example + * // Get one Favorite + * const favorite = await prisma.favorite.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Favorite that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteFindFirstArgs} args - Arguments to find a Favorite + * @example + * // Get one Favorite + * const favorite = await prisma.favorite.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Favorite that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteFindFirstOrThrowArgs} args - Arguments to find a Favorite + * @example + * // Get one Favorite + * const favorite = await prisma.favorite.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Favorites that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Favorites + * const favorites = await prisma.favorite.findMany() + * + * // Get first 10 Favorites + * const favorites = await prisma.favorite.findMany({ take: 10 }) + * + * // Only select the `userId` + * const favoriteWithUserIdOnly = await prisma.favorite.findMany({ select: { userId: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Favorite. + * @param {FavoriteCreateArgs} args - Arguments to create a Favorite. + * @example + * // Create one Favorite + * const Favorite = await prisma.favorite.create({ + * data: { + * // ... data to create a Favorite + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Favorites. + * @param {FavoriteCreateManyArgs} args - Arguments to create many Favorites. + * @example + * // Create many Favorites + * const favorite = await prisma.favorite.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Favorites and returns the data saved in the database. + * @param {FavoriteCreateManyAndReturnArgs} args - Arguments to create many Favorites. + * @example + * // Create many Favorites + * const favorite = await prisma.favorite.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Favorites and only return the `userId` + * const favoriteWithUserIdOnly = await prisma.favorite.createManyAndReturn({ + * select: { userId: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Favorite. + * @param {FavoriteDeleteArgs} args - Arguments to delete one Favorite. + * @example + * // Delete one Favorite + * const Favorite = await prisma.favorite.delete({ + * where: { + * // ... filter to delete one Favorite + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Favorite. + * @param {FavoriteUpdateArgs} args - Arguments to update one Favorite. + * @example + * // Update one Favorite + * const favorite = await prisma.favorite.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Favorites. + * @param {FavoriteDeleteManyArgs} args - Arguments to filter Favorites to delete. + * @example + * // Delete a few Favorites + * const { count } = await prisma.favorite.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Favorites. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Favorites + * const favorite = await prisma.favorite.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Favorites and returns the data updated in the database. + * @param {FavoriteUpdateManyAndReturnArgs} args - Arguments to update many Favorites. + * @example + * // Update many Favorites + * const favorite = await prisma.favorite.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Favorites and only return the `userId` + * const favoriteWithUserIdOnly = await prisma.favorite.updateManyAndReturn({ + * select: { userId: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Favorite. + * @param {FavoriteUpsertArgs} args - Arguments to update or create a Favorite. + * @example + * // Update or create a Favorite + * const favorite = await prisma.favorite.upsert({ + * create: { + * // ... data to create a Favorite + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Favorite we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__FavoriteClient< + runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Favorites. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteCountArgs} args - Arguments to filter Favorites to count. + * @example + * // Count the number of Favorites + * const count = await prisma.favorite.count({ + * where: { + * // ... the filter for the Favorites we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Favorite. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Favorite. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {FavoriteGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends FavoriteGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: FavoriteGroupByArgs['orderBy'] } + : { orderBy?: FavoriteGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetFavoriteGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Favorite model + */ + readonly fields: FavoriteFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Favorite. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__FavoriteClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + rider = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__RiderClient< + | runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > + | Null, + Null, + ExtArgs, + GlobalOmitOptions + >; + ride = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__RideClient< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > + | Null, + Null, + ExtArgs, + GlobalOmitOptions + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Favorite model + */ +export interface FavoriteFieldRefs { + readonly userId: Prisma.FieldRef<'Favorite', 'String'>; + readonly rideId: Prisma.FieldRef<'Favorite', 'String'>; + readonly favoritedAt: Prisma.FieldRef<'Favorite', 'DateTime'>; +} + +// Custom InputTypes +/** + * Favorite findUnique + */ +export type FavoriteFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter, which Favorite to fetch. + */ + where: Prisma.FavoriteWhereUniqueInput; +}; + +/** + * Favorite findUniqueOrThrow + */ +export type FavoriteFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter, which Favorite to fetch. + */ + where: Prisma.FavoriteWhereUniqueInput; +}; + +/** + * Favorite findFirst + */ +export type FavoriteFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter, which Favorite to fetch. + */ + where?: Prisma.FavoriteWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Favorites to fetch. + */ + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Favorites. + */ + cursor?: Prisma.FavoriteWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Favorites from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Favorites. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Favorites. + */ + distinct?: Prisma.FavoriteScalarFieldEnum | Prisma.FavoriteScalarFieldEnum[]; +}; + +/** + * Favorite findFirstOrThrow + */ +export type FavoriteFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter, which Favorite to fetch. + */ + where?: Prisma.FavoriteWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Favorites to fetch. + */ + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Favorites. + */ + cursor?: Prisma.FavoriteWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Favorites from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Favorites. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Favorites. + */ + distinct?: Prisma.FavoriteScalarFieldEnum | Prisma.FavoriteScalarFieldEnum[]; +}; + +/** + * Favorite findMany + */ +export type FavoriteFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter, which Favorites to fetch. + */ + where?: Prisma.FavoriteWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Favorites to fetch. + */ + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Favorites. + */ + cursor?: Prisma.FavoriteWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Favorites from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Favorites. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Favorites. + */ + distinct?: Prisma.FavoriteScalarFieldEnum | Prisma.FavoriteScalarFieldEnum[]; +}; + +/** + * Favorite create + */ +export type FavoriteCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * The data needed to create a Favorite. + */ + data: Prisma.XOR< + Prisma.FavoriteCreateInput, + Prisma.FavoriteUncheckedCreateInput + >; +}; + +/** + * Favorite createMany + */ +export type FavoriteCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Favorites. + */ + data: Prisma.FavoriteCreateManyInput | Prisma.FavoriteCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Favorite createManyAndReturn + */ +export type FavoriteCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * The data used to create many Favorites. + */ + data: Prisma.FavoriteCreateManyInput | Prisma.FavoriteCreateManyInput[]; + skipDuplicates?: boolean; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteIncludeCreateManyAndReturn | null; +}; + +/** + * Favorite update + */ +export type FavoriteUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * The data needed to update a Favorite. + */ + data: Prisma.XOR< + Prisma.FavoriteUpdateInput, + Prisma.FavoriteUncheckedUpdateInput + >; + /** + * Choose, which Favorite to update. + */ + where: Prisma.FavoriteWhereUniqueInput; +}; + +/** + * Favorite updateMany + */ +export type FavoriteUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Favorites. + */ + data: Prisma.XOR< + Prisma.FavoriteUpdateManyMutationInput, + Prisma.FavoriteUncheckedUpdateManyInput + >; + /** + * Filter which Favorites to update + */ + where?: Prisma.FavoriteWhereInput; + /** + * Limit how many Favorites to update. + */ + limit?: number; +}; + +/** + * Favorite updateManyAndReturn + */ +export type FavoriteUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * The data used to update Favorites. + */ + data: Prisma.XOR< + Prisma.FavoriteUpdateManyMutationInput, + Prisma.FavoriteUncheckedUpdateManyInput + >; + /** + * Filter which Favorites to update + */ + where?: Prisma.FavoriteWhereInput; + /** + * Limit how many Favorites to update. + */ + limit?: number; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteIncludeUpdateManyAndReturn | null; +}; + +/** + * Favorite upsert + */ +export type FavoriteUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * The filter to search for the Favorite to update in case it exists. + */ + where: Prisma.FavoriteWhereUniqueInput; + /** + * In case the Favorite found by the `where` argument doesn't exist, create a new Favorite with this data. + */ + create: Prisma.XOR< + Prisma.FavoriteCreateInput, + Prisma.FavoriteUncheckedCreateInput + >; + /** + * In case the Favorite was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR< + Prisma.FavoriteUpdateInput, + Prisma.FavoriteUncheckedUpdateInput + >; +}; + +/** + * Favorite delete + */ +export type FavoriteDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + /** + * Filter which Favorite to delete. + */ + where: Prisma.FavoriteWhereUniqueInput; +}; + +/** + * Favorite deleteMany + */ +export type FavoriteDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Favorites to delete + */ + where?: Prisma.FavoriteWhereInput; + /** + * Limit how many Favorites to delete. + */ + limit?: number; +}; + +/** + * Favorite without action + */ +export type FavoriteDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; +}; diff --git a/server/generated/prisma/models/Location.ts b/server/generated/prisma/models/Location.ts new file mode 100644 index 000000000..0268fa3a0 --- /dev/null +++ b/server/generated/prisma/models/Location.ts @@ -0,0 +1,2050 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Location` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Location + * A named pickup or drop-off point used in rides + */ +export type LocationModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateLocation = { + _count: LocationCountAggregateOutputType | null; + _avg: LocationAvgAggregateOutputType | null; + _sum: LocationSumAggregateOutputType | null; + _min: LocationMinAggregateOutputType | null; + _max: LocationMaxAggregateOutputType | null; +}; + +export type LocationAvgAggregateOutputType = { + lat: number | null; + lng: number | null; +}; + +export type LocationSumAggregateOutputType = { + lat: number | null; + lng: number | null; +}; + +export type LocationMinAggregateOutputType = { + id: string | null; + name: string | null; + address: string | null; + shortName: string | null; + info: string | null; + tag: $Enums.LocationTag | null; + lat: number | null; + lng: number | null; + photoLink: string | null; +}; + +export type LocationMaxAggregateOutputType = { + id: string | null; + name: string | null; + address: string | null; + shortName: string | null; + info: string | null; + tag: $Enums.LocationTag | null; + lat: number | null; + lng: number | null; + photoLink: string | null; +}; + +export type LocationCountAggregateOutputType = { + id: number; + name: number; + address: number; + shortName: number; + info: number; + tag: number; + lat: number; + lng: number; + photoLink: number; + images: number; + _all: number; +}; + +export type LocationAvgAggregateInputType = { + lat?: true; + lng?: true; +}; + +export type LocationSumAggregateInputType = { + lat?: true; + lng?: true; +}; + +export type LocationMinAggregateInputType = { + id?: true; + name?: true; + address?: true; + shortName?: true; + info?: true; + tag?: true; + lat?: true; + lng?: true; + photoLink?: true; +}; + +export type LocationMaxAggregateInputType = { + id?: true; + name?: true; + address?: true; + shortName?: true; + info?: true; + tag?: true; + lat?: true; + lng?: true; + photoLink?: true; +}; + +export type LocationCountAggregateInputType = { + id?: true; + name?: true; + address?: true; + shortName?: true; + info?: true; + tag?: true; + lat?: true; + lng?: true; + photoLink?: true; + images?: true; + _all?: true; +}; + +export type LocationAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Location to aggregate. + */ + where?: Prisma.LocationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Locations to fetch. + */ + orderBy?: + | Prisma.LocationOrderByWithRelationInput + | Prisma.LocationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.LocationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Locations from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Locations. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Locations + **/ + _count?: true | LocationCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: LocationAvgAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: LocationSumAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: LocationMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: LocationMaxAggregateInputType; +}; + +export type GetLocationAggregateType = { + [P in keyof T & keyof AggregateLocation]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type LocationGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.LocationWhereInput; + orderBy?: + | Prisma.LocationOrderByWithAggregationInput + | Prisma.LocationOrderByWithAggregationInput[]; + by: Prisma.LocationScalarFieldEnum[] | Prisma.LocationScalarFieldEnum; + having?: Prisma.LocationScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: LocationCountAggregateInputType | true; + _avg?: LocationAvgAggregateInputType; + _sum?: LocationSumAggregateInputType; + _min?: LocationMinAggregateInputType; + _max?: LocationMaxAggregateInputType; +}; + +export type LocationGroupByOutputType = { + id: string; + name: string; + address: string; + shortName: string; + info: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink: string | null; + images: string[]; + _count: LocationCountAggregateOutputType | null; + _avg: LocationAvgAggregateOutputType | null; + _sum: LocationSumAggregateOutputType | null; + _min: LocationMinAggregateOutputType | null; + _max: LocationMaxAggregateOutputType | null; +}; + +export type GetLocationGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof LocationGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type LocationWhereInput = { + AND?: Prisma.LocationWhereInput | Prisma.LocationWhereInput[]; + OR?: Prisma.LocationWhereInput[]; + NOT?: Prisma.LocationWhereInput | Prisma.LocationWhereInput[]; + id?: Prisma.StringFilter<'Location'> | string; + name?: Prisma.StringFilter<'Location'> | string; + address?: Prisma.StringFilter<'Location'> | string; + shortName?: Prisma.StringFilter<'Location'> | string; + info?: Prisma.StringNullableFilter<'Location'> | string | null; + tag?: Prisma.EnumLocationTagFilter<'Location'> | $Enums.LocationTag; + lat?: Prisma.FloatFilter<'Location'> | number; + lng?: Prisma.FloatFilter<'Location'> | number; + photoLink?: Prisma.StringNullableFilter<'Location'> | string | null; + images?: Prisma.StringNullableListFilter<'Location'>; + ridesAsStart?: Prisma.RideListRelationFilter; + ridesAsEnd?: Prisma.RideListRelationFilter; +}; + +export type LocationOrderByWithRelationInput = { + id?: Prisma.SortOrder; + name?: Prisma.SortOrder; + address?: Prisma.SortOrder; + shortName?: Prisma.SortOrder; + info?: Prisma.SortOrderInput | Prisma.SortOrder; + tag?: Prisma.SortOrder; + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + images?: Prisma.SortOrder; + ridesAsStart?: Prisma.RideOrderByRelationAggregateInput; + ridesAsEnd?: Prisma.RideOrderByRelationAggregateInput; +}; + +export type LocationWhereUniqueInput = Prisma.AtLeast< + { + id?: string; + AND?: Prisma.LocationWhereInput | Prisma.LocationWhereInput[]; + OR?: Prisma.LocationWhereInput[]; + NOT?: Prisma.LocationWhereInput | Prisma.LocationWhereInput[]; + name?: Prisma.StringFilter<'Location'> | string; + address?: Prisma.StringFilter<'Location'> | string; + shortName?: Prisma.StringFilter<'Location'> | string; + info?: Prisma.StringNullableFilter<'Location'> | string | null; + tag?: Prisma.EnumLocationTagFilter<'Location'> | $Enums.LocationTag; + lat?: Prisma.FloatFilter<'Location'> | number; + lng?: Prisma.FloatFilter<'Location'> | number; + photoLink?: Prisma.StringNullableFilter<'Location'> | string | null; + images?: Prisma.StringNullableListFilter<'Location'>; + ridesAsStart?: Prisma.RideListRelationFilter; + ridesAsEnd?: Prisma.RideListRelationFilter; + }, + 'id' +>; + +export type LocationOrderByWithAggregationInput = { + id?: Prisma.SortOrder; + name?: Prisma.SortOrder; + address?: Prisma.SortOrder; + shortName?: Prisma.SortOrder; + info?: Prisma.SortOrderInput | Prisma.SortOrder; + tag?: Prisma.SortOrder; + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + images?: Prisma.SortOrder; + _count?: Prisma.LocationCountOrderByAggregateInput; + _avg?: Prisma.LocationAvgOrderByAggregateInput; + _max?: Prisma.LocationMaxOrderByAggregateInput; + _min?: Prisma.LocationMinOrderByAggregateInput; + _sum?: Prisma.LocationSumOrderByAggregateInput; +}; + +export type LocationScalarWhereWithAggregatesInput = { + AND?: + | Prisma.LocationScalarWhereWithAggregatesInput + | Prisma.LocationScalarWhereWithAggregatesInput[]; + OR?: Prisma.LocationScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.LocationScalarWhereWithAggregatesInput + | Prisma.LocationScalarWhereWithAggregatesInput[]; + id?: Prisma.StringWithAggregatesFilter<'Location'> | string; + name?: Prisma.StringWithAggregatesFilter<'Location'> | string; + address?: Prisma.StringWithAggregatesFilter<'Location'> | string; + shortName?: Prisma.StringWithAggregatesFilter<'Location'> | string; + info?: Prisma.StringNullableWithAggregatesFilter<'Location'> | string | null; + tag?: + | Prisma.EnumLocationTagWithAggregatesFilter<'Location'> + | $Enums.LocationTag; + lat?: Prisma.FloatWithAggregatesFilter<'Location'> | number; + lng?: Prisma.FloatWithAggregatesFilter<'Location'> | number; + photoLink?: + | Prisma.StringNullableWithAggregatesFilter<'Location'> + | string + | null; + images?: Prisma.StringNullableListFilter<'Location'>; +}; + +export type LocationCreateInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsStart?: Prisma.RideCreateNestedManyWithoutStartLocationInput; + ridesAsEnd?: Prisma.RideCreateNestedManyWithoutEndLocationInput; +}; + +export type LocationUncheckedCreateInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsStart?: Prisma.RideUncheckedCreateNestedManyWithoutStartLocationInput; + ridesAsEnd?: Prisma.RideUncheckedCreateNestedManyWithoutEndLocationInput; +}; + +export type LocationUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsStart?: Prisma.RideUpdateManyWithoutStartLocationNestedInput; + ridesAsEnd?: Prisma.RideUpdateManyWithoutEndLocationNestedInput; +}; + +export type LocationUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsStart?: Prisma.RideUncheckedUpdateManyWithoutStartLocationNestedInput; + ridesAsEnd?: Prisma.RideUncheckedUpdateManyWithoutEndLocationNestedInput; +}; + +export type LocationCreateManyInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; +}; + +export type LocationUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; +}; + +export type LocationUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; +}; + +export type StringNullableListFilter<$PrismaModel = never> = { + equals?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null; + has?: string | Prisma.StringFieldRefInput<$PrismaModel> | null; + hasEvery?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + hasSome?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>; + isEmpty?: boolean; +}; + +export type LocationCountOrderByAggregateInput = { + id?: Prisma.SortOrder; + name?: Prisma.SortOrder; + address?: Prisma.SortOrder; + shortName?: Prisma.SortOrder; + info?: Prisma.SortOrder; + tag?: Prisma.SortOrder; + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + images?: Prisma.SortOrder; +}; + +export type LocationAvgOrderByAggregateInput = { + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; +}; + +export type LocationMaxOrderByAggregateInput = { + id?: Prisma.SortOrder; + name?: Prisma.SortOrder; + address?: Prisma.SortOrder; + shortName?: Prisma.SortOrder; + info?: Prisma.SortOrder; + tag?: Prisma.SortOrder; + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; +}; + +export type LocationMinOrderByAggregateInput = { + id?: Prisma.SortOrder; + name?: Prisma.SortOrder; + address?: Prisma.SortOrder; + shortName?: Prisma.SortOrder; + info?: Prisma.SortOrder; + tag?: Prisma.SortOrder; + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; +}; + +export type LocationSumOrderByAggregateInput = { + lat?: Prisma.SortOrder; + lng?: Prisma.SortOrder; +}; + +export type LocationScalarRelationFilter = { + is?: Prisma.LocationWhereInput; + isNot?: Prisma.LocationWhereInput; +}; + +export type LocationCreateimagesInput = { + set: string[]; +}; + +export type StringFieldUpdateOperationsInput = { + set?: string; +}; + +export type NullableStringFieldUpdateOperationsInput = { + set?: string | null; +}; + +export type EnumLocationTagFieldUpdateOperationsInput = { + set?: $Enums.LocationTag; +}; + +export type FloatFieldUpdateOperationsInput = { + set?: number; + increment?: number; + decrement?: number; + multiply?: number; + divide?: number; +}; + +export type LocationUpdateimagesInput = { + set?: string[]; + push?: string | string[]; +}; + +export type LocationCreateNestedOneWithoutRidesAsStartInput = { + create?: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsStartInput, + Prisma.LocationUncheckedCreateWithoutRidesAsStartInput + >; + connectOrCreate?: Prisma.LocationCreateOrConnectWithoutRidesAsStartInput; + connect?: Prisma.LocationWhereUniqueInput; +}; + +export type LocationCreateNestedOneWithoutRidesAsEndInput = { + create?: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsEndInput, + Prisma.LocationUncheckedCreateWithoutRidesAsEndInput + >; + connectOrCreate?: Prisma.LocationCreateOrConnectWithoutRidesAsEndInput; + connect?: Prisma.LocationWhereUniqueInput; +}; + +export type LocationUpdateOneRequiredWithoutRidesAsStartNestedInput = { + create?: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsStartInput, + Prisma.LocationUncheckedCreateWithoutRidesAsStartInput + >; + connectOrCreate?: Prisma.LocationCreateOrConnectWithoutRidesAsStartInput; + upsert?: Prisma.LocationUpsertWithoutRidesAsStartInput; + connect?: Prisma.LocationWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.LocationUpdateToOneWithWhereWithoutRidesAsStartInput, + Prisma.LocationUpdateWithoutRidesAsStartInput + >, + Prisma.LocationUncheckedUpdateWithoutRidesAsStartInput + >; +}; + +export type LocationUpdateOneRequiredWithoutRidesAsEndNestedInput = { + create?: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsEndInput, + Prisma.LocationUncheckedCreateWithoutRidesAsEndInput + >; + connectOrCreate?: Prisma.LocationCreateOrConnectWithoutRidesAsEndInput; + upsert?: Prisma.LocationUpsertWithoutRidesAsEndInput; + connect?: Prisma.LocationWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.LocationUpdateToOneWithWhereWithoutRidesAsEndInput, + Prisma.LocationUpdateWithoutRidesAsEndInput + >, + Prisma.LocationUncheckedUpdateWithoutRidesAsEndInput + >; +}; + +export type LocationCreateWithoutRidesAsStartInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsEnd?: Prisma.RideCreateNestedManyWithoutEndLocationInput; +}; + +export type LocationUncheckedCreateWithoutRidesAsStartInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsEnd?: Prisma.RideUncheckedCreateNestedManyWithoutEndLocationInput; +}; + +export type LocationCreateOrConnectWithoutRidesAsStartInput = { + where: Prisma.LocationWhereUniqueInput; + create: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsStartInput, + Prisma.LocationUncheckedCreateWithoutRidesAsStartInput + >; +}; + +export type LocationCreateWithoutRidesAsEndInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsStart?: Prisma.RideCreateNestedManyWithoutStartLocationInput; +}; + +export type LocationUncheckedCreateWithoutRidesAsEndInput = { + id?: string; + name: string; + address: string; + shortName: string; + info?: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink?: string | null; + images?: Prisma.LocationCreateimagesInput | string[]; + ridesAsStart?: Prisma.RideUncheckedCreateNestedManyWithoutStartLocationInput; +}; + +export type LocationCreateOrConnectWithoutRidesAsEndInput = { + where: Prisma.LocationWhereUniqueInput; + create: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsEndInput, + Prisma.LocationUncheckedCreateWithoutRidesAsEndInput + >; +}; + +export type LocationUpsertWithoutRidesAsStartInput = { + update: Prisma.XOR< + Prisma.LocationUpdateWithoutRidesAsStartInput, + Prisma.LocationUncheckedUpdateWithoutRidesAsStartInput + >; + create: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsStartInput, + Prisma.LocationUncheckedCreateWithoutRidesAsStartInput + >; + where?: Prisma.LocationWhereInput; +}; + +export type LocationUpdateToOneWithWhereWithoutRidesAsStartInput = { + where?: Prisma.LocationWhereInput; + data: Prisma.XOR< + Prisma.LocationUpdateWithoutRidesAsStartInput, + Prisma.LocationUncheckedUpdateWithoutRidesAsStartInput + >; +}; + +export type LocationUpdateWithoutRidesAsStartInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsEnd?: Prisma.RideUpdateManyWithoutEndLocationNestedInput; +}; + +export type LocationUncheckedUpdateWithoutRidesAsStartInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsEnd?: Prisma.RideUncheckedUpdateManyWithoutEndLocationNestedInput; +}; + +export type LocationUpsertWithoutRidesAsEndInput = { + update: Prisma.XOR< + Prisma.LocationUpdateWithoutRidesAsEndInput, + Prisma.LocationUncheckedUpdateWithoutRidesAsEndInput + >; + create: Prisma.XOR< + Prisma.LocationCreateWithoutRidesAsEndInput, + Prisma.LocationUncheckedCreateWithoutRidesAsEndInput + >; + where?: Prisma.LocationWhereInput; +}; + +export type LocationUpdateToOneWithWhereWithoutRidesAsEndInput = { + where?: Prisma.LocationWhereInput; + data: Prisma.XOR< + Prisma.LocationUpdateWithoutRidesAsEndInput, + Prisma.LocationUncheckedUpdateWithoutRidesAsEndInput + >; +}; + +export type LocationUpdateWithoutRidesAsEndInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsStart?: Prisma.RideUpdateManyWithoutStartLocationNestedInput; +}; + +export type LocationUncheckedUpdateWithoutRidesAsEndInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + name?: Prisma.StringFieldUpdateOperationsInput | string; + address?: Prisma.StringFieldUpdateOperationsInput | string; + shortName?: Prisma.StringFieldUpdateOperationsInput | string; + info?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + tag?: Prisma.EnumLocationTagFieldUpdateOperationsInput | $Enums.LocationTag; + lat?: Prisma.FloatFieldUpdateOperationsInput | number; + lng?: Prisma.FloatFieldUpdateOperationsInput | number; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + images?: Prisma.LocationUpdateimagesInput | string[]; + ridesAsStart?: Prisma.RideUncheckedUpdateManyWithoutStartLocationNestedInput; +}; + +/** + * Count Type LocationCountOutputType + */ + +export type LocationCountOutputType = { + ridesAsStart: number; + ridesAsEnd: number; +}; + +export type LocationCountOutputTypeSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + ridesAsStart?: boolean | LocationCountOutputTypeCountRidesAsStartArgs; + ridesAsEnd?: boolean | LocationCountOutputTypeCountRidesAsEndArgs; +}; + +/** + * LocationCountOutputType without action + */ +export type LocationCountOutputTypeDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the LocationCountOutputType + */ + select?: Prisma.LocationCountOutputTypeSelect | null; +}; + +/** + * LocationCountOutputType without action + */ +export type LocationCountOutputTypeCountRidesAsStartArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RideWhereInput; +}; + +/** + * LocationCountOutputType without action + */ +export type LocationCountOutputTypeCountRidesAsEndArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RideWhereInput; +}; + +export type LocationSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + name?: boolean; + address?: boolean; + shortName?: boolean; + info?: boolean; + tag?: boolean; + lat?: boolean; + lng?: boolean; + photoLink?: boolean; + images?: boolean; + ridesAsStart?: boolean | Prisma.Location$ridesAsStartArgs; + ridesAsEnd?: boolean | Prisma.Location$ridesAsEndArgs; + _count?: boolean | Prisma.LocationCountOutputTypeDefaultArgs; + }, + ExtArgs['result']['location'] +>; + +export type LocationSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + name?: boolean; + address?: boolean; + shortName?: boolean; + info?: boolean; + tag?: boolean; + lat?: boolean; + lng?: boolean; + photoLink?: boolean; + images?: boolean; + }, + ExtArgs['result']['location'] +>; + +export type LocationSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + name?: boolean; + address?: boolean; + shortName?: boolean; + info?: boolean; + tag?: boolean; + lat?: boolean; + lng?: boolean; + photoLink?: boolean; + images?: boolean; + }, + ExtArgs['result']['location'] +>; + +export type LocationSelectScalar = { + id?: boolean; + name?: boolean; + address?: boolean; + shortName?: boolean; + info?: boolean; + tag?: boolean; + lat?: boolean; + lng?: boolean; + photoLink?: boolean; + images?: boolean; +}; + +export type LocationOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'id' + | 'name' + | 'address' + | 'shortName' + | 'info' + | 'tag' + | 'lat' + | 'lng' + | 'photoLink' + | 'images', + ExtArgs['result']['location'] +>; +export type LocationInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + ridesAsStart?: boolean | Prisma.Location$ridesAsStartArgs; + ridesAsEnd?: boolean | Prisma.Location$ridesAsEndArgs; + _count?: boolean | Prisma.LocationCountOutputTypeDefaultArgs; +}; +export type LocationIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; +export type LocationIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; + +export type $LocationPayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Location'; + objects: { + ridesAsStart: Prisma.$RidePayload[]; + ridesAsEnd: Prisma.$RidePayload[]; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + id: string; + name: string; + address: string; + shortName: string; + info: string | null; + tag: $Enums.LocationTag; + lat: number; + lng: number; + photoLink: string | null; + images: string[]; + }, + ExtArgs['result']['location'] + >; + composites: {}; +}; + +export type LocationGetPayload< + S extends boolean | null | undefined | LocationDefaultArgs +> = runtime.Types.Result.GetResult; + +export type LocationCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: LocationCountAggregateInputType | true; +}; + +export interface LocationDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Location']; + meta: { name: 'Location' }; + }; + /** + * Find zero or one Location that matches the filter. + * @param {LocationFindUniqueArgs} args - Arguments to find a Location + * @example + * // Get one Location + * const location = await prisma.location.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Location that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {LocationFindUniqueOrThrowArgs} args - Arguments to find a Location + * @example + * // Get one Location + * const location = await prisma.location.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Location that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationFindFirstArgs} args - Arguments to find a Location + * @example + * // Get one Location + * const location = await prisma.location.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Location that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationFindFirstOrThrowArgs} args - Arguments to find a Location + * @example + * // Get one Location + * const location = await prisma.location.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Locations that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Locations + * const locations = await prisma.location.findMany() + * + * // Get first 10 Locations + * const locations = await prisma.location.findMany({ take: 10 }) + * + * // Only select the `id` + * const locationWithIdOnly = await prisma.location.findMany({ select: { id: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Location. + * @param {LocationCreateArgs} args - Arguments to create a Location. + * @example + * // Create one Location + * const Location = await prisma.location.create({ + * data: { + * // ... data to create a Location + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Locations. + * @param {LocationCreateManyArgs} args - Arguments to create many Locations. + * @example + * // Create many Locations + * const location = await prisma.location.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Locations and returns the data saved in the database. + * @param {LocationCreateManyAndReturnArgs} args - Arguments to create many Locations. + * @example + * // Create many Locations + * const location = await prisma.location.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Locations and only return the `id` + * const locationWithIdOnly = await prisma.location.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Location. + * @param {LocationDeleteArgs} args - Arguments to delete one Location. + * @example + * // Delete one Location + * const Location = await prisma.location.delete({ + * where: { + * // ... filter to delete one Location + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Location. + * @param {LocationUpdateArgs} args - Arguments to update one Location. + * @example + * // Update one Location + * const location = await prisma.location.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Locations. + * @param {LocationDeleteManyArgs} args - Arguments to filter Locations to delete. + * @example + * // Delete a few Locations + * const { count } = await prisma.location.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Locations. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Locations + * const location = await prisma.location.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Locations and returns the data updated in the database. + * @param {LocationUpdateManyAndReturnArgs} args - Arguments to update many Locations. + * @example + * // Update many Locations + * const location = await prisma.location.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Locations and only return the `id` + * const locationWithIdOnly = await prisma.location.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Location. + * @param {LocationUpsertArgs} args - Arguments to update or create a Location. + * @example + * // Update or create a Location + * const location = await prisma.location.upsert({ + * create: { + * // ... data to create a Location + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Location we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__LocationClient< + runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Locations. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationCountArgs} args - Arguments to filter Locations to count. + * @example + * // Count the number of Locations + * const count = await prisma.location.count({ + * where: { + * // ... the filter for the Locations we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Location. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Location. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {LocationGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends LocationGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: LocationGroupByArgs['orderBy'] } + : { orderBy?: LocationGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetLocationGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Location model + */ + readonly fields: LocationFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Location. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__LocationClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + ridesAsStart = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + ridesAsEnd = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Location model + */ +export interface LocationFieldRefs { + readonly id: Prisma.FieldRef<'Location', 'String'>; + readonly name: Prisma.FieldRef<'Location', 'String'>; + readonly address: Prisma.FieldRef<'Location', 'String'>; + readonly shortName: Prisma.FieldRef<'Location', 'String'>; + readonly info: Prisma.FieldRef<'Location', 'String'>; + readonly tag: Prisma.FieldRef<'Location', 'LocationTag'>; + readonly lat: Prisma.FieldRef<'Location', 'Float'>; + readonly lng: Prisma.FieldRef<'Location', 'Float'>; + readonly photoLink: Prisma.FieldRef<'Location', 'String'>; + readonly images: Prisma.FieldRef<'Location', 'String[]'>; +} + +// Custom InputTypes +/** + * Location findUnique + */ +export type LocationFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter, which Location to fetch. + */ + where: Prisma.LocationWhereUniqueInput; +}; + +/** + * Location findUniqueOrThrow + */ +export type LocationFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter, which Location to fetch. + */ + where: Prisma.LocationWhereUniqueInput; +}; + +/** + * Location findFirst + */ +export type LocationFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter, which Location to fetch. + */ + where?: Prisma.LocationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Locations to fetch. + */ + orderBy?: + | Prisma.LocationOrderByWithRelationInput + | Prisma.LocationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Locations. + */ + cursor?: Prisma.LocationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Locations from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Locations. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Locations. + */ + distinct?: Prisma.LocationScalarFieldEnum | Prisma.LocationScalarFieldEnum[]; +}; + +/** + * Location findFirstOrThrow + */ +export type LocationFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter, which Location to fetch. + */ + where?: Prisma.LocationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Locations to fetch. + */ + orderBy?: + | Prisma.LocationOrderByWithRelationInput + | Prisma.LocationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Locations. + */ + cursor?: Prisma.LocationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Locations from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Locations. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Locations. + */ + distinct?: Prisma.LocationScalarFieldEnum | Prisma.LocationScalarFieldEnum[]; +}; + +/** + * Location findMany + */ +export type LocationFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter, which Locations to fetch. + */ + where?: Prisma.LocationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Locations to fetch. + */ + orderBy?: + | Prisma.LocationOrderByWithRelationInput + | Prisma.LocationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Locations. + */ + cursor?: Prisma.LocationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Locations from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Locations. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Locations. + */ + distinct?: Prisma.LocationScalarFieldEnum | Prisma.LocationScalarFieldEnum[]; +}; + +/** + * Location create + */ +export type LocationCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * The data needed to create a Location. + */ + data: Prisma.XOR< + Prisma.LocationCreateInput, + Prisma.LocationUncheckedCreateInput + >; +}; + +/** + * Location createMany + */ +export type LocationCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Locations. + */ + data: Prisma.LocationCreateManyInput | Prisma.LocationCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Location createManyAndReturn + */ +export type LocationCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * The data used to create many Locations. + */ + data: Prisma.LocationCreateManyInput | Prisma.LocationCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Location update + */ +export type LocationUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * The data needed to update a Location. + */ + data: Prisma.XOR< + Prisma.LocationUpdateInput, + Prisma.LocationUncheckedUpdateInput + >; + /** + * Choose, which Location to update. + */ + where: Prisma.LocationWhereUniqueInput; +}; + +/** + * Location updateMany + */ +export type LocationUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Locations. + */ + data: Prisma.XOR< + Prisma.LocationUpdateManyMutationInput, + Prisma.LocationUncheckedUpdateManyInput + >; + /** + * Filter which Locations to update + */ + where?: Prisma.LocationWhereInput; + /** + * Limit how many Locations to update. + */ + limit?: number; +}; + +/** + * Location updateManyAndReturn + */ +export type LocationUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * The data used to update Locations. + */ + data: Prisma.XOR< + Prisma.LocationUpdateManyMutationInput, + Prisma.LocationUncheckedUpdateManyInput + >; + /** + * Filter which Locations to update + */ + where?: Prisma.LocationWhereInput; + /** + * Limit how many Locations to update. + */ + limit?: number; +}; + +/** + * Location upsert + */ +export type LocationUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * The filter to search for the Location to update in case it exists. + */ + where: Prisma.LocationWhereUniqueInput; + /** + * In case the Location found by the `where` argument doesn't exist, create a new Location with this data. + */ + create: Prisma.XOR< + Prisma.LocationCreateInput, + Prisma.LocationUncheckedCreateInput + >; + /** + * In case the Location was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR< + Prisma.LocationUpdateInput, + Prisma.LocationUncheckedUpdateInput + >; +}; + +/** + * Location delete + */ +export type LocationDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; + /** + * Filter which Location to delete. + */ + where: Prisma.LocationWhereUniqueInput; +}; + +/** + * Location deleteMany + */ +export type LocationDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Locations to delete + */ + where?: Prisma.LocationWhereInput; + /** + * Limit how many Locations to delete. + */ + limit?: number; +}; + +/** + * Location.ridesAsStart + */ +export type Location$ridesAsStartArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + where?: Prisma.RideWhereInput; + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + cursor?: Prisma.RideWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Location.ridesAsEnd + */ +export type Location$ridesAsEndArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + where?: Prisma.RideWhereInput; + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + cursor?: Prisma.RideWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Location without action + */ +export type LocationDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Location + */ + select?: Prisma.LocationSelect | null; + /** + * Omit specific fields from the Location + */ + omit?: Prisma.LocationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.LocationInclude | null; +}; diff --git a/server/generated/prisma/models/Notification.ts b/server/generated/prisma/models/Notification.ts new file mode 100644 index 000000000..61dab0596 --- /dev/null +++ b/server/generated/prisma/models/Notification.ts @@ -0,0 +1,1855 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Notification` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Notification + * A push notification sent to a user about a ride status change + */ +export type NotificationModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateNotification = { + _count: NotificationCountAggregateOutputType | null; + _min: NotificationMinAggregateOutputType | null; + _max: NotificationMaxAggregateOutputType | null; +}; + +export type NotificationMinAggregateOutputType = { + id: string | null; + notifEvent: $Enums.NotificationEvent | null; + userID: string | null; + rideID: string | null; + title: string | null; + body: string | null; + timeSent: Date | null; + read: boolean | null; +}; + +export type NotificationMaxAggregateOutputType = { + id: string | null; + notifEvent: $Enums.NotificationEvent | null; + userID: string | null; + rideID: string | null; + title: string | null; + body: string | null; + timeSent: Date | null; + read: boolean | null; +}; + +export type NotificationCountAggregateOutputType = { + id: number; + notifEvent: number; + userID: number; + rideID: number; + title: number; + body: number; + timeSent: number; + read: number; + _all: number; +}; + +export type NotificationMinAggregateInputType = { + id?: true; + notifEvent?: true; + userID?: true; + rideID?: true; + title?: true; + body?: true; + timeSent?: true; + read?: true; +}; + +export type NotificationMaxAggregateInputType = { + id?: true; + notifEvent?: true; + userID?: true; + rideID?: true; + title?: true; + body?: true; + timeSent?: true; + read?: true; +}; + +export type NotificationCountAggregateInputType = { + id?: true; + notifEvent?: true; + userID?: true; + rideID?: true; + title?: true; + body?: true; + timeSent?: true; + read?: true; + _all?: true; +}; + +export type NotificationAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Notification to aggregate. + */ + where?: Prisma.NotificationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Notifications to fetch. + */ + orderBy?: + | Prisma.NotificationOrderByWithRelationInput + | Prisma.NotificationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.NotificationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Notifications from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Notifications. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Notifications + **/ + _count?: true | NotificationCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: NotificationMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: NotificationMaxAggregateInputType; +}; + +export type GetNotificationAggregateType = + { + [P in keyof T & keyof AggregateNotification]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + }; + +export type NotificationGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.NotificationWhereInput; + orderBy?: + | Prisma.NotificationOrderByWithAggregationInput + | Prisma.NotificationOrderByWithAggregationInput[]; + by: Prisma.NotificationScalarFieldEnum[] | Prisma.NotificationScalarFieldEnum; + having?: Prisma.NotificationScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: NotificationCountAggregateInputType | true; + _min?: NotificationMinAggregateInputType; + _max?: NotificationMaxAggregateInputType; +}; + +export type NotificationGroupByOutputType = { + id: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + rideID: string; + title: string; + body: string; + timeSent: Date; + read: boolean; + _count: NotificationCountAggregateOutputType | null; + _min: NotificationMinAggregateOutputType | null; + _max: NotificationMaxAggregateOutputType | null; +}; + +export type GetNotificationGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof NotificationGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type NotificationWhereInput = { + AND?: Prisma.NotificationWhereInput | Prisma.NotificationWhereInput[]; + OR?: Prisma.NotificationWhereInput[]; + NOT?: Prisma.NotificationWhereInput | Prisma.NotificationWhereInput[]; + id?: Prisma.StringFilter<'Notification'> | string; + notifEvent?: + | Prisma.EnumNotificationEventFilter<'Notification'> + | $Enums.NotificationEvent; + userID?: Prisma.StringFilter<'Notification'> | string; + rideID?: Prisma.StringFilter<'Notification'> | string; + title?: Prisma.StringFilter<'Notification'> | string; + body?: Prisma.StringFilter<'Notification'> | string; + timeSent?: Prisma.DateTimeFilter<'Notification'> | Date | string; + read?: Prisma.BoolFilter<'Notification'> | boolean; + ride?: Prisma.XOR; +}; + +export type NotificationOrderByWithRelationInput = { + id?: Prisma.SortOrder; + notifEvent?: Prisma.SortOrder; + userID?: Prisma.SortOrder; + rideID?: Prisma.SortOrder; + title?: Prisma.SortOrder; + body?: Prisma.SortOrder; + timeSent?: Prisma.SortOrder; + read?: Prisma.SortOrder; + ride?: Prisma.RideOrderByWithRelationInput; +}; + +export type NotificationWhereUniqueInput = Prisma.AtLeast< + { + id?: string; + AND?: Prisma.NotificationWhereInput | Prisma.NotificationWhereInput[]; + OR?: Prisma.NotificationWhereInput[]; + NOT?: Prisma.NotificationWhereInput | Prisma.NotificationWhereInput[]; + notifEvent?: + | Prisma.EnumNotificationEventFilter<'Notification'> + | $Enums.NotificationEvent; + userID?: Prisma.StringFilter<'Notification'> | string; + rideID?: Prisma.StringFilter<'Notification'> | string; + title?: Prisma.StringFilter<'Notification'> | string; + body?: Prisma.StringFilter<'Notification'> | string; + timeSent?: Prisma.DateTimeFilter<'Notification'> | Date | string; + read?: Prisma.BoolFilter<'Notification'> | boolean; + ride?: Prisma.XOR; + }, + 'id' +>; + +export type NotificationOrderByWithAggregationInput = { + id?: Prisma.SortOrder; + notifEvent?: Prisma.SortOrder; + userID?: Prisma.SortOrder; + rideID?: Prisma.SortOrder; + title?: Prisma.SortOrder; + body?: Prisma.SortOrder; + timeSent?: Prisma.SortOrder; + read?: Prisma.SortOrder; + _count?: Prisma.NotificationCountOrderByAggregateInput; + _max?: Prisma.NotificationMaxOrderByAggregateInput; + _min?: Prisma.NotificationMinOrderByAggregateInput; +}; + +export type NotificationScalarWhereWithAggregatesInput = { + AND?: + | Prisma.NotificationScalarWhereWithAggregatesInput + | Prisma.NotificationScalarWhereWithAggregatesInput[]; + OR?: Prisma.NotificationScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.NotificationScalarWhereWithAggregatesInput + | Prisma.NotificationScalarWhereWithAggregatesInput[]; + id?: Prisma.StringWithAggregatesFilter<'Notification'> | string; + notifEvent?: + | Prisma.EnumNotificationEventWithAggregatesFilter<'Notification'> + | $Enums.NotificationEvent; + userID?: Prisma.StringWithAggregatesFilter<'Notification'> | string; + rideID?: Prisma.StringWithAggregatesFilter<'Notification'> | string; + title?: Prisma.StringWithAggregatesFilter<'Notification'> | string; + body?: Prisma.StringWithAggregatesFilter<'Notification'> | string; + timeSent?: + | Prisma.DateTimeWithAggregatesFilter<'Notification'> + | Date + | string; + read?: Prisma.BoolWithAggregatesFilter<'Notification'> | boolean; +}; + +export type NotificationCreateInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; + ride: Prisma.RideCreateNestedOneWithoutNotificationsInput; +}; + +export type NotificationUncheckedCreateInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + rideID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; +}; + +export type NotificationUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; + ride?: Prisma.RideUpdateOneRequiredWithoutNotificationsNestedInput; +}; + +export type NotificationUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + rideID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationCreateManyInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + rideID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; +}; + +export type NotificationUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + rideID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationListRelationFilter = { + every?: Prisma.NotificationWhereInput; + some?: Prisma.NotificationWhereInput; + none?: Prisma.NotificationWhereInput; +}; + +export type NotificationOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder; +}; + +export type NotificationCountOrderByAggregateInput = { + id?: Prisma.SortOrder; + notifEvent?: Prisma.SortOrder; + userID?: Prisma.SortOrder; + rideID?: Prisma.SortOrder; + title?: Prisma.SortOrder; + body?: Prisma.SortOrder; + timeSent?: Prisma.SortOrder; + read?: Prisma.SortOrder; +}; + +export type NotificationMaxOrderByAggregateInput = { + id?: Prisma.SortOrder; + notifEvent?: Prisma.SortOrder; + userID?: Prisma.SortOrder; + rideID?: Prisma.SortOrder; + title?: Prisma.SortOrder; + body?: Prisma.SortOrder; + timeSent?: Prisma.SortOrder; + read?: Prisma.SortOrder; +}; + +export type NotificationMinOrderByAggregateInput = { + id?: Prisma.SortOrder; + notifEvent?: Prisma.SortOrder; + userID?: Prisma.SortOrder; + rideID?: Prisma.SortOrder; + title?: Prisma.SortOrder; + body?: Prisma.SortOrder; + timeSent?: Prisma.SortOrder; + read?: Prisma.SortOrder; +}; + +export type NotificationCreateNestedManyWithoutRideInput = { + create?: + | Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + > + | Prisma.NotificationCreateWithoutRideInput[] + | Prisma.NotificationUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.NotificationCreateOrConnectWithoutRideInput + | Prisma.NotificationCreateOrConnectWithoutRideInput[]; + createMany?: Prisma.NotificationCreateManyRideInputEnvelope; + connect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; +}; + +export type NotificationUncheckedCreateNestedManyWithoutRideInput = { + create?: + | Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + > + | Prisma.NotificationCreateWithoutRideInput[] + | Prisma.NotificationUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.NotificationCreateOrConnectWithoutRideInput + | Prisma.NotificationCreateOrConnectWithoutRideInput[]; + createMany?: Prisma.NotificationCreateManyRideInputEnvelope; + connect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; +}; + +export type NotificationUpdateManyWithoutRideNestedInput = { + create?: + | Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + > + | Prisma.NotificationCreateWithoutRideInput[] + | Prisma.NotificationUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.NotificationCreateOrConnectWithoutRideInput + | Prisma.NotificationCreateOrConnectWithoutRideInput[]; + upsert?: + | Prisma.NotificationUpsertWithWhereUniqueWithoutRideInput + | Prisma.NotificationUpsertWithWhereUniqueWithoutRideInput[]; + createMany?: Prisma.NotificationCreateManyRideInputEnvelope; + set?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + disconnect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + delete?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + connect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + update?: + | Prisma.NotificationUpdateWithWhereUniqueWithoutRideInput + | Prisma.NotificationUpdateWithWhereUniqueWithoutRideInput[]; + updateMany?: + | Prisma.NotificationUpdateManyWithWhereWithoutRideInput + | Prisma.NotificationUpdateManyWithWhereWithoutRideInput[]; + deleteMany?: + | Prisma.NotificationScalarWhereInput + | Prisma.NotificationScalarWhereInput[]; +}; + +export type NotificationUncheckedUpdateManyWithoutRideNestedInput = { + create?: + | Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + > + | Prisma.NotificationCreateWithoutRideInput[] + | Prisma.NotificationUncheckedCreateWithoutRideInput[]; + connectOrCreate?: + | Prisma.NotificationCreateOrConnectWithoutRideInput + | Prisma.NotificationCreateOrConnectWithoutRideInput[]; + upsert?: + | Prisma.NotificationUpsertWithWhereUniqueWithoutRideInput + | Prisma.NotificationUpsertWithWhereUniqueWithoutRideInput[]; + createMany?: Prisma.NotificationCreateManyRideInputEnvelope; + set?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + disconnect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + delete?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + connect?: + | Prisma.NotificationWhereUniqueInput + | Prisma.NotificationWhereUniqueInput[]; + update?: + | Prisma.NotificationUpdateWithWhereUniqueWithoutRideInput + | Prisma.NotificationUpdateWithWhereUniqueWithoutRideInput[]; + updateMany?: + | Prisma.NotificationUpdateManyWithWhereWithoutRideInput + | Prisma.NotificationUpdateManyWithWhereWithoutRideInput[]; + deleteMany?: + | Prisma.NotificationScalarWhereInput + | Prisma.NotificationScalarWhereInput[]; +}; + +export type EnumNotificationEventFieldUpdateOperationsInput = { + set?: $Enums.NotificationEvent; +}; + +export type NotificationCreateWithoutRideInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; +}; + +export type NotificationUncheckedCreateWithoutRideInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; +}; + +export type NotificationCreateOrConnectWithoutRideInput = { + where: Prisma.NotificationWhereUniqueInput; + create: Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + >; +}; + +export type NotificationCreateManyRideInputEnvelope = { + data: + | Prisma.NotificationCreateManyRideInput + | Prisma.NotificationCreateManyRideInput[]; + skipDuplicates?: boolean; +}; + +export type NotificationUpsertWithWhereUniqueWithoutRideInput = { + where: Prisma.NotificationWhereUniqueInput; + update: Prisma.XOR< + Prisma.NotificationUpdateWithoutRideInput, + Prisma.NotificationUncheckedUpdateWithoutRideInput + >; + create: Prisma.XOR< + Prisma.NotificationCreateWithoutRideInput, + Prisma.NotificationUncheckedCreateWithoutRideInput + >; +}; + +export type NotificationUpdateWithWhereUniqueWithoutRideInput = { + where: Prisma.NotificationWhereUniqueInput; + data: Prisma.XOR< + Prisma.NotificationUpdateWithoutRideInput, + Prisma.NotificationUncheckedUpdateWithoutRideInput + >; +}; + +export type NotificationUpdateManyWithWhereWithoutRideInput = { + where: Prisma.NotificationScalarWhereInput; + data: Prisma.XOR< + Prisma.NotificationUpdateManyMutationInput, + Prisma.NotificationUncheckedUpdateManyWithoutRideInput + >; +}; + +export type NotificationScalarWhereInput = { + AND?: + | Prisma.NotificationScalarWhereInput + | Prisma.NotificationScalarWhereInput[]; + OR?: Prisma.NotificationScalarWhereInput[]; + NOT?: + | Prisma.NotificationScalarWhereInput + | Prisma.NotificationScalarWhereInput[]; + id?: Prisma.StringFilter<'Notification'> | string; + notifEvent?: + | Prisma.EnumNotificationEventFilter<'Notification'> + | $Enums.NotificationEvent; + userID?: Prisma.StringFilter<'Notification'> | string; + rideID?: Prisma.StringFilter<'Notification'> | string; + title?: Prisma.StringFilter<'Notification'> | string; + body?: Prisma.StringFilter<'Notification'> | string; + timeSent?: Prisma.DateTimeFilter<'Notification'> | Date | string; + read?: Prisma.BoolFilter<'Notification'> | boolean; +}; + +export type NotificationCreateManyRideInput = { + id?: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + title: string; + body: string; + timeSent: Date | string; + read: boolean; +}; + +export type NotificationUpdateWithoutRideInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationUncheckedUpdateWithoutRideInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationUncheckedUpdateManyWithoutRideInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + notifEvent?: + | Prisma.EnumNotificationEventFieldUpdateOperationsInput + | $Enums.NotificationEvent; + userID?: Prisma.StringFieldUpdateOperationsInput | string; + title?: Prisma.StringFieldUpdateOperationsInput | string; + body?: Prisma.StringFieldUpdateOperationsInput | string; + timeSent?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + read?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type NotificationSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + notifEvent?: boolean; + userID?: boolean; + rideID?: boolean; + title?: boolean; + body?: boolean; + timeSent?: boolean; + read?: boolean; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['notification'] +>; + +export type NotificationSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + notifEvent?: boolean; + userID?: boolean; + rideID?: boolean; + title?: boolean; + body?: boolean; + timeSent?: boolean; + read?: boolean; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['notification'] +>; + +export type NotificationSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + notifEvent?: boolean; + userID?: boolean; + rideID?: boolean; + title?: boolean; + body?: boolean; + timeSent?: boolean; + read?: boolean; + ride?: boolean | Prisma.RideDefaultArgs; + }, + ExtArgs['result']['notification'] +>; + +export type NotificationSelectScalar = { + id?: boolean; + notifEvent?: boolean; + userID?: boolean; + rideID?: boolean; + title?: boolean; + body?: boolean; + timeSent?: boolean; + read?: boolean; +}; + +export type NotificationOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'id' + | 'notifEvent' + | 'userID' + | 'rideID' + | 'title' + | 'body' + | 'timeSent' + | 'read', + ExtArgs['result']['notification'] +>; +export type NotificationInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + ride?: boolean | Prisma.RideDefaultArgs; +}; +export type NotificationIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + ride?: boolean | Prisma.RideDefaultArgs; +}; +export type NotificationIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + ride?: boolean | Prisma.RideDefaultArgs; +}; + +export type $NotificationPayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Notification'; + objects: { + ride: Prisma.$RidePayload; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + id: string; + notifEvent: $Enums.NotificationEvent; + userID: string; + rideID: string; + title: string; + body: string; + timeSent: Date; + read: boolean; + }, + ExtArgs['result']['notification'] + >; + composites: {}; +}; + +export type NotificationGetPayload< + S extends boolean | null | undefined | NotificationDefaultArgs +> = runtime.Types.Result.GetResult; + +export type NotificationCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit< + NotificationFindManyArgs, + 'select' | 'include' | 'distinct' | 'omit' +> & { + select?: NotificationCountAggregateInputType | true; +}; + +export interface NotificationDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Notification']; + meta: { name: 'Notification' }; + }; + /** + * Find zero or one Notification that matches the filter. + * @param {NotificationFindUniqueArgs} args - Arguments to find a Notification + * @example + * // Get one Notification + * const notification = await prisma.notification.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Notification that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {NotificationFindUniqueOrThrowArgs} args - Arguments to find a Notification + * @example + * // Get one Notification + * const notification = await prisma.notification.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Notification that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationFindFirstArgs} args - Arguments to find a Notification + * @example + * // Get one Notification + * const notification = await prisma.notification.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Notification that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationFindFirstOrThrowArgs} args - Arguments to find a Notification + * @example + * // Get one Notification + * const notification = await prisma.notification.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Notifications that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Notifications + * const notifications = await prisma.notification.findMany() + * + * // Get first 10 Notifications + * const notifications = await prisma.notification.findMany({ take: 10 }) + * + * // Only select the `id` + * const notificationWithIdOnly = await prisma.notification.findMany({ select: { id: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Notification. + * @param {NotificationCreateArgs} args - Arguments to create a Notification. + * @example + * // Create one Notification + * const Notification = await prisma.notification.create({ + * data: { + * // ... data to create a Notification + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Notifications. + * @param {NotificationCreateManyArgs} args - Arguments to create many Notifications. + * @example + * // Create many Notifications + * const notification = await prisma.notification.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Notifications and returns the data saved in the database. + * @param {NotificationCreateManyAndReturnArgs} args - Arguments to create many Notifications. + * @example + * // Create many Notifications + * const notification = await prisma.notification.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Notifications and only return the `id` + * const notificationWithIdOnly = await prisma.notification.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Notification. + * @param {NotificationDeleteArgs} args - Arguments to delete one Notification. + * @example + * // Delete one Notification + * const Notification = await prisma.notification.delete({ + * where: { + * // ... filter to delete one Notification + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Notification. + * @param {NotificationUpdateArgs} args - Arguments to update one Notification. + * @example + * // Update one Notification + * const notification = await prisma.notification.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Notifications. + * @param {NotificationDeleteManyArgs} args - Arguments to filter Notifications to delete. + * @example + * // Delete a few Notifications + * const { count } = await prisma.notification.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Notifications. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Notifications + * const notification = await prisma.notification.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Notifications and returns the data updated in the database. + * @param {NotificationUpdateManyAndReturnArgs} args - Arguments to update many Notifications. + * @example + * // Update many Notifications + * const notification = await prisma.notification.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Notifications and only return the `id` + * const notificationWithIdOnly = await prisma.notification.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Notification. + * @param {NotificationUpsertArgs} args - Arguments to update or create a Notification. + * @example + * // Update or create a Notification + * const notification = await prisma.notification.upsert({ + * create: { + * // ... data to create a Notification + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Notification we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__NotificationClient< + runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Notifications. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationCountArgs} args - Arguments to filter Notifications to count. + * @example + * // Count the number of Notifications + * const count = await prisma.notification.count({ + * where: { + * // ... the filter for the Notifications we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType< + T['select'], + NotificationCountAggregateOutputType + > + : number + >; + + /** + * Allows you to perform aggregations operations on a Notification. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Notification. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {NotificationGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends NotificationGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: NotificationGroupByArgs['orderBy'] } + : { orderBy?: NotificationGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetNotificationGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Notification model + */ + readonly fields: NotificationFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Notification. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__NotificationClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + ride = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__RideClient< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > + | Null, + Null, + ExtArgs, + GlobalOmitOptions + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Notification model + */ +export interface NotificationFieldRefs { + readonly id: Prisma.FieldRef<'Notification', 'String'>; + readonly notifEvent: Prisma.FieldRef<'Notification', 'NotificationEvent'>; + readonly userID: Prisma.FieldRef<'Notification', 'String'>; + readonly rideID: Prisma.FieldRef<'Notification', 'String'>; + readonly title: Prisma.FieldRef<'Notification', 'String'>; + readonly body: Prisma.FieldRef<'Notification', 'String'>; + readonly timeSent: Prisma.FieldRef<'Notification', 'DateTime'>; + readonly read: Prisma.FieldRef<'Notification', 'Boolean'>; +} + +// Custom InputTypes +/** + * Notification findUnique + */ +export type NotificationFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter, which Notification to fetch. + */ + where: Prisma.NotificationWhereUniqueInput; +}; + +/** + * Notification findUniqueOrThrow + */ +export type NotificationFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter, which Notification to fetch. + */ + where: Prisma.NotificationWhereUniqueInput; +}; + +/** + * Notification findFirst + */ +export type NotificationFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter, which Notification to fetch. + */ + where?: Prisma.NotificationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Notifications to fetch. + */ + orderBy?: + | Prisma.NotificationOrderByWithRelationInput + | Prisma.NotificationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Notifications. + */ + cursor?: Prisma.NotificationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Notifications from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Notifications. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Notifications. + */ + distinct?: + | Prisma.NotificationScalarFieldEnum + | Prisma.NotificationScalarFieldEnum[]; +}; + +/** + * Notification findFirstOrThrow + */ +export type NotificationFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter, which Notification to fetch. + */ + where?: Prisma.NotificationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Notifications to fetch. + */ + orderBy?: + | Prisma.NotificationOrderByWithRelationInput + | Prisma.NotificationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Notifications. + */ + cursor?: Prisma.NotificationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Notifications from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Notifications. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Notifications. + */ + distinct?: + | Prisma.NotificationScalarFieldEnum + | Prisma.NotificationScalarFieldEnum[]; +}; + +/** + * Notification findMany + */ +export type NotificationFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter, which Notifications to fetch. + */ + where?: Prisma.NotificationWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Notifications to fetch. + */ + orderBy?: + | Prisma.NotificationOrderByWithRelationInput + | Prisma.NotificationOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Notifications. + */ + cursor?: Prisma.NotificationWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Notifications from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Notifications. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Notifications. + */ + distinct?: + | Prisma.NotificationScalarFieldEnum + | Prisma.NotificationScalarFieldEnum[]; +}; + +/** + * Notification create + */ +export type NotificationCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * The data needed to create a Notification. + */ + data: Prisma.XOR< + Prisma.NotificationCreateInput, + Prisma.NotificationUncheckedCreateInput + >; +}; + +/** + * Notification createMany + */ +export type NotificationCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Notifications. + */ + data: + | Prisma.NotificationCreateManyInput + | Prisma.NotificationCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Notification createManyAndReturn + */ +export type NotificationCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * The data used to create many Notifications. + */ + data: + | Prisma.NotificationCreateManyInput + | Prisma.NotificationCreateManyInput[]; + skipDuplicates?: boolean; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationIncludeCreateManyAndReturn | null; +}; + +/** + * Notification update + */ +export type NotificationUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * The data needed to update a Notification. + */ + data: Prisma.XOR< + Prisma.NotificationUpdateInput, + Prisma.NotificationUncheckedUpdateInput + >; + /** + * Choose, which Notification to update. + */ + where: Prisma.NotificationWhereUniqueInput; +}; + +/** + * Notification updateMany + */ +export type NotificationUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Notifications. + */ + data: Prisma.XOR< + Prisma.NotificationUpdateManyMutationInput, + Prisma.NotificationUncheckedUpdateManyInput + >; + /** + * Filter which Notifications to update + */ + where?: Prisma.NotificationWhereInput; + /** + * Limit how many Notifications to update. + */ + limit?: number; +}; + +/** + * Notification updateManyAndReturn + */ +export type NotificationUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * The data used to update Notifications. + */ + data: Prisma.XOR< + Prisma.NotificationUpdateManyMutationInput, + Prisma.NotificationUncheckedUpdateManyInput + >; + /** + * Filter which Notifications to update + */ + where?: Prisma.NotificationWhereInput; + /** + * Limit how many Notifications to update. + */ + limit?: number; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationIncludeUpdateManyAndReturn | null; +}; + +/** + * Notification upsert + */ +export type NotificationUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * The filter to search for the Notification to update in case it exists. + */ + where: Prisma.NotificationWhereUniqueInput; + /** + * In case the Notification found by the `where` argument doesn't exist, create a new Notification with this data. + */ + create: Prisma.XOR< + Prisma.NotificationCreateInput, + Prisma.NotificationUncheckedCreateInput + >; + /** + * In case the Notification was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR< + Prisma.NotificationUpdateInput, + Prisma.NotificationUncheckedUpdateInput + >; +}; + +/** + * Notification delete + */ +export type NotificationDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + /** + * Filter which Notification to delete. + */ + where: Prisma.NotificationWhereUniqueInput; +}; + +/** + * Notification deleteMany + */ +export type NotificationDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Notifications to delete + */ + where?: Prisma.NotificationWhereInput; + /** + * Limit how many Notifications to delete. + */ + limit?: number; +}; + +/** + * Notification without action + */ +export type NotificationDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; +}; diff --git a/server/generated/prisma/models/Ride.ts b/server/generated/prisma/models/Ride.ts new file mode 100644 index 000000000..4054c04de --- /dev/null +++ b/server/generated/prisma/models/Ride.ts @@ -0,0 +1,3553 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Ride` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Ride + * A scheduled trip from a start location to an end location + */ +export type RideModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateRide = { + _count: RideCountAggregateOutputType | null; + _min: RideMinAggregateOutputType | null; + _max: RideMaxAggregateOutputType | null; +}; + +export type RideMinAggregateOutputType = { + id: string | null; + type: $Enums.RideType | null; + status: $Enums.RideStatus | null; + schedulingState: $Enums.SchedulingState | null; + startLocationId: string | null; + endLocationId: string | null; + startTime: Date | null; + endTime: Date | null; + driverId: string | null; + isRecurring: boolean | null; + rrule: string | null; + parentRideId: string | null; + recurrenceId: string | null; + timezone: string | null; +}; + +export type RideMaxAggregateOutputType = { + id: string | null; + type: $Enums.RideType | null; + status: $Enums.RideStatus | null; + schedulingState: $Enums.SchedulingState | null; + startLocationId: string | null; + endLocationId: string | null; + startTime: Date | null; + endTime: Date | null; + driverId: string | null; + isRecurring: boolean | null; + rrule: string | null; + parentRideId: string | null; + recurrenceId: string | null; + timezone: string | null; +}; + +export type RideCountAggregateOutputType = { + id: number; + type: number; + status: number; + schedulingState: number; + startLocationId: number; + endLocationId: number; + startTime: number; + endTime: number; + driverId: number; + isRecurring: number; + rrule: number; + exdate: number; + rdate: number; + parentRideId: number; + recurrenceId: number; + timezone: number; + _all: number; +}; + +export type RideMinAggregateInputType = { + id?: true; + type?: true; + status?: true; + schedulingState?: true; + startLocationId?: true; + endLocationId?: true; + startTime?: true; + endTime?: true; + driverId?: true; + isRecurring?: true; + rrule?: true; + parentRideId?: true; + recurrenceId?: true; + timezone?: true; +}; + +export type RideMaxAggregateInputType = { + id?: true; + type?: true; + status?: true; + schedulingState?: true; + startLocationId?: true; + endLocationId?: true; + startTime?: true; + endTime?: true; + driverId?: true; + isRecurring?: true; + rrule?: true; + parentRideId?: true; + recurrenceId?: true; + timezone?: true; +}; + +export type RideCountAggregateInputType = { + id?: true; + type?: true; + status?: true; + schedulingState?: true; + startLocationId?: true; + endLocationId?: true; + startTime?: true; + endTime?: true; + driverId?: true; + isRecurring?: true; + rrule?: true; + exdate?: true; + rdate?: true; + parentRideId?: true; + recurrenceId?: true; + timezone?: true; + _all?: true; +}; + +export type RideAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Ride to aggregate. + */ + where?: Prisma.RideWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Rides to fetch. + */ + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.RideWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Rides from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Rides. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Rides + **/ + _count?: true | RideCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: RideMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: RideMaxAggregateInputType; +}; + +export type GetRideAggregateType = { + [P in keyof T & keyof AggregateRide]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type RideGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RideWhereInput; + orderBy?: + | Prisma.RideOrderByWithAggregationInput + | Prisma.RideOrderByWithAggregationInput[]; + by: Prisma.RideScalarFieldEnum[] | Prisma.RideScalarFieldEnum; + having?: Prisma.RideScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: RideCountAggregateInputType | true; + _min?: RideMinAggregateInputType; + _max?: RideMaxAggregateInputType; +}; + +export type RideGroupByOutputType = { + id: string; + type: $Enums.RideType; + status: $Enums.RideStatus; + schedulingState: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date; + endTime: Date; + driverId: string | null; + isRecurring: boolean; + rrule: string | null; + exdate: string[]; + rdate: string[]; + parentRideId: string | null; + recurrenceId: string | null; + timezone: string; + _count: RideCountAggregateOutputType | null; + _min: RideMinAggregateOutputType | null; + _max: RideMaxAggregateOutputType | null; +}; + +export type GetRideGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof RideGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type RideWhereInput = { + AND?: Prisma.RideWhereInput | Prisma.RideWhereInput[]; + OR?: Prisma.RideWhereInput[]; + NOT?: Prisma.RideWhereInput | Prisma.RideWhereInput[]; + id?: Prisma.StringFilter<'Ride'> | string; + type?: Prisma.EnumRideTypeFilter<'Ride'> | $Enums.RideType; + status?: Prisma.EnumRideStatusFilter<'Ride'> | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFilter<'Ride'> + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFilter<'Ride'> | string; + endLocationId?: Prisma.StringFilter<'Ride'> | string; + startTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + endTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + driverId?: Prisma.StringNullableFilter<'Ride'> | string | null; + isRecurring?: Prisma.BoolFilter<'Ride'> | boolean; + rrule?: Prisma.StringNullableFilter<'Ride'> | string | null; + exdate?: Prisma.StringNullableListFilter<'Ride'>; + rdate?: Prisma.StringNullableListFilter<'Ride'>; + parentRideId?: Prisma.StringNullableFilter<'Ride'> | string | null; + recurrenceId?: Prisma.StringNullableFilter<'Ride'> | string | null; + timezone?: Prisma.StringFilter<'Ride'> | string; + startLocation?: Prisma.XOR< + Prisma.LocationScalarRelationFilter, + Prisma.LocationWhereInput + >; + endLocation?: Prisma.XOR< + Prisma.LocationScalarRelationFilter, + Prisma.LocationWhereInput + >; + riders?: Prisma.RiderListRelationFilter; + driver?: Prisma.XOR< + Prisma.EmployeeNullableScalarRelationFilter, + Prisma.EmployeeWhereInput + > | null; + favorites?: Prisma.FavoriteListRelationFilter; + notifications?: Prisma.NotificationListRelationFilter; +}; + +export type RideOrderByWithRelationInput = { + id?: Prisma.SortOrder; + type?: Prisma.SortOrder; + status?: Prisma.SortOrder; + schedulingState?: Prisma.SortOrder; + startLocationId?: Prisma.SortOrder; + endLocationId?: Prisma.SortOrder; + startTime?: Prisma.SortOrder; + endTime?: Prisma.SortOrder; + driverId?: Prisma.SortOrderInput | Prisma.SortOrder; + isRecurring?: Prisma.SortOrder; + rrule?: Prisma.SortOrderInput | Prisma.SortOrder; + exdate?: Prisma.SortOrder; + rdate?: Prisma.SortOrder; + parentRideId?: Prisma.SortOrderInput | Prisma.SortOrder; + recurrenceId?: Prisma.SortOrderInput | Prisma.SortOrder; + timezone?: Prisma.SortOrder; + startLocation?: Prisma.LocationOrderByWithRelationInput; + endLocation?: Prisma.LocationOrderByWithRelationInput; + riders?: Prisma.RiderOrderByRelationAggregateInput; + driver?: Prisma.EmployeeOrderByWithRelationInput; + favorites?: Prisma.FavoriteOrderByRelationAggregateInput; + notifications?: Prisma.NotificationOrderByRelationAggregateInput; +}; + +export type RideWhereUniqueInput = Prisma.AtLeast< + { + id?: string; + AND?: Prisma.RideWhereInput | Prisma.RideWhereInput[]; + OR?: Prisma.RideWhereInput[]; + NOT?: Prisma.RideWhereInput | Prisma.RideWhereInput[]; + type?: Prisma.EnumRideTypeFilter<'Ride'> | $Enums.RideType; + status?: Prisma.EnumRideStatusFilter<'Ride'> | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFilter<'Ride'> + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFilter<'Ride'> | string; + endLocationId?: Prisma.StringFilter<'Ride'> | string; + startTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + endTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + driverId?: Prisma.StringNullableFilter<'Ride'> | string | null; + isRecurring?: Prisma.BoolFilter<'Ride'> | boolean; + rrule?: Prisma.StringNullableFilter<'Ride'> | string | null; + exdate?: Prisma.StringNullableListFilter<'Ride'>; + rdate?: Prisma.StringNullableListFilter<'Ride'>; + parentRideId?: Prisma.StringNullableFilter<'Ride'> | string | null; + recurrenceId?: Prisma.StringNullableFilter<'Ride'> | string | null; + timezone?: Prisma.StringFilter<'Ride'> | string; + startLocation?: Prisma.XOR< + Prisma.LocationScalarRelationFilter, + Prisma.LocationWhereInput + >; + endLocation?: Prisma.XOR< + Prisma.LocationScalarRelationFilter, + Prisma.LocationWhereInput + >; + riders?: Prisma.RiderListRelationFilter; + driver?: Prisma.XOR< + Prisma.EmployeeNullableScalarRelationFilter, + Prisma.EmployeeWhereInput + > | null; + favorites?: Prisma.FavoriteListRelationFilter; + notifications?: Prisma.NotificationListRelationFilter; + }, + 'id' +>; + +export type RideOrderByWithAggregationInput = { + id?: Prisma.SortOrder; + type?: Prisma.SortOrder; + status?: Prisma.SortOrder; + schedulingState?: Prisma.SortOrder; + startLocationId?: Prisma.SortOrder; + endLocationId?: Prisma.SortOrder; + startTime?: Prisma.SortOrder; + endTime?: Prisma.SortOrder; + driverId?: Prisma.SortOrderInput | Prisma.SortOrder; + isRecurring?: Prisma.SortOrder; + rrule?: Prisma.SortOrderInput | Prisma.SortOrder; + exdate?: Prisma.SortOrder; + rdate?: Prisma.SortOrder; + parentRideId?: Prisma.SortOrderInput | Prisma.SortOrder; + recurrenceId?: Prisma.SortOrderInput | Prisma.SortOrder; + timezone?: Prisma.SortOrder; + _count?: Prisma.RideCountOrderByAggregateInput; + _max?: Prisma.RideMaxOrderByAggregateInput; + _min?: Prisma.RideMinOrderByAggregateInput; +}; + +export type RideScalarWhereWithAggregatesInput = { + AND?: + | Prisma.RideScalarWhereWithAggregatesInput + | Prisma.RideScalarWhereWithAggregatesInput[]; + OR?: Prisma.RideScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.RideScalarWhereWithAggregatesInput + | Prisma.RideScalarWhereWithAggregatesInput[]; + id?: Prisma.StringWithAggregatesFilter<'Ride'> | string; + type?: Prisma.EnumRideTypeWithAggregatesFilter<'Ride'> | $Enums.RideType; + status?: + | Prisma.EnumRideStatusWithAggregatesFilter<'Ride'> + | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateWithAggregatesFilter<'Ride'> + | $Enums.SchedulingState; + startLocationId?: Prisma.StringWithAggregatesFilter<'Ride'> | string; + endLocationId?: Prisma.StringWithAggregatesFilter<'Ride'> | string; + startTime?: Prisma.DateTimeWithAggregatesFilter<'Ride'> | Date | string; + endTime?: Prisma.DateTimeWithAggregatesFilter<'Ride'> | Date | string; + driverId?: Prisma.StringNullableWithAggregatesFilter<'Ride'> | string | null; + isRecurring?: Prisma.BoolWithAggregatesFilter<'Ride'> | boolean; + rrule?: Prisma.StringNullableWithAggregatesFilter<'Ride'> | string | null; + exdate?: Prisma.StringNullableListFilter<'Ride'>; + rdate?: Prisma.StringNullableListFilter<'Ride'>; + parentRideId?: + | Prisma.StringNullableWithAggregatesFilter<'Ride'> + | string + | null; + recurrenceId?: + | Prisma.StringNullableWithAggregatesFilter<'Ride'> + | string + | null; + timezone?: Prisma.StringWithAggregatesFilter<'Ride'> | string; +}; + +export type RideCreateInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideCreateManyInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; +}; + +export type RideUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +export type RideUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +export type RideListRelationFilter = { + every?: Prisma.RideWhereInput; + some?: Prisma.RideWhereInput; + none?: Prisma.RideWhereInput; +}; + +export type RideOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder; +}; + +export type RideCountOrderByAggregateInput = { + id?: Prisma.SortOrder; + type?: Prisma.SortOrder; + status?: Prisma.SortOrder; + schedulingState?: Prisma.SortOrder; + startLocationId?: Prisma.SortOrder; + endLocationId?: Prisma.SortOrder; + startTime?: Prisma.SortOrder; + endTime?: Prisma.SortOrder; + driverId?: Prisma.SortOrder; + isRecurring?: Prisma.SortOrder; + rrule?: Prisma.SortOrder; + exdate?: Prisma.SortOrder; + rdate?: Prisma.SortOrder; + parentRideId?: Prisma.SortOrder; + recurrenceId?: Prisma.SortOrder; + timezone?: Prisma.SortOrder; +}; + +export type RideMaxOrderByAggregateInput = { + id?: Prisma.SortOrder; + type?: Prisma.SortOrder; + status?: Prisma.SortOrder; + schedulingState?: Prisma.SortOrder; + startLocationId?: Prisma.SortOrder; + endLocationId?: Prisma.SortOrder; + startTime?: Prisma.SortOrder; + endTime?: Prisma.SortOrder; + driverId?: Prisma.SortOrder; + isRecurring?: Prisma.SortOrder; + rrule?: Prisma.SortOrder; + parentRideId?: Prisma.SortOrder; + recurrenceId?: Prisma.SortOrder; + timezone?: Prisma.SortOrder; +}; + +export type RideMinOrderByAggregateInput = { + id?: Prisma.SortOrder; + type?: Prisma.SortOrder; + status?: Prisma.SortOrder; + schedulingState?: Prisma.SortOrder; + startLocationId?: Prisma.SortOrder; + endLocationId?: Prisma.SortOrder; + startTime?: Prisma.SortOrder; + endTime?: Prisma.SortOrder; + driverId?: Prisma.SortOrder; + isRecurring?: Prisma.SortOrder; + rrule?: Prisma.SortOrder; + parentRideId?: Prisma.SortOrder; + recurrenceId?: Prisma.SortOrder; + timezone?: Prisma.SortOrder; +}; + +export type RideScalarRelationFilter = { + is?: Prisma.RideWhereInput; + isNot?: Prisma.RideWhereInput; +}; + +export type RideCreateNestedManyWithoutStartLocationInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + > + | Prisma.RideCreateWithoutStartLocationInput[] + | Prisma.RideUncheckedCreateWithoutStartLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutStartLocationInput + | Prisma.RideCreateOrConnectWithoutStartLocationInput[]; + createMany?: Prisma.RideCreateManyStartLocationInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideCreateNestedManyWithoutEndLocationInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + > + | Prisma.RideCreateWithoutEndLocationInput[] + | Prisma.RideUncheckedCreateWithoutEndLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutEndLocationInput + | Prisma.RideCreateOrConnectWithoutEndLocationInput[]; + createMany?: Prisma.RideCreateManyEndLocationInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUncheckedCreateNestedManyWithoutStartLocationInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + > + | Prisma.RideCreateWithoutStartLocationInput[] + | Prisma.RideUncheckedCreateWithoutStartLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutStartLocationInput + | Prisma.RideCreateOrConnectWithoutStartLocationInput[]; + createMany?: Prisma.RideCreateManyStartLocationInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUncheckedCreateNestedManyWithoutEndLocationInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + > + | Prisma.RideCreateWithoutEndLocationInput[] + | Prisma.RideUncheckedCreateWithoutEndLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutEndLocationInput + | Prisma.RideCreateOrConnectWithoutEndLocationInput[]; + createMany?: Prisma.RideCreateManyEndLocationInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUpdateManyWithoutStartLocationNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + > + | Prisma.RideCreateWithoutStartLocationInput[] + | Prisma.RideUncheckedCreateWithoutStartLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutStartLocationInput + | Prisma.RideCreateOrConnectWithoutStartLocationInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutStartLocationInput + | Prisma.RideUpsertWithWhereUniqueWithoutStartLocationInput[]; + createMany?: Prisma.RideCreateManyStartLocationInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutStartLocationInput + | Prisma.RideUpdateWithWhereUniqueWithoutStartLocationInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutStartLocationInput + | Prisma.RideUpdateManyWithWhereWithoutStartLocationInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideUpdateManyWithoutEndLocationNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + > + | Prisma.RideCreateWithoutEndLocationInput[] + | Prisma.RideUncheckedCreateWithoutEndLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutEndLocationInput + | Prisma.RideCreateOrConnectWithoutEndLocationInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutEndLocationInput + | Prisma.RideUpsertWithWhereUniqueWithoutEndLocationInput[]; + createMany?: Prisma.RideCreateManyEndLocationInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutEndLocationInput + | Prisma.RideUpdateWithWhereUniqueWithoutEndLocationInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutEndLocationInput + | Prisma.RideUpdateManyWithWhereWithoutEndLocationInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideUncheckedUpdateManyWithoutStartLocationNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + > + | Prisma.RideCreateWithoutStartLocationInput[] + | Prisma.RideUncheckedCreateWithoutStartLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutStartLocationInput + | Prisma.RideCreateOrConnectWithoutStartLocationInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutStartLocationInput + | Prisma.RideUpsertWithWhereUniqueWithoutStartLocationInput[]; + createMany?: Prisma.RideCreateManyStartLocationInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutStartLocationInput + | Prisma.RideUpdateWithWhereUniqueWithoutStartLocationInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutStartLocationInput + | Prisma.RideUpdateManyWithWhereWithoutStartLocationInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideUncheckedUpdateManyWithoutEndLocationNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + > + | Prisma.RideCreateWithoutEndLocationInput[] + | Prisma.RideUncheckedCreateWithoutEndLocationInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutEndLocationInput + | Prisma.RideCreateOrConnectWithoutEndLocationInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutEndLocationInput + | Prisma.RideUpsertWithWhereUniqueWithoutEndLocationInput[]; + createMany?: Prisma.RideCreateManyEndLocationInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutEndLocationInput + | Prisma.RideUpdateWithWhereUniqueWithoutEndLocationInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutEndLocationInput + | Prisma.RideUpdateManyWithWhereWithoutEndLocationInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideCreateNestedManyWithoutDriverInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + > + | Prisma.RideCreateWithoutDriverInput[] + | Prisma.RideUncheckedCreateWithoutDriverInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutDriverInput + | Prisma.RideCreateOrConnectWithoutDriverInput[]; + createMany?: Prisma.RideCreateManyDriverInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUncheckedCreateNestedManyWithoutDriverInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + > + | Prisma.RideCreateWithoutDriverInput[] + | Prisma.RideUncheckedCreateWithoutDriverInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutDriverInput + | Prisma.RideCreateOrConnectWithoutDriverInput[]; + createMany?: Prisma.RideCreateManyDriverInputEnvelope; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUpdateManyWithoutDriverNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + > + | Prisma.RideCreateWithoutDriverInput[] + | Prisma.RideUncheckedCreateWithoutDriverInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutDriverInput + | Prisma.RideCreateOrConnectWithoutDriverInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutDriverInput + | Prisma.RideUpsertWithWhereUniqueWithoutDriverInput[]; + createMany?: Prisma.RideCreateManyDriverInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutDriverInput + | Prisma.RideUpdateWithWhereUniqueWithoutDriverInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutDriverInput + | Prisma.RideUpdateManyWithWhereWithoutDriverInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideUncheckedUpdateManyWithoutDriverNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + > + | Prisma.RideCreateWithoutDriverInput[] + | Prisma.RideUncheckedCreateWithoutDriverInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutDriverInput + | Prisma.RideCreateOrConnectWithoutDriverInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutDriverInput + | Prisma.RideUpsertWithWhereUniqueWithoutDriverInput[]; + createMany?: Prisma.RideCreateManyDriverInputEnvelope; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutDriverInput + | Prisma.RideUpdateWithWhereUniqueWithoutDriverInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutDriverInput + | Prisma.RideUpdateManyWithWhereWithoutDriverInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideCreateNestedManyWithoutRidersInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + > + | Prisma.RideCreateWithoutRidersInput[] + | Prisma.RideUncheckedCreateWithoutRidersInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutRidersInput + | Prisma.RideCreateOrConnectWithoutRidersInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUncheckedCreateNestedManyWithoutRidersInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + > + | Prisma.RideCreateWithoutRidersInput[] + | Prisma.RideUncheckedCreateWithoutRidersInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutRidersInput + | Prisma.RideCreateOrConnectWithoutRidersInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; +}; + +export type RideUpdateManyWithoutRidersNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + > + | Prisma.RideCreateWithoutRidersInput[] + | Prisma.RideUncheckedCreateWithoutRidersInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutRidersInput + | Prisma.RideCreateOrConnectWithoutRidersInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutRidersInput + | Prisma.RideUpsertWithWhereUniqueWithoutRidersInput[]; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutRidersInput + | Prisma.RideUpdateWithWhereUniqueWithoutRidersInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutRidersInput + | Prisma.RideUpdateManyWithWhereWithoutRidersInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideUncheckedUpdateManyWithoutRidersNestedInput = { + create?: + | Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + > + | Prisma.RideCreateWithoutRidersInput[] + | Prisma.RideUncheckedCreateWithoutRidersInput[]; + connectOrCreate?: + | Prisma.RideCreateOrConnectWithoutRidersInput + | Prisma.RideCreateOrConnectWithoutRidersInput[]; + upsert?: + | Prisma.RideUpsertWithWhereUniqueWithoutRidersInput + | Prisma.RideUpsertWithWhereUniqueWithoutRidersInput[]; + set?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + disconnect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + delete?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + connect?: Prisma.RideWhereUniqueInput | Prisma.RideWhereUniqueInput[]; + update?: + | Prisma.RideUpdateWithWhereUniqueWithoutRidersInput + | Prisma.RideUpdateWithWhereUniqueWithoutRidersInput[]; + updateMany?: + | Prisma.RideUpdateManyWithWhereWithoutRidersInput + | Prisma.RideUpdateManyWithWhereWithoutRidersInput[]; + deleteMany?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; +}; + +export type RideCreateexdateInput = { + set: string[]; +}; + +export type RideCreaterdateInput = { + set: string[]; +}; + +export type EnumRideTypeFieldUpdateOperationsInput = { + set?: $Enums.RideType; +}; + +export type EnumRideStatusFieldUpdateOperationsInput = { + set?: $Enums.RideStatus; +}; + +export type EnumSchedulingStateFieldUpdateOperationsInput = { + set?: $Enums.SchedulingState; +}; + +export type RideUpdateexdateInput = { + set?: string[]; + push?: string | string[]; +}; + +export type RideUpdaterdateInput = { + set?: string[]; + push?: string | string[]; +}; + +export type RideCreateNestedOneWithoutFavoritesInput = { + create?: Prisma.XOR< + Prisma.RideCreateWithoutFavoritesInput, + Prisma.RideUncheckedCreateWithoutFavoritesInput + >; + connectOrCreate?: Prisma.RideCreateOrConnectWithoutFavoritesInput; + connect?: Prisma.RideWhereUniqueInput; +}; + +export type RideUpdateOneRequiredWithoutFavoritesNestedInput = { + create?: Prisma.XOR< + Prisma.RideCreateWithoutFavoritesInput, + Prisma.RideUncheckedCreateWithoutFavoritesInput + >; + connectOrCreate?: Prisma.RideCreateOrConnectWithoutFavoritesInput; + upsert?: Prisma.RideUpsertWithoutFavoritesInput; + connect?: Prisma.RideWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.RideUpdateToOneWithWhereWithoutFavoritesInput, + Prisma.RideUpdateWithoutFavoritesInput + >, + Prisma.RideUncheckedUpdateWithoutFavoritesInput + >; +}; + +export type RideCreateNestedOneWithoutNotificationsInput = { + create?: Prisma.XOR< + Prisma.RideCreateWithoutNotificationsInput, + Prisma.RideUncheckedCreateWithoutNotificationsInput + >; + connectOrCreate?: Prisma.RideCreateOrConnectWithoutNotificationsInput; + connect?: Prisma.RideWhereUniqueInput; +}; + +export type RideUpdateOneRequiredWithoutNotificationsNestedInput = { + create?: Prisma.XOR< + Prisma.RideCreateWithoutNotificationsInput, + Prisma.RideUncheckedCreateWithoutNotificationsInput + >; + connectOrCreate?: Prisma.RideCreateOrConnectWithoutNotificationsInput; + upsert?: Prisma.RideUpsertWithoutNotificationsInput; + connect?: Prisma.RideWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.RideUpdateToOneWithWhereWithoutNotificationsInput, + Prisma.RideUpdateWithoutNotificationsInput + >, + Prisma.RideUncheckedUpdateWithoutNotificationsInput + >; +}; + +export type RideCreateWithoutStartLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutStartLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutStartLocationInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + >; +}; + +export type RideCreateManyStartLocationInputEnvelope = { + data: + | Prisma.RideCreateManyStartLocationInput + | Prisma.RideCreateManyStartLocationInput[]; + skipDuplicates?: boolean; +}; + +export type RideCreateWithoutEndLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutEndLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutEndLocationInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + >; +}; + +export type RideCreateManyEndLocationInputEnvelope = { + data: + | Prisma.RideCreateManyEndLocationInput + | Prisma.RideCreateManyEndLocationInput[]; + skipDuplicates?: boolean; +}; + +export type RideUpsertWithWhereUniqueWithoutStartLocationInput = { + where: Prisma.RideWhereUniqueInput; + update: Prisma.XOR< + Prisma.RideUpdateWithoutStartLocationInput, + Prisma.RideUncheckedUpdateWithoutStartLocationInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutStartLocationInput, + Prisma.RideUncheckedCreateWithoutStartLocationInput + >; +}; + +export type RideUpdateWithWhereUniqueWithoutStartLocationInput = { + where: Prisma.RideWhereUniqueInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutStartLocationInput, + Prisma.RideUncheckedUpdateWithoutStartLocationInput + >; +}; + +export type RideUpdateManyWithWhereWithoutStartLocationInput = { + where: Prisma.RideScalarWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyWithoutStartLocationInput + >; +}; + +export type RideScalarWhereInput = { + AND?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; + OR?: Prisma.RideScalarWhereInput[]; + NOT?: Prisma.RideScalarWhereInput | Prisma.RideScalarWhereInput[]; + id?: Prisma.StringFilter<'Ride'> | string; + type?: Prisma.EnumRideTypeFilter<'Ride'> | $Enums.RideType; + status?: Prisma.EnumRideStatusFilter<'Ride'> | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFilter<'Ride'> + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFilter<'Ride'> | string; + endLocationId?: Prisma.StringFilter<'Ride'> | string; + startTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + endTime?: Prisma.DateTimeFilter<'Ride'> | Date | string; + driverId?: Prisma.StringNullableFilter<'Ride'> | string | null; + isRecurring?: Prisma.BoolFilter<'Ride'> | boolean; + rrule?: Prisma.StringNullableFilter<'Ride'> | string | null; + exdate?: Prisma.StringNullableListFilter<'Ride'>; + rdate?: Prisma.StringNullableListFilter<'Ride'>; + parentRideId?: Prisma.StringNullableFilter<'Ride'> | string | null; + recurrenceId?: Prisma.StringNullableFilter<'Ride'> | string | null; + timezone?: Prisma.StringFilter<'Ride'> | string; +}; + +export type RideUpsertWithWhereUniqueWithoutEndLocationInput = { + where: Prisma.RideWhereUniqueInput; + update: Prisma.XOR< + Prisma.RideUpdateWithoutEndLocationInput, + Prisma.RideUncheckedUpdateWithoutEndLocationInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutEndLocationInput, + Prisma.RideUncheckedCreateWithoutEndLocationInput + >; +}; + +export type RideUpdateWithWhereUniqueWithoutEndLocationInput = { + where: Prisma.RideWhereUniqueInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutEndLocationInput, + Prisma.RideUncheckedUpdateWithoutEndLocationInput + >; +}; + +export type RideUpdateManyWithWhereWithoutEndLocationInput = { + where: Prisma.RideScalarWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyWithoutEndLocationInput + >; +}; + +export type RideCreateWithoutDriverInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutDriverInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutDriverInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + >; +}; + +export type RideCreateManyDriverInputEnvelope = { + data: Prisma.RideCreateManyDriverInput | Prisma.RideCreateManyDriverInput[]; + skipDuplicates?: boolean; +}; + +export type RideUpsertWithWhereUniqueWithoutDriverInput = { + where: Prisma.RideWhereUniqueInput; + update: Prisma.XOR< + Prisma.RideUpdateWithoutDriverInput, + Prisma.RideUncheckedUpdateWithoutDriverInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutDriverInput, + Prisma.RideUncheckedCreateWithoutDriverInput + >; +}; + +export type RideUpdateWithWhereUniqueWithoutDriverInput = { + where: Prisma.RideWhereUniqueInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutDriverInput, + Prisma.RideUncheckedUpdateWithoutDriverInput + >; +}; + +export type RideUpdateManyWithWhereWithoutDriverInput = { + where: Prisma.RideScalarWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyWithoutDriverInput + >; +}; + +export type RideCreateWithoutRidersInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutRidersInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutRidersInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + >; +}; + +export type RideUpsertWithWhereUniqueWithoutRidersInput = { + where: Prisma.RideWhereUniqueInput; + update: Prisma.XOR< + Prisma.RideUpdateWithoutRidersInput, + Prisma.RideUncheckedUpdateWithoutRidersInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutRidersInput, + Prisma.RideUncheckedCreateWithoutRidersInput + >; +}; + +export type RideUpdateWithWhereUniqueWithoutRidersInput = { + where: Prisma.RideWhereUniqueInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutRidersInput, + Prisma.RideUncheckedUpdateWithoutRidersInput + >; +}; + +export type RideUpdateManyWithWhereWithoutRidersInput = { + where: Prisma.RideScalarWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyWithoutRidersInput + >; +}; + +export type RideCreateWithoutFavoritesInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + notifications?: Prisma.NotificationCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutFavoritesInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + notifications?: Prisma.NotificationUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutFavoritesInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutFavoritesInput, + Prisma.RideUncheckedCreateWithoutFavoritesInput + >; +}; + +export type RideUpsertWithoutFavoritesInput = { + update: Prisma.XOR< + Prisma.RideUpdateWithoutFavoritesInput, + Prisma.RideUncheckedUpdateWithoutFavoritesInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutFavoritesInput, + Prisma.RideUncheckedCreateWithoutFavoritesInput + >; + where?: Prisma.RideWhereInput; +}; + +export type RideUpdateToOneWithWhereWithoutFavoritesInput = { + where?: Prisma.RideWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutFavoritesInput, + Prisma.RideUncheckedUpdateWithoutFavoritesInput + >; +}; + +export type RideUpdateWithoutFavoritesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutFavoritesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideCreateWithoutNotificationsInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + startLocation: Prisma.LocationCreateNestedOneWithoutRidesAsStartInput; + endLocation: Prisma.LocationCreateNestedOneWithoutRidesAsEndInput; + riders?: Prisma.RiderCreateNestedManyWithoutRidesInput; + driver?: Prisma.EmployeeCreateNestedOneWithoutRidesInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRideInput; +}; + +export type RideUncheckedCreateWithoutNotificationsInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; + riders?: Prisma.RiderUncheckedCreateNestedManyWithoutRidesInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRideInput; +}; + +export type RideCreateOrConnectWithoutNotificationsInput = { + where: Prisma.RideWhereUniqueInput; + create: Prisma.XOR< + Prisma.RideCreateWithoutNotificationsInput, + Prisma.RideUncheckedCreateWithoutNotificationsInput + >; +}; + +export type RideUpsertWithoutNotificationsInput = { + update: Prisma.XOR< + Prisma.RideUpdateWithoutNotificationsInput, + Prisma.RideUncheckedUpdateWithoutNotificationsInput + >; + create: Prisma.XOR< + Prisma.RideCreateWithoutNotificationsInput, + Prisma.RideUncheckedCreateWithoutNotificationsInput + >; + where?: Prisma.RideWhereInput; +}; + +export type RideUpdateToOneWithWhereWithoutNotificationsInput = { + where?: Prisma.RideWhereInput; + data: Prisma.XOR< + Prisma.RideUpdateWithoutNotificationsInput, + Prisma.RideUncheckedUpdateWithoutNotificationsInput + >; +}; + +export type RideUpdateWithoutNotificationsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutNotificationsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideCreateManyStartLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; +}; + +export type RideCreateManyEndLocationInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + startTime: Date | string; + endTime: Date | string; + driverId?: string | null; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; +}; + +export type RideUpdateWithoutStartLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutStartLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateManyWithoutStartLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +export type RideUpdateWithoutEndLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutEndLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateManyWithoutEndLocationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +export type RideCreateManyDriverInput = { + id?: string; + type?: $Enums.RideType; + status?: $Enums.RideStatus; + schedulingState?: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date | string; + endTime: Date | string; + isRecurring?: boolean; + rrule?: string | null; + exdate?: Prisma.RideCreateexdateInput | string[]; + rdate?: Prisma.RideCreaterdateInput | string[]; + parentRideId?: string | null; + recurrenceId?: string | null; + timezone?: string; +}; + +export type RideUpdateWithoutDriverInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + riders?: Prisma.RiderUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutDriverInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + riders?: Prisma.RiderUncheckedUpdateManyWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateManyWithoutDriverInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +export type RideUpdateWithoutRidersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + startLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsStartNestedInput; + endLocation?: Prisma.LocationUpdateOneRequiredWithoutRidesAsEndNestedInput; + driver?: Prisma.EmployeeUpdateOneWithoutRidesNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateWithoutRidersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRideNestedInput; + notifications?: Prisma.NotificationUncheckedUpdateManyWithoutRideNestedInput; +}; + +export type RideUncheckedUpdateManyWithoutRidersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + type?: Prisma.EnumRideTypeFieldUpdateOperationsInput | $Enums.RideType; + status?: Prisma.EnumRideStatusFieldUpdateOperationsInput | $Enums.RideStatus; + schedulingState?: + | Prisma.EnumSchedulingStateFieldUpdateOperationsInput + | $Enums.SchedulingState; + startLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + endLocationId?: Prisma.StringFieldUpdateOperationsInput | string; + startTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endTime?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + driverId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + isRecurring?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rrule?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + exdate?: Prisma.RideUpdateexdateInput | string[]; + rdate?: Prisma.RideUpdaterdateInput | string[]; + parentRideId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + recurrenceId?: + | Prisma.NullableStringFieldUpdateOperationsInput + | string + | null; + timezone?: Prisma.StringFieldUpdateOperationsInput | string; +}; + +/** + * Count Type RideCountOutputType + */ + +export type RideCountOutputType = { + riders: number; + favorites: number; + notifications: number; +}; + +export type RideCountOutputTypeSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + riders?: boolean | RideCountOutputTypeCountRidersArgs; + favorites?: boolean | RideCountOutputTypeCountFavoritesArgs; + notifications?: boolean | RideCountOutputTypeCountNotificationsArgs; +}; + +/** + * RideCountOutputType without action + */ +export type RideCountOutputTypeDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the RideCountOutputType + */ + select?: Prisma.RideCountOutputTypeSelect | null; +}; + +/** + * RideCountOutputType without action + */ +export type RideCountOutputTypeCountRidersArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RiderWhereInput; +}; + +/** + * RideCountOutputType without action + */ +export type RideCountOutputTypeCountFavoritesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.FavoriteWhereInput; +}; + +/** + * RideCountOutputType without action + */ +export type RideCountOutputTypeCountNotificationsArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.NotificationWhereInput; +}; + +export type RideSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + type?: boolean; + status?: boolean; + schedulingState?: boolean; + startLocationId?: boolean; + endLocationId?: boolean; + startTime?: boolean; + endTime?: boolean; + driverId?: boolean; + isRecurring?: boolean; + rrule?: boolean; + exdate?: boolean; + rdate?: boolean; + parentRideId?: boolean; + recurrenceId?: boolean; + timezone?: boolean; + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + riders?: boolean | Prisma.Ride$ridersArgs; + driver?: boolean | Prisma.Ride$driverArgs; + favorites?: boolean | Prisma.Ride$favoritesArgs; + notifications?: boolean | Prisma.Ride$notificationsArgs; + _count?: boolean | Prisma.RideCountOutputTypeDefaultArgs; + }, + ExtArgs['result']['ride'] +>; + +export type RideSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + type?: boolean; + status?: boolean; + schedulingState?: boolean; + startLocationId?: boolean; + endLocationId?: boolean; + startTime?: boolean; + endTime?: boolean; + driverId?: boolean; + isRecurring?: boolean; + rrule?: boolean; + exdate?: boolean; + rdate?: boolean; + parentRideId?: boolean; + recurrenceId?: boolean; + timezone?: boolean; + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + driver?: boolean | Prisma.Ride$driverArgs; + }, + ExtArgs['result']['ride'] +>; + +export type RideSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + type?: boolean; + status?: boolean; + schedulingState?: boolean; + startLocationId?: boolean; + endLocationId?: boolean; + startTime?: boolean; + endTime?: boolean; + driverId?: boolean; + isRecurring?: boolean; + rrule?: boolean; + exdate?: boolean; + rdate?: boolean; + parentRideId?: boolean; + recurrenceId?: boolean; + timezone?: boolean; + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + driver?: boolean | Prisma.Ride$driverArgs; + }, + ExtArgs['result']['ride'] +>; + +export type RideSelectScalar = { + id?: boolean; + type?: boolean; + status?: boolean; + schedulingState?: boolean; + startLocationId?: boolean; + endLocationId?: boolean; + startTime?: boolean; + endTime?: boolean; + driverId?: boolean; + isRecurring?: boolean; + rrule?: boolean; + exdate?: boolean; + rdate?: boolean; + parentRideId?: boolean; + recurrenceId?: boolean; + timezone?: boolean; +}; + +export type RideOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'id' + | 'type' + | 'status' + | 'schedulingState' + | 'startLocationId' + | 'endLocationId' + | 'startTime' + | 'endTime' + | 'driverId' + | 'isRecurring' + | 'rrule' + | 'exdate' + | 'rdate' + | 'parentRideId' + | 'recurrenceId' + | 'timezone', + ExtArgs['result']['ride'] +>; +export type RideInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + riders?: boolean | Prisma.Ride$ridersArgs; + driver?: boolean | Prisma.Ride$driverArgs; + favorites?: boolean | Prisma.Ride$favoritesArgs; + notifications?: boolean | Prisma.Ride$notificationsArgs; + _count?: boolean | Prisma.RideCountOutputTypeDefaultArgs; +}; +export type RideIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + driver?: boolean | Prisma.Ride$driverArgs; +}; +export type RideIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + startLocation?: boolean | Prisma.LocationDefaultArgs; + endLocation?: boolean | Prisma.LocationDefaultArgs; + driver?: boolean | Prisma.Ride$driverArgs; +}; + +export type $RidePayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Ride'; + objects: { + startLocation: Prisma.$LocationPayload; + endLocation: Prisma.$LocationPayload; + riders: Prisma.$RiderPayload[]; + driver: Prisma.$EmployeePayload | null; + favorites: Prisma.$FavoritePayload[]; + notifications: Prisma.$NotificationPayload[]; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + id: string; + type: $Enums.RideType; + status: $Enums.RideStatus; + schedulingState: $Enums.SchedulingState; + startLocationId: string; + endLocationId: string; + startTime: Date; + endTime: Date; + driverId: string | null; + isRecurring: boolean; + rrule: string | null; + exdate: string[]; + rdate: string[]; + parentRideId: string | null; + recurrenceId: string | null; + timezone: string; + }, + ExtArgs['result']['ride'] + >; + composites: {}; +}; + +export type RideGetPayload< + S extends boolean | null | undefined | RideDefaultArgs +> = runtime.Types.Result.GetResult; + +export type RideCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: RideCountAggregateInputType | true; +}; + +export interface RideDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Ride']; + meta: { name: 'Ride' }; + }; + /** + * Find zero or one Ride that matches the filter. + * @param {RideFindUniqueArgs} args - Arguments to find a Ride + * @example + * // Get one Ride + * const ride = await prisma.ride.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Ride that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {RideFindUniqueOrThrowArgs} args - Arguments to find a Ride + * @example + * // Get one Ride + * const ride = await prisma.ride.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Ride that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideFindFirstArgs} args - Arguments to find a Ride + * @example + * // Get one Ride + * const ride = await prisma.ride.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Ride that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideFindFirstOrThrowArgs} args - Arguments to find a Ride + * @example + * // Get one Ride + * const ride = await prisma.ride.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Rides that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Rides + * const rides = await prisma.ride.findMany() + * + * // Get first 10 Rides + * const rides = await prisma.ride.findMany({ take: 10 }) + * + * // Only select the `id` + * const rideWithIdOnly = await prisma.ride.findMany({ select: { id: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Ride. + * @param {RideCreateArgs} args - Arguments to create a Ride. + * @example + * // Create one Ride + * const Ride = await prisma.ride.create({ + * data: { + * // ... data to create a Ride + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Rides. + * @param {RideCreateManyArgs} args - Arguments to create many Rides. + * @example + * // Create many Rides + * const ride = await prisma.ride.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Rides and returns the data saved in the database. + * @param {RideCreateManyAndReturnArgs} args - Arguments to create many Rides. + * @example + * // Create many Rides + * const ride = await prisma.ride.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Rides and only return the `id` + * const rideWithIdOnly = await prisma.ride.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Ride. + * @param {RideDeleteArgs} args - Arguments to delete one Ride. + * @example + * // Delete one Ride + * const Ride = await prisma.ride.delete({ + * where: { + * // ... filter to delete one Ride + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Ride. + * @param {RideUpdateArgs} args - Arguments to update one Ride. + * @example + * // Update one Ride + * const ride = await prisma.ride.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Rides. + * @param {RideDeleteManyArgs} args - Arguments to filter Rides to delete. + * @example + * // Delete a few Rides + * const { count } = await prisma.ride.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Rides. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Rides + * const ride = await prisma.ride.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Rides and returns the data updated in the database. + * @param {RideUpdateManyAndReturnArgs} args - Arguments to update many Rides. + * @example + * // Update many Rides + * const ride = await prisma.ride.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Rides and only return the `id` + * const rideWithIdOnly = await prisma.ride.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Ride. + * @param {RideUpsertArgs} args - Arguments to update or create a Ride. + * @example + * // Update or create a Ride + * const ride = await prisma.ride.upsert({ + * create: { + * // ... data to create a Ride + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Ride we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RideClient< + runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Rides. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideCountArgs} args - Arguments to filter Rides to count. + * @example + * // Count the number of Rides + * const count = await prisma.ride.count({ + * where: { + * // ... the filter for the Rides we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Ride. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Ride. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RideGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends RideGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: RideGroupByArgs['orderBy'] } + : { orderBy?: RideGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetRideGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Ride model + */ + readonly fields: RideFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Ride. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__RideClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + startLocation = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__LocationClient< + | runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > + | Null, + Null, + ExtArgs, + GlobalOmitOptions + >; + endLocation = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__LocationClient< + | runtime.Types.Result.GetResult< + Prisma.$LocationPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > + | Null, + Null, + ExtArgs, + GlobalOmitOptions + >; + riders = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + driver = {}>( + args?: Prisma.Subset> + ): Prisma.Prisma__EmployeeClient< + runtime.Types.Result.GetResult< + Prisma.$EmployeePayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + favorites = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + notifications = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$NotificationPayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Ride model + */ +export interface RideFieldRefs { + readonly id: Prisma.FieldRef<'Ride', 'String'>; + readonly type: Prisma.FieldRef<'Ride', 'RideType'>; + readonly status: Prisma.FieldRef<'Ride', 'RideStatus'>; + readonly schedulingState: Prisma.FieldRef<'Ride', 'SchedulingState'>; + readonly startLocationId: Prisma.FieldRef<'Ride', 'String'>; + readonly endLocationId: Prisma.FieldRef<'Ride', 'String'>; + readonly startTime: Prisma.FieldRef<'Ride', 'DateTime'>; + readonly endTime: Prisma.FieldRef<'Ride', 'DateTime'>; + readonly driverId: Prisma.FieldRef<'Ride', 'String'>; + readonly isRecurring: Prisma.FieldRef<'Ride', 'Boolean'>; + readonly rrule: Prisma.FieldRef<'Ride', 'String'>; + readonly exdate: Prisma.FieldRef<'Ride', 'String[]'>; + readonly rdate: Prisma.FieldRef<'Ride', 'String[]'>; + readonly parentRideId: Prisma.FieldRef<'Ride', 'String'>; + readonly recurrenceId: Prisma.FieldRef<'Ride', 'String'>; + readonly timezone: Prisma.FieldRef<'Ride', 'String'>; +} + +// Custom InputTypes +/** + * Ride findUnique + */ +export type RideFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter, which Ride to fetch. + */ + where: Prisma.RideWhereUniqueInput; +}; + +/** + * Ride findUniqueOrThrow + */ +export type RideFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter, which Ride to fetch. + */ + where: Prisma.RideWhereUniqueInput; +}; + +/** + * Ride findFirst + */ +export type RideFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter, which Ride to fetch. + */ + where?: Prisma.RideWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Rides to fetch. + */ + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Rides. + */ + cursor?: Prisma.RideWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Rides from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Rides. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Rides. + */ + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Ride findFirstOrThrow + */ +export type RideFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter, which Ride to fetch. + */ + where?: Prisma.RideWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Rides to fetch. + */ + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Rides. + */ + cursor?: Prisma.RideWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Rides from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Rides. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Rides. + */ + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Ride findMany + */ +export type RideFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter, which Rides to fetch. + */ + where?: Prisma.RideWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Rides to fetch. + */ + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Rides. + */ + cursor?: Prisma.RideWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Rides from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Rides. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Rides. + */ + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Ride create + */ +export type RideCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * The data needed to create a Ride. + */ + data: Prisma.XOR; +}; + +/** + * Ride createMany + */ +export type RideCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Rides. + */ + data: Prisma.RideCreateManyInput | Prisma.RideCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Ride createManyAndReturn + */ +export type RideCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * The data used to create many Rides. + */ + data: Prisma.RideCreateManyInput | Prisma.RideCreateManyInput[]; + skipDuplicates?: boolean; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideIncludeCreateManyAndReturn | null; +}; + +/** + * Ride update + */ +export type RideUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * The data needed to update a Ride. + */ + data: Prisma.XOR; + /** + * Choose, which Ride to update. + */ + where: Prisma.RideWhereUniqueInput; +}; + +/** + * Ride updateMany + */ +export type RideUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Rides. + */ + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyInput + >; + /** + * Filter which Rides to update + */ + where?: Prisma.RideWhereInput; + /** + * Limit how many Rides to update. + */ + limit?: number; +}; + +/** + * Ride updateManyAndReturn + */ +export type RideUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * The data used to update Rides. + */ + data: Prisma.XOR< + Prisma.RideUpdateManyMutationInput, + Prisma.RideUncheckedUpdateManyInput + >; + /** + * Filter which Rides to update + */ + where?: Prisma.RideWhereInput; + /** + * Limit how many Rides to update. + */ + limit?: number; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideIncludeUpdateManyAndReturn | null; +}; + +/** + * Ride upsert + */ +export type RideUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * The filter to search for the Ride to update in case it exists. + */ + where: Prisma.RideWhereUniqueInput; + /** + * In case the Ride found by the `where` argument doesn't exist, create a new Ride with this data. + */ + create: Prisma.XOR; + /** + * In case the Ride was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR; +}; + +/** + * Ride delete + */ +export type RideDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + /** + * Filter which Ride to delete. + */ + where: Prisma.RideWhereUniqueInput; +}; + +/** + * Ride deleteMany + */ +export type RideDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Rides to delete + */ + where?: Prisma.RideWhereInput; + /** + * Limit how many Rides to delete. + */ + limit?: number; +}; + +/** + * Ride.riders + */ +export type Ride$ridersArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + where?: Prisma.RiderWhereInput; + orderBy?: + | Prisma.RiderOrderByWithRelationInput + | Prisma.RiderOrderByWithRelationInput[]; + cursor?: Prisma.RiderWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.RiderScalarFieldEnum | Prisma.RiderScalarFieldEnum[]; +}; + +/** + * Ride.driver + */ +export type Ride$driverArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Employee + */ + select?: Prisma.EmployeeSelect | null; + /** + * Omit specific fields from the Employee + */ + omit?: Prisma.EmployeeOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.EmployeeInclude | null; + where?: Prisma.EmployeeWhereInput; +}; + +/** + * Ride.favorites + */ +export type Ride$favoritesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + where?: Prisma.FavoriteWhereInput; + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + cursor?: Prisma.FavoriteWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.FavoriteScalarFieldEnum | Prisma.FavoriteScalarFieldEnum[]; +}; + +/** + * Ride.notifications + */ +export type Ride$notificationsArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Notification + */ + select?: Prisma.NotificationSelect | null; + /** + * Omit specific fields from the Notification + */ + omit?: Prisma.NotificationOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.NotificationInclude | null; + where?: Prisma.NotificationWhereInput; + orderBy?: + | Prisma.NotificationOrderByWithRelationInput + | Prisma.NotificationOrderByWithRelationInput[]; + cursor?: Prisma.NotificationWhereUniqueInput; + take?: number; + skip?: number; + distinct?: + | Prisma.NotificationScalarFieldEnum + | Prisma.NotificationScalarFieldEnum[]; +}; + +/** + * Ride without action + */ +export type RideDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; +}; diff --git a/server/generated/prisma/models/Rider.ts b/server/generated/prisma/models/Rider.ts new file mode 100644 index 000000000..4b5dbd0e8 --- /dev/null +++ b/server/generated/prisma/models/Rider.ts @@ -0,0 +1,2289 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Rider` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Rider + * A rider who requests and takes rides + */ +export type RiderModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateRider = { + _count: RiderCountAggregateOutputType | null; + _min: RiderMinAggregateOutputType | null; + _max: RiderMaxAggregateOutputType | null; +}; + +export type RiderMinAggregateOutputType = { + id: string | null; + firstName: string | null; + lastName: string | null; + phoneNumber: string | null; + email: string | null; + organization: $Enums.Organization | null; + description: string | null; + joinDate: Date | null; + endDate: Date | null; + address: string | null; + photoLink: string | null; + active: boolean | null; +}; + +export type RiderMaxAggregateOutputType = { + id: string | null; + firstName: string | null; + lastName: string | null; + phoneNumber: string | null; + email: string | null; + organization: $Enums.Organization | null; + description: string | null; + joinDate: Date | null; + endDate: Date | null; + address: string | null; + photoLink: string | null; + active: boolean | null; +}; + +export type RiderCountAggregateOutputType = { + id: number; + firstName: number; + lastName: number; + phoneNumber: number; + email: number; + accessibility: number; + organization: number; + description: number; + joinDate: number; + endDate: number; + address: number; + photoLink: number; + active: number; + _all: number; +}; + +export type RiderMinAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + organization?: true; + description?: true; + joinDate?: true; + endDate?: true; + address?: true; + photoLink?: true; + active?: true; +}; + +export type RiderMaxAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + organization?: true; + description?: true; + joinDate?: true; + endDate?: true; + address?: true; + photoLink?: true; + active?: true; +}; + +export type RiderCountAggregateInputType = { + id?: true; + firstName?: true; + lastName?: true; + phoneNumber?: true; + email?: true; + accessibility?: true; + organization?: true; + description?: true; + joinDate?: true; + endDate?: true; + address?: true; + photoLink?: true; + active?: true; + _all?: true; +}; + +export type RiderAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Rider to aggregate. + */ + where?: Prisma.RiderWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Riders to fetch. + */ + orderBy?: + | Prisma.RiderOrderByWithRelationInput + | Prisma.RiderOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.RiderWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Riders from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Riders. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Riders + **/ + _count?: true | RiderCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: RiderMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: RiderMaxAggregateInputType; +}; + +export type GetRiderAggregateType = { + [P in keyof T & keyof AggregateRider]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type RiderGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RiderWhereInput; + orderBy?: + | Prisma.RiderOrderByWithAggregationInput + | Prisma.RiderOrderByWithAggregationInput[]; + by: Prisma.RiderScalarFieldEnum[] | Prisma.RiderScalarFieldEnum; + having?: Prisma.RiderScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: RiderCountAggregateInputType | true; + _min?: RiderMinAggregateInputType; + _max?: RiderMaxAggregateInputType; +}; + +export type RiderGroupByOutputType = { + id: string; + firstName: string; + lastName: string; + phoneNumber: string | null; + email: string; + accessibility: $Enums.Accessibility[]; + organization: $Enums.Organization | null; + description: string | null; + joinDate: Date; + endDate: Date | null; + address: string | null; + photoLink: string | null; + active: boolean; + _count: RiderCountAggregateOutputType | null; + _min: RiderMinAggregateOutputType | null; + _max: RiderMaxAggregateOutputType | null; +}; + +export type GetRiderGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof RiderGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type RiderWhereInput = { + AND?: Prisma.RiderWhereInput | Prisma.RiderWhereInput[]; + OR?: Prisma.RiderWhereInput[]; + NOT?: Prisma.RiderWhereInput | Prisma.RiderWhereInput[]; + id?: Prisma.StringFilter<'Rider'> | string; + firstName?: Prisma.StringFilter<'Rider'> | string; + lastName?: Prisma.StringFilter<'Rider'> | string; + phoneNumber?: Prisma.StringNullableFilter<'Rider'> | string | null; + email?: Prisma.StringFilter<'Rider'> | string; + accessibility?: Prisma.EnumAccessibilityNullableListFilter<'Rider'>; + organization?: + | Prisma.EnumOrganizationNullableFilter<'Rider'> + | $Enums.Organization + | null; + description?: Prisma.StringNullableFilter<'Rider'> | string | null; + joinDate?: Prisma.DateTimeFilter<'Rider'> | Date | string; + endDate?: Prisma.DateTimeNullableFilter<'Rider'> | Date | string | null; + address?: Prisma.StringNullableFilter<'Rider'> | string | null; + photoLink?: Prisma.StringNullableFilter<'Rider'> | string | null; + active?: Prisma.BoolFilter<'Rider'> | boolean; + rides?: Prisma.RideListRelationFilter; + favorites?: Prisma.FavoriteListRelationFilter; +}; + +export type RiderOrderByWithRelationInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrderInput | Prisma.SortOrder; + email?: Prisma.SortOrder; + accessibility?: Prisma.SortOrder; + organization?: Prisma.SortOrderInput | Prisma.SortOrder; + description?: Prisma.SortOrderInput | Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + endDate?: Prisma.SortOrderInput | Prisma.SortOrder; + address?: Prisma.SortOrderInput | Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + active?: Prisma.SortOrder; + rides?: Prisma.RideOrderByRelationAggregateInput; + favorites?: Prisma.FavoriteOrderByRelationAggregateInput; +}; + +export type RiderWhereUniqueInput = Prisma.AtLeast< + { + id?: string; + email?: string; + AND?: Prisma.RiderWhereInput | Prisma.RiderWhereInput[]; + OR?: Prisma.RiderWhereInput[]; + NOT?: Prisma.RiderWhereInput | Prisma.RiderWhereInput[]; + firstName?: Prisma.StringFilter<'Rider'> | string; + lastName?: Prisma.StringFilter<'Rider'> | string; + phoneNumber?: Prisma.StringNullableFilter<'Rider'> | string | null; + accessibility?: Prisma.EnumAccessibilityNullableListFilter<'Rider'>; + organization?: + | Prisma.EnumOrganizationNullableFilter<'Rider'> + | $Enums.Organization + | null; + description?: Prisma.StringNullableFilter<'Rider'> | string | null; + joinDate?: Prisma.DateTimeFilter<'Rider'> | Date | string; + endDate?: Prisma.DateTimeNullableFilter<'Rider'> | Date | string | null; + address?: Prisma.StringNullableFilter<'Rider'> | string | null; + photoLink?: Prisma.StringNullableFilter<'Rider'> | string | null; + active?: Prisma.BoolFilter<'Rider'> | boolean; + rides?: Prisma.RideListRelationFilter; + favorites?: Prisma.FavoriteListRelationFilter; + }, + 'id' | 'email' +>; + +export type RiderOrderByWithAggregationInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrderInput | Prisma.SortOrder; + email?: Prisma.SortOrder; + accessibility?: Prisma.SortOrder; + organization?: Prisma.SortOrderInput | Prisma.SortOrder; + description?: Prisma.SortOrderInput | Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + endDate?: Prisma.SortOrderInput | Prisma.SortOrder; + address?: Prisma.SortOrderInput | Prisma.SortOrder; + photoLink?: Prisma.SortOrderInput | Prisma.SortOrder; + active?: Prisma.SortOrder; + _count?: Prisma.RiderCountOrderByAggregateInput; + _max?: Prisma.RiderMaxOrderByAggregateInput; + _min?: Prisma.RiderMinOrderByAggregateInput; +}; + +export type RiderScalarWhereWithAggregatesInput = { + AND?: + | Prisma.RiderScalarWhereWithAggregatesInput + | Prisma.RiderScalarWhereWithAggregatesInput[]; + OR?: Prisma.RiderScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.RiderScalarWhereWithAggregatesInput + | Prisma.RiderScalarWhereWithAggregatesInput[]; + id?: Prisma.StringWithAggregatesFilter<'Rider'> | string; + firstName?: Prisma.StringWithAggregatesFilter<'Rider'> | string; + lastName?: Prisma.StringWithAggregatesFilter<'Rider'> | string; + phoneNumber?: + | Prisma.StringNullableWithAggregatesFilter<'Rider'> + | string + | null; + email?: Prisma.StringWithAggregatesFilter<'Rider'> | string; + accessibility?: Prisma.EnumAccessibilityNullableListFilter<'Rider'>; + organization?: + | Prisma.EnumOrganizationNullableWithAggregatesFilter<'Rider'> + | $Enums.Organization + | null; + description?: + | Prisma.StringNullableWithAggregatesFilter<'Rider'> + | string + | null; + joinDate?: Prisma.DateTimeWithAggregatesFilter<'Rider'> | Date | string; + endDate?: + | Prisma.DateTimeNullableWithAggregatesFilter<'Rider'> + | Date + | string + | null; + address?: Prisma.StringNullableWithAggregatesFilter<'Rider'> | string | null; + photoLink?: + | Prisma.StringNullableWithAggregatesFilter<'Rider'> + | string + | null; + active?: Prisma.BoolWithAggregatesFilter<'Rider'> | boolean; +}; + +export type RiderCreateInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + rides?: Prisma.RideCreateNestedManyWithoutRidersInput; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRiderInput; +}; + +export type RiderUncheckedCreateInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + rides?: Prisma.RideUncheckedCreateNestedManyWithoutRidersInput; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRiderInput; +}; + +export type RiderUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rides?: Prisma.RideUpdateManyWithoutRidersNestedInput; + favorites?: Prisma.FavoriteUpdateManyWithoutRiderNestedInput; +}; + +export type RiderUncheckedUpdateInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rides?: Prisma.RideUncheckedUpdateManyWithoutRidersNestedInput; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRiderNestedInput; +}; + +export type RiderCreateManyInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; +}; + +export type RiderUpdateManyMutationInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type RiderUncheckedUpdateManyInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +export type EnumAccessibilityNullableListFilter<$PrismaModel = never> = { + equals?: + | $Enums.Accessibility[] + | Prisma.ListEnumAccessibilityFieldRefInput<$PrismaModel> + | null; + has?: + | $Enums.Accessibility + | Prisma.EnumAccessibilityFieldRefInput<$PrismaModel> + | null; + hasEvery?: + | $Enums.Accessibility[] + | Prisma.ListEnumAccessibilityFieldRefInput<$PrismaModel>; + hasSome?: + | $Enums.Accessibility[] + | Prisma.ListEnumAccessibilityFieldRefInput<$PrismaModel>; + isEmpty?: boolean; +}; + +export type RiderCountOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + accessibility?: Prisma.SortOrder; + organization?: Prisma.SortOrder; + description?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + endDate?: Prisma.SortOrder; + address?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + active?: Prisma.SortOrder; +}; + +export type RiderMaxOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + organization?: Prisma.SortOrder; + description?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + endDate?: Prisma.SortOrder; + address?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + active?: Prisma.SortOrder; +}; + +export type RiderMinOrderByAggregateInput = { + id?: Prisma.SortOrder; + firstName?: Prisma.SortOrder; + lastName?: Prisma.SortOrder; + phoneNumber?: Prisma.SortOrder; + email?: Prisma.SortOrder; + organization?: Prisma.SortOrder; + description?: Prisma.SortOrder; + joinDate?: Prisma.SortOrder; + endDate?: Prisma.SortOrder; + address?: Prisma.SortOrder; + photoLink?: Prisma.SortOrder; + active?: Prisma.SortOrder; +}; + +export type RiderListRelationFilter = { + every?: Prisma.RiderWhereInput; + some?: Prisma.RiderWhereInput; + none?: Prisma.RiderWhereInput; +}; + +export type RiderOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder; +}; + +export type RiderScalarRelationFilter = { + is?: Prisma.RiderWhereInput; + isNot?: Prisma.RiderWhereInput; +}; + +export type RiderCreateaccessibilityInput = { + set: $Enums.Accessibility[]; +}; + +export type RiderUpdateaccessibilityInput = { + set?: $Enums.Accessibility[]; + push?: $Enums.Accessibility | $Enums.Accessibility[]; +}; + +export type NullableEnumOrganizationFieldUpdateOperationsInput = { + set?: $Enums.Organization | null; +}; + +export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null; +}; + +export type RiderCreateNestedManyWithoutRidesInput = { + create?: + | Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + > + | Prisma.RiderCreateWithoutRidesInput[] + | Prisma.RiderUncheckedCreateWithoutRidesInput[]; + connectOrCreate?: + | Prisma.RiderCreateOrConnectWithoutRidesInput + | Prisma.RiderCreateOrConnectWithoutRidesInput[]; + connect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; +}; + +export type RiderUncheckedCreateNestedManyWithoutRidesInput = { + create?: + | Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + > + | Prisma.RiderCreateWithoutRidesInput[] + | Prisma.RiderUncheckedCreateWithoutRidesInput[]; + connectOrCreate?: + | Prisma.RiderCreateOrConnectWithoutRidesInput + | Prisma.RiderCreateOrConnectWithoutRidesInput[]; + connect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; +}; + +export type RiderUpdateManyWithoutRidesNestedInput = { + create?: + | Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + > + | Prisma.RiderCreateWithoutRidesInput[] + | Prisma.RiderUncheckedCreateWithoutRidesInput[]; + connectOrCreate?: + | Prisma.RiderCreateOrConnectWithoutRidesInput + | Prisma.RiderCreateOrConnectWithoutRidesInput[]; + upsert?: + | Prisma.RiderUpsertWithWhereUniqueWithoutRidesInput + | Prisma.RiderUpsertWithWhereUniqueWithoutRidesInput[]; + set?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + disconnect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + delete?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + connect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + update?: + | Prisma.RiderUpdateWithWhereUniqueWithoutRidesInput + | Prisma.RiderUpdateWithWhereUniqueWithoutRidesInput[]; + updateMany?: + | Prisma.RiderUpdateManyWithWhereWithoutRidesInput + | Prisma.RiderUpdateManyWithWhereWithoutRidesInput[]; + deleteMany?: Prisma.RiderScalarWhereInput | Prisma.RiderScalarWhereInput[]; +}; + +export type RiderUncheckedUpdateManyWithoutRidesNestedInput = { + create?: + | Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + > + | Prisma.RiderCreateWithoutRidesInput[] + | Prisma.RiderUncheckedCreateWithoutRidesInput[]; + connectOrCreate?: + | Prisma.RiderCreateOrConnectWithoutRidesInput + | Prisma.RiderCreateOrConnectWithoutRidesInput[]; + upsert?: + | Prisma.RiderUpsertWithWhereUniqueWithoutRidesInput + | Prisma.RiderUpsertWithWhereUniqueWithoutRidesInput[]; + set?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + disconnect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + delete?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + connect?: Prisma.RiderWhereUniqueInput | Prisma.RiderWhereUniqueInput[]; + update?: + | Prisma.RiderUpdateWithWhereUniqueWithoutRidesInput + | Prisma.RiderUpdateWithWhereUniqueWithoutRidesInput[]; + updateMany?: + | Prisma.RiderUpdateManyWithWhereWithoutRidesInput + | Prisma.RiderUpdateManyWithWhereWithoutRidesInput[]; + deleteMany?: Prisma.RiderScalarWhereInput | Prisma.RiderScalarWhereInput[]; +}; + +export type RiderCreateNestedOneWithoutFavoritesInput = { + create?: Prisma.XOR< + Prisma.RiderCreateWithoutFavoritesInput, + Prisma.RiderUncheckedCreateWithoutFavoritesInput + >; + connectOrCreate?: Prisma.RiderCreateOrConnectWithoutFavoritesInput; + connect?: Prisma.RiderWhereUniqueInput; +}; + +export type RiderUpdateOneRequiredWithoutFavoritesNestedInput = { + create?: Prisma.XOR< + Prisma.RiderCreateWithoutFavoritesInput, + Prisma.RiderUncheckedCreateWithoutFavoritesInput + >; + connectOrCreate?: Prisma.RiderCreateOrConnectWithoutFavoritesInput; + upsert?: Prisma.RiderUpsertWithoutFavoritesInput; + connect?: Prisma.RiderWhereUniqueInput; + update?: Prisma.XOR< + Prisma.XOR< + Prisma.RiderUpdateToOneWithWhereWithoutFavoritesInput, + Prisma.RiderUpdateWithoutFavoritesInput + >, + Prisma.RiderUncheckedUpdateWithoutFavoritesInput + >; +}; + +export type RiderCreateWithoutRidesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + favorites?: Prisma.FavoriteCreateNestedManyWithoutRiderInput; +}; + +export type RiderUncheckedCreateWithoutRidesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + favorites?: Prisma.FavoriteUncheckedCreateNestedManyWithoutRiderInput; +}; + +export type RiderCreateOrConnectWithoutRidesInput = { + where: Prisma.RiderWhereUniqueInput; + create: Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + >; +}; + +export type RiderUpsertWithWhereUniqueWithoutRidesInput = { + where: Prisma.RiderWhereUniqueInput; + update: Prisma.XOR< + Prisma.RiderUpdateWithoutRidesInput, + Prisma.RiderUncheckedUpdateWithoutRidesInput + >; + create: Prisma.XOR< + Prisma.RiderCreateWithoutRidesInput, + Prisma.RiderUncheckedCreateWithoutRidesInput + >; +}; + +export type RiderUpdateWithWhereUniqueWithoutRidesInput = { + where: Prisma.RiderWhereUniqueInput; + data: Prisma.XOR< + Prisma.RiderUpdateWithoutRidesInput, + Prisma.RiderUncheckedUpdateWithoutRidesInput + >; +}; + +export type RiderUpdateManyWithWhereWithoutRidesInput = { + where: Prisma.RiderScalarWhereInput; + data: Prisma.XOR< + Prisma.RiderUpdateManyMutationInput, + Prisma.RiderUncheckedUpdateManyWithoutRidesInput + >; +}; + +export type RiderScalarWhereInput = { + AND?: Prisma.RiderScalarWhereInput | Prisma.RiderScalarWhereInput[]; + OR?: Prisma.RiderScalarWhereInput[]; + NOT?: Prisma.RiderScalarWhereInput | Prisma.RiderScalarWhereInput[]; + id?: Prisma.StringFilter<'Rider'> | string; + firstName?: Prisma.StringFilter<'Rider'> | string; + lastName?: Prisma.StringFilter<'Rider'> | string; + phoneNumber?: Prisma.StringNullableFilter<'Rider'> | string | null; + email?: Prisma.StringFilter<'Rider'> | string; + accessibility?: Prisma.EnumAccessibilityNullableListFilter<'Rider'>; + organization?: + | Prisma.EnumOrganizationNullableFilter<'Rider'> + | $Enums.Organization + | null; + description?: Prisma.StringNullableFilter<'Rider'> | string | null; + joinDate?: Prisma.DateTimeFilter<'Rider'> | Date | string; + endDate?: Prisma.DateTimeNullableFilter<'Rider'> | Date | string | null; + address?: Prisma.StringNullableFilter<'Rider'> | string | null; + photoLink?: Prisma.StringNullableFilter<'Rider'> | string | null; + active?: Prisma.BoolFilter<'Rider'> | boolean; +}; + +export type RiderCreateWithoutFavoritesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + rides?: Prisma.RideCreateNestedManyWithoutRidersInput; +}; + +export type RiderUncheckedCreateWithoutFavoritesInput = { + id?: string; + firstName: string; + lastName: string; + phoneNumber?: string | null; + email: string; + accessibility?: Prisma.RiderCreateaccessibilityInput | $Enums.Accessibility[]; + organization?: $Enums.Organization | null; + description?: string | null; + joinDate?: Date | string; + endDate?: Date | string | null; + address?: string | null; + photoLink?: string | null; + active?: boolean; + rides?: Prisma.RideUncheckedCreateNestedManyWithoutRidersInput; +}; + +export type RiderCreateOrConnectWithoutFavoritesInput = { + where: Prisma.RiderWhereUniqueInput; + create: Prisma.XOR< + Prisma.RiderCreateWithoutFavoritesInput, + Prisma.RiderUncheckedCreateWithoutFavoritesInput + >; +}; + +export type RiderUpsertWithoutFavoritesInput = { + update: Prisma.XOR< + Prisma.RiderUpdateWithoutFavoritesInput, + Prisma.RiderUncheckedUpdateWithoutFavoritesInput + >; + create: Prisma.XOR< + Prisma.RiderCreateWithoutFavoritesInput, + Prisma.RiderUncheckedCreateWithoutFavoritesInput + >; + where?: Prisma.RiderWhereInput; +}; + +export type RiderUpdateToOneWithWhereWithoutFavoritesInput = { + where?: Prisma.RiderWhereInput; + data: Prisma.XOR< + Prisma.RiderUpdateWithoutFavoritesInput, + Prisma.RiderUncheckedUpdateWithoutFavoritesInput + >; +}; + +export type RiderUpdateWithoutFavoritesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rides?: Prisma.RideUpdateManyWithoutRidersNestedInput; +}; + +export type RiderUncheckedUpdateWithoutFavoritesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + rides?: Prisma.RideUncheckedUpdateManyWithoutRidersNestedInput; +}; + +export type RiderUpdateWithoutRidesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + favorites?: Prisma.FavoriteUpdateManyWithoutRiderNestedInput; +}; + +export type RiderUncheckedUpdateWithoutRidesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; + favorites?: Prisma.FavoriteUncheckedUpdateManyWithoutRiderNestedInput; +}; + +export type RiderUncheckedUpdateManyWithoutRidesInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string; + firstName?: Prisma.StringFieldUpdateOperationsInput | string; + lastName?: Prisma.StringFieldUpdateOperationsInput | string; + phoneNumber?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + email?: Prisma.StringFieldUpdateOperationsInput | string; + accessibility?: Prisma.RiderUpdateaccessibilityInput | $Enums.Accessibility[]; + organization?: + | Prisma.NullableEnumOrganizationFieldUpdateOperationsInput + | $Enums.Organization + | null; + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + joinDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string; + endDate?: + | Prisma.NullableDateTimeFieldUpdateOperationsInput + | Date + | string + | null; + address?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + photoLink?: Prisma.NullableStringFieldUpdateOperationsInput | string | null; + active?: Prisma.BoolFieldUpdateOperationsInput | boolean; +}; + +/** + * Count Type RiderCountOutputType + */ + +export type RiderCountOutputType = { + rides: number; + favorites: number; +}; + +export type RiderCountOutputTypeSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rides?: boolean | RiderCountOutputTypeCountRidesArgs; + favorites?: boolean | RiderCountOutputTypeCountFavoritesArgs; +}; + +/** + * RiderCountOutputType without action + */ +export type RiderCountOutputTypeDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the RiderCountOutputType + */ + select?: Prisma.RiderCountOutputTypeSelect | null; +}; + +/** + * RiderCountOutputType without action + */ +export type RiderCountOutputTypeCountRidesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.RideWhereInput; +}; + +/** + * RiderCountOutputType without action + */ +export type RiderCountOutputTypeCountFavoritesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.FavoriteWhereInput; +}; + +export type RiderSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + accessibility?: boolean; + organization?: boolean; + description?: boolean; + joinDate?: boolean; + endDate?: boolean; + address?: boolean; + photoLink?: boolean; + active?: boolean; + rides?: boolean | Prisma.Rider$ridesArgs; + favorites?: boolean | Prisma.Rider$favoritesArgs; + _count?: boolean | Prisma.RiderCountOutputTypeDefaultArgs; + }, + ExtArgs['result']['rider'] +>; + +export type RiderSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + accessibility?: boolean; + organization?: boolean; + description?: boolean; + joinDate?: boolean; + endDate?: boolean; + address?: boolean; + photoLink?: boolean; + active?: boolean; + }, + ExtArgs['result']['rider'] +>; + +export type RiderSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + accessibility?: boolean; + organization?: boolean; + description?: boolean; + joinDate?: boolean; + endDate?: boolean; + address?: boolean; + photoLink?: boolean; + active?: boolean; + }, + ExtArgs['result']['rider'] +>; + +export type RiderSelectScalar = { + id?: boolean; + firstName?: boolean; + lastName?: boolean; + phoneNumber?: boolean; + email?: boolean; + accessibility?: boolean; + organization?: boolean; + description?: boolean; + joinDate?: boolean; + endDate?: boolean; + address?: boolean; + photoLink?: boolean; + active?: boolean; +}; + +export type RiderOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'id' + | 'firstName' + | 'lastName' + | 'phoneNumber' + | 'email' + | 'accessibility' + | 'organization' + | 'description' + | 'joinDate' + | 'endDate' + | 'address' + | 'photoLink' + | 'active', + ExtArgs['result']['rider'] +>; +export type RiderInclude< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + rides?: boolean | Prisma.Rider$ridesArgs; + favorites?: boolean | Prisma.Rider$favoritesArgs; + _count?: boolean | Prisma.RiderCountOutputTypeDefaultArgs; +}; +export type RiderIncludeCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; +export type RiderIncludeUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = {}; + +export type $RiderPayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Rider'; + objects: { + rides: Prisma.$RidePayload[]; + favorites: Prisma.$FavoritePayload[]; + }; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + id: string; + firstName: string; + lastName: string; + phoneNumber: string | null; + email: string; + accessibility: $Enums.Accessibility[]; + organization: $Enums.Organization | null; + description: string | null; + joinDate: Date; + endDate: Date | null; + address: string | null; + photoLink: string | null; + active: boolean; + }, + ExtArgs['result']['rider'] + >; + composites: {}; +}; + +export type RiderGetPayload< + S extends boolean | null | undefined | RiderDefaultArgs +> = runtime.Types.Result.GetResult; + +export type RiderCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: RiderCountAggregateInputType | true; +}; + +export interface RiderDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Rider']; + meta: { name: 'Rider' }; + }; + /** + * Find zero or one Rider that matches the filter. + * @param {RiderFindUniqueArgs} args - Arguments to find a Rider + * @example + * // Get one Rider + * const rider = await prisma.rider.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Rider that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {RiderFindUniqueOrThrowArgs} args - Arguments to find a Rider + * @example + * // Get one Rider + * const rider = await prisma.rider.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Rider that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderFindFirstArgs} args - Arguments to find a Rider + * @example + * // Get one Rider + * const rider = await prisma.rider.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Rider that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderFindFirstOrThrowArgs} args - Arguments to find a Rider + * @example + * // Get one Rider + * const rider = await prisma.rider.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Riders that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Riders + * const riders = await prisma.rider.findMany() + * + * // Get first 10 Riders + * const riders = await prisma.rider.findMany({ take: 10 }) + * + * // Only select the `id` + * const riderWithIdOnly = await prisma.rider.findMany({ select: { id: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Rider. + * @param {RiderCreateArgs} args - Arguments to create a Rider. + * @example + * // Create one Rider + * const Rider = await prisma.rider.create({ + * data: { + * // ... data to create a Rider + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Riders. + * @param {RiderCreateManyArgs} args - Arguments to create many Riders. + * @example + * // Create many Riders + * const rider = await prisma.rider.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Riders and returns the data saved in the database. + * @param {RiderCreateManyAndReturnArgs} args - Arguments to create many Riders. + * @example + * // Create many Riders + * const rider = await prisma.rider.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Riders and only return the `id` + * const riderWithIdOnly = await prisma.rider.createManyAndReturn({ + * select: { id: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Rider. + * @param {RiderDeleteArgs} args - Arguments to delete one Rider. + * @example + * // Delete one Rider + * const Rider = await prisma.rider.delete({ + * where: { + * // ... filter to delete one Rider + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Rider. + * @param {RiderUpdateArgs} args - Arguments to update one Rider. + * @example + * // Update one Rider + * const rider = await prisma.rider.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Riders. + * @param {RiderDeleteManyArgs} args - Arguments to filter Riders to delete. + * @example + * // Delete a few Riders + * const { count } = await prisma.rider.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Riders. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Riders + * const rider = await prisma.rider.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Riders and returns the data updated in the database. + * @param {RiderUpdateManyAndReturnArgs} args - Arguments to update many Riders. + * @example + * // Update many Riders + * const rider = await prisma.rider.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Riders and only return the `id` + * const riderWithIdOnly = await prisma.rider.updateManyAndReturn({ + * select: { id: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Rider. + * @param {RiderUpsertArgs} args - Arguments to update or create a Rider. + * @example + * // Update or create a Rider + * const rider = await prisma.rider.upsert({ + * create: { + * // ... data to create a Rider + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Rider we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__RiderClient< + runtime.Types.Result.GetResult< + Prisma.$RiderPayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Riders. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderCountArgs} args - Arguments to filter Riders to count. + * @example + * // Count the number of Riders + * const count = await prisma.rider.count({ + * where: { + * // ... the filter for the Riders we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Rider. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Rider. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {RiderGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends RiderGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: RiderGroupByArgs['orderBy'] } + : { orderBy?: RiderGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetRiderGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Rider model + */ + readonly fields: RiderFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Rider. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__RiderClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + rides = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$RidePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + favorites = {}>( + args?: Prisma.Subset> + ): Prisma.PrismaPromise< + | runtime.Types.Result.GetResult< + Prisma.$FavoritePayload, + T, + 'findMany', + GlobalOmitOptions + > + | Null + >; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Rider model + */ +export interface RiderFieldRefs { + readonly id: Prisma.FieldRef<'Rider', 'String'>; + readonly firstName: Prisma.FieldRef<'Rider', 'String'>; + readonly lastName: Prisma.FieldRef<'Rider', 'String'>; + readonly phoneNumber: Prisma.FieldRef<'Rider', 'String'>; + readonly email: Prisma.FieldRef<'Rider', 'String'>; + readonly accessibility: Prisma.FieldRef<'Rider', 'Accessibility[]'>; + readonly organization: Prisma.FieldRef<'Rider', 'Organization'>; + readonly description: Prisma.FieldRef<'Rider', 'String'>; + readonly joinDate: Prisma.FieldRef<'Rider', 'DateTime'>; + readonly endDate: Prisma.FieldRef<'Rider', 'DateTime'>; + readonly address: Prisma.FieldRef<'Rider', 'String'>; + readonly photoLink: Prisma.FieldRef<'Rider', 'String'>; + readonly active: Prisma.FieldRef<'Rider', 'Boolean'>; +} + +// Custom InputTypes +/** + * Rider findUnique + */ +export type RiderFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter, which Rider to fetch. + */ + where: Prisma.RiderWhereUniqueInput; +}; + +/** + * Rider findUniqueOrThrow + */ +export type RiderFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter, which Rider to fetch. + */ + where: Prisma.RiderWhereUniqueInput; +}; + +/** + * Rider findFirst + */ +export type RiderFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter, which Rider to fetch. + */ + where?: Prisma.RiderWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Riders to fetch. + */ + orderBy?: + | Prisma.RiderOrderByWithRelationInput + | Prisma.RiderOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Riders. + */ + cursor?: Prisma.RiderWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Riders from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Riders. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Riders. + */ + distinct?: Prisma.RiderScalarFieldEnum | Prisma.RiderScalarFieldEnum[]; +}; + +/** + * Rider findFirstOrThrow + */ +export type RiderFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter, which Rider to fetch. + */ + where?: Prisma.RiderWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Riders to fetch. + */ + orderBy?: + | Prisma.RiderOrderByWithRelationInput + | Prisma.RiderOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Riders. + */ + cursor?: Prisma.RiderWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Riders from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Riders. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Riders. + */ + distinct?: Prisma.RiderScalarFieldEnum | Prisma.RiderScalarFieldEnum[]; +}; + +/** + * Rider findMany + */ +export type RiderFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter, which Riders to fetch. + */ + where?: Prisma.RiderWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Riders to fetch. + */ + orderBy?: + | Prisma.RiderOrderByWithRelationInput + | Prisma.RiderOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Riders. + */ + cursor?: Prisma.RiderWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Riders from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Riders. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Riders. + */ + distinct?: Prisma.RiderScalarFieldEnum | Prisma.RiderScalarFieldEnum[]; +}; + +/** + * Rider create + */ +export type RiderCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * The data needed to create a Rider. + */ + data: Prisma.XOR; +}; + +/** + * Rider createMany + */ +export type RiderCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Riders. + */ + data: Prisma.RiderCreateManyInput | Prisma.RiderCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Rider createManyAndReturn + */ +export type RiderCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * The data used to create many Riders. + */ + data: Prisma.RiderCreateManyInput | Prisma.RiderCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Rider update + */ +export type RiderUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * The data needed to update a Rider. + */ + data: Prisma.XOR; + /** + * Choose, which Rider to update. + */ + where: Prisma.RiderWhereUniqueInput; +}; + +/** + * Rider updateMany + */ +export type RiderUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Riders. + */ + data: Prisma.XOR< + Prisma.RiderUpdateManyMutationInput, + Prisma.RiderUncheckedUpdateManyInput + >; + /** + * Filter which Riders to update + */ + where?: Prisma.RiderWhereInput; + /** + * Limit how many Riders to update. + */ + limit?: number; +}; + +/** + * Rider updateManyAndReturn + */ +export type RiderUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * The data used to update Riders. + */ + data: Prisma.XOR< + Prisma.RiderUpdateManyMutationInput, + Prisma.RiderUncheckedUpdateManyInput + >; + /** + * Filter which Riders to update + */ + where?: Prisma.RiderWhereInput; + /** + * Limit how many Riders to update. + */ + limit?: number; +}; + +/** + * Rider upsert + */ +export type RiderUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * The filter to search for the Rider to update in case it exists. + */ + where: Prisma.RiderWhereUniqueInput; + /** + * In case the Rider found by the `where` argument doesn't exist, create a new Rider with this data. + */ + create: Prisma.XOR; + /** + * In case the Rider was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR; +}; + +/** + * Rider delete + */ +export type RiderDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; + /** + * Filter which Rider to delete. + */ + where: Prisma.RiderWhereUniqueInput; +}; + +/** + * Rider deleteMany + */ +export type RiderDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Riders to delete + */ + where?: Prisma.RiderWhereInput; + /** + * Limit how many Riders to delete. + */ + limit?: number; +}; + +/** + * Rider.rides + */ +export type Rider$ridesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Ride + */ + select?: Prisma.RideSelect | null; + /** + * Omit specific fields from the Ride + */ + omit?: Prisma.RideOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RideInclude | null; + where?: Prisma.RideWhereInput; + orderBy?: + | Prisma.RideOrderByWithRelationInput + | Prisma.RideOrderByWithRelationInput[]; + cursor?: Prisma.RideWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.RideScalarFieldEnum | Prisma.RideScalarFieldEnum[]; +}; + +/** + * Rider.favorites + */ +export type Rider$favoritesArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Favorite + */ + select?: Prisma.FavoriteSelect | null; + /** + * Omit specific fields from the Favorite + */ + omit?: Prisma.FavoriteOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.FavoriteInclude | null; + where?: Prisma.FavoriteWhereInput; + orderBy?: + | Prisma.FavoriteOrderByWithRelationInput + | Prisma.FavoriteOrderByWithRelationInput[]; + cursor?: Prisma.FavoriteWhereUniqueInput; + take?: number; + skip?: number; + distinct?: Prisma.FavoriteScalarFieldEnum | Prisma.FavoriteScalarFieldEnum[]; +}; + +/** + * Rider without action + */ +export type RiderDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Rider + */ + select?: Prisma.RiderSelect | null; + /** + * Omit specific fields from the Rider + */ + omit?: Prisma.RiderOmit | null; + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.RiderInclude | null; +}; diff --git a/server/generated/prisma/models/Stats.ts b/server/generated/prisma/models/Stats.ts new file mode 100644 index 000000000..24e06dea6 --- /dev/null +++ b/server/generated/prisma/models/Stats.ts @@ -0,0 +1,1583 @@ +/* !!! This is code generated by Prisma. Do not edit directly. !!! */ +/* eslint-disable */ +// biome-ignore-all lint: generated file +// @ts-nocheck +/* + * This file exports the `Stats` model and its related types. + * + * 🟢 You can import this file directly. + */ +import type * as runtime from '@prisma/client/runtime/client'; +import type * as $Enums from '../enums.js'; +import type * as Prisma from '../internal/prismaNamespace.js'; + +/** + * Model Stats + * Aggregated daily ride statistics -- year and day of year + */ +export type StatsModel = + runtime.Types.Result.DefaultSelection; + +export type AggregateStats = { + _count: StatsCountAggregateOutputType | null; + _avg: StatsAvgAggregateOutputType | null; + _sum: StatsSumAggregateOutputType | null; + _min: StatsMinAggregateOutputType | null; + _max: StatsMaxAggregateOutputType | null; +}; + +export type StatsAvgAggregateOutputType = { + dayCount: number | null; + dayNoShow: number | null; + dayCancel: number | null; + nightCount: number | null; + nightNoShow: number | null; + nightCancel: number | null; +}; + +export type StatsSumAggregateOutputType = { + dayCount: number | null; + dayNoShow: number | null; + dayCancel: number | null; + nightCount: number | null; + nightNoShow: number | null; + nightCancel: number | null; +}; + +export type StatsMinAggregateOutputType = { + year: string | null; + monthDay: string | null; + dayCount: number | null; + dayNoShow: number | null; + dayCancel: number | null; + nightCount: number | null; + nightNoShow: number | null; + nightCancel: number | null; +}; + +export type StatsMaxAggregateOutputType = { + year: string | null; + monthDay: string | null; + dayCount: number | null; + dayNoShow: number | null; + dayCancel: number | null; + nightCount: number | null; + nightNoShow: number | null; + nightCancel: number | null; +}; + +export type StatsCountAggregateOutputType = { + year: number; + monthDay: number; + dayCount: number; + dayNoShow: number; + dayCancel: number; + nightCount: number; + nightNoShow: number; + nightCancel: number; + drivers: number; + _all: number; +}; + +export type StatsAvgAggregateInputType = { + dayCount?: true; + dayNoShow?: true; + dayCancel?: true; + nightCount?: true; + nightNoShow?: true; + nightCancel?: true; +}; + +export type StatsSumAggregateInputType = { + dayCount?: true; + dayNoShow?: true; + dayCancel?: true; + nightCount?: true; + nightNoShow?: true; + nightCancel?: true; +}; + +export type StatsMinAggregateInputType = { + year?: true; + monthDay?: true; + dayCount?: true; + dayNoShow?: true; + dayCancel?: true; + nightCount?: true; + nightNoShow?: true; + nightCancel?: true; +}; + +export type StatsMaxAggregateInputType = { + year?: true; + monthDay?: true; + dayCount?: true; + dayNoShow?: true; + dayCancel?: true; + nightCount?: true; + nightNoShow?: true; + nightCancel?: true; +}; + +export type StatsCountAggregateInputType = { + year?: true; + monthDay?: true; + dayCount?: true; + dayNoShow?: true; + dayCancel?: true; + nightCount?: true; + nightNoShow?: true; + nightCancel?: true; + drivers?: true; + _all?: true; +}; + +export type StatsAggregateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Stats to aggregate. + */ + where?: Prisma.StatsWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stats to fetch. + */ + orderBy?: + | Prisma.StatsOrderByWithRelationInput + | Prisma.StatsOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: Prisma.StatsWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stats from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stats. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Stats + **/ + _count?: true | StatsCountAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to average + **/ + _avg?: StatsAvgAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to sum + **/ + _sum?: StatsSumAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: StatsMinAggregateInputType; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: StatsMaxAggregateInputType; +}; + +export type GetStatsAggregateType = { + [P in keyof T & keyof AggregateStats]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; +}; + +export type StatsGroupByArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + where?: Prisma.StatsWhereInput; + orderBy?: + | Prisma.StatsOrderByWithAggregationInput + | Prisma.StatsOrderByWithAggregationInput[]; + by: Prisma.StatsScalarFieldEnum[] | Prisma.StatsScalarFieldEnum; + having?: Prisma.StatsScalarWhereWithAggregatesInput; + take?: number; + skip?: number; + _count?: StatsCountAggregateInputType | true; + _avg?: StatsAvgAggregateInputType; + _sum?: StatsSumAggregateInputType; + _min?: StatsMinAggregateInputType; + _max?: StatsMaxAggregateInputType; +}; + +export type StatsGroupByOutputType = { + year: string; + monthDay: string; + dayCount: number; + dayNoShow: number; + dayCancel: number; + nightCount: number; + nightNoShow: number; + nightCancel: number; + drivers: runtime.JsonValue; + _count: StatsCountAggregateOutputType | null; + _avg: StatsAvgAggregateOutputType | null; + _sum: StatsSumAggregateOutputType | null; + _min: StatsMinAggregateOutputType | null; + _max: StatsMaxAggregateOutputType | null; +}; + +export type GetStatsGroupByPayload = + Prisma.PrismaPromise< + Array< + Prisma.PickEnumerable & { + [P in keyof T & keyof StatsGroupByOutputType]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType; + } + > + >; + +export type StatsWhereInput = { + AND?: Prisma.StatsWhereInput | Prisma.StatsWhereInput[]; + OR?: Prisma.StatsWhereInput[]; + NOT?: Prisma.StatsWhereInput | Prisma.StatsWhereInput[]; + year?: Prisma.StringFilter<'Stats'> | string; + monthDay?: Prisma.StringFilter<'Stats'> | string; + dayCount?: Prisma.IntFilter<'Stats'> | number; + dayNoShow?: Prisma.IntFilter<'Stats'> | number; + dayCancel?: Prisma.IntFilter<'Stats'> | number; + nightCount?: Prisma.IntFilter<'Stats'> | number; + nightNoShow?: Prisma.IntFilter<'Stats'> | number; + nightCancel?: Prisma.IntFilter<'Stats'> | number; + drivers?: Prisma.JsonFilter<'Stats'>; +}; + +export type StatsOrderByWithRelationInput = { + year?: Prisma.SortOrder; + monthDay?: Prisma.SortOrder; + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; + drivers?: Prisma.SortOrder; +}; + +export type StatsWhereUniqueInput = Prisma.AtLeast< + { + year_monthDay?: Prisma.StatsYearMonthDayCompoundUniqueInput; + AND?: Prisma.StatsWhereInput | Prisma.StatsWhereInput[]; + OR?: Prisma.StatsWhereInput[]; + NOT?: Prisma.StatsWhereInput | Prisma.StatsWhereInput[]; + year?: Prisma.StringFilter<'Stats'> | string; + monthDay?: Prisma.StringFilter<'Stats'> | string; + dayCount?: Prisma.IntFilter<'Stats'> | number; + dayNoShow?: Prisma.IntFilter<'Stats'> | number; + dayCancel?: Prisma.IntFilter<'Stats'> | number; + nightCount?: Prisma.IntFilter<'Stats'> | number; + nightNoShow?: Prisma.IntFilter<'Stats'> | number; + nightCancel?: Prisma.IntFilter<'Stats'> | number; + drivers?: Prisma.JsonFilter<'Stats'>; + }, + 'year_monthDay' +>; + +export type StatsOrderByWithAggregationInput = { + year?: Prisma.SortOrder; + monthDay?: Prisma.SortOrder; + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; + drivers?: Prisma.SortOrder; + _count?: Prisma.StatsCountOrderByAggregateInput; + _avg?: Prisma.StatsAvgOrderByAggregateInput; + _max?: Prisma.StatsMaxOrderByAggregateInput; + _min?: Prisma.StatsMinOrderByAggregateInput; + _sum?: Prisma.StatsSumOrderByAggregateInput; +}; + +export type StatsScalarWhereWithAggregatesInput = { + AND?: + | Prisma.StatsScalarWhereWithAggregatesInput + | Prisma.StatsScalarWhereWithAggregatesInput[]; + OR?: Prisma.StatsScalarWhereWithAggregatesInput[]; + NOT?: + | Prisma.StatsScalarWhereWithAggregatesInput + | Prisma.StatsScalarWhereWithAggregatesInput[]; + year?: Prisma.StringWithAggregatesFilter<'Stats'> | string; + monthDay?: Prisma.StringWithAggregatesFilter<'Stats'> | string; + dayCount?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + dayNoShow?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + dayCancel?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + nightCount?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + nightNoShow?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + nightCancel?: Prisma.IntWithAggregatesFilter<'Stats'> | number; + drivers?: Prisma.JsonWithAggregatesFilter<'Stats'>; +}; + +export type StatsCreateInput = { + year: string; + monthDay: string; + dayCount?: number; + dayNoShow?: number; + dayCancel?: number; + nightCount?: number; + nightNoShow?: number; + nightCancel?: number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsUncheckedCreateInput = { + year: string; + monthDay: string; + dayCount?: number; + dayNoShow?: number; + dayCancel?: number; + nightCount?: number; + nightNoShow?: number; + nightCancel?: number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsUpdateInput = { + year?: Prisma.StringFieldUpdateOperationsInput | string; + monthDay?: Prisma.StringFieldUpdateOperationsInput | string; + dayCount?: Prisma.IntFieldUpdateOperationsInput | number; + dayNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + dayCancel?: Prisma.IntFieldUpdateOperationsInput | number; + nightCount?: Prisma.IntFieldUpdateOperationsInput | number; + nightNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + nightCancel?: Prisma.IntFieldUpdateOperationsInput | number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsUncheckedUpdateInput = { + year?: Prisma.StringFieldUpdateOperationsInput | string; + monthDay?: Prisma.StringFieldUpdateOperationsInput | string; + dayCount?: Prisma.IntFieldUpdateOperationsInput | number; + dayNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + dayCancel?: Prisma.IntFieldUpdateOperationsInput | number; + nightCount?: Prisma.IntFieldUpdateOperationsInput | number; + nightNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + nightCancel?: Prisma.IntFieldUpdateOperationsInput | number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsCreateManyInput = { + year: string; + monthDay: string; + dayCount?: number; + dayNoShow?: number; + dayCancel?: number; + nightCount?: number; + nightNoShow?: number; + nightCancel?: number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsUpdateManyMutationInput = { + year?: Prisma.StringFieldUpdateOperationsInput | string; + monthDay?: Prisma.StringFieldUpdateOperationsInput | string; + dayCount?: Prisma.IntFieldUpdateOperationsInput | number; + dayNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + dayCancel?: Prisma.IntFieldUpdateOperationsInput | number; + nightCount?: Prisma.IntFieldUpdateOperationsInput | number; + nightNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + nightCancel?: Prisma.IntFieldUpdateOperationsInput | number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsUncheckedUpdateManyInput = { + year?: Prisma.StringFieldUpdateOperationsInput | string; + monthDay?: Prisma.StringFieldUpdateOperationsInput | string; + dayCount?: Prisma.IntFieldUpdateOperationsInput | number; + dayNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + dayCancel?: Prisma.IntFieldUpdateOperationsInput | number; + nightCount?: Prisma.IntFieldUpdateOperationsInput | number; + nightNoShow?: Prisma.IntFieldUpdateOperationsInput | number; + nightCancel?: Prisma.IntFieldUpdateOperationsInput | number; + drivers?: Prisma.JsonNullValueInput | runtime.InputJsonValue; +}; + +export type StatsYearMonthDayCompoundUniqueInput = { + year: string; + monthDay: string; +}; + +export type StatsCountOrderByAggregateInput = { + year?: Prisma.SortOrder; + monthDay?: Prisma.SortOrder; + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; + drivers?: Prisma.SortOrder; +}; + +export type StatsAvgOrderByAggregateInput = { + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; +}; + +export type StatsMaxOrderByAggregateInput = { + year?: Prisma.SortOrder; + monthDay?: Prisma.SortOrder; + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; +}; + +export type StatsMinOrderByAggregateInput = { + year?: Prisma.SortOrder; + monthDay?: Prisma.SortOrder; + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; +}; + +export type StatsSumOrderByAggregateInput = { + dayCount?: Prisma.SortOrder; + dayNoShow?: Prisma.SortOrder; + dayCancel?: Prisma.SortOrder; + nightCount?: Prisma.SortOrder; + nightNoShow?: Prisma.SortOrder; + nightCancel?: Prisma.SortOrder; +}; + +export type IntFieldUpdateOperationsInput = { + set?: number; + increment?: number; + decrement?: number; + multiply?: number; + divide?: number; +}; + +export type StatsSelect< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + year?: boolean; + monthDay?: boolean; + dayCount?: boolean; + dayNoShow?: boolean; + dayCancel?: boolean; + nightCount?: boolean; + nightNoShow?: boolean; + nightCancel?: boolean; + drivers?: boolean; + }, + ExtArgs['result']['stats'] +>; + +export type StatsSelectCreateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + year?: boolean; + monthDay?: boolean; + dayCount?: boolean; + dayNoShow?: boolean; + dayCancel?: boolean; + nightCount?: boolean; + nightNoShow?: boolean; + nightCancel?: boolean; + drivers?: boolean; + }, + ExtArgs['result']['stats'] +>; + +export type StatsSelectUpdateManyAndReturn< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetSelect< + { + year?: boolean; + monthDay?: boolean; + dayCount?: boolean; + dayNoShow?: boolean; + dayCancel?: boolean; + nightCount?: boolean; + nightNoShow?: boolean; + nightCancel?: boolean; + drivers?: boolean; + }, + ExtArgs['result']['stats'] +>; + +export type StatsSelectScalar = { + year?: boolean; + monthDay?: boolean; + dayCount?: boolean; + dayNoShow?: boolean; + dayCancel?: boolean; + nightCount?: boolean; + nightNoShow?: boolean; + nightCancel?: boolean; + drivers?: boolean; +}; + +export type StatsOmit< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = runtime.Types.Extensions.GetOmit< + | 'year' + | 'monthDay' + | 'dayCount' + | 'dayNoShow' + | 'dayCancel' + | 'nightCount' + | 'nightNoShow' + | 'nightCancel' + | 'drivers', + ExtArgs['result']['stats'] +>; + +export type $StatsPayload< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + name: 'Stats'; + objects: {}; + scalars: runtime.Types.Extensions.GetPayloadResult< + { + year: string; + monthDay: string; + dayCount: number; + dayNoShow: number; + dayCancel: number; + nightCount: number; + nightNoShow: number; + nightCancel: number; + drivers: runtime.JsonValue; + }, + ExtArgs['result']['stats'] + >; + composites: {}; +}; + +export type StatsGetPayload< + S extends boolean | null | undefined | StatsDefaultArgs +> = runtime.Types.Result.GetResult; + +export type StatsCountArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = Omit & { + select?: StatsCountAggregateInputType | true; +}; + +export interface StatsDelegate< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> { + [K: symbol]: { + types: Prisma.TypeMap['model']['Stats']; + meta: { name: 'Stats' }; + }; + /** + * Find zero or one Stats that matches the filter. + * @param {StatsFindUniqueArgs} args - Arguments to find a Stats + * @example + * // Get one Stats + * const stats = await prisma.stats.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'findUnique', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find one Stats that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {StatsFindUniqueOrThrowArgs} args - Arguments to find a Stats + * @example + * // Get one Stats + * const stats = await prisma.stats.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'findUniqueOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Stats that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsFindFirstArgs} args - Arguments to find a Stats + * @example + * // Get one Stats + * const stats = await prisma.stats.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'findFirst', + GlobalOmitOptions + > | null, + null, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find the first Stats that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsFindFirstOrThrowArgs} args - Arguments to find a Stats + * @example + * // Get one Stats + * const stats = await prisma.stats.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow( + args?: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'findFirstOrThrow', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Find zero or more Stats that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Stats + * const stats = await prisma.stats.findMany() + * + * // Get first 10 Stats + * const stats = await prisma.stats.findMany({ take: 10 }) + * + * // Only select the `year` + * const statsWithYearOnly = await prisma.stats.findMany({ select: { year: true } }) + * + */ + findMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'findMany', + GlobalOmitOptions + > + >; + + /** + * Create a Stats. + * @param {StatsCreateArgs} args - Arguments to create a Stats. + * @example + * // Create one Stats + * const Stats = await prisma.stats.create({ + * data: { + * // ... data to create a Stats + * } + * }) + * + */ + create( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'create', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Create many Stats. + * @param {StatsCreateManyArgs} args - Arguments to create many Stats. + * @example + * // Create many Stats + * const stats = await prisma.stats.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Create many Stats and returns the data saved in the database. + * @param {StatsCreateManyAndReturnArgs} args - Arguments to create many Stats. + * @example + * // Create many Stats + * const stats = await prisma.stats.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Stats and only return the `year` + * const statsWithYearOnly = await prisma.stats.createManyAndReturn({ + * select: { year: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'createManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Delete a Stats. + * @param {StatsDeleteArgs} args - Arguments to delete one Stats. + * @example + * // Delete one Stats + * const Stats = await prisma.stats.delete({ + * where: { + * // ... filter to delete one Stats + * } + * }) + * + */ + delete( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'delete', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Update one Stats. + * @param {StatsUpdateArgs} args - Arguments to update one Stats. + * @example + * // Update one Stats + * const stats = await prisma.stats.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'update', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Delete zero or more Stats. + * @param {StatsDeleteManyArgs} args - Arguments to filter Stats to delete. + * @example + * // Delete a few Stats + * const { count } = await prisma.stats.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany( + args?: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Stats. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Stats + * const stats = await prisma.stats.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise; + + /** + * Update zero or more Stats and returns the data updated in the database. + * @param {StatsUpdateManyAndReturnArgs} args - Arguments to update many Stats. + * @example + * // Update many Stats + * const stats = await prisma.stats.updateManyAndReturn({ + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * + * // Update zero or more Stats and only return the `year` + * const statsWithYearOnly = await prisma.stats.updateManyAndReturn({ + * select: { year: true }, + * where: { + * // ... provide filter here + * }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + updateManyAndReturn( + args: Prisma.SelectSubset> + ): Prisma.PrismaPromise< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'updateManyAndReturn', + GlobalOmitOptions + > + >; + + /** + * Create or update one Stats. + * @param {StatsUpsertArgs} args - Arguments to update or create a Stats. + * @example + * // Update or create a Stats + * const stats = await prisma.stats.upsert({ + * create: { + * // ... data to create a Stats + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Stats we want to update + * } + * }) + */ + upsert( + args: Prisma.SelectSubset> + ): Prisma.Prisma__StatsClient< + runtime.Types.Result.GetResult< + Prisma.$StatsPayload, + T, + 'upsert', + GlobalOmitOptions + >, + never, + ExtArgs, + GlobalOmitOptions + >; + + /** + * Count the number of Stats. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsCountArgs} args - Arguments to filter Stats to count. + * @example + * // Count the number of Stats + * const count = await prisma.stats.count({ + * where: { + * // ... the filter for the Stats we want to count + * } + * }) + **/ + count( + args?: Prisma.Subset + ): Prisma.PrismaPromise< + T extends runtime.Types.Utils.Record<'select', any> + ? T['select'] extends true + ? number + : Prisma.GetScalarType + : number + >; + + /** + * Allows you to perform aggregations operations on a Stats. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate( + args: Prisma.Subset + ): Prisma.PrismaPromise>; + + /** + * Group by Stats. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {StatsGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends StatsGroupByArgs, + HasSelectOrTake extends Prisma.Or< + Prisma.Extends<'skip', Prisma.Keys>, + Prisma.Extends<'take', Prisma.Keys> + >, + OrderByArg extends Prisma.True extends HasSelectOrTake + ? { orderBy: StatsGroupByArgs['orderBy'] } + : { orderBy?: StatsGroupByArgs['orderBy'] }, + OrderFields extends Prisma.ExcludeUnderscoreKeys< + Prisma.Keys> + >, + ByFields extends Prisma.MaybeTupleToUnion, + ByValid extends Prisma.Has, + HavingFields extends Prisma.GetHavingFields, + HavingValid extends Prisma.Has, + ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, + InputErrors extends ByEmpty extends Prisma.True + ? `Error: "by" must not be empty.` + : HavingValid extends Prisma.False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [Error, 'Field ', P, ` in "having" needs to be provided in "by"`]; + }[HavingFields] + : 'take' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Prisma.Keys + ? 'orderBy' extends Prisma.Keys + ? ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends Prisma.True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`; + }[OrderFields] + >( + args: Prisma.SubsetIntersection & + InputErrors + ): {} extends InputErrors + ? GetStatsGroupByPayload + : Prisma.PrismaPromise; + /** + * Fields of the Stats model + */ + readonly fields: StatsFieldRefs; +} + +/** + * The delegate class that acts as a "Promise-like" for Stats. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ +export interface Prisma__StatsClient< + T, + Null = never, + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, + GlobalOmitOptions = {} +> extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: 'PrismaPromise'; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onfulfilled?: + | ((value: T) => TResult1 | PromiseLike) + | undefined + | null, + onrejected?: + | ((reason: any) => TResult2 | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onrejected?: + | ((reason: any) => TResult | PromiseLike) + | undefined + | null + ): runtime.Types.Utils.JsPromise; + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally( + onfinally?: (() => void) | undefined | null + ): runtime.Types.Utils.JsPromise; +} + +/** + * Fields of the Stats model + */ +export interface StatsFieldRefs { + readonly year: Prisma.FieldRef<'Stats', 'String'>; + readonly monthDay: Prisma.FieldRef<'Stats', 'String'>; + readonly dayCount: Prisma.FieldRef<'Stats', 'Int'>; + readonly dayNoShow: Prisma.FieldRef<'Stats', 'Int'>; + readonly dayCancel: Prisma.FieldRef<'Stats', 'Int'>; + readonly nightCount: Prisma.FieldRef<'Stats', 'Int'>; + readonly nightNoShow: Prisma.FieldRef<'Stats', 'Int'>; + readonly nightCancel: Prisma.FieldRef<'Stats', 'Int'>; + readonly drivers: Prisma.FieldRef<'Stats', 'Json'>; +} + +// Custom InputTypes +/** + * Stats findUnique + */ +export type StatsFindUniqueArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter, which Stats to fetch. + */ + where: Prisma.StatsWhereUniqueInput; +}; + +/** + * Stats findUniqueOrThrow + */ +export type StatsFindUniqueOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter, which Stats to fetch. + */ + where: Prisma.StatsWhereUniqueInput; +}; + +/** + * Stats findFirst + */ +export type StatsFindFirstArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter, which Stats to fetch. + */ + where?: Prisma.StatsWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stats to fetch. + */ + orderBy?: + | Prisma.StatsOrderByWithRelationInput + | Prisma.StatsOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stats. + */ + cursor?: Prisma.StatsWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stats from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stats. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stats. + */ + distinct?: Prisma.StatsScalarFieldEnum | Prisma.StatsScalarFieldEnum[]; +}; + +/** + * Stats findFirstOrThrow + */ +export type StatsFindFirstOrThrowArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter, which Stats to fetch. + */ + where?: Prisma.StatsWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stats to fetch. + */ + orderBy?: + | Prisma.StatsOrderByWithRelationInput + | Prisma.StatsOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Stats. + */ + cursor?: Prisma.StatsWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stats from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stats. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stats. + */ + distinct?: Prisma.StatsScalarFieldEnum | Prisma.StatsScalarFieldEnum[]; +}; + +/** + * Stats findMany + */ +export type StatsFindManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter, which Stats to fetch. + */ + where?: Prisma.StatsWhereInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Stats to fetch. + */ + orderBy?: + | Prisma.StatsOrderByWithRelationInput + | Prisma.StatsOrderByWithRelationInput[]; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Stats. + */ + cursor?: Prisma.StatsWhereUniqueInput; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Stats from the position of the cursor. + */ + take?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Stats. + */ + skip?: number; + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Stats. + */ + distinct?: Prisma.StatsScalarFieldEnum | Prisma.StatsScalarFieldEnum[]; +}; + +/** + * Stats create + */ +export type StatsCreateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * The data needed to create a Stats. + */ + data: Prisma.XOR; +}; + +/** + * Stats createMany + */ +export type StatsCreateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to create many Stats. + */ + data: Prisma.StatsCreateManyInput | Prisma.StatsCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Stats createManyAndReturn + */ +export type StatsCreateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelectCreateManyAndReturn | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * The data used to create many Stats. + */ + data: Prisma.StatsCreateManyInput | Prisma.StatsCreateManyInput[]; + skipDuplicates?: boolean; +}; + +/** + * Stats update + */ +export type StatsUpdateArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * The data needed to update a Stats. + */ + data: Prisma.XOR; + /** + * Choose, which Stats to update. + */ + where: Prisma.StatsWhereUniqueInput; +}; + +/** + * Stats updateMany + */ +export type StatsUpdateManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * The data used to update Stats. + */ + data: Prisma.XOR< + Prisma.StatsUpdateManyMutationInput, + Prisma.StatsUncheckedUpdateManyInput + >; + /** + * Filter which Stats to update + */ + where?: Prisma.StatsWhereInput; + /** + * Limit how many Stats to update. + */ + limit?: number; +}; + +/** + * Stats updateManyAndReturn + */ +export type StatsUpdateManyAndReturnArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelectUpdateManyAndReturn | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * The data used to update Stats. + */ + data: Prisma.XOR< + Prisma.StatsUpdateManyMutationInput, + Prisma.StatsUncheckedUpdateManyInput + >; + /** + * Filter which Stats to update + */ + where?: Prisma.StatsWhereInput; + /** + * Limit how many Stats to update. + */ + limit?: number; +}; + +/** + * Stats upsert + */ +export type StatsUpsertArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * The filter to search for the Stats to update in case it exists. + */ + where: Prisma.StatsWhereUniqueInput; + /** + * In case the Stats found by the `where` argument doesn't exist, create a new Stats with this data. + */ + create: Prisma.XOR; + /** + * In case the Stats was found with the provided `where` argument, update it with this data. + */ + update: Prisma.XOR; +}; + +/** + * Stats delete + */ +export type StatsDeleteArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; + /** + * Filter which Stats to delete. + */ + where: Prisma.StatsWhereUniqueInput; +}; + +/** + * Stats deleteMany + */ +export type StatsDeleteManyArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Filter which Stats to delete + */ + where?: Prisma.StatsWhereInput; + /** + * Limit how many Stats to delete. + */ + limit?: number; +}; + +/** + * Stats without action + */ +export type StatsDefaultArgs< + ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs +> = { + /** + * Select specific fields to fetch from the Stats + */ + select?: Prisma.StatsSelect | null; + /** + * Omit specific fields from the Stats + */ + omit?: Prisma.StatsOmit | null; +}; diff --git a/server/package.json b/server/package.json index 9a1788239..aff262c77 100644 --- a/server/package.json +++ b/server/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "description": "Frontend code for Carriage", "main": "app.js", + "engines": { + "node": ">=22.15.0" + }, "dependencies": { "@aws-sdk/client-dynamodb": "^3.656.0", "@aws-sdk/client-s3": "^3.654.0", @@ -10,6 +13,8 @@ "@carriage-web/shared": "workspace:*", "@fast-csv/format": "^5.0.0", "@node-saml/passport-saml": "^5.1.0", + "@prisma/adapter-pg": "7.4.2", + "@prisma/client": "7.4.2", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jsonwebtoken": "^9.0.7", @@ -20,7 +25,6 @@ "addresser": "^1.1.20", "body-parser": "^1.20.3", "cors": "^2.8.5", - "dotenv": "^16.4.5", "dynamoose": "^4.0.1", "express": "^4.21.2", "express-session": "^1.18.2", @@ -31,6 +35,7 @@ "node-schedule": "^2.1.1", "nodemon": "^3.1.7", "passport": "^0.7.0", + "pg": "^8.20.0", "session-file-store": "^1.5.0", "uuid": "^10.0.0", "validator": "^13.12.0", @@ -39,7 +44,9 @@ "scripts": { "build": "tsc --project tsconfig.build.json", "start": "node build/app.js", - "dev": "nodemon --exec \"ts-node\" src/app.ts", + "dev": "nodemon --exec tsx src/app.ts", + "studio": "prisma studio", + "db:delete-admin": "tsx scripts/delete-admin.ts", "type-check": "tsc --project tsconfig.json --pretty --noEmit", "test": "cross-env NODE_ENV=test mocha -r ts-node/register \"tests/**/*.ts\" --exit --timeout 30000", "test:watch": "cross-env NODE_ENV=test nodemon --watch . --exec 'mocha -r ts-node/register \"tests/**/*.ts\" --timeout 10000' --ext ts" @@ -59,11 +66,14 @@ "@types/express-session": "^1.18.2", "@types/mocha": "^10.0.8", "@types/passport": "^1.0.17", + "@types/pg": "^8.18.0", "@types/session-file-store": "^1.2.6", "@types/supertest": "^6.0.2", "chai": "^4.5.0", "cross-env": "^7.0.3", + "dotenv": "^16.6.1", "mocha": "^11.0.0", + "prisma": "7.7.0", "supertest": "^7.0.0", "ts-node": "^9.1.1", "typescript": "catalog:" diff --git a/server/prisma.config.ts b/server/prisma.config.ts new file mode 100644 index 000000000..f25aa4fb9 --- /dev/null +++ b/server/prisma.config.ts @@ -0,0 +1,15 @@ +// This file was generated by Prisma, and assumes you have installed the following: +// npm install --save-dev prisma dotenv +import 'dotenv/config'; +import { defineConfig, env } from 'prisma/config'; + +export default defineConfig({ + schema: 'prisma/schema.prisma', + migrations: { + path: 'prisma/migrations', + seed: 'tsx prisma/seed.ts', + }, + datasource: { + url: env('DATABASE_URL'), + }, +}); diff --git a/server/prisma/migrations/20260310000127_init/migration.sql b/server/prisma/migrations/20260310000127_init/migration.sql new file mode 100644 index 000000000..a55832af2 --- /dev/null +++ b/server/prisma/migrations/20260310000127_init/migration.sql @@ -0,0 +1,206 @@ +-- CreateEnum +CREATE TYPE "RideType" AS ENUM ('UPCOMING', 'PAST', 'ACTIVE'); + +-- CreateEnum +CREATE TYPE "SchedulingState" AS ENUM ('SCHEDULED', 'UNSCHEDULED'); + +-- CreateEnum +CREATE TYPE "RideStatus" AS ENUM ('NOT_STARTED', 'ON_THE_WAY', 'ARRIVED', 'PICKED_UP', 'COMPLETED', 'NO_SHOW', 'CANCELLED'); + +-- CreateEnum +CREATE TYPE "DayOfWeek" AS ENUM ('MON', 'TUE', 'WED', 'THURS', 'FRI'); + +-- CreateEnum +CREATE TYPE "Accessibility" AS ENUM ('ASSISTANT', 'CRUTCHES', 'WHEELCHAIR', 'MOTOR_SCOOTER', 'KNEE_SCOOTER', 'LOW_VISION', 'SERVICE_ANIMALS'); + +-- CreateEnum +CREATE TYPE "Organization" AS ENUM ('REDRUNNER', 'CULIFT'); + +-- CreateEnum +CREATE TYPE "LocationTag" AS ENUM ('EAST', 'CENTRAL', 'NORTH', 'WEST', 'CTOWN', 'DTOWN', 'INACTIVE', 'CUSTOM'); + +-- CreateEnum +CREATE TYPE "UserType" AS ENUM ('ADMIN', 'RIDER', 'DRIVER'); + +-- CreateEnum +CREATE TYPE "AdminRole" AS ENUM ('SDS_ADMIN', 'REDRUNNER_ADMIN'); + +-- CreateEnum +CREATE TYPE "NotificationEvent" AS ENUM ('NOT_STARTED', 'ON_THE_WAY', 'ARRIVED', 'PICKED_UP', 'COMPLETED', 'NO_SHOW', 'CANCELLED'); + +-- CreateTable +CREATE TABLE "Location" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "address" TEXT NOT NULL, + "shortName" TEXT NOT NULL, + "info" TEXT, + "tag" "LocationTag" NOT NULL, + "lat" DOUBLE PRECISION NOT NULL, + "lng" DOUBLE PRECISION NOT NULL, + "photoLink" TEXT, + "images" TEXT[], + + CONSTRAINT "Location_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Driver" ( + "id" TEXT NOT NULL, + "firstName" TEXT NOT NULL, + "lastName" TEXT NOT NULL, + "phoneNumber" TEXT NOT NULL, + "email" TEXT NOT NULL, + "photoLink" TEXT, + "availability" "DayOfWeek"[], + "active" BOOLEAN NOT NULL DEFAULT true, + "joinDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Driver_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Rider" ( + "id" TEXT NOT NULL, + "firstName" TEXT NOT NULL, + "lastName" TEXT NOT NULL, + "phoneNumber" TEXT, + "email" TEXT NOT NULL, + "accessibility" "Accessibility"[], + "organization" "Organization", + "description" TEXT, + "joinDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "endDate" TIMESTAMP(3), + "address" TEXT, + "photoLink" TEXT, + "active" BOOLEAN NOT NULL DEFAULT true, + + CONSTRAINT "Rider_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Ride" ( + "id" TEXT NOT NULL, + "type" "RideType" NOT NULL DEFAULT 'UPCOMING', + "status" "RideStatus" NOT NULL DEFAULT 'NOT_STARTED', + "schedulingState" "SchedulingState" NOT NULL DEFAULT 'UNSCHEDULED', + "startLocationId" TEXT NOT NULL, + "endLocationId" TEXT NOT NULL, + "startTime" TIMESTAMP(3) NOT NULL, + "endTime" TIMESTAMP(3) NOT NULL, + "driverId" TEXT, + "isRecurring" BOOLEAN NOT NULL DEFAULT false, + "rrule" TEXT, + "exdate" TEXT[], + "rdate" TEXT[], + "parentRideId" TEXT, + "recurrenceId" TEXT, + "timezone" TEXT NOT NULL DEFAULT 'America/New_York', + + CONSTRAINT "Ride_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Favorite" ( + "userId" TEXT NOT NULL, + "rideId" TEXT NOT NULL, + "favoritedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Favorite_pkey" PRIMARY KEY ("userId","rideId") +); + +-- CreateTable +CREATE TABLE "Admin" ( + "id" TEXT NOT NULL, + "firstName" TEXT NOT NULL, + "lastName" TEXT NOT NULL, + "roles" "AdminRole"[], + "isDriver" BOOLEAN NOT NULL DEFAULT false, + "phoneNumber" TEXT NOT NULL, + "email" TEXT NOT NULL, + "photoLink" TEXT, + + CONSTRAINT "Admin_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Stats" ( + "year" TEXT NOT NULL, + "monthDay" TEXT NOT NULL, + "dayCount" INTEGER NOT NULL DEFAULT 0, + "dayNoShow" INTEGER NOT NULL DEFAULT 0, + "dayCancel" INTEGER NOT NULL DEFAULT 0, + "nightCount" INTEGER NOT NULL DEFAULT 0, + "nightNoShow" INTEGER NOT NULL DEFAULT 0, + "nightCancel" INTEGER NOT NULL DEFAULT 0, + "drivers" JSONB NOT NULL DEFAULT '{}', + + CONSTRAINT "Stats_pkey" PRIMARY KEY ("year","monthDay") +); + +-- CreateTable +CREATE TABLE "Notification" ( + "id" TEXT NOT NULL, + "notifEvent" "NotificationEvent" NOT NULL, + "userID" TEXT NOT NULL, + "rideID" TEXT NOT NULL, + "title" TEXT NOT NULL, + "body" TEXT NOT NULL, + "timeSent" TIMESTAMP(3) NOT NULL, + "read" BOOLEAN NOT NULL, + + CONSTRAINT "Notification_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "_RideRiders" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL, + + CONSTRAINT "_RideRiders_AB_pkey" PRIMARY KEY ("A","B") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Driver_email_key" ON "Driver"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Rider_email_key" ON "Rider"("email"); + +-- CreateIndex +CREATE INDEX "Ride_startTime_idx" ON "Ride"("startTime"); + +-- CreateIndex +CREATE INDEX "Ride_endTime_idx" ON "Ride"("endTime"); + +-- CreateIndex +CREATE INDEX "Ride_driverId_idx" ON "Ride"("driverId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Admin_email_key" ON "Admin"("email"); + +-- CreateIndex +CREATE INDEX "_RideRiders_B_index" ON "_RideRiders"("B"); + +-- AddForeignKey +ALTER TABLE "Ride" ADD CONSTRAINT "Ride_startLocationId_fkey" FOREIGN KEY ("startLocationId") REFERENCES "Location"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Ride" ADD CONSTRAINT "Ride_endLocationId_fkey" FOREIGN KEY ("endLocationId") REFERENCES "Location"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Ride" ADD CONSTRAINT "Ride_driverId_fkey" FOREIGN KEY ("driverId") REFERENCES "Driver"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Favorite" ADD CONSTRAINT "Favorite_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Rider"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Favorite" ADD CONSTRAINT "Favorite_rideId_fkey" FOREIGN KEY ("rideId") REFERENCES "Ride"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Notification" ADD CONSTRAINT "Notification_rideID_fkey" FOREIGN KEY ("rideID") REFERENCES "Ride"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_RideRiders" ADD CONSTRAINT "_RideRiders_A_fkey" FOREIGN KEY ("A") REFERENCES "Ride"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_RideRiders" ADD CONSTRAINT "_RideRiders_B_fkey" FOREIGN KEY ("B") REFERENCES "Rider"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/server/prisma/migrations/20260422204109_merge_admin_driver_to_employee/migration.sql b/server/prisma/migrations/20260422204109_merge_admin_driver_to_employee/migration.sql new file mode 100644 index 000000000..669cab011 --- /dev/null +++ b/server/prisma/migrations/20260422204109_merge_admin_driver_to_employee/migration.sql @@ -0,0 +1,39 @@ +/* + Warnings: + + - You are about to drop the `Admin` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `Driver` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- DropForeignKey +ALTER TABLE "Ride" DROP CONSTRAINT "Ride_driverId_fkey"; + +-- DropTable +DROP TABLE "Admin"; + +-- DropTable +DROP TABLE "Driver"; + +-- CreateTable +CREATE TABLE "Employee" ( + "id" TEXT NOT NULL, + "firstName" TEXT NOT NULL, + "lastName" TEXT NOT NULL, + "phoneNumber" TEXT NOT NULL, + "email" TEXT NOT NULL, + "photoLink" TEXT, + "isAdmin" BOOLEAN NOT NULL DEFAULT false, + "adminRoles" "AdminRole"[], + "isDriver" BOOLEAN NOT NULL DEFAULT false, + "availability" "DayOfWeek"[], + "active" BOOLEAN NOT NULL DEFAULT true, + "joinDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Employee_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Employee_email_key" ON "Employee"("email"); + +-- AddForeignKey +ALTER TABLE "Ride" ADD CONSTRAINT "Ride_driverId_fkey" FOREIGN KEY ("driverId") REFERENCES "Employee"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/server/prisma/migrations/migration_lock.toml b/server/prisma/migrations/migration_lock.toml new file mode 100644 index 000000000..044d57cdb --- /dev/null +++ b/server/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma new file mode 100644 index 000000000..55f222b73 --- /dev/null +++ b/server/prisma/schema.prisma @@ -0,0 +1,242 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client" + output = "../generated/prisma" +} + +datasource db { + provider = "postgresql" +} + +// -------ENUMS------- + +enum RideType { + UPCOMING + PAST + ACTIVE +} + +enum SchedulingState { + SCHEDULED + UNSCHEDULED +} + +enum RideStatus { + NOT_STARTED + ON_THE_WAY + ARRIVED + PICKED_UP + COMPLETED + NO_SHOW + CANCELLED +} + +enum DayOfWeek { + MON + TUE + WED + THURS + FRI +} + +enum Accessibility { + ASSISTANT + CRUTCHES + WHEELCHAIR + MOTOR_SCOOTER + KNEE_SCOOTER + LOW_VISION + SERVICE_ANIMALS +} + +enum Organization { + REDRUNNER + CULIFT +} + +enum LocationTag { + EAST + CENTRAL + NORTH + WEST + CTOWN + DTOWN + INACTIVE + CUSTOM +} + +enum UserType { + ADMIN + RIDER + DRIVER +} + +enum AdminRole { + SDS_ADMIN + REDRUNNER_ADMIN +} + +enum NotificationEvent { + NOT_STARTED + ON_THE_WAY + ARRIVED + PICKED_UP + COMPLETED + NO_SHOW + CANCELLED +} + +// -----MODELS----------- + +/// A named pickup or drop-off point used in rides +model Location { + id String @id @default(uuid()) + name String + address String + shortName String + info String? + tag LocationTag + lat Float + lng Float + photoLink String? + images String[] + + ridesAsStart Ride[] @relation("StartLocation") + ridesAsEnd Ride[] @relation("EndLocation") +} + +//-------------------- + +/// A platform employee who may be an admin, a driver, or both +model Employee { + id String @id @default(uuid()) + firstName String + lastName String + phoneNumber String + email String @unique + photoLink String? + isAdmin Boolean @default(false) + adminRoles AdminRole[] + isDriver Boolean @default(false) + availability DayOfWeek[] + active Boolean @default(true) + joinDate DateTime @default(now()) + rides Ride[] +} + +//-------------------- + +/// A rider who requests and takes rides +model Rider { + id String @id @default(uuid()) + firstName String + lastName String + phoneNumber String? + email String @unique + accessibility Accessibility[] + organization Organization? + description String? + joinDate DateTime @default(now()) + endDate DateTime? + address String? + photoLink String? + active Boolean @default(true) + + rides Ride[] @relation("RideRiders") + favorites Favorite[] +} + +//-------------------- + +/// A scheduled trip from a start location to an end location +model Ride { + id String @id @default(uuid()) + type RideType @default(UPCOMING) + status RideStatus @default(NOT_STARTED) + schedulingState SchedulingState @default(UNSCHEDULED) + + startLocationId String + startLocation Location @relation("StartLocation", fields: [startLocationId], references: [id]) + + endLocationId String + endLocation Location @relation("EndLocation", fields: [endLocationId], references: [id]) + + startTime DateTime + endTime DateTime + + riders Rider[] @relation("RideRiders") + + driverId String? + driver Employee? @relation(fields: [driverId], references: [id]) + + // RFC 5545 recurrence placeholders + isRecurring Boolean @default(false) + rrule String? + exdate String[] + rdate String[] + parentRideId String? + recurrenceId String? + timezone String @default("America/New_York") + + favorites Favorite[] + notifications Notification[] + + @@index([startTime]) + @@index([endTime]) + @@index([driverId]) +} + +//-------------------- + +/// Tracks which riders have favorited which rides +model Favorite { + userId String + rideId String + favoritedAt DateTime @default(now()) + + rider Rider @relation(fields: [userId], references: [id]) + ride Ride @relation(fields: [rideId], references: [id]) + + @@id([userId, rideId]) +} + +//-------------------- + + +//-------------------- + +/// Aggregated daily ride statistics -- year and day of year +model Stats { + year String + monthDay String // Format: MM-DD + dayCount Int @default(0) + dayNoShow Int @default(0) + dayCancel Int @default(0) + nightCount Int @default(0) + nightNoShow Int @default(0) + nightCancel Int @default(0) + drivers Json @default("{}") // Dynamic map of driverId -> ride count + + @@id([year, monthDay]) +} + +//-------------------- + +/// A push notification sent to a user about a ride status change +model Notification { + id String @id @default(uuid()) + notifEvent NotificationEvent + userID String + rideID String + title String + body String + timeSent DateTime + read Boolean + + ride Ride @relation(fields: [rideID], references: [id]) +} \ No newline at end of file diff --git a/server/prisma/seed.ts b/server/prisma/seed.ts new file mode 100644 index 000000000..05b9ba0b9 --- /dev/null +++ b/server/prisma/seed.ts @@ -0,0 +1,39 @@ +import 'dotenv/config'; +import { Pool } from 'pg'; +import { PrismaPg } from '@prisma/adapter-pg'; +import { PrismaClient } from '../generated/prisma/client'; + +const connectionString = `${process.env.DATABASE_URL}`; +const pool = new Pool({ connectionString }); +const adapter = new PrismaPg(pool); +const prisma = new PrismaClient({ adapter }); + +async function main() { + // add yourself! + const you = await (prisma as any).employee.upsert({ + where: { email: 'XXXXXX@cornell.edu' }, + update: {}, + create: { + email: 'XXXXXX@cornell.edu', + firstName: '', + lastName: '', + phoneNumber: '', // numbers only! + isAdmin: true, + adminRoles: ['SDS_ADMIN', 'REDRUNNER_ADMIN'], + isDriver: true, + }, + }); + console.log({ you }); +} + +main() + .then(async () => { + await prisma.$disconnect(); + await pool.end(); + }) + .catch(async (e) => { + console.error(e); + await prisma.$disconnect(); + await pool.end(); + process.exit(1); + }); diff --git a/server/src/auth/sso-helpers.ts b/server/src/auth/sso-helpers.ts index 9f5518f38..e29bdab60 100644 --- a/server/src/auth/sso-helpers.ts +++ b/server/src/auth/sso-helpers.ts @@ -1,6 +1,4 @@ -import { Rider } from '../models/rider'; -import { Admin } from '../models/admin'; -import { Driver } from '../models/driver'; +import { prisma } from '../db/prisma'; /** * Extract NetID from Cornell email address @@ -18,8 +16,8 @@ export function extractNetIDFromEmail(email: string): string | null { } /** - * Find user by NetID (extracted from email) across all user types - * Matches the same validation logic as Google OAuth in router/auth.ts + * Find user by NetID (extracted from email) across all user types. + * Admin and Driver both resolve from the unified Employee table. * @param netid - Cornell NetID (e.g., "dka34") * @param requestedUserType - Optional: specific user type to search for (Rider, Admin, Driver) * @returns User object and type, or error message if validation fails @@ -31,75 +29,48 @@ export async function findUserByNetID( const cornellEmail = `${netid}@cornell.edu`; try { - // If a specific userType is requested, only search that table (matching Google OAuth behavior) - if (requestedUserType) { - if (requestedUserType === 'Rider') { - const riders = await Rider.scan('email').eq(cornellEmail).exec(); - if (riders.length > 0) { - const rider = riders[0]; - // IMPORTANT: Check if Rider is active (same as Google OAuth) - if (!rider.active) { - return { error: 'User not active', userType: 'Rider' }; - } - return { user: rider, userType: 'Rider' }; - } - return null; // User not found in Riders table - } - - if (requestedUserType === 'Admin') { - // Check Admins table first - const admins = await Admin.scan('email').eq(cornellEmail).exec(); - if (admins.length > 0) { - return { user: admins[0], userType: 'Admin' }; - } - - // Fallback: Check Drivers table for admin-flagged drivers (matches Google OAuth) - const drivers = await Driver.scan('email').eq(cornellEmail).exec(); - if (drivers.length > 0) { - const driver = drivers[0]; - if ((driver as any).admin) { - return { user: driver, userType: 'Admin' }; - } - } - return null; // User not found as Admin - } + if (requestedUserType === 'Rider') { + const rider = await prisma.rider.findUnique({ + where: { email: cornellEmail }, + }); + if (!rider) return null; + if (!rider.active) return { error: 'User not active', userType: 'Rider' }; + return { user: rider, userType: 'Rider' }; + } - if (requestedUserType === 'Driver') { - const drivers = await Driver.scan('email').eq(cornellEmail).exec(); - if (drivers.length > 0) { - return { user: drivers[0], userType: 'Driver' }; - } - return null; // User not found in Drivers table - } + if (requestedUserType === 'Admin') { + const employee = await (prisma as any).employee.findUnique({ + where: { email: cornellEmail }, + }); + if (employee && employee.isAdmin) + return { user: employee, userType: 'Admin' }; + return null; } - // No specific userType requested - search all tables (fallback behavior) - // Check Riders first - const riders = await Rider.scan('email').eq(cornellEmail).exec(); - if (riders.length > 0) { - const rider = riders[0]; - // IMPORTANT: Check if Rider is active (same as Google OAuth) - if (!rider.active) { - return { error: 'User not active', userType: 'Rider' }; - } - return { user: rider, userType: 'Rider' }; + if (requestedUserType === 'Driver') { + const employee = await (prisma as any).employee.findUnique({ + where: { email: cornellEmail }, + }); + if (employee && employee.isDriver) + return { user: employee, userType: 'Driver' }; + return null; } - // Check Admins - const admins = await Admin.scan('email').eq(cornellEmail).exec(); - if (admins.length > 0) { - return { user: admins[0], userType: 'Admin' }; + // No specific userType — search all tables + const rider = await prisma.rider.findUnique({ + where: { email: cornellEmail }, + }); + if (rider) { + if (!rider.active) return { error: 'User not active', userType: 'Rider' }; + return { user: rider, userType: 'Rider' }; } - // Check Drivers (for admin access, similar to Google OAuth fallback) - const drivers = await Driver.scan('email').eq(cornellEmail).exec(); - if (drivers.length > 0) { - const driver = drivers[0]; - // If driver has admin flag, treat as Admin (matches Google OAuth logic) - if ((driver as any).admin) { - return { user: driver, userType: 'Admin' }; - } - return { user: driver, userType: 'Driver' }; + const employee = await (prisma as any).employee.findUnique({ + where: { email: cornellEmail }, + }); + if (employee) { + if (employee.isAdmin) return { user: employee, userType: 'Admin' }; + if (employee.isDriver) return { user: employee, userType: 'Driver' }; } return null; diff --git a/server/src/db/prisma.ts b/server/src/db/prisma.ts new file mode 100644 index 000000000..78745e260 --- /dev/null +++ b/server/src/db/prisma.ts @@ -0,0 +1,10 @@ +import 'dotenv/config'; +import { PrismaPg } from '@prisma/adapter-pg'; +import { PrismaClient } from '../../generated/prisma/client'; + +const connectionString = `${process.env.DATABASE_URL}`; + +const adapter = new PrismaPg({ connectionString }); +const prisma = new PrismaClient({ adapter }); + +export { prisma }; diff --git a/server/src/router/admin.ts b/server/src/router/admin.ts index 6689ff7fb..c03dc1076 100644 --- a/server/src/router/admin.ts +++ b/server/src/router/admin.ts @@ -1,53 +1,93 @@ import express from 'express'; import { v4 as uuid } from 'uuid'; -import * as db from './common'; -import { Admin } from '../models/admin'; +import { prisma } from '../db/prisma'; +import { AdminRole } from '../../generated/prisma/client'; import { validateUser, - checkNetIDExists, + checkRiderEmailExists, checkNetIDExistsForOtherEmployee, } from '../util'; -import { UserType } from '../models/subscription'; const router = express.Router(); -const tableName = 'Admins'; - -// Get an admin -router.get('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Admin, id, tableName); + +// Get an admin by id +router.get('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + const employee = await prisma.employee.findUnique({ where: { id } }); + if (!employee) { + return res.status(400).send({ err: 'id not found in Employees' }); + } + res.status(200).json({ data: employee }); + } catch (error) { + console.error('Error fetching admin:', error); + res.status(500).send({ err: 'Failed to fetch admin' }); + } }); // Get all admins -router.get('/', validateUser('Admin'), (req, res) => { - db.getAll(res, Admin, tableName); +router.get('/', validateUser('Admin'), async (req, res) => { + try { + const admins = await prisma.employee.findMany({ where: { isAdmin: true } }); + res.status(200).send({ data: admins }); + } catch (error) { + console.error('Error fetching admins:', error); + res.status(500).send({ err: 'Failed to fetch admins' }); + } }); -// Put a driver in Admins table +// Create or promote an employee to admin router.post('/', validateUser('Admin'), async (req, res) => { try { const { body } = req; - const emailExists = await checkNetIDExists(body.email, 'admin'); - if (emailExists) { + const riderExists = await checkRiderEmailExists(body.email); + if (riderExists) { return res.status(409).send({ - err: 'An employee with this NetID already exists', + err: 'A rider with this NetID already exists', }); } - const admin = new Admin({ - id: !body.eid || body.eid === '' ? uuid() : body.eid, - firstName: body.firstName, - lastName: body.lastName, - type: body.type, - isDriver: body.isDriver, - phoneNumber: body.phoneNumber, - email: body.email, + const adminRoles = normalizeRoles( + body.adminRoles || body.type || body.roles + ); + + // Upsert: if employee already exists (e.g. was a driver), promote them to admin + const existing = await prisma.employee.findUnique({ + where: { email: body.email }, }); - db.create(res, admin); + let employee; + if (existing) { + employee = await prisma.employee.update({ + where: { id: existing.id }, + data: { + firstName: body.firstName ?? existing.firstName, + lastName: body.lastName ?? existing.lastName, + phoneNumber: body.phoneNumber ?? existing.phoneNumber, + photoLink: body.photoLink ?? existing.photoLink, + isAdmin: true, + adminRoles: adminRoles as AdminRole[], + }, + }); + } else { + const id = !body.eid || body.eid === '' ? uuid() : body.eid; + employee = await prisma.employee.create({ + data: { + id, + firstName: body.firstName, + lastName: body.lastName, + adminRoles: adminRoles as AdminRole[], + isAdmin: true, + isDriver: body.isDriver || false, + phoneNumber: body.phoneNumber, + email: body.email, + photoLink: body.photoLink || null, + }, + }); + } + + res.status(200).send({ data: employee }); } catch (error) { console.error('Error creating admin:', error); res.status(500).send({ err: 'Failed to create admin' }); @@ -57,12 +97,9 @@ router.post('/', validateUser('Admin'), async (req, res) => { // Update an existing admin router.put('/:id', validateUser('Admin'), async (req, res) => { try { - const { - params: { id }, - body, - } = req; + const { id } = req.params; + const { body } = req; - // Check if email is being changed and if it conflicts with another employee if (body.email) { const emailExists = await checkNetIDExistsForOtherEmployee( body.email, @@ -75,19 +112,63 @@ router.put('/:id', validateUser('Admin'), async (req, res) => { } } - db.update(res, Admin, { id }, body, tableName); - } catch (error) { + if (body.adminRoles || body.type || body.roles) { + body.adminRoles = normalizeRoles( + body.adminRoles || body.type || body.roles + ) as AdminRole[]; + delete body.type; + delete body.roles; + } + + const employee = await prisma.employee.update({ + where: { id }, + data: body, + }); + + res.status(200).send({ data: employee }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Employees' }); + } console.error('Error updating admin:', error); res.status(500).send({ err: 'Failed to update admin' }); } }); -// Remove an admin -router.delete('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - db.deleteById(res, Admin, id, tableName); +// Remove admin role; deletes record entirely if not also a driver +router.delete('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + const employee = await prisma.employee.findUnique({ where: { id } }); + if (!employee) { + return res.status(400).send({ err: 'id not found in Employees' }); + } + + if (employee.isDriver) { + await prisma.employee.update({ + where: { id }, + data: { isAdmin: false, adminRoles: [] }, + }); + } else { + await prisma.employee.delete({ where: { id } }); + } + + res.status(200).send({ id }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Employees' }); + } + console.error('Error deleting admin:', error); + res.status(500).send({ err: 'Failed to delete admin' }); + } }); +function normalizeRoles(input: any): string[] { + if (!input) return []; + const arr = Array.isArray(input) ? input : [input]; + return arr + .map((r: string) => r.toUpperCase().replace(/-/g, '_').replace(/\s+/g, '_')) + .filter((r: string) => r === 'SDS_ADMIN' || r === 'REDRUNNER_ADMIN'); +} + export default router; diff --git a/server/src/router/auth.ts b/server/src/router/auth.ts index 98fb2c62b..22adee964 100644 --- a/server/src/router/auth.ts +++ b/server/src/router/auth.ts @@ -1,12 +1,8 @@ import express from 'express'; import * as jwt from 'jsonwebtoken'; -import { Rider } from '../models/rider'; -import { Admin } from '../models/admin'; -import { Driver } from '../models/driver'; +import { prisma } from '../db/prisma'; import { OAuth2Client } from 'google-auth-library'; import { oauthValues } from '../config'; -import { ModelType } from 'dynamoose/dist/General'; -import { Item } from 'dynamoose/dist/Item'; import { UnregisteredUserType } from '@carriage-web/shared/types'; const router = express.Router(); @@ -22,102 +18,45 @@ const audience = [ '241748771473-7rfda2grc8f7p099bmf98en0q9bcvp18.apps.googleusercontent.com', ]; -/** - * Returns the appropriate model (Rider, Driver, Admin) for a given table name. - * @param table - The string name of the table (e.g., 'Riders', 'Drivers', 'Admins'). - */ -function getModel(table: string) { - const tableToModel: { [table: string]: ModelType } = { - Riders: Rider, - Drivers: Driver, - Admins: Admin, - }; - return tableToModel[table]; -} - -/** - * Derives the singular user type from the table name. - * For example, 'Riders' becomes 'Rider'. - * @param table - The string name of the table. - */ function getUserType(table: string) { return table.slice(0, table.length - 1); } -/** - * Finds a user in the specified model by email and sends back a JWT token if found. - * If logging in as an Admin and no match is found, the Driver table is checked as a fallback for admin-flagged users. - * @param res - Express response object. - * @param model - The model to query (Rider, Admin, or Driver). - * @param table - Name of the user table (used to derive userType). - * @param email - The email address to look up. - * @param userInfo - Optional user info from Google OAuth (name, etc.). - */ -function findUserAndSendToken( +async function findUserAndSendToken( res: express.Response, - model: ModelType, table: string, email: string, userInfo?: Partial ) { - model.scan({ email: { eq: email } }).exec((err, data) => { - if (err) { - res.status(err.statusCode || 500).send({ err: err.message }); - return; - } + try { + let user: any = null; - if (data?.length) { - const { id, active } = data[0].toJSON(); - if (table === 'Riders' && !active) { + if (table === 'Riders') { + user = await prisma.rider.findUnique({ where: { email } }); + if (user && !user.active) { res.status(400).send({ err: 'User not active' }); return; } + } else if (table === 'Drivers') { + user = await (prisma as any).employee.findUnique({ + where: { email }, + }); + if (user && !user.isDriver) user = null; + } else if (table === 'Admins') { + user = await (prisma as any).employee.findUnique({ + where: { email }, + }); + if (user && !user.isAdmin) user = null; + } + + if (user) { const userPayload = { - id, + id: user.id, userType: getUserType(table), }; res .status(200) .send({ jwt: jwt.sign(userPayload, process.env.JWT_SECRET!) }); - } else if (table === 'Admins') { - // Check drivers table for admins - // when the frontend page is made, this removed and we only use the first scan and change the error handling to check - // per table this is because we would have decoupled admins and drivers, so drivers wouldnt sign on admin page and vice versa - // but maybe we would allow admins to log onto the driver page? - Driver.scan({ email: { eq: email } }).exec((dErr, dData) => { - if (dErr) { - res.status(dErr.statusCode || 500).send({ err: dErr }); - } else if (dData?.length) { - const { id, admin } = dData[0].toJSON(); - if (admin) { - const userPayload = { - id, - userType: getUserType(table), - }; - res - .status(200) - .send({ jwt: jwt.sign(userPayload, process.env.JWT_SECRET!) }); - } else { - const unregisteredUser: UnregisteredUserType = { - email: email, - name: userInfo?.name || 'User', - }; - res.status(400).send({ - err: 'User not found', - user: unregisteredUser, - }); - } - } else { - const unregisteredUser: UnregisteredUserType = { - email: email, - name: userInfo?.name || 'User', - }; - res.status(400).send({ - err: 'User not found', - user: unregisteredUser, - }); - } - }); } else { const unregisteredUser: UnregisteredUserType = { email: email, @@ -128,26 +67,27 @@ function findUserAndSendToken( user: unregisteredUser, }); } - }); + } catch (error) { + console.error('Error finding user:', error); + res.status(500).send({ err: 'Internal server error' }); + } } -/** - * Exchanges an OAuth2 authorization code for an ID token using the provided client. - * @param client - An instance of OAuth2Client. - * @param code - The authorization code returned from Google login. - */ async function getIdToken(client: OAuth2Client, code: string) { const { tokens } = await client.getToken(code); const idToken = tokens.id_token!; return idToken; } -// Verify an authentication token -// If a code is supplied, retrieves the token from the code such that either a -// code or token is sufficient router.post('/', async (req, res) => { const { code, table } = req.body; try { + const validTables = ['Riders', 'Drivers', 'Admins']; + if (!validTables.includes(table)) { + res.status(400).send({ err: 'Table not found' }); + return; + } + const client = new OAuth2Client({ clientId: oauthValues.client_id, clientSecret: oauthValues.client_secret, @@ -158,15 +98,11 @@ router.post('/', async (req, res) => { const payload = result.getPayload(); const email = payload?.email; const name = payload?.name; - const model = getModel(table); - if (model && email) { - findUserAndSendToken(res, model, table, email, { name }); - } else if (!model) { - res.status(400).send({ err: 'Table not found' }); - } else if (!email) { - res.status(400).send({ err: 'Email not found' }); + + if (email) { + await findUserAndSendToken(res, table, email, { name }); } else { - res.status(400).send({ err: 'Payload not found' }); + res.status(400).send({ err: 'Email not found' }); } } catch (err) { console.log(err); @@ -178,15 +114,16 @@ if (process.env.NODE_ENV === 'test') { router.post('/dummy', async (req, res) => { const { email, table } = req.body; try { - const model = getModel(table); - if (model && email) { - findUserAndSendToken(res, model, table, email, { name: email }); - } else if (!model) { + const validTables = ['Riders', 'Drivers', 'Admins']; + if (!validTables.includes(table)) { res.status(400).send({ err: 'Table not found' }); - } else if (!email) { - res.status(400).send({ err: 'Email not found' }); + return; + } + + if (email) { + await findUserAndSendToken(res, table, email, { name: email }); } else { - res.status(400).send({ err: 'Payload not found' }); + res.status(400).send({ err: 'Email not found' }); } } catch (err) { console.log(err); diff --git a/server/src/router/driver.ts b/server/src/router/driver.ts index 273591370..a7573a232 100644 --- a/server/src/router/driver.ts +++ b/server/src/router/driver.ts @@ -1,31 +1,32 @@ import express from 'express'; import { v4 as uuid } from 'uuid'; -import { Condition } from 'dynamoose'; import moment from 'moment-timezone'; -import * as db from './common'; -import { Driver } from '../models/driver'; +import { prisma } from '../db/prisma'; +import { DayOfWeek } from '../../generated/prisma/client'; import { validateUser, - checkNetIDExists, + checkRiderEmailExists, checkNetIDExistsForOtherEmployee, } from '../util'; -import { Ride } from '../models/ride'; -import { Status } from '@carriage-web/shared/types/ride'; -import { UserType } from '../models/subscription'; -import { Item } from 'dynamoose/dist/Item'; -import { DriverType } from '@carriage-web/shared/types/driver'; const router = express.Router(); -const tableName = 'Drivers'; // Get all drivers -router.get('/', validateUser('Admin'), (req, res) => { - db.getAll(res, Driver, tableName); +router.get('/', validateUser('Admin'), async (req, res) => { + try { + const drivers = await prisma.employee.findMany({ + where: { isDriver: true }, + }); + res.status(200).send({ data: drivers }); + } catch (error) { + console.error('Error fetching drivers:', error); + res.status(500).send({ err: 'Failed to fetch drivers' }); + } }); // Get available drivers for a given date and time window // Example: /api/drivers/available?date=2025-09-10&startTime=10:00&endTime=12:00 -router.get('/available', validateUser('User'), (req, res) => { +router.get('/available', validateUser('User'), async (req, res) => { const { date, startTime, endTime, timezone } = req.query as { date?: string; startTime?: string; @@ -34,152 +35,166 @@ router.get('/available', validateUser('User'), (req, res) => { }; if (!date || !startTime || !endTime) { - res + return res .status(400) .send({ err: 'Missing required query params: date, startTime, endTime' }); - return; } const tz = timezone || 'America/New_York'; - // Build requested time window ISO strings - const requestedStartIso = moment + const requestedStart = moment .tz(`${date} ${startTime}`, 'YYYY-MM-DD HH:mm', tz) - .toISOString(); - const requestedEndIso = moment + .toDate(); + const requestedEnd = moment .tz(`${date} ${endTime}`, 'YYYY-MM-DD HH:mm', tz) - .toISOString(); - - // Build full-day window for scanning rides - const dayStartIso = moment - .tz(date, 'YYYY-MM-DD', tz) - .startOf('day') - .toISOString(); - const dayEndIso = moment - .tz(date, 'YYYY-MM-DD', tz) - .endOf('day') - .toISOString(); - - // Map JS weekday to our DayOfWeek enum values - const weekday = moment.tz(date, 'YYYY-MM-DD', tz).format('ddd'); // e.g., Mon, Tue, Wed - const dayMap: Record = { - Mon: 'MON', - Tue: 'TUE', - Wed: 'WED', - Thu: 'THURS', - Fri: 'FRI', - Sat: 'SAT', - Sun: 'SUN', + .toDate(); + const dayStart = moment.tz(date, 'YYYY-MM-DD', tz).startOf('day').toDate(); + const dayEnd = moment.tz(date, 'YYYY-MM-DD', tz).endOf('day').toDate(); + + const weekday = moment.tz(date, 'YYYY-MM-DD', tz).format('ddd'); + const dayMap: Record = { + Mon: DayOfWeek.MON, + Tue: DayOfWeek.TUE, + Wed: DayOfWeek.WED, + Thu: DayOfWeek.THURS, + Fri: DayOfWeek.FRI, }; const dayToken = dayMap[weekday]; - // Scan rides for that day to detect conflicts - const rideCondition = new Condition() - .where('startTime') - .between(dayStartIso, dayEndIso) - .where('status') - .not() - .eq(Status.CANCELLED); - - db.scan(res, Ride, rideCondition, (ridesOfDay: any[]) => { - // Then fetch all drivers, and filter by availability and conflicts - db.getAll(res, Driver, tableName, (allDrivers: any[]) => { - // Filter active drivers first - const activeDrivers = allDrivers.filter((d) => d.active !== false); - - // Filter by weekday availability if we have a valid token - const dayFilteredDrivers = dayToken - ? activeDrivers.filter( - (d) => - Array.isArray(d.availability) && d.availability.includes(dayToken) - ) - : activeDrivers; - - const reqStart = requestedStartIso; - const reqEnd = requestedEndIso; - - // Helper to check time overlap - const overlaps = (rideStartIso: string, rideEndIso: string) => { - return !(rideEndIso <= reqStart || rideStartIso >= reqEnd); - }; - - // Build a lookup of driverId -> hasConflict - const conflictingDriverIds = new Set(); - for (const ride of ridesOfDay) { - if (!ride.driver || !ride.driver.id) continue; - if (overlaps(ride.startTime, ride.endTime)) { - conflictingDriverIds.add(ride.driver.id); - } - } + try { + const ridesOfDay = await prisma.ride.findMany({ + where: { + startTime: { gte: dayStart, lte: dayEnd }, + status: { not: 'CANCELLED' }, + driverId: { not: null }, + }, + }); - const availableDrivers = dayFilteredDrivers.filter( - (d) => !conflictingDriverIds.has(d.id) - ); + const conflictingDriverIds = new Set(); + for (const ride of ridesOfDay) { + if (!ride.driverId) continue; + const rideStart = ride.startTime.toISOString(); + const rideEnd = ride.endTime.toISOString(); + const reqStart = requestedStart.toISOString(); + const reqEnd = requestedEnd.toISOString(); + if (!(rideEnd <= reqStart || rideStart >= reqEnd)) { + conflictingDriverIds.add(ride.driverId); + } + } - res.send({ data: availableDrivers }); + const drivers = await prisma.employee.findMany({ + where: { + isDriver: true, + active: true, + ...(dayToken ? { availability: { has: dayToken } } : {}), + }, }); - }); + + const availableDrivers = (drivers as { id: string }[]).filter( + (d) => !conflictingDriverIds.has(d.id) + ); + res.send({ data: availableDrivers }); + } catch (error) { + console.error('Error fetching available drivers:', error); + res.status(500).send({ err: 'Failed to fetch available drivers' }); + } }); -// Get a driver by id in Drivers table -router.get('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Driver, id, tableName); +// Get a driver by id +router.get('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const driver = await prisma.employee.findUnique({ where: { id } }); + if (!driver) { + return res.status(400).send({ err: 'id not found in Employees' }); + } + res.status(200).json({ data: driver }); + } catch (error) { + console.error('Error fetching driver:', error); + res.status(500).send({ err: 'Failed to fetch driver' }); + } }); // Get profile information for a driver -router.get('/:id/profile', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Driver, id, tableName, (driver: DriverType) => { +router.get('/:id/profile', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const driver = await prisma.employee.findUnique({ where: { id } }); + if (!driver) { + return res.status(400).send({ err: 'id not found in Employees' }); + } const { email, firstName, lastName, phoneNumber, photoLink } = driver; - res.send({ - email, - firstName, - lastName, - phoneNumber, - photoLink, - }); - }); + res.send({ email, firstName, lastName, phoneNumber, photoLink }); + } catch (error) { + console.error('Error fetching driver profile:', error); + res.status(500).send({ err: 'Failed to fetch driver profile' }); + } }); -// Put a driver in Drivers table +// Create or promote an employee to driver router.post('/', validateUser('Admin'), async (req, res) => { + console.log('driver post body:', req.body); try { const { body } = req; - const emailExists = await checkNetIDExists(body.email, 'driver'); - if (emailExists) { - return res.status(409).send({ - err: 'An employee with this NetID already exists', + if (!Array.isArray(body.availability)) { + return res.status(469).send({ + err: + 'Expected availability to be of type array, instead found type ' + + typeof body.availability + + '.', }); } - // Map startDate from payload to joinDate in model + const riderExists = await checkRiderEmailExists(body.email); + if (riderExists) { + return res + .status(409) + .send({ err: 'A rider with this NetID already exists' }); + } + + const availability = body.availability.map( + (d: string) => d.toUpperCase() as DayOfWeek + ); const joinDate = body.startDate || body.joinDate; - const admin = new Driver({ - id: !body.eid || body.eid === '' ? uuid() : body.eid, - firstName: body.firstName, - lastName: body.lastName, - availability: body.availability, - phoneNumber: body.phoneNumber, - joinDate, - email: body.email, + // Upsert: if employee already exists (e.g. was an admin), promote them to driver + const existing = await prisma.employee.findUnique({ + where: { email: body.email }, }); - if (!Array.isArray(body.availability)) { - res.status(469).send({ - err: - 'Expected availability to be of type array, instead found type ' + - typeof body.availability + - '.', + + let driver; + if (existing) { + driver = await prisma.employee.update({ + where: { id: existing.id }, + data: { + firstName: body.firstName ?? existing.firstName, + lastName: body.lastName ?? existing.lastName, + phoneNumber: body.phoneNumber ?? existing.phoneNumber, + photoLink: body.photoLink ?? existing.photoLink, + isDriver: true, + availability, + ...(joinDate ? { joinDate: new Date(joinDate) } : {}), + }, }); } else { - db.create(res, admin); + const id = !body.eid || body.eid === '' ? uuid() : body.eid; + driver = await prisma.employee.create({ + data: { + id, + firstName: body.firstName, + lastName: body.lastName, + availability, + phoneNumber: body.phoneNumber, + email: body.email, + photoLink: body.photoLink, + isDriver: true, + ...(joinDate ? { joinDate: new Date(joinDate) } : {}), + }, + }); } + + res.status(200).send({ data: driver }); } catch (error) { console.error('Error creating driver:', error); res.status(500).send({ err: 'Failed to create driver' }); @@ -189,53 +204,84 @@ router.post('/', validateUser('Admin'), async (req, res) => { // Update an existing driver router.put('/:id', validateUser('Driver'), async (req, res) => { try { - const { - params: { id }, - body, - } = req; + const { id } = req.params; + const { body } = req; + + if (res.locals.user.userType !== 'Admin' && id !== res.locals.user.id) { + return res.status(400).send({ err: 'User ID does not match request ID' }); + } - // Check if email is being changed and if it conflicts with another employee if (body.email) { const emailExists = await checkNetIDExistsForOtherEmployee( body.email, id ); if (emailExists) { - return res.status(409).send({ - err: 'An employee with this NetID already exists', - }); + return res + .status(409) + .send({ err: 'An employee with this NetID already exists' }); } } - // Allow startDate in payload by mapping to joinDate if (body.startDate && !body.joinDate) { - body.joinDate = body.startDate; + body.joinDate = new Date(body.startDate); delete body.startDate; } - if ( - res.locals.user.userType === UserType.ADMIN || - id === res.locals.user.id - ) { - db.update(res, Driver, { id }, body, tableName); - } else { - res.status(400).send({ err: 'User ID does not match request ID' }); + + if (body.availability && Array.isArray(body.availability)) { + body.availability = body.availability.map( + (d: string) => d.toUpperCase() as DayOfWeek + ); + } + + if (body.joinDate && !String(body.joinDate).includes('T')) { + body.joinDate = new Date(body.joinDate).toISOString(); + } + + const driver = await prisma.employee.update({ + where: { id }, + data: body, + }); + + res.status(200).send({ data: driver }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Employees' }); } - } catch (error) { console.error('Error updating driver:', error); res.status(500).send({ err: 'Failed to update driver' }); } }); -// Delete an existing driver -router.delete('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - db.deleteById(res, Driver, id, tableName); -}); +// Remove driver role; deletes record entirely if not also an admin +router.delete('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + const employee = await prisma.employee.findUnique({ where: { id } }); + if (!employee) { + return res.status(400).send({ err: 'id not found in Employees' }); + } -// Get a driver's weekly stats + if (employee.isAdmin) { + await prisma.employee.update({ + where: { id }, + data: { isDriver: false, availability: [] }, + }); + } else { + await prisma.employee.delete({ where: { id } }); + } + + res.status(200).send({ id }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Employees' }); + } + console.error('Error deleting driver:', error); + res.status(500).send({ err: 'Failed to delete driver' }); + } +}); +// Get a driver's weekly stats (stub) router.get('/:id/stats', validateUser('Admin'), (req, res) => {}); export default router; diff --git a/server/src/router/favorites.ts b/server/src/router/favorites.ts index e21f3a6c6..1fadfc588 100644 --- a/server/src/router/favorites.ts +++ b/server/src/router/favorites.ts @@ -1,95 +1,126 @@ import express from 'express'; -import { v4 as uuid } from 'uuid'; -import * as db from './common'; -import { Ride } from '../models/ride'; -import { Condition } from 'dynamoose'; -import { Favorite } from '../models/favorite'; +import { prisma } from '../db/prisma'; import { validateUser } from '../util'; const router = express.Router(); -const tableName = 'Favorites'; // Favorite a ride. router.post('/', validateUser('User'), async (req, res) => { - const { rideId } = req.body; - const userId = res.locals.user.id; + try { + const { rideId } = req.body; + const userId = res.locals.user.id; - if (!rideId) { - return res.status(400).send({ err: 'rideId is required' }); - } + if (!rideId) { + return res.status(400).send({ err: 'rideId is required' }); + } - const ride = await new Promise((resolve) => { - db.getById(res, Ride, rideId, 'Rides', (rideData) => { - resolve(rideData); - }); - }); + const ride = await prisma.ride.findUnique({ where: { id: rideId } }); - if (!ride) { - return res.status(404).send({ - err: 'Ride not found, unable to favorite a ride that does not exist.', - }); - } + if (!ride) { + return res.status(404).send({ + err: 'Ride not found, unable to favorite a ride that does not exist.', + }); + } - const existingFavorite = await new Promise((resolve) => { - db.getById(res, Favorite, { userId, rideId }, tableName, (fav) => { - resolve(fav); + const existingFavorite = await prisma.favorite.findUnique({ + where: { userId_rideId: { userId, rideId } }, }); - }); - if (existingFavorite) { - return res.status(222).send({ msg: 'Ride already favorited' }); - } + if (existingFavorite) { + return res.status(222).send({ msg: 'Ride already favorited' }); + } - const favoriteRide = new Favorite({ - userId, - rideId, - favoritedAt: new Date(), - }); + const favorite = await prisma.favorite.create({ + data: { + userId, + rideId, + favoritedAt: new Date(), + }, + }); - db.create(res, favoriteRide, (doc) => res.send(doc)); + res.send(favorite); + } catch (error) { + console.error('Error favoriting ride:', error); + res.status(500).send({ err: 'Failed to favorite ride' }); + } }); // Get all favorite rides for the current user -router.get('/', validateUser('User'), (req, res) => { - const userId = res.locals.user.id; - - const condition = new Condition().where('userId').eq(userId); - db.query( - res, - Favorite, - condition, - 'userId-index', - (favorites: (typeof Favorite)[]) => { - const rideIds = favorites.map((favoriteRide) => favoriteRide.rideId); - if (rideIds.length === 0) { - return res.send({ data: [] }); // no favorites - } - const keys = rideIds.map((id) => ({ id })); - db.batchGet(res, Ride, keys, 'Rides', (rides) => { - res.send({ data: rides }); - }); - } - ); +router.get('/', validateUser('User'), async (req, res) => { + try { + const userId = res.locals.user.id; + + const favorites = await prisma.favorite.findMany({ + where: { userId }, + include: { + ride: { + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + }, + }, + }); + + const rides = favorites.map((fav) => fav.ride); + res.send({ data: rides }); + } catch (error) { + console.error('Error fetching favorites:', error); + res.status(500).send({ err: 'Failed to fetch favorites' }); + } }); // Check if a ride is favorited and get its data -router.get('/:rideId', validateUser('User'), (req, res) => { - const userId = res.locals.user.id; - const rideId = req.body.rideId; +router.get('/:rideId', validateUser('User'), async (req, res) => { + try { + const userId = res.locals.user.id; + const { rideId } = req.params; + + const favorite = await prisma.favorite.findUnique({ + where: { userId_rideId: { userId, rideId } }, + }); + + if (!favorite) { + return res.status(404).send({ err: 'Favorite not found' }); + } - db.getById(res, Favorite, { userId, rideId }, tableName, () => { - db.getById(res, Ride, rideId, 'Rides', (rideData) => { - res.send(rideData); + const ride = await prisma.ride.findUnique({ + where: { id: rideId }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, }); - }); + + res.send(ride); + } catch (error) { + console.error('Error fetching favorited ride:', error); + res.status(500).send({ err: 'Failed to fetch favorited ride' }); + } }); // Delete a ride from a user's favorites -router.delete('/:rideId', validateUser('User'), (req, res) => { - const { rideId } = req.params; - const userId = res.locals.user.id; +router.delete('/:rideId', validateUser('User'), async (req, res) => { + try { + const { rideId } = req.params; + const userId = res.locals.user.id; + + await prisma.favorite.delete({ + where: { userId_rideId: { userId, rideId } }, + }); - db.deleteById(res, Favorite, { userId, rideId }, tableName); + res.status(200).send({ userId, rideId }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'Favorite not found' }); + } + console.error('Error deleting favorite:', error); + res.status(500).send({ err: 'Failed to delete favorite' }); + } }); export default router; diff --git a/server/src/router/location.ts b/server/src/router/location.ts index cd855c7c9..49ad6ad59 100644 --- a/server/src/router/location.ts +++ b/server/src/router/location.ts @@ -1,79 +1,111 @@ import express from 'express'; import { v4 as uuid } from 'uuid'; -import { Condition } from 'dynamoose/dist/Condition'; -import * as db from './common'; -import { Location } from '../models/location'; -import { Tag } from '@carriage-web/shared/types/location'; +import { prisma } from '../db/prisma'; +import { LocationTag } from '../../generated/prisma/client'; import { validateUser } from '../util'; const router = express.Router(); -const tableName = 'Locations'; -// Get a location by id in Locations table -router.get('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Location, id, tableName); +// Get a location by id +router.get('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const location = await prisma.location.findUnique({ where: { id } }); + if (!location) { + return res.status(400).send({ err: 'id not found in Locations' }); + } + res.status(200).json({ data: location }); + } catch (error) { + console.error('Error fetching location:', error); + res.status(500).send({ err: 'Failed to fetch location' }); + } }); // Get and query all locations -router.get('/', validateUser('User'), (req, res) => { - const { query } = req; - if (Object.keys(query).length === 0) { - db.getAll(res, Location, tableName); - } else { - const { active } = query; - let condition = new Condition(); - if (active) { - if (active === 'true') { - condition = condition - .where('tag') - .not() - .eq(Tag.INACTIVE) - .where('tag') - .not() - .eq(Tag.CUSTOM); - } else { - condition = condition.where('tag').eq(Tag.INACTIVE); - } +router.get('/', validateUser('User'), async (req, res) => { + try { + const { active } = req.query; + + let where = {}; + if (active === 'true') { + where = { + tag: { notIn: [LocationTag.INACTIVE, LocationTag.CUSTOM] }, + }; + } else if (active === 'false') { + where = { tag: LocationTag.INACTIVE }; } - db.scan(res, Location, condition); + + const locations = await prisma.location.findMany({ where }); + res.status(200).send({ data: locations }); + } catch (error) { + console.error('Error fetching locations:', error); + res.status(500).send({ err: 'Failed to fetch locations' }); } }); -// Put a location in Locations table -router.post('/', validateUser('Admin'), (req, res) => { - const { body } = req; - const location = new Location({ - ...body, - id: uuid(), - }); - db.create(res, location); +// Create a location +router.post('/', validateUser('Admin'), async (req, res) => { + try { + const { body } = req; + const location = await prisma.location.create({ + data: { + ...body, + id: uuid(), + tag: body.tag?.toUpperCase() as LocationTag, + }, + }); + res.status(200).send({ data: location }); + } catch (error) { + console.error('Error creating location:', error); + res.status(500).send({ err: 'Failed to create location' }); + } }); -// Allows riders to create custom locations -router.post('/custom', validateUser('User'), (req, res) => { - const { body } = req; - const location = new Location({ ...body, id: uuid(), tag: Tag.CUSTOM }); - db.create(res, location); +// Create a custom location (riders) +router.post('/custom', validateUser('User'), async (req, res) => { + try { + const { body } = req; + const location = await prisma.location.create({ + data: { ...body, id: uuid(), tag: LocationTag.CUSTOM }, + }); + res.status(200).send({ data: location }); + } catch (error) { + console.error('Error creating custom location:', error); + res.status(500).send({ err: 'Failed to create custom location' }); + } }); // Update an existing location -router.put('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - body, - } = req; - db.update(res, Location, { id }, body, tableName); +router.put('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + const location = await prisma.location.update({ + where: { id }, + data: { ...req.body, tag: req.body.tag?.toUpperCase() as LocationTag }, + }); + res.status(200).send({ data: location }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Locations' }); + } + console.error('Error updating location:', error); + res.status(500).send({ err: 'Failed to update location' }); + } }); // Delete an existing location -router.delete('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - db.deleteById(res, Location, id, tableName); +router.delete('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + await prisma.location.delete({ where: { id } }); + res.status(200).send({ id }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Locations' }); + } + console.error('Error deleting location:', error); + res.status(500).send({ err: 'Failed to delete location' }); + } }); export default router; diff --git a/server/src/router/ride.ts b/server/src/router/ride.ts index 6579dc0a6..7ec0de7fc 100644 --- a/server/src/router/ride.ts +++ b/server/src/router/ride.ts @@ -1,27 +1,29 @@ import express from 'express'; -import { v4 as uuid, validate } from 'uuid'; -import { Condition } from 'dynamoose'; +import { v4 as uuid } from 'uuid'; import * as csv from '@fast-csv/format'; import moment from 'moment-timezone'; -import { ObjectType } from 'dynamoose/dist/General'; -import * as db from './common'; -import { Ride } from '../models/ride'; +import { prisma } from '../db/prisma'; import { - Status, - Type, RideType, + RideStatus, SchedulingState, -} from '@carriage-web/shared/types/ride'; -import { LocationType } from '@carriage-web/shared/types/location'; -import { validateUser, daysUntilWeekday } from '../util'; +} from '../../generated/prisma/client'; +import { Status, Type } from '@carriage-web/shared/types/ride'; +import { validateUser } from '../util'; import { DriverType } from '@carriage-web/shared/types/driver'; import { RiderType } from '@carriage-web/shared/types/rider'; import { notify } from '../util/notification'; import { Change } from '@carriage-web/shared/types'; -import { UserType } from '../models/subscription'; const router = express.Router(); -const tableName = 'Rides'; + +// Transform Prisma ride (uppercase enums) to frontend-expected format (lowercase enums) +const formatRide = (ride: any) => ({ + ...ride, + type: ride.type?.toLowerCase(), + status: ride.status?.toLowerCase(), + schedulingState: ride.schedulingState?.toLowerCase(), +}); // Debug endpoint to get current user's JWT token router.get('/debug/token', validateUser('User'), (req, res) => { @@ -35,439 +37,442 @@ router.get('/debug/token', validateUser('User'), (req, res) => { // Diagnostic endpoint to find corrupted rides that fail populate router.get('/diagnose', async (_req, res) => { try { - Ride.scan(new Condition()).exec(async (err, data) => { - if (err) { - res.status(500).send({ err: err.message }); - return; - } - const items = data || []; - const bad: any[] = []; - const goodIds: string[] = []; - for (const item of items) { - if (!item) continue; - let id: string | undefined = undefined; - try { - id = - (item as any).id || ((item as any).get && (item as any).get('id')); - } catch (e) { - // Ignore error when getting item ID - } - try { - const populated = await (item as any).populate(); - if (id) goodIds.push(id); - } catch (e: any) { - bad.push({ id, error: e?.message || String(e) }); - } - } - res - .status(200) - .send({ total: items.length, goodCount: goodIds.length, bad }); - }); + const rides = await prisma.ride.findMany(); + res + .status(200) + .send({ total: rides.length, goodCount: rides.length, bad: [] }); } catch (e: any) { res.status(500).send({ err: e?.message || 'diagnostic failed' }); } }); -router.get('/download', (req, res) => { - const dateStart = moment(req.query.date as string).toISOString(); - const dateEnd = moment(req.query.date as string) - .endOf('day') - .toISOString(); - const condition = new Condition() - .where('startTime') - .between(dateStart, dateEnd) - .where('status') - .not() - .eq(Status.CANCELLED); - - const callback = (value: any) => { - const dataToExport = value - .sort((a: any, b: any) => moment(a.startTime).diff(moment(b.startTime))) - .flatMap((doc: any) => { - const start = moment(doc.startTime); - const end = moment(doc.endTime); - const fullName = (user: RiderType | DriverType) => - `${user.firstName} ${user.lastName.substring(0, 1)}.`; - - // Handle multiple riders - create a row for each rider - const ridersToProcess = doc.riders || []; - if (ridersToProcess.length === 0) { - // No riders assigned - return [ - { - Name: 'No rider assigned', - 'Pick Up': start.format('h:mm A'), - From: doc.startLocation.name, - To: doc.endLocation.name, - 'Drop Off': end.format('h:mm A'), - Needs: 'None', - Driver: doc.driver ? fullName(doc.driver) : '', - }, - ]; - } - - return ridersToProcess.map((rider: RiderType) => ({ - Name: fullName(rider), - 'Pick Up': start.format('h:mm A'), - From: doc.startLocation.name, - To: doc.endLocation.name, - 'Drop Off': end.format('h:mm A'), - Needs: - rider.accessibility && rider.accessibility.length > 0 - ? rider.accessibility.join(', ') - : 'None', - Driver: doc.driver ? fullName(doc.driver) : '', - })); - }); - csv - .writeToBuffer(dataToExport, { headers: true }) - .then((data) => res.send(data)) - .catch((err) => res.send(err)); - }; - db.scan(res, Ride, condition, callback); +router.get('/download', async (req, res) => { + try { + const dateStart = moment(req.query.date as string).toDate(); + const dateEnd = moment(req.query.date as string) + .endOf('day') + .toDate(); + + const rides = await prisma.ride.findMany({ + where: { + startTime: { gte: dateStart, lte: dateEnd }, + status: { not: RideStatus.CANCELLED }, + }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + orderBy: { startTime: 'asc' }, + }); + + const dataToExport = rides.flatMap((doc: any) => { + const start = moment(doc.startTime); + const end = moment(doc.endTime); + const fullName = (user: RiderType | DriverType) => + `${user.firstName} ${user.lastName.substring(0, 1)}.`; + + const ridersToProcess = doc.riders || []; + if (ridersToProcess.length === 0) { + return [ + { + Name: 'No rider assigned', + 'Pick Up': start.format('h:mm A'), + From: doc.startLocation.name, + To: doc.endLocation.name, + 'Drop Off': end.format('h:mm A'), + Needs: 'None', + Driver: doc.driver ? fullName(doc.driver) : '', + }, + ]; + } + + return ridersToProcess.map((rider: RiderType) => ({ + Name: fullName(rider), + 'Pick Up': start.format('h:mm A'), + From: doc.startLocation.name, + To: doc.endLocation.name, + 'Drop Off': end.format('h:mm A'), + Needs: + rider.accessibility && rider.accessibility.length > 0 + ? rider.accessibility.join(', ') + : 'None', + Driver: doc.driver ? fullName(doc.driver) : '', + })); + }); + + const csvData = await csv.writeToBuffer(dataToExport, { headers: true }); + res.send(csvData); + } catch (error) { + console.error('Error downloading rides:', error); + res.status(500).send({ err: 'Failed to download rides' }); + } }); // Get and query all master repeating rides in table -router.get('/repeating', validateUser('User'), (req, res) => { - const { - query: { rider }, - } = req; - const now = moment().format('YYYY-MM-DD'); - const condition = new Condition('recurring') - .eq(true) - .where('endDate') - .ge(now) - .where('status') - .not() - .eq(Status.CANCELLED); - - if (rider) { - // If rider filter is specified, use callback to filter after scan - db.scan(res, Ride, condition, (data: RideType[]) => { - // Filter for rides that include this rider - const riderRides = data.filter((ride) => { - // Check both old (rider) and new (riders) format for compatibility - if (ride.riders && Array.isArray(ride.riders)) { - return ride.riders.some((riderObj) => riderObj.id === rider); - } - // Legacy support for old rider field (if it exists) - if ((ride as any).rider && (ride as any).rider.id === rider) { - return true; - } - return false; - }); - res.status(200).send({ data: riderRides }); +router.get('/repeating', validateUser('User'), async (req, res) => { + try { + const { rider } = req.query; + const now = moment().format('YYYY-MM-DD'); + + const where: any = { + isRecurring: true, + status: { not: RideStatus.CANCELLED }, + }; + + if (rider) { + where.riders = { some: { id: rider as string } }; + } + + const rides = await prisma.ride.findMany({ + where, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, }); - } else { - // No rider filter, can use direct scan - db.scan(res, Ride, condition); + + res.status(200).send({ data: rides.map(formatRide) }); + } catch (error) { + console.error('Error fetching repeating rides:', error); + res.status(500).send({ err: 'Failed to fetch repeating rides' }); } }); // Get a ride by id in Rides table -router.get('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Ride, id, tableName); +router.get('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const ride = await prisma.ride.findUnique({ + where: { id }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + }); + if (!ride) { + return res.status(400).send({ err: 'id not found in Rides' }); + } + res.status(200).json({ data: formatRide(ride) }); + } catch (error) { + console.error('Error fetching ride:', error); + res.status(500).send({ err: 'Failed to fetch ride' }); + } }); // Get all rides for a rider by Rider ID -router.get('/rider/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - // Scan all rides and filter in JavaScript to avoid Dynamoose array condition issues - db.scan(res, Ride, new Condition(), (data: RideType[]) => { - // Filter for rides that include this rider - const riderRides = data.filter((ride) => { - // Check both old (rider) and new (riders) format for compatibility - if (ride.riders && Array.isArray(ride.riders)) { - return ride.riders.some((rider) => rider.id === id); - } - // Legacy support for old rider field (if it exists) - if ((ride as any).rider && (ride as any).rider.id === id) { - return true; - } - return false; +router.get('/rider/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const rides = await prisma.ride.findMany({ + where: { riders: { some: { id } } }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, }); - res.status(200).send({ data: riderRides }); - }); + res.status(200).send({ data: rides.map(formatRide) }); + } catch (error) { + console.error('Error fetching rider rides:', error); + res.status(500).send({ err: 'Failed to fetch rider rides' }); + } }); // Get and query all rides in table -router.get('/', validateUser('User'), (req, res) => { - const { - type, - status, - rider, - driver, - date, - scheduled, - schedulingState, - allDates, - } = req.query; - - let condition = new Condition(); - - if (type) { - condition = condition.where('type').eq(type); - } else if (scheduled) { - // Legacy support: scheduled=true means not unscheduled - condition = condition - .where('schedulingState') - .eq(SchedulingState.SCHEDULED); - } +router.get('/', validateUser('User'), async (req, res) => { + try { + const { + type, + status, + rider, + driver, + date, + scheduled, + schedulingState, + allDates, + } = req.query; + + const where: any = {}; + + if (type) { + where.type = type as RideType; + } else if (scheduled === 'true') { + where.schedulingState = SchedulingState.SCHEDULED; + } - // New schedulingState filter - if (schedulingState) { - condition = condition.where('schedulingState').eq(schedulingState); - } + if (schedulingState) { + where.schedulingState = schedulingState as SchedulingState; + } - if (status) { - condition = condition.where('status').eq(status); - } + if (status) { + where.status = status as RideStatus; + } - // Skip rider condition in Dynamoose query - will filter in JavaScript + if (rider) { + where.riders = { some: { id: rider as string } }; + } - if (driver) { - condition = condition.where('driver').eq(driver); - } + if (driver) { + where.driverId = driver as string; + } - // Only apply date filter if date is provided and allDates is not true - if (date && allDates !== 'true') { - const dateStart = moment(date as string).toISOString(); - const dateEnd = moment(date as string) - .endOf('day') - .toISOString(); - condition = condition.where('startTime').between(dateStart, dateEnd); - } + if (date && allDates !== 'true') { + const dateStart = moment(date as string).toDate(); + const dateEnd = moment(date as string) + .endOf('day') + .toDate(); + where.startTime = { gte: dateStart, lte: dateEnd }; + } - if (rider) { - // If rider filter is specified, use callback to filter after scan - db.scan(res, Ride, condition, (data: RideType[]) => { - // Filter for rides that include this rider - const riderRides = data.filter((ride) => { - // Check both old (rider) and new (riders) format for compatibility - if (ride.riders && Array.isArray(ride.riders)) { - return ride.riders.some((riderObj) => riderObj.id === rider); - } - // Legacy support for old rider field (if it exists) - if ((ride as any).rider && (ride as any).rider.id === rider) { - return true; - } - return false; - }); - res.status(200).send({ data: riderRides }); + const rides = await prisma.ride.findMany({ + where, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, }); - } else { - // No rider filter, can use direct scan - db.scan(res, Ride, condition); - } -}); -// Diagnostic endpoint to find corrupted rides that fail populate -router.get('/diagnose', async (_req, res) => { - try { - Ride.scan(new Condition()).exec(async (err, data) => { - if (err) { - res.status(500).send({ err: err.message }); - return; - } - const items = data || []; - const bad: any[] = []; - const goodIds: string[] = []; - for (const item of items) { - if (!item) continue; - let id: string | undefined = undefined; - try { - id = - (item as any).id || ((item as any).get && (item as any).get('id')); - } catch (e) { - // Ignore error when getting item ID - } - try { - const populated = await (item as any).populate(); - if (id) goodIds.push(id); - } catch (e: any) { - bad.push({ id, error: e?.message || String(e) }); - } - } - res - .status(200) - .send({ total: items.length, goodCount: goodIds.length, bad }); - }); - } catch (e: any) { - res.status(500).send({ err: e?.message || 'diagnostic failed' }); + res.status(200).send({ data: rides.map(formatRide) }); + } catch (error) { + console.error('Error fetching rides:', error); + res.status(500).send({ err: 'Failed to fetch rides' }); } }); // Create a new ride -router.post('/', validateUser('User'), (req, res) => { - const { body } = req; - const { - startLocation, - endLocation, - isRecurring = false, - // Legacy support - recurring, - } = body; - - // Process locations - convert to reference IDs for storage - const startLocationObj = startLocation as LocationType; - const endLocationObj = endLocation as LocationType; - - // For now, only support single rides (isRecurring = false) - if (isRecurring || recurring) { - res.status(400).send({ - err: 'Recurring rides are not yet supported. Please create a single ride.', - }); - return; - } +router.post('/', validateUser('User'), async (req, res) => { + try { + const { body } = req; + const { startLocation, endLocation, isRecurring = false, recurring } = body; - // Validate single ride requirements - support both legacy rider and new riders array - const hasRiders = body.riders && body.riders.length > 0; - const hasLegacyRider = body.rider; + if (isRecurring || recurring) { + return res.status(400).send({ + err: 'Recurring rides are not yet supported. Please create a single ride.', + }); + } - if (!body.startTime || !body.endTime || (!hasRiders && !hasLegacyRider)) { - res.status(400).send({ - err: 'Missing required fields: startTime, endTime, and at least one rider are required for single rides.', - }); - return; - } + const hasRiders = body.riders && body.riders.length > 0; + const hasLegacyRider = body.rider; - // Validate that startTime is in the future - const startTime = new Date(body.startTime); - const now = new Date(); - if (startTime <= now) { - res.status(400).send({ - err: 'Start time must be in the future.', - }); - return; - } + if (!body.startTime || !body.endTime || (!hasRiders && !hasLegacyRider)) { + return res.status(400).send({ + err: 'Missing required fields: startTime, endTime, and at least one rider are required for single rides.', + }); + } - // Validate that endTime is after startTime - const endTime = new Date(body.endTime); - if (endTime <= startTime) { - res.status(400).send({ - err: 'End time must be after start time.', - }); - return; - } + const startTime = new Date(body.startTime); + const now = new Date(); + if (startTime <= now) { + return res.status(400).send({ + err: 'Start time must be in the future.', + }); + } - // Determine scheduling state based on driver assignment - const hasDriver = body.driver ? true : false; - const schedulingState = - body.schedulingState || - (hasDriver ? SchedulingState.SCHEDULED : SchedulingState.UNSCHEDULED); - - // Determine riders array - support both new format and legacy format - let ridersArray; - if (body.riders && body.riders.length > 0) { - ridersArray = body.riders; - } else if (body.rider) { - // Convert legacy single rider to array - ridersArray = [body.rider]; - } else { - ridersArray = []; - } + const endTime = new Date(body.endTime); + if (endTime <= startTime) { + return res.status(400).send({ + err: 'End time must be after start time.', + }); + } - // Process riders - convert to IDs only for database storage (same logic as PUT route) - if (ridersArray && Array.isArray(ridersArray)) { - ridersArray = ridersArray.map((rider: any) => - typeof rider === 'string' ? rider : rider.id - ); - } + const hasDriver = body.driver ? true : false; + const schedulingState: SchedulingState = + body.schedulingState === 'scheduled' || + body.schedulingState === SchedulingState.SCHEDULED + ? SchedulingState.SCHEDULED + : body.schedulingState === 'unscheduled' || + body.schedulingState === SchedulingState.UNSCHEDULED + ? SchedulingState.UNSCHEDULED + : hasDriver + ? SchedulingState.SCHEDULED + : SchedulingState.UNSCHEDULED; + + let riderIds; + if (body.riders && body.riders.length > 0) { + riderIds = body.riders.map((rider: any) => + typeof rider === 'string' ? rider : rider.id + ); + } else if (body.rider) { + riderIds = [typeof body.rider === 'string' ? body.rider : body.rider.id]; + } else { + riderIds = []; + } - // Create single ride - const ride = new Ride({ - id: uuid(), - startLocation: startLocationObj, - endLocation: endLocationObj, - startTime: body.startTime, - endTime: body.endTime, - riders: ridersArray, - driver: body.driver || undefined, - type: body.type || Type.UPCOMING, - status: body.status || Status.NOT_STARTED, - schedulingState: schedulingState, - isRecurring: false, - timezone: body.timezone || 'America/New_York', - }); + const startLocationId = + typeof startLocation === 'string' ? startLocation : startLocation.id; + const endLocationId = + typeof endLocation === 'string' ? endLocation : endLocation.id; + + // Extract driver ID if driver is an object + const driverId = body.driver + ? typeof body.driver === 'string' + ? body.driver + : body.driver.id + : null; + + // Verify all referenced records exist before creating the ride + const [startLoc, endLoc, ...riders] = await Promise.all([ + prisma.location.findUnique({ where: { id: startLocationId } }), + prisma.location.findUnique({ where: { id: endLocationId } }), + ...riderIds.map((rid: string) => + prisma.rider.findUnique({ where: { id: rid } }) + ), + ]); + if (!startLoc) + return res + .status(400) + .send({ err: `startLocation not found: ${startLocationId}` }); + if (!endLoc) + return res + .status(400) + .send({ err: `endLocation not found: ${endLocationId}` }); + const missingRider = riderIds.find((_: string, i: number) => !riders[i]); + if (missingRider) + return res.status(400).send({ err: `rider not found: ${missingRider}` }); + + const ride = await prisma.ride.create({ + data: { + id: uuid(), + startLocationId, + endLocationId, + startTime: new Date(body.startTime), + endTime: new Date(body.endTime), + riders: { connect: riderIds.map((id: string) => ({ id })) }, + driverId, + type: body.type + ? (body.type.toUpperCase() as RideType) + : RideType.UPCOMING, + status: body.status + ? (body.status.toUpperCase() as RideStatus) + : RideStatus.NOT_STARTED, + schedulingState, + isRecurring: false, + timezone: body.timezone || 'America/New_York', + }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + }); - db.create(res, ride, async (doc) => { - const createdRide = doc as RideType; const { userType } = res.locals.user; - // Send notification - notify(createdRide, body, userType, Change.CREATED) - .then(() => res.send(createdRide)) - .catch(() => res.send(createdRide)); - }); + const formattedRide = formatRide(ride); + notify(formattedRide as any, body as any, userType, Change.CREATED) + .then(() => res.send({ data: formattedRide })) + .catch(() => res.send({ data: formattedRide })); + } catch (error) { + console.error('Error creating ride:', error); + res.status(500).send({ err: 'Failed to create ride' }); + } }); // Update an existing ride -router.put('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - body, - } = req; - const { type, startLocation, endLocation } = body; - - if ( - type && - type === Type.UPCOMING && - body.schedulingState === SchedulingState.UNSCHEDULED - ) { - body.$REMOVE = ['driver']; - } +router.put('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const { body } = req; - // Auto-update schedulingState based on driver assignment - if (body.driver) { - // If driver is being assigned, mark as scheduled - body.schedulingState = SchedulingState.SCHEDULED; - } else if (body.$REMOVE && body.$REMOVE.includes('driver')) { - // If driver is being removed, mark as unscheduled - body.schedulingState = SchedulingState.UNSCHEDULED; - } else if ( - Object.prototype.hasOwnProperty.call(body, 'driver') && - !body.driver - ) { - // If driver is explicitly set to null/undefined, mark as unscheduled - body.schedulingState = SchedulingState.UNSCHEDULED; - } + const ride = await prisma.ride.findUnique({ + where: { id }, + include: { riders: true, driver: true }, + }); + + if (!ride) { + return res.status(400).send({ err: 'id not found in Rides' }); + } - // Process riders - convert to IDs only for database storage - if (body.riders && Array.isArray(body.riders)) { - body.riders = body.riders.map((rider: any) => - typeof rider === 'string' ? rider : rider.id + const userIsRider = ride.riders.some( + (rider) => rider.id === res.locals.user.id ); - } + const userIsDriver = ride.driver && res.locals.user.id === ride.driver.id; + const userIsAdmin = res.locals.user.userType === 'Admin'; - //Check if id matches or user is admin - db.getById(res, Ride, id, tableName, (ride: RideType) => { - const { riders, driver } = ride; - const userIsRider = - riders && riders.some((rider) => rider.id === res.locals.user.id); - - if ( - res.locals.user.userType === UserType.ADMIN || - userIsRider || - (driver && res.locals.user.id === driver.id) - ) { - db.update(res, Ride, { id }, body, tableName, async (doc) => { - const ride = doc; - const { userType } = res.locals.user; - // send ride even if notification failed since it was actually updated - notify(ride, body, userType) - .then(() => res.send(ride)) - .catch(() => res.send(ride)); - }); - } else { - res.status(400).send({ + if (!userIsAdmin && !userIsRider && !userIsDriver) { + return res.status(400).send({ err: 'User ID does not match request ID and user is not an admin.', }); } - }); + + const updateData: any = {}; + + if (body.type) updateData.type = body.type.toUpperCase() as RideType; + if (body.status) + updateData.status = body.status.toUpperCase() as RideStatus; + if (body.startTime) updateData.startTime = new Date(body.startTime); + if (body.endTime) updateData.endTime = new Date(body.endTime); + if (body.timezone) updateData.timezone = body.timezone; + + if (body.startLocation) { + updateData.startLocationId = + typeof body.startLocation === 'string' + ? body.startLocation + : body.startLocation.id; + } + + if (body.endLocation) { + updateData.endLocationId = + typeof body.endLocation === 'string' + ? body.endLocation + : body.endLocation.id; + } + + if (body.riders && Array.isArray(body.riders)) { + const riderIds = body.riders.map((rider: any) => + typeof rider === 'string' ? rider : rider.id + ); + updateData.riders = { set: riderIds.map((id: string) => ({ id })) }; + } + + if (Object.prototype.hasOwnProperty.call(body, 'driver')) { + if (body.driver) { + updateData.driverId = + typeof body.driver === 'string' ? body.driver : body.driver.id; + updateData.schedulingState = SchedulingState.SCHEDULED; + } else { + updateData.driverId = null; + updateData.schedulingState = SchedulingState.UNSCHEDULED; + } + } + + if (body.schedulingState) { + updateData.schedulingState = + body.schedulingState.toUpperCase() as SchedulingState; + } + + const updatedRide = await prisma.ride.update({ + where: { id }, + data: updateData, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + }); + + const { userType } = res.locals.user; + const formattedRide = formatRide(updatedRide); + notify(formattedRide as any, body as any, userType) + .then(() => res.send({ data: formattedRide })) + .catch(() => res.send({ data: formattedRide })); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Rides' }); + } + console.error('Error updating ride:', error); + res.status(500).send({ err: 'Failed to update ride' }); + } }); // Recurring ride edits - disabled until recurring rides are implemented @@ -478,79 +483,77 @@ router.put('/:id/edits', validateUser('User'), (req, res) => { }); // Delete an existing ride -router.delete('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Ride, id, tableName, (ride) => { - const { isRecurring, riders, driver } = ride; - - // For now, block deletion of recurring rides - if (isRecurring) { - res.status(400).send({ +router.delete('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + + const ride = await prisma.ride.findUnique({ + where: { id }, + include: { riders: true, driver: true }, + }); + + if (!ride) { + return res.status(400).send({ err: 'id not found in Rides' }); + } + + if (ride.isRecurring) { + return res.status(400).send({ err: 'Recurring ride deletion not supported yet. Only single rides can be deleted.', }); - return; } - // Check if user has permission to cancel/delete this ride - const userIsRider = - riders && riders.some((rider: any) => rider.id === res.locals.user.id); - const userIsDriver = driver && res.locals.user.id === driver.id; + const userIsRider = ride.riders.some( + (rider: any) => rider.id === res.locals.user.id + ); + const userIsDriver = ride.driver && res.locals.user.id === ride.driver.id; const userIsAdmin = res.locals.user.userType === 'Admin'; if (!userIsAdmin && !userIsRider && !userIsDriver) { - res.status(403).send({ + return res.status(403).send({ err: 'You do not have permission to cancel this ride.', }); - return; } - // Check constraints based on user type and ride status if (!userIsAdmin) { - // Riders can only cancel rides that haven't started - if (userIsRider && ride.status !== Status.NOT_STARTED) { - res.status(400).send({ + if (userIsRider && ride.status !== RideStatus.NOT_STARTED) { + return res.status(400).send({ err: 'You can only cancel rides that have not started yet.', }); - return; } - // Drivers cannot cancel rides (only admins can) if (userIsDriver && !userIsRider) { - res.status(400).send({ + return res.status(400).send({ err: 'Drivers cannot cancel rides. Please contact an admin.', }); - return; } } - // Admin can cancel any ride, but check if it's already completed/past - if (ride.status === Status.COMPLETED) { - res.status(400).send({ + if (ride.status === RideStatus.COMPLETED) { + return res.status(400).send({ err: 'Cannot cancel a ride that has already been completed.', }); - return; } - // Delete the ride from database and send notification - Ride.delete(id) - .then(async () => { - // Send cancellation notification - const { userType } = res.locals.user; - try { - await notify(ride, {}, userType, Change.CANCELLED); - } catch (notificationError) { - console.error( - 'Failed to send cancellation notification:', - notificationError - ); - // Continue with the response even if notification fails - } - res.send({ id }); - }) - .catch((err) => res.status(500).send({ err: err.message })); - }); + await prisma.ride.delete({ where: { id } }); + + const { userType } = res.locals.user; + try { + await notify(formatRide(ride) as any, {}, userType, Change.CANCELLED); + } catch (notificationError) { + console.error( + 'Failed to send cancellation notification:', + notificationError + ); + } + + res.send({ id }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Rides' }); + } + console.error('Error deleting ride:', error); + res.status(500).send({ err: 'Failed to delete ride' }); + } }); export default router; diff --git a/server/src/router/rider.ts b/server/src/router/rider.ts index 35e10da3e..a36142704 100644 --- a/server/src/router/rider.ts +++ b/server/src/router/rider.ts @@ -1,292 +1,347 @@ import express from 'express'; import { v4 as uuid } from 'uuid'; -import { Condition } from 'dynamoose'; import moment from 'moment-timezone'; -import * as db from './common'; -import { Rider } from '../models/rider'; -import { RiderType } from '@carriage-web/shared/types/rider'; -import { Location } from '../models/location'; +import { prisma } from '../db/prisma'; +import { + Accessibility, + Ride, + RideType, + RideStatus, +} from '../../generated/prisma/client'; import { - createKeys, validateUser, - checkNetIDExists, + checkRiderEmailExists, checkNetIDExistsForOtherEmployee, } from '../util'; -import { Ride } from '../models/ride'; -import { RideType, Type, Status } from '@carriage-web/shared/types/ride'; -import { UserType } from '../models/subscription'; const router = express.Router(); -const tableName = 'Riders'; - -router.get('/usage', validateUser('Admin'), (req, res) => { - type UsageData = { - noShows: number; - totalRides: number; - }; - - type Usage = { - [id: string]: UsageData; - }; - const usageObj: Usage = {}; - const isPast = new Condition('type').eq(Type.PAST); - db.scan(res, Ride, isPast, (data: RideType[]) => { - data.forEach((ride) => { - // Handle multiple riders - count usage for each rider in the ride - const ridersToProcess = ride.riders || []; - - ridersToProcess.forEach((rider: RiderType) => { - const currID = rider.id; - if (currID in usageObj) { - if (ride.status === Status.COMPLETED) { - usageObj[currID].totalRides += 1; - } else { - usageObj[currID].noShows += 1; - } + +// Get rider usage stats across all rides +router.get('/usage', validateUser('Admin'), async (req, res) => { + try { + const rides = await prisma.ride.findMany({ + where: { type: RideType.PAST }, + include: { riders: true }, + }); + + const usageObj: Record = + {}; + + for (const ride of rides) { + for (const rider of ride.riders) { + if (!(rider.id in usageObj)) { + usageObj[rider.id] = { noShows: 0, totalRides: 0 }; + } + if (ride.status === RideStatus.COMPLETED) { + usageObj[rider.id].totalRides += 1; } else { - const dummy = - ride.status === Status.COMPLETED - ? { noShows: 0, totalRides: 1 } - : { noShows: 1, totalRides: 0 }; - usageObj[currID] = dummy; + usageObj[rider.id].noShows += 1; } - }); - }); + } + } + res.send(usageObj); - }); + } catch (error) { + console.error('Error fetching usage:', error); + res.status(500).send({ err: 'Failed to fetch usage' }); + } }); -// Get a rider by id in Riders table -router.get('/:id', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName); +// Get a rider by id +router.get('/:id', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const rider = await prisma.rider.findUnique({ where: { id } }); + if (!rider) { + return res.status(400).send({ err: 'id not found in Riders' }); + } + res.status(200).json({ data: rider }); + } catch (error) { + console.error('Error fetching rider:', error); + res.status(500).send({ err: 'Failed to fetch rider' }); + } }); // Get all riders -router.get('/', validateUser('Admin'), (req, res) => { - db.getAll(res, Rider, tableName); +router.get('/', validateUser('Admin'), async (req, res) => { + try { + const riders = await prisma.rider.findMany(); + res.status(200).send({ data: riders }); + } catch (error) { + console.error('Error fetching riders:', error); + res.status(500).send({ err: 'Failed to fetch riders' }); + } }); // Get profile information for a rider -router.get('/:id/profile', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName, (rider: RiderType) => { +router.get('/:id/profile', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const rider = await prisma.rider.findUnique({ where: { id } }); + if (!rider) { + return res.status(400).send({ err: 'id not found in Riders' }); + } const { email, firstName, lastName, phoneNumber, joinDate, endDate } = rider; - res.send({ - email, - firstName, - lastName, - phoneNumber, - joinDate, - endDate, - }); - }); + res.send({ email, firstName, lastName, phoneNumber, joinDate, endDate }); + } catch (error) { + console.error('Error fetching rider profile:', error); + res.status(500).send({ err: 'Failed to fetch rider profile' }); + } }); // Get accessibility information for a rider router.get('/:id/accessibility', validateUser('User'), async (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName, (rider: RiderType) => { - const { description, accessibility } = rider; - res.send({ description, accessibility }); - }); + try { + const { id } = req.params; + const rider = await prisma.rider.findUnique({ where: { id } }); + if (!rider) { + return res.status(400).send({ err: 'id not found in Riders' }); + } + res.send({ + description: rider.description, + accessibility: rider.accessibility, + }); + } catch (error) { + console.error('Error fetching accessibility:', error); + res.status(500).send({ err: 'Failed to fetch accessibility' }); + } }); // Get organization information for a rider router.get('/:id/organization', validateUser('User'), async (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName, (rider: RiderType) => { - const { description, organization } = rider; - res.send({ description, organization }); - }); + try { + const { id } = req.params; + const rider = await prisma.rider.findUnique({ where: { id } }); + if (!rider) { + return res.status(400).send({ err: 'id not found in Riders' }); + } + res.send({ + description: rider.description, + organization: rider.organization, + }); + } catch (error) { + console.error('Error fetching organization:', error); + res.status(500).send({ err: 'Failed to fetch organization' }); + } }); // Get all favorite locations for a rider -router.get('/:id/favorites', validateUser('User'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName, ({ favoriteLocations }: RiderType) => { - const keys = createKeys('id', favoriteLocations); - db.batchGet(res, Location, keys, 'Locations'); - }); +router.get('/:id/favorites', validateUser('User'), async (req, res) => { + try { + const { id } = req.params; + const rider = await prisma.rider.findUnique({ + where: { id }, + include: { + favorites: { + include: { + ride: { include: { startLocation: true, endLocation: true } }, + }, + }, + }, + }); + if (!rider) { + return res.status(400).send({ err: 'id not found in Riders' }); + } + res.status(200).send({ data: rider.favorites }); + } catch (error) { + console.error('Error fetching favorites:', error); + res.status(500).send({ err: 'Failed to fetch favorites' }); + } }); -// Get current/soonest ride (within next 30 min) of rider, if exists -router.get('/:id/currentride', validateUser('Rider'), (req, res) => { - const { - params: { id }, - } = req; - db.getById(res, Rider, id, tableName, () => { - const now = moment().toISOString(); - const end = moment().add(30, 'minutes').toISOString(); - - // For now, let's get all active rides and filter in JavaScript - // This avoids the Dynamoose condition issue with the riders array - const isActive = new Condition('type').eq(Type.ACTIVE); - const isSoon = new Condition('startTime').between(now, end); - const isNow = new Condition('startTime').le(now).where('endTime').ge(now); - const condition = isActive.group(isSoon.or().group(isNow)); - - db.scan(res, Ride, condition, (data: RideType[]) => { - if (!Array.isArray(data)) { - console.error('Data is not an array in currentride:', data); - res.status(500).send({ err: 'Invalid data format returned from scan' }); - return; - } - - // Filter for rides that include this rider - const riderRides = data.filter((ride) => { - // Check both old (rider) and new (riders) format for compatibility - if (ride.riders && Array.isArray(ride.riders)) { - return ride.riders.some((rider: RiderType) => rider.id === id); - } - // Legacy support for old rider field (if it exists) - if ((ride as any).rider && (ride as any).rider.id === id) { - return true; - } - return false; - }); +// Get current/soonest ride (within next 30 min) of rider +router.get('/:id/currentride', validateUser('Rider'), async (req, res) => { + try { + const { id } = req.params; + const now = moment().toDate(); + const soon = moment().add(30, 'minutes').toDate(); - riderRides.sort((a, b) => (a.startTime < b.startTime ? -1 : 1)); - res.send(riderRides[0] ?? {}); + const rides = await prisma.ride.findMany({ + where: { + type: RideType.ACTIVE, + riders: { some: { id } }, + OR: [ + { startTime: { gte: now, lte: soon } }, + { startTime: { lte: now }, endTime: { gte: now } }, + ], + }, + include: { + startLocation: true, + endLocation: true, + riders: true, + driver: true, + }, + orderBy: { startTime: 'asc' }, }); - }); + + res.send(rides[0] ?? {}); + } catch (error) { + console.error('Error fetching current ride:', error); + res.status(500).send({ err: 'Failed to fetch current ride' }); + } }); -router.get('/:id/usage', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - let noShowCount: number; - let studentRides: number; - db.getById(res, Rider, id, tableName, () => { - // Scan all rides and filter in JavaScript to avoid Dynamoose array condition issues - db.scan(res, Ride, new Condition(), (data: RideType[]) => { - // Filter for rides that include this rider - const riderRides = data.filter((ride) => { - // Check both old (rider) and new (riders) format for compatibility - if (ride.riders && Array.isArray(ride.riders)) { - return ride.riders.some((rider: RiderType) => rider.id === id); - } - // Legacy support for old rider field (if it exists) - if ((ride as any).rider && (ride as any).rider.id === id) { - return true; - } - return false; - }); - - noShowCount = riderRides.filter( - (ride) => ride.status === Status.NO_SHOW - ).length; - studentRides = riderRides.filter( - (ride) => ride.status === Status.COMPLETED - ).length; - res.send({ studentRides, noShowCount }); +// Get usage stats for a specific rider +router.get('/:id/usage', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + const rides = await prisma.ride.findMany({ + where: { riders: { some: { id } } }, }); - }); + + const studentRides = rides.filter( + (r: Ride) => r.status === RideStatus.COMPLETED + ).length; + const noShowCount = rides.filter( + (r: Ride) => r.status === RideStatus.NO_SHOW + ).length; + + res.send({ studentRides, noShowCount }); + } catch (error) { + console.error('Error fetching rider usage:', error); + res.status(500).send({ err: 'Failed to fetch rider usage' }); + } }); -// Create a rider in Riders table +// Create a rider router.post('/', validateUser('Admin'), async (req, res) => { try { const { body } = req; - // Check if NetID already exists - const emailExists = await checkNetIDExists(body.email, 'rider'); + const emailExists = await checkRiderEmailExists(body.email); if (emailExists) { - return res.status(409).send({ - err: 'A user with this NetID already exists', - }); + return res + .status(409) + .send({ err: 'A user with this NetID already exists' }); } - const rider = new Rider({ - ...body, - id: uuid(), + // Uppercase accessibility enums if provided + const accessibility = body.accessibility + ? body.accessibility.map((a: string) => a.toUpperCase() as Accessibility) + : []; + + // Reuse existing ID if this person already has an employee record + const existing = await prisma.employee.findUnique({ + where: { email: body.email }, + }); + const sharedId = existing?.id ?? uuid(); + + const rider = await prisma.rider.create({ + data: { + ...body, + id: sharedId, + accessibility, + joinDate: body.joinDate ? new Date(body.joinDate) : undefined, + endDate: body.endDate ? new Date(body.endDate) : undefined, + }, }); - await rider.save(); // Ensure save is awaited for Dynamoose models - res.status(201).json(rider); // Send response after successful creation + + res.status(201).json(rider); } catch (error) { - console.error('Error creating rider:', error); // Log the error - res.status(500).json({ error: 'Failed to create rider' }); // Return error response + console.error('Error creating rider:', error); + res.status(500).json({ error: 'Failed to create rider' }); } }); -// Update a rider in Riders table +// Update a rider router.put('/:id', validateUser('Rider'), async (req, res) => { try { - const { - params: { id }, - body, - } = req; + const { id } = req.params; + const { body } = req; + + if (res.locals.user.userType !== 'Admin' && id !== res.locals.user.id) { + return res.status(400).send({ err: 'User ID does not match request ID' }); + } - // Check if email is being changed and if it conflicts with another user if (body.email) { const emailExists = await checkNetIDExistsForOtherEmployee( body.email, id ); if (emailExists) { - return res.status(409).send({ - err: 'A user with this NetID already exists', - }); + return res + .status(409) + .send({ err: 'A user with this NetID already exists' }); } } - if ( - res.locals.user.userType === UserType.ADMIN || - id === res.locals.user.id - ) { - db.update(res, Rider, { id }, body, tableName); - } else { - res.status(400).send({ err: 'User ID does not match request ID' }); + // Uppercase accessibility enums if provided + if (body.accessibility && Array.isArray(body.accessibility)) { + body.accessibility = body.accessibility.map( + (a: string) => a.toUpperCase() as Accessibility + ); + } + + // Convert date-only strings to full ISO-8601 DateTime + if (body.joinDate && !body.joinDate.includes('T')) { + body.joinDate = new Date(body.joinDate).toISOString(); + } + if (body.endDate && !body.endDate.includes('T')) { + body.endDate = new Date(body.endDate).toISOString(); + } + + const rider = await prisma.rider.update({ + where: { id }, + data: body, + }); + + res.status(200).send({ data: rider }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Riders' }); } - } catch (error) { console.error('Error updating rider:', error); res.status(500).send({ err: 'Failed to update rider' }); } }); -// Add a location to favorites -router.post('/:id/favorites', validateUser('Rider'), (req, res) => { - const { - params: { id }, - body: { id: locId }, - } = req; - // check if location exists in table - db.getById(res, Location, locId, 'Locations', () => { - const operation = { $ADD: { favoriteLocations: [locId] } }; - const condition = new Condition('favoriteLocations').not().contains(locId); - db.conditionalUpdate( - res, - Rider, - { id }, - operation, - condition, - tableName, - ({ favoriteLocations }: RiderType) => { - const keys = createKeys('id', favoriteLocations); - db.batchGet(res, Location, keys, 'Locations'); - } - ); - }); +// Add a ride to favorites +router.post('/:id/favorites', validateUser('Rider'), async (req, res) => { + try { + const { id } = req.params; + const { id: rideId } = req.body; + + // Check ride exists + const ride = await prisma.ride.findUnique({ where: { id: rideId } }); + if (!ride) { + return res.status(400).send({ err: 'id not found in Rides' }); + } + + // Upsert to avoid duplicates + await prisma.favorite.upsert({ + where: { userId_rideId: { userId: id, rideId } }, + update: {}, + create: { userId: id, rideId }, + }); + + const favorites = await prisma.favorite.findMany({ + where: { userId: id }, + include: { + ride: { include: { startLocation: true, endLocation: true } }, + }, + }); + + res.status(200).send({ data: favorites }); + } catch (error) { + console.error('Error adding favorite:', error); + res.status(500).send({ err: 'Failed to add favorite' }); + } }); // Delete an existing rider -router.delete('/:id', validateUser('Admin'), (req, res) => { - const { - params: { id }, - } = req; - db.deleteById(res, Rider, id, tableName); +router.delete('/:id', validateUser('Admin'), async (req, res) => { + try { + const { id } = req.params; + await prisma.rider.delete({ where: { id } }); + res.status(200).send({ id }); + } catch (error: any) { + if (error.code === 'P2025') { + return res.status(400).send({ err: 'id not found in Riders' }); + } + console.error('Error deleting rider:', error); + res.status(500).send({ err: 'Failed to delete rider' }); + } }); export default router; diff --git a/server/src/router/stats.ts b/server/src/router/stats.ts index c9fb9c3d0..f21b05cce 100644 --- a/server/src/router/stats.ts +++ b/server/src/router/stats.ts @@ -1,18 +1,25 @@ import express, { Response } from 'express'; import moment from 'moment-timezone'; -import { Condition } from 'dynamoose/dist/Condition'; import * as csv from '@fast-csv/format'; -import { ObjectType } from 'dynamoose/dist/General'; -import { Stats, StatsType } from '../models/stats'; -import { Ride } from '../models/ride'; -import { RideType, Status } from '@carriage-web/shared/types/ride'; -import * as db from './common'; +import { prisma } from '../db/prisma'; +import { RideStatus } from '../../generated/prisma/client'; import { validateUser } from '../util'; -import { Driver } from '../models/driver'; const router = express.Router(); -router.get('/download', validateUser('Admin'), (req, res) => { +type StatsType = { + year: string; + monthDay: string; + dayCount: number; + dayNoShow: number; + dayCancel: number; + nightCount: number; + nightNoShow: number; + nightCancel: number; + drivers: any; +}; + +router.get('/download', validateUser('Admin'), async (req, res) => { const { query: { from, to }, } = req; @@ -26,36 +33,37 @@ router.get('/download', validateUser('Admin'), (req, res) => { } } - statsFromDates(dates, res, true); + await statsFromDates(dates, res, true); }); -router.put('/', validateUser('Admin'), (req, res) => { - const { - body: { dates }, - } = req; +router.put('/', validateUser('Admin'), async (req, res) => { + try { + const { dates } = req.body; - const numEdits = Object.keys(dates).length; + const updates = Object.keys(dates).map(async (date: string) => { + const year = moment(date as string, 'MM/DD/YYYY').format('YYYY'); + const monthDay = moment(date as string, 'MM/DD/YYYY').format('MMDD'); - const statsAcc: StatsType[] = []; + return await prisma.stats.upsert({ + where: { year_monthDay: { year, monthDay } }, + update: dates[date], + create: { + year, + monthDay, + ...dates[date], + }, + }); + }); - Object.keys(dates).forEach((date: string) => { - const year = moment(date as string, 'MM/DD/YYYY').format('YYYY'); - const monthDay = moment(date as string, 'MM/DD/YYYY').format('MMDD'); - const operation = { $SET: dates[date] }; - const key = { year, monthDay }; - - Stats.update(key, operation) - .then((doc) => { - statsAcc.push(doc.toJSON() as StatsType); - checkSend(res, statsAcc, numEdits); - }) - .catch((err) => - res.status(err.statusCode || 500).send({ err: err.message }) - ); - }); + const statsAcc = await Promise.all(updates); + res.send(statsAcc); + } catch (error) { + console.error('Error updating stats:', error); + res.status(500).send({ err: 'Failed to update stats' }); + } }); -router.get('/', validateUser('Admin'), (req, res) => { +router.get('/', validateUser('Admin'), async (req, res) => { const { query: { from, to }, } = req; @@ -73,30 +81,32 @@ router.get('/', validateUser('Admin'), (req, res) => { date = moment(date).add(1, 'days').format('YYYY-MM-DD'); } } - statsFromDates(dates, res, false); + await statsFromDates(dates, res, false); } else { res.status(400).send({ err: 'Invalid from/to query date format' }); } }); -function statsFromDates(dates: string[], res: Response, download: boolean) { +async function statsFromDates( + dates: string[], + res: Response, + download: boolean +) { const statsAcc: StatsType[] = []; - dates.forEach((currDate) => { + for (const currDate of dates) { const year = moment(currDate, 'YYYY-MM-DD').format('YYYY'); const monthDay = moment(currDate, 'YYYY-MM-DD').format('MMDD'); const dateMoment = moment(currDate); - // day = 12am to 5:00pm - const dayStart = dateMoment.toISOString(); - const dayEnd = dateMoment.add(17, 'hours').toISOString(); - // night = 5:01pm to 11:59:59pm - const nightStart = moment(dayEnd).add(1, 'seconds').toISOString(); + const dayStart = dateMoment.toDate(); + const dayEnd = dateMoment.add(17, 'hours').toDate(); + const nightStart = moment(dayEnd).add(1, 'seconds').toDate(); const nightEnd = moment(currDate as string) .endOf('day') - .toISOString(); + .toDate(); - computeStats( + await computeStats( res, statsAcc, dates.length, @@ -108,48 +118,54 @@ function statsFromDates(dates: string[], res: Response, download: boolean) { monthDay, download ); - }); + } } -function downloadStats(res: Response, statsAcc: StatsType[], numDays: number) { +async function downloadStats( + res: Response, + statsAcc: StatsType[], + numDays: number +) { if (statsAcc.length === numDays) { - Driver.scan() - .exec() - .then((scanRes) => { - const defaultDrivers = scanRes.reduce((acc, curr) => { - const { firstName, lastName } = curr; - const fullName = `${firstName} ${lastName}`; - acc[fullName] = 0; - return acc; - }, {} as ObjectType); - const dataToExport = statsAcc - .sort( - (a: any, b: any) => - Number(a.year + a.monthDay) - Number(b.year + b.monthDay) - ) - .map((doc: any) => { - const { drivers, monthDay } = doc; - const row = { - Date: `${monthDay.substring(0, 2)}/${monthDay.substring(2, 4)}/${ - doc.year - }`, - 'Daily Total': doc.dayCount + doc.nightCount, - 'Daily Ride Count': doc.dayCount, - 'Day No Shows': doc.dayNoShow, - 'Day Cancels': doc.dayCancel, - 'Night Ride Count': doc.nightCount, - 'Night No Shows': doc.nightNoShow, - 'Night Cancels': doc.nightCancel, - ...defaultDrivers, - ...drivers, - }; - return row; - }); - csv - .writeToBuffer(dataToExport, { headers: true }) - .then((data) => res.send(data)) - .catch((err) => res.send(err)); - }); + try { + const drivers = await prisma.driver.findMany(); + const defaultDrivers = drivers.reduce((acc, curr) => { + const { firstName, lastName } = curr; + const fullName = `${firstName} ${lastName}`; + acc[fullName] = 0; + return acc; + }, {} as any); + + const dataToExport = statsAcc + .sort( + (a: any, b: any) => + Number(a.year + a.monthDay) - Number(b.year + b.monthDay) + ) + .map((doc: any) => { + const { drivers, monthDay } = doc; + const row = { + Date: `${monthDay.substring(0, 2)}/${monthDay.substring(2, 4)}/${ + doc.year + }`, + 'Daily Total': doc.dayCount + doc.nightCount, + 'Daily Ride Count': doc.dayCount, + 'Day No Shows': doc.dayNoShow, + 'Day Cancels': doc.dayCancel, + 'Night Ride Count': doc.nightCount, + 'Night No Shows': doc.nightNoShow, + 'Night Cancels': doc.nightCancel, + ...defaultDrivers, + ...drivers, + }; + return row; + }); + + const csvData = await csv.writeToBuffer(dataToExport, { headers: true }); + res.send(csvData); + } catch (error) { + console.error('Error downloading stats:', error); + res.status(500).send({ err: 'Failed to download stats' }); + } } } @@ -159,71 +175,76 @@ function checkSend(res: Response, statsAcc: StatsType[], numDays: number) { } } -function computeStats( +async function computeStats( res: Response, statsAcc: StatsType[], numDays: number, - dayStart: string, - dayEnd: string, - nightStart: string, - nightEnd: string, + dayStart: Date, + dayEnd: Date, + nightStart: Date, + nightEnd: Date, year: string, monthDay: string, download: boolean ) { - Stats.get({ year, monthDay }, (err, data) => { - if (data) { - statsAcc.push(data.toJSON() as StatsType); + try { + const existingStats = await prisma.stats.findUnique({ + where: { year_monthDay: { year, monthDay } }, + }); + + if (existingStats) { + statsAcc.push(existingStats as StatsType); if (!download) { checkSend(res, statsAcc, numDays); } else { - downloadStats(res, statsAcc, numDays); + await downloadStats(res, statsAcc, numDays); } - } else if (err || !data) { - const conditionRidesDate = new Condition() - .where('startTime') - .between(dayStart, nightEnd) - .where('type') - .not() - .eq('unscheduled'); - - db.scan(res, Ride, conditionRidesDate, (dataDay: RideType[]) => { - let dayCountStat = 0; - let dayNoShowStat = 0; - let dayCancelStat = 0; - let nightCountStat = 0; - let nightNoShowStat = 0; - let nightCancelStat = 0; - const driversStat: { [name: string]: number } = {}; - - dataDay.forEach((rideData: RideType) => { - const driverName = `${rideData.driver?.firstName} ${rideData.driver?.lastName}`; - if (rideData.status === Status.NO_SHOW) { - if (rideData.startTime <= dayEnd) { - dayNoShowStat += 1; - } else { - nightNoShowStat += 1; - } - } else if (rideData.status === Status.COMPLETED) { - if (rideData.startTime <= dayEnd) { - dayCountStat += 1; - } else { - nightCountStat += 1; - } - if (driversStat[driverName]) { - driversStat[driverName] += 1; - } else { - driversStat[driverName] = 1; - } - } else if (rideData.status === Status.CANCELLED) { - if (rideData.startTime <= dayEnd) { - dayCancelStat += 1; - } else { - nightCancelStat += 1; - } + } else { + const rides = await prisma.ride.findMany({ + where: { + startTime: { gte: dayStart, lte: nightEnd }, + }, + include: { driver: true }, + }); + + let dayCountStat = 0; + let dayNoShowStat = 0; + let dayCancelStat = 0; + let nightCountStat = 0; + let nightNoShowStat = 0; + let nightCancelStat = 0; + const driversStat: { [name: string]: number } = {}; + + rides.forEach((rideData: any) => { + const driverName = `${rideData.driver?.firstName} ${rideData.driver?.lastName}`; + if (rideData.status === RideStatus.NO_SHOW) { + if (rideData.startTime <= dayEnd) { + dayNoShowStat += 1; + } else { + nightNoShowStat += 1; } - }); - const stats = new Stats({ + } else if (rideData.status === RideStatus.COMPLETED) { + if (rideData.startTime <= dayEnd) { + dayCountStat += 1; + } else { + nightCountStat += 1; + } + if (driversStat[driverName]) { + driversStat[driverName] += 1; + } else { + driversStat[driverName] = 1; + } + } else if (rideData.status === RideStatus.CANCELLED) { + if (rideData.startTime <= dayEnd) { + dayCancelStat += 1; + } else { + nightCancelStat += 1; + } + } + }); + + const stats = await prisma.stats.create({ + data: { year, monthDay, dayCount: dayCountStat, @@ -233,20 +254,20 @@ function computeStats( nightNoShow: nightNoShowStat, nightCancel: nightCancelStat, drivers: driversStat, - }); - Stats.create(stats).then((doc) => { - statsAcc.push(doc.toJSON() as StatsType); - if (!download) { - checkSend(res, statsAcc, numDays); - } else { - downloadStats(res, statsAcc, numDays); - } - }); + }, }); - } else { - console.log('Should be unreachable'); + + statsAcc.push(stats as StatsType); + if (!download) { + checkSend(res, statsAcc, numDays); + } else { + await downloadStats(res, statsAcc, numDays); + } } - }); + } catch (error) { + console.error('Error computing stats:', error); + res.status(500).send({ err: 'Failed to compute stats' }); + } } export default router; diff --git a/server/src/router/upload.ts b/server/src/router/upload.ts index d86e05dc9..96a9fb9bc 100644 --- a/server/src/router/upload.ts +++ b/server/src/router/upload.ts @@ -1,10 +1,6 @@ import express from 'express'; import { S3 } from '@aws-sdk/client-s3'; -import * as db from './common'; -import { Driver } from '../models/driver'; -import { Admin } from '../models/admin'; -import { Location } from '../models/location'; -import { Rider } from '../models/rider'; +import { prisma } from '../db/prisma'; import { validateUser } from '../util'; import { config } from 'dotenv'; config(); @@ -46,25 +42,38 @@ router.post('/', validateUser('User'), (request, response) => { ContentEncoding: 'base64', }; - return s3Bucket.putObject(params, (s3Err: any) => { + return s3Bucket.putObject(params, async (s3Err: any) => { if (s3Err) { response.status(s3Err.statusCode || 400).send({ err: s3Err.message }); } else { - const photoLink = `https://${BUCKET_NAME}.s3.us-east-2.amazonaws.com/${objectKey}`; - const databaseOperation = { $SET: { photoLink } }; - switch (tableName) { - case 'Drivers': - db.update(response, Driver, { id }, databaseOperation, tableName); - break; - case 'Admins': - db.update(response, Admin, { id }, databaseOperation, tableName); - break; - case 'Locations': - db.update(response, Location, { id }, databaseOperation, tableName); - break; - case 'Riders': - db.update(response, Rider, { id }, databaseOperation, tableName); - break; + try { + const photoLink = `https://${BUCKET_NAME}.s3.us-east-2.amazonaws.com/${objectKey}`; + let updated; + switch (tableName) { + case 'Drivers': + case 'Admins': + updated = await (prisma as any).employee.update({ + where: { id }, + data: { photoLink }, + }); + break; + case 'Locations': + updated = await prisma.location.update({ + where: { id }, + data: { photoLink }, + }); + break; + case 'Riders': + updated = await prisma.rider.update({ + where: { id }, + data: { photoLink }, + }); + break; + } + response.status(200).send({ data: updated }); + } catch (error) { + console.error('Error updating photo link:', error); + response.status(500).send({ err: 'Failed to update photo link' }); } } }); @@ -98,19 +107,30 @@ router.post('/', validateUser('User'), (request, response) => { // Update DB with images array (for Locations only) if (tableName === 'Locations') { // Merge with existing images if any - Location.get(id, (err, data) => { - const existing: string[] = (data && (data as any).images) || []; - const merged = Array.from( - new Set([...(existing || []), ...uploadedUrls]) - ); - const databaseOperation = { - $SET: { - images: merged, - photoLink: (data && (data as any).photoLink) || merged[0], - }, - }; - db.update(response, Location, { id }, databaseOperation, tableName); - }); + (async () => { + try { + const location = await prisma.location.findUnique({ + where: { id }, + }); + const existing: string[] = (location && location.images) || []; + const merged = Array.from( + new Set([...(existing || []), ...uploadedUrls]) + ); + const updated = await prisma.location.update({ + where: { id }, + data: { + images: merged, + photoLink: (location && location.photoLink) || merged[0], + }, + }); + response.status(200).send({ data: updated }); + } catch (error) { + console.error('Error updating location images:', error); + response + .status(500) + .send({ err: 'Failed to update location images' }); + } + })(); } else { response.send({ data: uploadedUrls }); } diff --git a/server/src/util/index.ts b/server/src/util/index.ts index 212e6cb9b..3000f6a1f 100644 --- a/server/src/util/index.ts +++ b/server/src/util/index.ts @@ -3,11 +3,7 @@ import { NextFunction, Request, Response } from 'express'; import * as jwt from 'jsonwebtoken'; import { UserType, JWTPayload } from '@carriage-web/shared/types'; import moment from 'moment-timezone'; -import { ValueType } from 'dynamoose/dist/Schema'; -import { Location } from '../models/location'; -import { Admin } from '../models/admin'; -import { Driver } from '../models/driver'; -import { Rider } from '../models/rider'; +import { prisma } from '../db/prisma'; export function createKeys(property: string, values: string[]) { return values.map((v) => ({ [property]: v })); @@ -121,44 +117,17 @@ export const timeToMDY = (time: string) => moment(time).format('l'); export const timeTo12Hr = (time: string) => moment(time).format('LT'); -export const getRideLocation = (value: ValueType) => { - if (typeof value === 'string') { - return Location.get(value) as any; - } - return value; -}; - -type Role = 'rider' | 'driver' | 'admin'; - -export async function checkNetIDExists( - email: string, - role: Role -): Promise { - if (role === 'rider') { - const riders = await Rider.scan('email').eq(email).exec(); - return riders.length > 0; - } - - if (role === 'driver') { - const drivers = await Driver.scan('email').eq(email).exec(); - return drivers.length > 0; - } - - const admins = await Admin.scan('email').eq(email).exec(); - return admins.length > 0; +export async function checkRiderEmailExists(email: string): Promise { + const rider = await prisma.rider.findUnique({ where: { email } }); + return rider !== null; } export async function checkNetIDExistsForOtherEmployee( email: string, currentEmployeeId: string ): Promise { - const [admins, drivers, riders] = await Promise.all([ - Admin.scan('email').eq(email).exec(), - Driver.scan('email').eq(email).exec(), - Rider.scan('email').eq(email).exec(), - ]); - - // Check if any found employee has a different ID - const allEmployees = [...admins, ...drivers, ...riders]; - return allEmployees.some((emp) => emp.id !== currentEmployeeId); + const employee = await (prisma as any).employee.findUnique({ + where: { email }, + }); + return employee !== null && employee.id !== currentEmployeeId; } diff --git a/shared/src/types/admin.ts b/shared/src/types/admin.ts index 422c338cb..9848a092d 100644 --- a/shared/src/types/admin.ts +++ b/shared/src/types/admin.ts @@ -1,12 +1,5 @@ +import { EmployeeType } from './employee'; + export type AdminRole = 'sds-admin' | 'redrunner-admin'; -export type AdminType = { - id: string; - firstName: string; - lastName: string; - type: AdminRole[]; - isDriver: boolean; - phoneNumber: string; - email: string; - photoLink?: string; -}; +export type AdminType = EmployeeType; diff --git a/shared/src/types/driver.ts b/shared/src/types/driver.ts index 65c142c3a..ccf556bc1 100644 --- a/shared/src/types/driver.ts +++ b/shared/src/types/driver.ts @@ -1,4 +1,5 @@ -// Define day of week enum +import { EmployeeType } from './employee'; + export enum DayOfWeek { MONDAY = 'MON', TUESDAY = 'TUE', @@ -7,14 +8,4 @@ export enum DayOfWeek { FRIDAY = 'FRI', } -export type DriverType = { - id: string; - firstName: string; - lastName: string; - phoneNumber: string; - email: string; - photoLink?: string; - availability: DayOfWeek[]; - active?: boolean; - joinDate?: string; -}; +export type DriverType = EmployeeType; diff --git a/shared/src/types/employee.ts b/shared/src/types/employee.ts new file mode 100644 index 000000000..a94eafdae --- /dev/null +++ b/shared/src/types/employee.ts @@ -0,0 +1,16 @@ +import { DayOfWeek } from './driver'; + +export type EmployeeType = { + id: string; + firstName: string; + lastName: string; + phoneNumber: string; + email: string; + photoLink?: string; + isAdmin: boolean; + adminRoles: string[]; + isDriver: boolean; + availability: DayOfWeek[]; + active?: boolean; + joinDate?: string; +};