diff --git a/package.json b/package.json index 7a6473f..927200a 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "cmdk": "^1.1.1", "date-fns": "^4.1.0", "lucide-react": "^0.511.0", - "next": "15.4.0-canary.85", + "next": "15.4.0-canary.94", "next-auth": "^5.0.0-beta.25", "next-swagger-doc": "^0.4.1", "next-themes": "^0.4.6", @@ -61,22 +61,22 @@ "devDependencies": { "@eslint/eslintrc": "3.3.1", "@tailwindcss/postcss": "4.1.10", - "@types/node": "22.15.32", + "@types/node": "22.15.33", "@types/react": "19.1.8", "@types/react-dom": "19.1.6", - "@types/swagger-ui-react": "^5", - "@types/webpack-env": "^1.18.8", + "@types/swagger-ui-react": "5", + "@types/webpack-env": "1.18.8", "dotenv-cli": "8.0.0", "eslint": "9.29.0", "eslint-config-next": "15.3.4", "eslint-config-prettier": "10.1.5", - "orval": "^7.10.0", + "orval": "7.10.0", "postcss": "8.5.6", "prettier": "3.5.3", - "prisma": "6.9.0", + "prisma": "6.10.1", "tailwindcss": "4.1.10", - "ts-node": "^10.9.2", - "tsconfig-paths": "^4.2.0", + "ts-node": "10.9.2", + "tsconfig-paths": "4.2.0", "tw-animate-css": "1.3.4", "typescript": "^5.8.3" }, diff --git a/src/app/api/user/[user]/calendar/route.ts b/src/app/api/user/[user]/calendar/route.ts new file mode 100644 index 0000000..f6b6098 --- /dev/null +++ b/src/app/api/user/[user]/calendar/route.ts @@ -0,0 +1,212 @@ +import { auth } from '@/auth'; +import { prisma } from '@/prisma'; +import { + returnZodTypeCheckedResponse, + userAuthenticated, +} from '@/lib/apiHelpers'; +import { + userCalendarQuerySchema, + UserCalendarResponseSchema, + UserCalendarSchema, +} from './validation'; +import { + ErrorResponseSchema, + ZodErrorResponseSchema, +} from '@/app/api/validation'; +import { z } from 'zod/v4'; + +export const GET = auth(async function GET(req, { params }) { + const authCheck = userAuthenticated(req); + if (!authCheck.continue) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + authCheck.response, + authCheck.metadata, + ); + + const dataRaw = Object.fromEntries(new URL(req.url).searchParams); + const data = await userCalendarQuerySchema.safeParseAsync(dataRaw); + if (!data.success) + return returnZodTypeCheckedResponse( + ZodErrorResponseSchema, + { + success: false, + message: 'Invalid request data', + errors: data.error.issues, + }, + { status: 400 }, + ); + const { end, start } = data.data; + + const requestUserId = authCheck.user.id; + + const requestedUserId = (await params).user; + + const requestedUser = await prisma.user.findFirst({ + where: { + id: requestedUserId, + }, + select: { + meetingParts: { + where: { + meeting: { + start_time: { + lte: end, + }, + end_time: { + gte: start, + }, + }, + }, + orderBy: { + meeting: { + start_time: 'asc', + }, + }, + select: { + meeting: { + select: { + id: true, + title: true, + description: true, + start_time: true, + end_time: true, + status: true, + location: true, + created_at: true, + updated_at: true, + organizer_id: true, + participants: { + select: { + user: { + select: { + id: true, + }, + }, + }, + }, + }, + }, + }, + }, + meetingsOrg: { + where: { + start_time: { + lte: end, + }, + end_time: { + gte: start, + }, + }, + orderBy: { + start_time: 'asc', + }, + select: { + id: true, + title: true, + description: true, + start_time: true, + end_time: true, + status: true, + location: true, + created_at: true, + updated_at: true, + organizer_id: true, + participants: { + select: { + user: { + select: { + id: true, + }, + }, + }, + }, + }, + }, + blockedSlots: { + where: { + start_time: { + lte: end, + }, + end_time: { + gte: start, + }, + }, + orderBy: { + start_time: 'asc', + }, + select: { + id: requestUserId === requestedUserId ? true : false, + reason: requestUserId === requestedUserId ? true : false, + start_time: true, + end_time: true, + is_recurring: requestUserId === requestedUserId ? true : false, + recurrence_end_date: requestUserId === requestedUserId ? true : false, + rrule: requestUserId === requestedUserId ? true : false, + created_at: requestUserId === requestedUserId ? true : false, + updated_at: requestUserId === requestedUserId ? true : false, + }, + }, + }, + }); + + if (!requestedUser) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { success: false, message: 'User not found' }, + { status: 404 }, + ); + + const calendar: z.input = []; + + for (const event of requestedUser.meetingParts) { + if ( + event.meeting.participants.some((p) => p.user.id === requestUserId) || + event.meeting.organizer_id === requestUserId + ) { + calendar.push({ ...event.meeting, type: 'event' }); + } else { + calendar.push({ + start_time: event.meeting.start_time, + end_time: event.meeting.end_time, + type: 'blocked_private', + }); + } + } + + for (const event of requestedUser.meetingsOrg) { + if ( + event.participants.some((p) => p.user.id === requestUserId) || + event.organizer_id === requestUserId + ) { + calendar.push({ ...event, type: 'event' }); + } else { + calendar.push({ + start_time: event.start_time, + end_time: event.end_time, + type: 'blocked_private', + }); + } + } + + for (const slot of requestedUser.blockedSlots) { + calendar.push({ + start_time: slot.start_time, + end_time: slot.end_time, + id: slot.id, + reason: slot.reason, + is_recurring: slot.is_recurring, + recurrence_end_date: slot.recurrence_end_date, + rrule: slot.rrule, + created_at: slot.created_at, + updated_at: slot.updated_at, + type: + requestUserId === requestedUserId ? 'blocked_owned' : 'blocked_private', + }); + } + + return returnZodTypeCheckedResponse(UserCalendarResponseSchema, { + success: true, + calendar, + }); +}); diff --git a/src/app/api/user/[user]/calendar/swagger.ts b/src/app/api/user/[user]/calendar/swagger.ts new file mode 100644 index 0000000..fb48629 --- /dev/null +++ b/src/app/api/user/[user]/calendar/swagger.ts @@ -0,0 +1,37 @@ +import { + userCalendarQuerySchema, + UserCalendarResponseSchema, +} from './validation'; +import { + notAuthenticatedResponse, + userNotFoundResponse, +} from '@/lib/defaultApiResponses'; +import { OpenAPIRegistry } from '@asteasolutions/zod-to-openapi'; +import zod from 'zod/v4'; +import { UserIdParamSchema } from '@/app/api/validation'; + +export default function registerSwaggerPaths(registry: OpenAPIRegistry) { + registry.registerPath({ + method: 'get', + path: '/api/user/{user}/calendar', + request: { + params: zod.object({ + user: UserIdParamSchema, + }), + query: userCalendarQuerySchema, + }, + responses: { + 200: { + description: 'User calendar retrieved successfully.', + content: { + 'application/json': { + schema: UserCalendarResponseSchema, + }, + }, + }, + ...notAuthenticatedResponse, + ...userNotFoundResponse, + }, + tags: ['User'], + }); +} diff --git a/src/app/api/user/[user]/calendar/validation.ts b/src/app/api/user/[user]/calendar/validation.ts new file mode 100644 index 0000000..a0d179f --- /dev/null +++ b/src/app/api/user/[user]/calendar/validation.ts @@ -0,0 +1,99 @@ +import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'; +import zod from 'zod/v4'; +import { + eventEndTimeSchema, + EventSchema, + eventStartTimeSchema, +} from '@/app/api/event/validation'; + +extendZodWithOpenApi(zod); + +export const BlockedSlotSchema = zod + .object({ + start_time: eventStartTimeSchema, + end_time: eventEndTimeSchema, + type: zod.literal('blocked_private'), + }) + .openapi('BlockedSlotSchema', { + description: 'Blocked time slot in the user calendar', + }); + +export const OwnedBlockedSlotSchema = BlockedSlotSchema.extend({ + id: zod.string(), + reason: zod.string().nullish(), + is_recurring: zod.boolean().default(false), + recurrence_end_date: zod.date().nullish(), + rrule: zod.string().nullish(), + created_at: zod.date().nullish(), + updated_at: zod.date().nullish(), + type: zod.literal('blocked_owned'), +}).openapi('OwnedBlockedSlotSchema', { + description: 'Blocked slot owned by the user', +}); + +export const VisibleSlotSchema = EventSchema.omit({ + organizer: true, + participants: true, +}) + .extend({ + type: zod.literal('event'), + }) + .openapi('VisibleSlotSchema', { + description: 'Visible time slot in the user calendar', + }); + +export const UserCalendarSchema = zod + .array(VisibleSlotSchema.or(BlockedSlotSchema).or(OwnedBlockedSlotSchema)) + .openapi('UserCalendarSchema', { + description: 'Array of events in the user calendar', + }); + +export const UserCalendarResponseSchema = zod.object({ + success: zod.boolean().default(true), + calendar: UserCalendarSchema, +}); + +export const userCalendarQuerySchema = zod + .object({ + start: zod.iso + .datetime() + .optional() + .transform((val) => { + if (val) return new Date(val); + const now = new Date(); + const startOfWeek = new Date( + now.getFullYear(), + now.getMonth(), + now.getDate() - now.getDay(), + ); + return startOfWeek; + }), + end: zod.iso + .datetime() + .optional() + .transform((val) => { + if (val) return new Date(val); + const now = new Date(); + const endOfWeek = new Date( + now.getFullYear(), + now.getMonth(), + now.getDate() + (6 - now.getDay()), + ); + return endOfWeek; + }), + }) + .openapi('UserCalendarQuerySchema', { + description: 'Query parameters for filtering the user calendar', + properties: { + start: { + type: 'string', + format: 'date-time', + description: 'Start date for filtering the calendar events', + }, + end: { + type: 'string', + format: 'date-time', + description: 'End date for filtering the calendar events', + }, + }, + }); diff --git a/src/app/api/user/me/password/route.ts b/src/app/api/user/me/password/route.ts new file mode 100644 index 0000000..0b92559 --- /dev/null +++ b/src/app/api/user/me/password/route.ts @@ -0,0 +1,122 @@ +import { auth } from '@/auth'; +import { prisma } from '@/prisma'; +import { updateUserPasswordServerSchema } from '../validation'; +import { + returnZodTypeCheckedResponse, + userAuthenticated, +} from '@/lib/apiHelpers'; +import { FullUserResponseSchema } from '../../validation'; +import { + ErrorResponseSchema, + ZodErrorResponseSchema, +} from '@/app/api/validation'; +import bcrypt from 'bcryptjs'; + +export const PATCH = auth(async function PATCH(req) { + const authCheck = userAuthenticated(req); + if (!authCheck.continue) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + authCheck.response, + authCheck.metadata, + ); + + const body = await req.json(); + const parsedBody = updateUserPasswordServerSchema.safeParse(body); + if (!parsedBody.success) + return returnZodTypeCheckedResponse( + ZodErrorResponseSchema, + { + success: false, + message: 'Invalid request data', + errors: parsedBody.error.issues, + }, + { status: 400 }, + ); + + const { current_password, new_password } = parsedBody.data; + + const dbUser = await prisma.user.findUnique({ + where: { + id: authCheck.user.id, + }, + include: { + accounts: true, + }, + }); + + if (!dbUser) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { + success: false, + message: 'User not found', + }, + { status: 404 }, + ); + + if (!dbUser.password_hash) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { + success: false, + message: 'User does not have a password set', + }, + { status: 400 }, + ); + + if ( + dbUser.accounts.length === 0 || + dbUser.accounts[0].provider !== 'credentials' + ) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { + success: false, + message: 'Credentials login is not enabled for this user', + }, + { status: 400 }, + ); + + const isCurrentPasswordValid = await bcrypt.compare( + current_password, + dbUser.password_hash || '', + ); + + if (!isCurrentPasswordValid) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { + success: false, + message: 'Current password is incorrect', + }, + { status: 401 }, + ); + + const hashedNewPassword = await bcrypt.hash(new_password, 10); + + const updatedUser = await prisma.user.update({ + where: { + id: dbUser.id, + }, + data: { + password_hash: hashedNewPassword, + }, + select: { + id: true, + name: true, + first_name: true, + last_name: true, + email: true, + image: true, + timezone: true, + created_at: true, + updated_at: true, + }, + }); + + return returnZodTypeCheckedResponse(FullUserResponseSchema, { + success: true, + user: updatedUser, + }); +}); diff --git a/src/app/api/user/me/password/swagger.ts b/src/app/api/user/me/password/swagger.ts new file mode 100644 index 0000000..0bc62f0 --- /dev/null +++ b/src/app/api/user/me/password/swagger.ts @@ -0,0 +1,43 @@ +import { OpenAPIRegistry } from '@asteasolutions/zod-to-openapi'; +import { FullUserResponseSchema } from '../../validation'; +import { updateUserPasswordServerSchema } from '../validation'; +import { + invalidRequestDataResponse, + notAuthenticatedResponse, + serverReturnedDataValidationErrorResponse, + userNotFoundResponse, +} from '@/lib/defaultApiResponses'; + +export default function registerSwaggerPaths(registry: OpenAPIRegistry) { + registry.registerPath({ + method: 'patch', + path: '/api/user/me/password', + description: 'Update the password of the currently authenticated user', + request: { + body: { + description: 'User password update request body', + required: true, + content: { + 'application/json': { + schema: updateUserPasswordServerSchema, + }, + }, + }, + }, + responses: { + 200: { + description: 'User information updated successfully', + content: { + 'application/json': { + schema: FullUserResponseSchema, + }, + }, + }, + ...invalidRequestDataResponse, + ...notAuthenticatedResponse, + ...userNotFoundResponse, + ...serverReturnedDataValidationErrorResponse, + }, + tags: ['User'], + }); +} diff --git a/src/app/api/user/me/route.ts b/src/app/api/user/me/route.ts index 5ba9792..5571a6b 100644 --- a/src/app/api/user/me/route.ts +++ b/src/app/api/user/me/route.ts @@ -8,6 +8,7 @@ import { import { FullUserResponseSchema } from '../validation'; import { ErrorResponseSchema, + SuccessResponseSchema, ZodErrorResponseSchema, } from '@/app/api/validation'; @@ -117,3 +118,43 @@ export const PATCH = auth(async function PATCH(req) { { status: 200 }, ); }); + +export const DELETE = auth(async function DELETE(req) { + const authCheck = userAuthenticated(req); + if (!authCheck.continue) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + authCheck.response, + authCheck.metadata, + ); + + const dbUser = await prisma.user.findUnique({ + where: { + id: authCheck.user.id, + }, + }); + if (!dbUser) + return returnZodTypeCheckedResponse( + ErrorResponseSchema, + { + success: false, + message: 'User not found', + }, + { status: 404 }, + ); + + await prisma.user.delete({ + where: { + id: authCheck.user.id, + }, + }); + + return returnZodTypeCheckedResponse( + SuccessResponseSchema, + { + success: true, + message: 'User deleted successfully', + }, + { status: 200 }, + ); +}); diff --git a/src/app/api/user/me/swagger.ts b/src/app/api/user/me/swagger.ts index e0a36a1..6a9e375 100644 --- a/src/app/api/user/me/swagger.ts +++ b/src/app/api/user/me/swagger.ts @@ -7,6 +7,7 @@ import { serverReturnedDataValidationErrorResponse, userNotFoundResponse, } from '@/lib/defaultApiResponses'; +import { SuccessResponseSchema } from '../../validation'; export default function registerSwaggerPaths(registry: OpenAPIRegistry) { registry.registerPath({ @@ -60,4 +61,24 @@ export default function registerSwaggerPaths(registry: OpenAPIRegistry) { }, tags: ['User'], }); + + registry.registerPath({ + method: 'delete', + path: '/api/user/me', + description: 'Delete the currently authenticated user', + responses: { + 200: { + description: 'User deleted successfully', + content: { + 'application/json': { + schema: SuccessResponseSchema, + }, + }, + }, + ...notAuthenticatedResponse, + ...userNotFoundResponse, + ...serverReturnedDataValidationErrorResponse, + }, + tags: ['User'], + }); } diff --git a/src/app/api/user/me/validation.ts b/src/app/api/user/me/validation.ts index 49c6219..66f07cc 100644 --- a/src/app/api/user/me/validation.ts +++ b/src/app/api/user/me/validation.ts @@ -4,6 +4,8 @@ import { lastNameSchema, newUserEmailServerSchema, newUserNameServerSchema, + passwordSchema, + timezoneSchema, } from '@/app/api/user/validation'; // ---------------------------------------- @@ -16,6 +18,16 @@ export const updateUserServerSchema = zod.object({ first_name: firstNameSchema.optional(), last_name: lastNameSchema.optional(), email: newUserEmailServerSchema.optional(), - image: zod.string().optional(), - timezone: zod.string().optional(), + image: zod.url().optional(), + timezone: timezoneSchema.optional(), }); + +export const updateUserPasswordServerSchema = zod + .object({ + current_password: zod.string().min(1, 'Current password is required'), + new_password: passwordSchema, + confirm_new_password: passwordSchema, + }) + .refine((data) => data.new_password === data.confirm_new_password, { + message: 'New password and confirm new password must match', + }); diff --git a/src/app/api/user/validation.ts b/src/app/api/user/validation.ts index 79b1e7e..89b8ba4 100644 --- a/src/app/api/user/validation.ts +++ b/src/app/api/user/validation.ts @@ -1,6 +1,7 @@ import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'; import { prisma } from '@/prisma'; import zod from 'zod/v4'; +import { allTimeZones } from '@/lib/timezones'; extendZodWithOpenApi(zod); @@ -107,6 +108,15 @@ export const passwordSchema = zod 'Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character', ); +// ---------------------------------------- +// +// Timezone Validation +// +// ---------------------------------------- +export const timezoneSchema = zod.enum(allTimeZones).openapi('Timezone', { + description: 'Valid timezone from the list of supported timezones', +}); + // ---------------------------------------- // // User Schema Validation (for API responses) @@ -119,8 +129,11 @@ export const FullUserSchema = zod first_name: zod.string().nullish(), last_name: zod.string().nullish(), email: zod.email(), - image: zod.string().nullish(), - timezone: zod.string(), + image: zod.url().nullish(), + timezone: zod + .string() + .refine((i) => (allTimeZones as string[]).includes(i)) + .nullish(), created_at: zod.date(), updated_at: zod.date(), }) diff --git a/src/lib/timezones.ts b/src/lib/timezones.ts new file mode 100644 index 0000000..9382aab --- /dev/null +++ b/src/lib/timezones.ts @@ -0,0 +1,3717 @@ +export const timezoneData = { + ianaVersion: '2025b', + fullVersionId: 'TZDB: 2025b (mapping: $Revision$)', + zones: [ + { + id: 'Africa/Abidjan', + aliases: [ + 'Africa/Accra', + 'Africa/Bamako', + 'Africa/Banjul', + 'Africa/Conakry', + 'Africa/Dakar', + 'Africa/Freetown', + 'Africa/Lome', + 'Africa/Nouakchott', + 'Africa/Ouagadougou', + 'Africa/Timbuktu', + 'Atlantic/Reykjavik', + 'Atlantic/St_Helena', + 'Iceland', + ], + location: { + countryCode: 'CI', + countryName: 'C\u00F4te d\u0027Ivoire', + comment: '', + latitude: 5.316666666666666, + longitude: -4.033333333333333, + }, + }, + { + id: 'Africa/Algiers', + aliases: [], + location: { + countryCode: 'DZ', + countryName: 'Algeria', + comment: '', + latitude: 36.78333333333333, + longitude: 3.05, + }, + }, + { + id: 'Africa/Bissau', + aliases: [], + location: { + countryCode: 'GW', + countryName: 'Guinea-Bissau', + comment: '', + latitude: 11.85, + longitude: -15.583333333333334, + }, + }, + { + id: 'Africa/Cairo', + aliases: ['Egypt'], + location: { + countryCode: 'EG', + countryName: 'Egypt', + comment: '', + latitude: 30.05, + longitude: 31.25, + }, + }, + { + id: 'Africa/Casablanca', + aliases: [], + location: { + countryCode: 'MA', + countryName: 'Morocco', + comment: '', + latitude: 33.65, + longitude: -7.583333333333333, + }, + }, + { + id: 'Africa/Ceuta', + aliases: [], + location: { + countryCode: 'ES', + countryName: 'Spain', + comment: 'Ceuta, Melilla', + latitude: 35.88333333333333, + longitude: -5.316666666666666, + }, + }, + { + id: 'Africa/El_Aaiun', + aliases: [], + location: { + countryCode: 'EH', + countryName: 'Western Sahara', + comment: '', + latitude: 27.15, + longitude: -13.2, + }, + }, + { + id: 'Africa/Johannesburg', + aliases: ['Africa/Maseru', 'Africa/Mbabane'], + location: { + countryCode: 'ZA', + countryName: 'South Africa', + comment: '', + latitude: -26.25, + longitude: 28, + }, + }, + { + id: 'Africa/Juba', + aliases: [], + location: { + countryCode: 'SS', + countryName: 'South Sudan', + comment: '', + latitude: 4.85, + longitude: 31.616666666666667, + }, + }, + { + id: 'Africa/Khartoum', + aliases: [], + location: { + countryCode: 'SD', + countryName: 'Sudan', + comment: '', + latitude: 15.6, + longitude: 32.53333333333333, + }, + }, + { + id: 'Africa/Lagos', + aliases: [ + 'Africa/Bangui', + 'Africa/Brazzaville', + 'Africa/Douala', + 'Africa/Kinshasa', + 'Africa/Libreville', + 'Africa/Luanda', + 'Africa/Malabo', + 'Africa/Niamey', + 'Africa/Porto-Novo', + ], + location: { + countryCode: 'NG', + countryName: 'Nigeria', + comment: '', + latitude: 6.45, + longitude: 3.4, + }, + }, + { + id: 'Africa/Maputo', + aliases: [ + 'Africa/Blantyre', + 'Africa/Bujumbura', + 'Africa/Gaborone', + 'Africa/Harare', + 'Africa/Kigali', + 'Africa/Lubumbashi', + 'Africa/Lusaka', + ], + location: { + countryCode: 'MZ', + countryName: 'Mozambique', + comment: '', + latitude: -25.966666666666665, + longitude: 32.583333333333336, + }, + }, + { + id: 'Africa/Monrovia', + aliases: [], + location: { + countryCode: 'LR', + countryName: 'Liberia', + comment: '', + latitude: 6.3, + longitude: -10.783333333333333, + }, + }, + { + id: 'Africa/Nairobi', + aliases: [ + 'Africa/Addis_Ababa', + 'Africa/Asmara', + 'Africa/Asmera', + 'Africa/Dar_es_Salaam', + 'Africa/Djibouti', + 'Africa/Kampala', + 'Africa/Mogadishu', + 'Indian/Antananarivo', + 'Indian/Comoro', + 'Indian/Mayotte', + ], + location: { + countryCode: 'KE', + countryName: 'Kenya', + comment: '', + latitude: -1.2833333333333334, + longitude: 36.81666666666667, + }, + }, + { + id: 'Africa/Ndjamena', + aliases: [], + location: { + countryCode: 'TD', + countryName: 'Chad', + comment: '', + latitude: 12.116666666666667, + longitude: 15.05, + }, + }, + { + id: 'Africa/Sao_Tome', + aliases: [], + location: { + countryCode: 'ST', + countryName: 'Sao Tome \u0026 Principe', + comment: '', + latitude: 0.3333333333333333, + longitude: 6.733333333333333, + }, + }, + { + id: 'Africa/Tripoli', + aliases: ['Libya'], + location: { + countryCode: 'LY', + countryName: 'Libya', + comment: '', + latitude: 32.9, + longitude: 13.183333333333334, + }, + }, + { + id: 'Africa/Tunis', + aliases: [], + location: { + countryCode: 'TN', + countryName: 'Tunisia', + comment: '', + latitude: 36.8, + longitude: 10.183333333333334, + }, + }, + { + id: 'Africa/Windhoek', + aliases: [], + location: { + countryCode: 'NA', + countryName: 'Namibia', + comment: '', + latitude: -22.566666666666666, + longitude: 17.1, + }, + }, + { + id: 'America/Adak', + aliases: ['America/Atka', 'US/Aleutian'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska - western Aleutians', + latitude: 51.88, + longitude: -176.65805555555556, + }, + }, + { + id: 'America/Anchorage', + aliases: ['US/Alaska'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska (most areas)', + latitude: 61.21805555555556, + longitude: -149.90027777777777, + }, + }, + { + id: 'America/Araguaina', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Tocantins', + latitude: -7.2, + longitude: -48.2, + }, + }, + { + id: 'America/Argentina/Buenos_Aires', + aliases: ['America/Buenos_Aires'], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Buenos Aires (BA, CF)', + latitude: -34.6, + longitude: -58.45, + }, + }, + { + id: 'America/Argentina/Catamarca', + aliases: ['America/Argentina/ComodRivadavia', 'America/Catamarca'], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Catamarca (CT), Chubut (CH)', + latitude: -28.466666666666665, + longitude: -65.78333333333333, + }, + }, + { + id: 'America/Argentina/Cordoba', + aliases: ['America/Cordoba', 'America/Rosario'], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)', + latitude: -31.4, + longitude: -64.18333333333334, + }, + }, + { + id: 'America/Argentina/Jujuy', + aliases: ['America/Jujuy'], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Jujuy (JY)', + latitude: -24.183333333333334, + longitude: -65.3, + }, + }, + { + id: 'America/Argentina/La_Rioja', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'La Rioja (LR)', + latitude: -29.433333333333334, + longitude: -66.85, + }, + }, + { + id: 'America/Argentina/Mendoza', + aliases: ['America/Mendoza'], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Mendoza (MZ)', + latitude: -32.88333333333333, + longitude: -68.81666666666666, + }, + }, + { + id: 'America/Argentina/Rio_Gallegos', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Santa Cruz (SC)', + latitude: -51.63333333333333, + longitude: -69.21666666666667, + }, + }, + { + id: 'America/Argentina/Salta', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Salta (SA, LP, NQ, RN)', + latitude: -24.783333333333335, + longitude: -65.41666666666667, + }, + }, + { + id: 'America/Argentina/San_Juan', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'San Juan (SJ)', + latitude: -31.533333333333335, + longitude: -68.51666666666667, + }, + }, + { + id: 'America/Argentina/San_Luis', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'San Luis (SL)', + latitude: -33.31666666666667, + longitude: -66.35, + }, + }, + { + id: 'America/Argentina/Tucuman', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Tucuman (TM)', + latitude: -26.816666666666666, + longitude: -65.21666666666667, + }, + }, + { + id: 'America/Argentina/Ushuaia', + aliases: [], + location: { + countryCode: 'AR', + countryName: 'Argentina', + comment: 'Tierra del Fuego (TF)', + latitude: -54.8, + longitude: -68.3, + }, + }, + { + id: 'America/Asuncion', + aliases: [], + location: { + countryCode: 'PY', + countryName: 'Paraguay', + comment: '', + latitude: -25.266666666666666, + longitude: -57.666666666666664, + }, + }, + { + id: 'America/Bahia', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Bahia', + latitude: -12.983333333333333, + longitude: -38.516666666666666, + }, + }, + { + id: 'America/Bahia_Banderas', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Bahia de Banderas', + latitude: 20.8, + longitude: -105.25, + }, + }, + { + id: 'America/Barbados', + aliases: [], + location: { + countryCode: 'BB', + countryName: 'Barbados', + comment: '', + latitude: 13.1, + longitude: -59.61666666666667, + }, + }, + { + id: 'America/Belem', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Para (east), Amapa', + latitude: -1.45, + longitude: -48.483333333333334, + }, + }, + { + id: 'America/Belize', + aliases: [], + location: { + countryCode: 'BZ', + countryName: 'Belize', + comment: '', + latitude: 17.5, + longitude: -88.2, + }, + }, + { + id: 'America/Boa_Vista', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Roraima', + latitude: 2.816666666666667, + longitude: -60.666666666666664, + }, + }, + { + id: 'America/Bogota', + aliases: [], + location: { + countryCode: 'CO', + countryName: 'Colombia', + comment: '', + latitude: 4.6, + longitude: -74.08333333333333, + }, + }, + { + id: 'America/Boise', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Mountain - ID (south), OR (east)', + latitude: 43.61361111111111, + longitude: -116.2025, + }, + }, + { + id: 'America/Cambridge_Bay', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Mountain - NU (west)', + latitude: 69.1138888888889, + longitude: -105.05277777777778, + }, + }, + { + id: 'America/Campo_Grande', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Mato Grosso do Sul', + latitude: -20.45, + longitude: -54.61666666666667, + }, + }, + { + id: 'America/Cancun', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Quintana Roo', + latitude: 21.083333333333332, + longitude: -86.76666666666667, + }, + }, + { + id: 'America/Caracas', + aliases: [], + location: { + countryCode: 'VE', + countryName: 'Venezuela', + comment: '', + latitude: 10.5, + longitude: -66.93333333333334, + }, + }, + { + id: 'America/Cayenne', + aliases: [], + location: { + countryCode: 'GF', + countryName: 'French Guiana', + comment: '', + latitude: 4.933333333333334, + longitude: -52.333333333333336, + }, + }, + { + id: 'America/Chicago', + aliases: ['CST6CDT', 'US/Central'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central (most areas)', + latitude: 41.85, + longitude: -87.65, + }, + }, + { + id: 'America/Chihuahua', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Chihuahua (most areas)', + latitude: 28.633333333333333, + longitude: -106.08333333333333, + }, + }, + { + id: 'America/Ciudad_Juarez', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Chihuahua (US border - west)', + latitude: 31.733333333333334, + longitude: -106.48333333333333, + }, + }, + { + id: 'America/Costa_Rica', + aliases: [], + location: { + countryCode: 'CR', + countryName: 'Costa Rica', + comment: '', + latitude: 9.933333333333334, + longitude: -84.08333333333333, + }, + }, + { + id: 'America/Coyhaique', + aliases: [], + location: { + countryCode: 'CL', + countryName: 'Chile', + comment: 'Aysen Region', + latitude: -45.56666666666667, + longitude: -72.06666666666666, + }, + }, + { + id: 'America/Cuiaba', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Mato Grosso', + latitude: -15.583333333333334, + longitude: -56.083333333333336, + }, + }, + { + id: 'America/Danmarkshavn', + aliases: [], + location: { + countryCode: 'GL', + countryName: 'Greenland', + comment: 'National Park (east coast)', + latitude: 76.76666666666667, + longitude: -18.666666666666668, + }, + }, + { + id: 'America/Dawson', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'MST - Yukon (west)', + latitude: 64.06666666666666, + longitude: -139.41666666666666, + }, + }, + { + id: 'America/Dawson_Creek', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'MST - BC (Dawson Cr, Ft St John)', + latitude: 55.766666666666666, + longitude: -120.23333333333333, + }, + }, + { + id: 'America/Denver', + aliases: ['America/Shiprock', 'MST7MDT', 'Navajo', 'US/Mountain'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Mountain (most areas)', + latitude: 39.73916666666667, + longitude: -104.98416666666667, + }, + }, + { + id: 'America/Detroit', + aliases: ['US/Michigan'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - MI (most areas)', + latitude: 42.33138888888889, + longitude: -83.04583333333333, + }, + }, + { + id: 'America/Edmonton', + aliases: ['America/Yellowknife', 'Canada/Mountain'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Mountain - AB, BC(E), NT(E), SK(W)', + latitude: 53.55, + longitude: -113.46666666666667, + }, + }, + { + id: 'America/Eirunepe', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Amazonas (west)', + latitude: -6.666666666666667, + longitude: -69.86666666666666, + }, + }, + { + id: 'America/El_Salvador', + aliases: [], + location: { + countryCode: 'SV', + countryName: 'El Salvador', + comment: '', + latitude: 13.7, + longitude: -89.2, + }, + }, + { + id: 'America/Fort_Nelson', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'MST - BC (Ft Nelson)', + latitude: 58.8, + longitude: -122.7, + }, + }, + { + id: 'America/Fortaleza', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Brazil (northeast: MA, PI, CE, RN, PB)', + latitude: -3.716666666666667, + longitude: -38.5, + }, + }, + { + id: 'America/Glace_Bay', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Atlantic - NS (Cape Breton)', + latitude: 46.2, + longitude: -59.95, + }, + }, + { + id: 'America/Goose_Bay', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Atlantic - Labrador (most areas)', + latitude: 53.333333333333336, + longitude: -60.416666666666664, + }, + }, + { + id: 'America/Grand_Turk', + aliases: [], + location: { + countryCode: 'TC', + countryName: 'Turks \u0026 Caicos Is', + comment: '', + latitude: 21.466666666666665, + longitude: -71.13333333333334, + }, + }, + { + id: 'America/Guatemala', + aliases: [], + location: { + countryCode: 'GT', + countryName: 'Guatemala', + comment: '', + latitude: 14.633333333333333, + longitude: -90.51666666666667, + }, + }, + { + id: 'America/Guayaquil', + aliases: [], + location: { + countryCode: 'EC', + countryName: 'Ecuador', + comment: 'Ecuador (mainland)', + latitude: -2.1666666666666665, + longitude: -79.83333333333333, + }, + }, + { + id: 'America/Guyana', + aliases: [], + location: { + countryCode: 'GY', + countryName: 'Guyana', + comment: '', + latitude: 6.8, + longitude: -58.166666666666664, + }, + }, + { + id: 'America/Halifax', + aliases: ['Canada/Atlantic'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Atlantic - NS (most areas), PE', + latitude: 44.65, + longitude: -63.6, + }, + }, + { + id: 'America/Havana', + aliases: ['Cuba'], + location: { + countryCode: 'CU', + countryName: 'Cuba', + comment: '', + latitude: 23.133333333333333, + longitude: -82.36666666666666, + }, + }, + { + id: 'America/Hermosillo', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Sonora', + latitude: 29.066666666666666, + longitude: -110.96666666666667, + }, + }, + { + id: 'America/Indiana/Indianapolis', + aliases: [ + 'America/Fort_Wayne', + 'America/Indianapolis', + 'US/East-Indiana', + ], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (most areas)', + latitude: 39.76833333333333, + longitude: -86.15805555555555, + }, + }, + { + id: 'America/Indiana/Knox', + aliases: ['America/Knox_IN', 'US/Indiana-Starke'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - IN (Starke)', + latitude: 41.295833333333334, + longitude: -86.625, + }, + }, + { + id: 'America/Indiana/Marengo', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (Crawford)', + latitude: 38.37555555555556, + longitude: -86.34472222222222, + }, + }, + { + id: 'America/Indiana/Petersburg', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (Pike)', + latitude: 38.49194444444444, + longitude: -87.2786111111111, + }, + }, + { + id: 'America/Indiana/Tell_City', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - IN (Perry)', + latitude: 37.95305555555556, + longitude: -86.76138888888889, + }, + }, + { + id: 'America/Indiana/Vevay', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (Switzerland)', + latitude: 38.74777777777778, + longitude: -85.06722222222223, + }, + }, + { + id: 'America/Indiana/Vincennes', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (Da, Du, K, Mn)', + latitude: 38.67722222222222, + longitude: -87.5286111111111, + }, + }, + { + id: 'America/Indiana/Winamac', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - IN (Pulaski)', + latitude: 41.05138888888889, + longitude: -86.60305555555556, + }, + }, + { + id: 'America/Inuvik', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Mountain - NT (west)', + latitude: 68.34972222222223, + longitude: -133.71666666666667, + }, + }, + { + id: 'America/Iqaluit', + aliases: ['America/Pangnirtung'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Eastern - NU (most areas)', + latitude: 63.733333333333334, + longitude: -68.46666666666667, + }, + }, + { + id: 'America/Jamaica', + aliases: ['Jamaica'], + location: { + countryCode: 'JM', + countryName: 'Jamaica', + comment: '', + latitude: 17.968055555555555, + longitude: -76.79333333333334, + }, + }, + { + id: 'America/Juneau', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska - Juneau area', + latitude: 58.301944444444445, + longitude: -134.41972222222222, + }, + }, + { + id: 'America/Kentucky/Louisville', + aliases: ['America/Louisville'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - KY (Louisville area)', + latitude: 38.25416666666667, + longitude: -85.75944444444444, + }, + }, + { + id: 'America/Kentucky/Monticello', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern - KY (Wayne)', + latitude: 36.82972222222222, + longitude: -84.84916666666666, + }, + }, + { + id: 'America/La_Paz', + aliases: [], + location: { + countryCode: 'BO', + countryName: 'Bolivia', + comment: '', + latitude: -16.5, + longitude: -68.15, + }, + }, + { + id: 'America/Lima', + aliases: [], + location: { + countryCode: 'PE', + countryName: 'Peru', + comment: '', + latitude: -12.05, + longitude: -77.05, + }, + }, + { + id: 'America/Los_Angeles', + aliases: ['PST8PDT', 'US/Pacific'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Pacific', + latitude: 34.05222222222222, + longitude: -118.24277777777777, + }, + }, + { + id: 'America/Maceio', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Alagoas, Sergipe', + latitude: -9.666666666666666, + longitude: -35.71666666666667, + }, + }, + { + id: 'America/Managua', + aliases: [], + location: { + countryCode: 'NI', + countryName: 'Nicaragua', + comment: '', + latitude: 12.15, + longitude: -86.28333333333333, + }, + }, + { + id: 'America/Manaus', + aliases: ['Brazil/West'], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Amazonas (east)', + latitude: -3.1333333333333333, + longitude: -60.016666666666666, + }, + }, + { + id: 'America/Martinique', + aliases: [], + location: { + countryCode: 'MQ', + countryName: 'Martinique', + comment: '', + latitude: 14.6, + longitude: -61.083333333333336, + }, + }, + { + id: 'America/Matamoros', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Coahuila, Nuevo Leon, Tamaulipas (US border)', + latitude: 25.833333333333332, + longitude: -97.5, + }, + }, + { + id: 'America/Mazatlan', + aliases: ['Mexico/BajaSur'], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Baja California Sur, Nayarit (most areas), Sinaloa', + latitude: 23.216666666666665, + longitude: -106.41666666666667, + }, + }, + { + id: 'America/Menominee', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - MI (Wisconsin border)', + latitude: 45.10777777777778, + longitude: -87.61416666666666, + }, + }, + { + id: 'America/Merida', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Campeche, Yucatan', + latitude: 20.966666666666665, + longitude: -89.61666666666666, + }, + }, + { + id: 'America/Metlakatla', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska - Annette Island', + latitude: 55.12694444444445, + longitude: -131.57638888888889, + }, + }, + { + id: 'America/Mexico_City', + aliases: ['Mexico/General'], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Central Mexico', + latitude: 19.4, + longitude: -99.15, + }, + }, + { + id: 'America/Miquelon', + aliases: [], + location: { + countryCode: 'PM', + countryName: 'St Pierre \u0026 Miquelon', + comment: '', + latitude: 47.05, + longitude: -56.333333333333336, + }, + }, + { + id: 'America/Moncton', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Atlantic - New Brunswick', + latitude: 46.1, + longitude: -64.78333333333333, + }, + }, + { + id: 'America/Monterrey', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)', + latitude: 25.666666666666668, + longitude: -100.31666666666666, + }, + }, + { + id: 'America/Montevideo', + aliases: [], + location: { + countryCode: 'UY', + countryName: 'Uruguay', + comment: '', + latitude: -34.909166666666664, + longitude: -56.2125, + }, + }, + { + id: 'America/New_York', + aliases: ['EST5EDT', 'US/Eastern'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Eastern (most areas)', + latitude: 40.714166666666664, + longitude: -74.00638888888889, + }, + }, + { + id: 'America/Nome', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska (west)', + latitude: 64.50111111111111, + longitude: -165.4063888888889, + }, + }, + { + id: 'America/Noronha', + aliases: ['Brazil/DeNoronha'], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Atlantic islands', + latitude: -3.85, + longitude: -32.416666666666664, + }, + }, + { + id: 'America/North_Dakota/Beulah', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - ND (Mercer)', + latitude: 47.26416666666667, + longitude: -101.77777777777777, + }, + }, + { + id: 'America/North_Dakota/Center', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - ND (Oliver)', + latitude: 47.11638888888889, + longitude: -101.29916666666666, + }, + }, + { + id: 'America/North_Dakota/New_Salem', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Central - ND (Morton rural)', + latitude: 46.845, + longitude: -101.41083333333333, + }, + }, + { + id: 'America/Nuuk', + aliases: ['America/Godthab'], + location: { + countryCode: 'GL', + countryName: 'Greenland', + comment: 'most of Greenland', + latitude: 64.18333333333334, + longitude: -51.733333333333334, + }, + }, + { + id: 'America/Ojinaga', + aliases: [], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Chihuahua (US border - east)', + latitude: 29.566666666666666, + longitude: -104.41666666666667, + }, + }, + { + id: 'America/Panama', + aliases: [ + 'America/Atikokan', + 'America/Cayman', + 'America/Coral_Harbour', + 'EST', + ], + location: { + countryCode: 'PA', + countryName: 'Panama', + comment: '', + latitude: 8.966666666666667, + longitude: -79.53333333333333, + }, + }, + { + id: 'America/Paramaribo', + aliases: [], + location: { + countryCode: 'SR', + countryName: 'Suriname', + comment: '', + latitude: 5.833333333333333, + longitude: -55.166666666666664, + }, + }, + { + id: 'America/Phoenix', + aliases: ['America/Creston', 'MST', 'US/Arizona'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'MST - AZ (except Navajo)', + latitude: 33.44833333333333, + longitude: -112.07333333333334, + }, + }, + { + id: 'America/Port-au-Prince', + aliases: [], + location: { + countryCode: 'HT', + countryName: 'Haiti', + comment: '', + latitude: 18.533333333333335, + longitude: -72.33333333333333, + }, + }, + { + id: 'America/Porto_Velho', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Rondonia', + latitude: -8.766666666666667, + longitude: -63.9, + }, + }, + { + id: 'America/Puerto_Rico', + aliases: [ + 'America/Anguilla', + 'America/Antigua', + 'America/Aruba', + 'America/Blanc-Sablon', + 'America/Curacao', + 'America/Dominica', + 'America/Grenada', + 'America/Guadeloupe', + 'America/Kralendijk', + 'America/Lower_Princes', + 'America/Marigot', + 'America/Montserrat', + 'America/Port_of_Spain', + 'America/St_Barthelemy', + 'America/St_Kitts', + 'America/St_Lucia', + 'America/St_Thomas', + 'America/St_Vincent', + 'America/Tortola', + 'America/Virgin', + ], + location: { + countryCode: 'PR', + countryName: 'Puerto Rico', + comment: '', + latitude: 18.468333333333334, + longitude: -66.1061111111111, + }, + }, + { + id: 'America/Punta_Arenas', + aliases: [], + location: { + countryCode: 'CL', + countryName: 'Chile', + comment: 'Magallanes Region', + latitude: -53.15, + longitude: -70.91666666666667, + }, + }, + { + id: 'America/Rankin_Inlet', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Central - NU (central)', + latitude: 62.81666666666667, + longitude: -92.08305555555556, + }, + }, + { + id: 'America/Recife', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Pernambuco', + latitude: -8.05, + longitude: -34.9, + }, + }, + { + id: 'America/Regina', + aliases: ['Canada/Saskatchewan'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'CST - SK (most areas)', + latitude: 50.4, + longitude: -104.65, + }, + }, + { + id: 'America/Resolute', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Central - NU (Resolute)', + latitude: 74.69555555555556, + longitude: -94.82916666666667, + }, + }, + { + id: 'America/Rio_Branco', + aliases: ['America/Porto_Acre', 'Brazil/Acre'], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Acre', + latitude: -9.966666666666667, + longitude: -67.8, + }, + }, + { + id: 'America/Santarem', + aliases: [], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Para (west)', + latitude: -2.433333333333333, + longitude: -54.86666666666667, + }, + }, + { + id: 'America/Santiago', + aliases: ['Chile/Continental'], + location: { + countryCode: 'CL', + countryName: 'Chile', + comment: 'most of Chile', + latitude: -33.45, + longitude: -70.66666666666667, + }, + }, + { + id: 'America/Santo_Domingo', + aliases: [], + location: { + countryCode: 'DO', + countryName: 'Dominican Republic', + comment: '', + latitude: 18.466666666666665, + longitude: -69.9, + }, + }, + { + id: 'America/Sao_Paulo', + aliases: ['Brazil/East'], + location: { + countryCode: 'BR', + countryName: 'Brazil', + comment: 'Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)', + latitude: -23.533333333333335, + longitude: -46.61666666666667, + }, + }, + { + id: 'America/Scoresbysund', + aliases: [], + location: { + countryCode: 'GL', + countryName: 'Greenland', + comment: 'Scoresbysund/Ittoqqortoormiit', + latitude: 70.48333333333333, + longitude: -21.966666666666665, + }, + }, + { + id: 'America/Sitka', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska - Sitka area', + latitude: 57.17638888888889, + longitude: -135.30194444444444, + }, + }, + { + id: 'America/St_Johns', + aliases: ['Canada/Newfoundland'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Newfoundland, Labrador (SE)', + latitude: 47.56666666666667, + longitude: -52.71666666666667, + }, + }, + { + id: 'America/Swift_Current', + aliases: [], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'CST - SK (midwest)', + latitude: 50.28333333333333, + longitude: -107.83333333333333, + }, + }, + { + id: 'America/Tegucigalpa', + aliases: [], + location: { + countryCode: 'HN', + countryName: 'Honduras', + comment: '', + latitude: 14.1, + longitude: -87.21666666666667, + }, + }, + { + id: 'America/Thule', + aliases: [], + location: { + countryCode: 'GL', + countryName: 'Greenland', + comment: 'Thule/Pituffik', + latitude: 76.56666666666666, + longitude: -68.78333333333333, + }, + }, + { + id: 'America/Tijuana', + aliases: ['America/Ensenada', 'America/Santa_Isabel', 'Mexico/BajaNorte'], + location: { + countryCode: 'MX', + countryName: 'Mexico', + comment: 'Baja California', + latitude: 32.53333333333333, + longitude: -117.01666666666667, + }, + }, + { + id: 'America/Toronto', + aliases: [ + 'America/Montreal', + 'America/Nassau', + 'America/Nipigon', + 'America/Thunder_Bay', + 'Canada/Eastern', + ], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Eastern - ON \u0026 QC (most areas)', + latitude: 43.65, + longitude: -79.38333333333334, + }, + }, + { + id: 'America/Vancouver', + aliases: ['Canada/Pacific'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Pacific - BC (most areas)', + latitude: 49.266666666666666, + longitude: -123.11666666666666, + }, + }, + { + id: 'America/Whitehorse', + aliases: ['Canada/Yukon'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'MST - Yukon (east)', + latitude: 60.71666666666667, + longitude: -135.05, + }, + }, + { + id: 'America/Winnipeg', + aliases: ['America/Rainy_River', 'Canada/Central'], + location: { + countryCode: 'CA', + countryName: 'Canada', + comment: 'Central - ON (west), Manitoba', + latitude: 49.88333333333333, + longitude: -97.15, + }, + }, + { + id: 'America/Yakutat', + aliases: [], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Alaska - Yakutat', + latitude: 59.54694444444444, + longitude: -139.72722222222222, + }, + }, + { + id: 'Antarctica/Casey', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Casey', + latitude: -66.28333333333333, + longitude: 110.51666666666667, + }, + }, + { + id: 'Antarctica/Davis', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Davis', + latitude: -68.58333333333333, + longitude: 77.96666666666667, + }, + }, + { + id: 'Antarctica/Macquarie', + aliases: [], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Macquarie Island', + latitude: -54.5, + longitude: 158.95, + }, + }, + { + id: 'Antarctica/Mawson', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Mawson', + latitude: -67.6, + longitude: 62.88333333333333, + }, + }, + { + id: 'Antarctica/Palmer', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Palmer', + latitude: -64.8, + longitude: -64.1, + }, + }, + { + id: 'Antarctica/Rothera', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Rothera', + latitude: -67.56666666666666, + longitude: -68.13333333333334, + }, + }, + { + id: 'Antarctica/Troll', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Troll', + latitude: -72.01138888888889, + longitude: 2.535, + }, + }, + { + id: 'Antarctica/Vostok', + aliases: [], + location: { + countryCode: 'AQ', + countryName: 'Antarctica', + comment: 'Vostok', + latitude: -78.4, + longitude: 106.9, + }, + }, + { + id: 'Asia/Almaty', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'most of Kazakhstan', + latitude: 43.25, + longitude: 76.95, + }, + }, + { + id: 'Asia/Amman', + aliases: [], + location: { + countryCode: 'JO', + countryName: 'Jordan', + comment: '', + latitude: 31.95, + longitude: 35.93333333333333, + }, + }, + { + id: 'Asia/Anadyr', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B09 - Bering Sea', + latitude: 64.75, + longitude: 177.48333333333332, + }, + }, + { + id: 'Asia/Aqtau', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'Mangghystau/Mankistau', + latitude: 44.516666666666666, + longitude: 50.266666666666666, + }, + }, + { + id: 'Asia/Aqtobe', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'Aqtobe/Aktobe', + latitude: 50.28333333333333, + longitude: 57.166666666666664, + }, + }, + { + id: 'Asia/Ashgabat', + aliases: ['Asia/Ashkhabad'], + location: { + countryCode: 'TM', + countryName: 'Turkmenistan', + comment: '', + latitude: 37.95, + longitude: 58.38333333333333, + }, + }, + { + id: 'Asia/Atyrau', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'Atyrau/Atirau/Gur\u0027yev', + latitude: 47.11666666666667, + longitude: 51.93333333333333, + }, + }, + { + id: 'Asia/Baghdad', + aliases: [], + location: { + countryCode: 'IQ', + countryName: 'Iraq', + comment: '', + latitude: 33.35, + longitude: 44.416666666666664, + }, + }, + { + id: 'Asia/Baku', + aliases: [], + location: { + countryCode: 'AZ', + countryName: 'Azerbaijan', + comment: '', + latitude: 40.38333333333333, + longitude: 49.85, + }, + }, + { + id: 'Asia/Bangkok', + aliases: ['Asia/Phnom_Penh', 'Asia/Vientiane', 'Indian/Christmas'], + location: { + countryCode: 'TH', + countryName: 'Thailand', + comment: '', + latitude: 13.75, + longitude: 100.51666666666667, + }, + }, + { + id: 'Asia/Barnaul', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B04 - Altai', + latitude: 53.36666666666667, + longitude: 83.75, + }, + }, + { + id: 'Asia/Beirut', + aliases: [], + location: { + countryCode: 'LB', + countryName: 'Lebanon', + comment: '', + latitude: 33.88333333333333, + longitude: 35.5, + }, + }, + { + id: 'Asia/Bishkek', + aliases: [], + location: { + countryCode: 'KG', + countryName: 'Kyrgyzstan', + comment: '', + latitude: 42.9, + longitude: 74.6, + }, + }, + { + id: 'Asia/Chita', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B06 - Zabaykalsky', + latitude: 52.05, + longitude: 113.46666666666667, + }, + }, + { + id: 'Asia/Colombo', + aliases: [], + location: { + countryCode: 'LK', + countryName: 'Sri Lanka', + comment: '', + latitude: 6.933333333333334, + longitude: 79.85, + }, + }, + { + id: 'Asia/Damascus', + aliases: [], + location: { + countryCode: 'SY', + countryName: 'Syria', + comment: '', + latitude: 33.5, + longitude: 36.3, + }, + }, + { + id: 'Asia/Dhaka', + aliases: ['Asia/Dacca'], + location: { + countryCode: 'BD', + countryName: 'Bangladesh', + comment: '', + latitude: 23.716666666666665, + longitude: 90.41666666666667, + }, + }, + { + id: 'Asia/Dili', + aliases: [], + location: { + countryCode: 'TL', + countryName: 'East Timor', + comment: '', + latitude: -8.55, + longitude: 125.58333333333333, + }, + }, + { + id: 'Asia/Dubai', + aliases: ['Asia/Muscat', 'Indian/Mahe', 'Indian/Reunion'], + location: { + countryCode: 'AE', + countryName: 'United Arab Emirates', + comment: '', + latitude: 25.3, + longitude: 55.3, + }, + }, + { + id: 'Asia/Dushanbe', + aliases: [], + location: { + countryCode: 'TJ', + countryName: 'Tajikistan', + comment: '', + latitude: 38.583333333333336, + longitude: 68.8, + }, + }, + { + id: 'Asia/Famagusta', + aliases: [], + location: { + countryCode: 'CY', + countryName: 'Cyprus', + comment: 'Northern Cyprus', + latitude: 35.11666666666667, + longitude: 33.95, + }, + }, + { + id: 'Asia/Gaza', + aliases: [], + location: { + countryCode: 'PS', + countryName: 'Palestine', + comment: 'Gaza Strip', + latitude: 31.5, + longitude: 34.46666666666667, + }, + }, + { + id: 'Asia/Hebron', + aliases: [], + location: { + countryCode: 'PS', + countryName: 'Palestine', + comment: 'West Bank', + latitude: 31.533333333333335, + longitude: 35.095, + }, + }, + { + id: 'Asia/Ho_Chi_Minh', + aliases: ['Asia/Saigon'], + location: { + countryCode: 'VN', + countryName: 'Vietnam', + comment: '', + latitude: 10.75, + longitude: 106.66666666666667, + }, + }, + { + id: 'Asia/Hong_Kong', + aliases: ['Hongkong'], + location: { + countryCode: 'HK', + countryName: 'Hong Kong', + comment: '', + latitude: 22.283333333333335, + longitude: 114.15, + }, + }, + { + id: 'Asia/Hovd', + aliases: [], + location: { + countryCode: 'MN', + countryName: 'Mongolia', + comment: 'Bayan-Olgii, Hovd, Uvs', + latitude: 48.016666666666666, + longitude: 91.65, + }, + }, + { + id: 'Asia/Irkutsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B05 - Irkutsk, Buryatia', + latitude: 52.266666666666666, + longitude: 104.33333333333333, + }, + }, + { + id: 'Asia/Jakarta', + aliases: [], + location: { + countryCode: 'ID', + countryName: 'Indonesia', + comment: 'Java, Sumatra', + latitude: -6.166666666666667, + longitude: 106.8, + }, + }, + { + id: 'Asia/Jayapura', + aliases: [], + location: { + countryCode: 'ID', + countryName: 'Indonesia', + comment: 'New Guinea (West Papua / Irian Jaya), Malukus/Moluccas', + latitude: -2.533333333333333, + longitude: 140.7, + }, + }, + { + id: 'Asia/Jerusalem', + aliases: ['Asia/Tel_Aviv', 'Israel'], + location: { + countryCode: 'IL', + countryName: 'Israel', + comment: '', + latitude: 31.780555555555555, + longitude: 35.22388888888889, + }, + }, + { + id: 'Asia/Kabul', + aliases: [], + location: { + countryCode: 'AF', + countryName: 'Afghanistan', + comment: '', + latitude: 34.516666666666666, + longitude: 69.2, + }, + }, + { + id: 'Asia/Kamchatka', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B09 - Kamchatka', + latitude: 53.016666666666666, + longitude: 158.65, + }, + }, + { + id: 'Asia/Karachi', + aliases: [], + location: { + countryCode: 'PK', + countryName: 'Pakistan', + comment: '', + latitude: 24.866666666666667, + longitude: 67.05, + }, + }, + { + id: 'Asia/Kathmandu', + aliases: ['Asia/Katmandu'], + location: { + countryCode: 'NP', + countryName: 'Nepal', + comment: '', + latitude: 27.716666666666665, + longitude: 85.31666666666666, + }, + }, + { + id: 'Asia/Khandyga', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B06 - Tomponsky, Ust-Maysky', + latitude: 62.65638888888889, + longitude: 135.55388888888888, + }, + }, + { + id: 'Asia/Kolkata', + aliases: ['Asia/Calcutta'], + location: { + countryCode: 'IN', + countryName: 'India', + comment: '', + latitude: 22.533333333333335, + longitude: 88.36666666666666, + }, + }, + { + id: 'Asia/Krasnoyarsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B04 - Krasnoyarsk area', + latitude: 56.016666666666666, + longitude: 92.83333333333333, + }, + }, + { + id: 'Asia/Kuching', + aliases: ['Asia/Brunei'], + location: { + countryCode: 'MY', + countryName: 'Malaysia', + comment: 'Sabah, Sarawak', + latitude: 1.55, + longitude: 110.33333333333333, + }, + }, + { + id: 'Asia/Macau', + aliases: ['Asia/Macao'], + location: { + countryCode: 'MO', + countryName: 'Macau', + comment: '', + latitude: 22.197222222222223, + longitude: 113.54166666666667, + }, + }, + { + id: 'Asia/Magadan', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B08 - Magadan', + latitude: 59.56666666666667, + longitude: 150.8, + }, + }, + { + id: 'Asia/Makassar', + aliases: ['Asia/Ujung_Pandang'], + location: { + countryCode: 'ID', + countryName: 'Indonesia', + comment: + 'Borneo (east, south), Sulawesi/Celebes, Bali, Nusa Tengarra, Timor (west)', + latitude: -5.116666666666666, + longitude: 119.4, + }, + }, + { + id: 'Asia/Manila', + aliases: [], + location: { + countryCode: 'PH', + countryName: 'Philippines', + comment: '', + latitude: 14.586666666666666, + longitude: 120.96777777777778, + }, + }, + { + id: 'Asia/Nicosia', + aliases: ['Europe/Nicosia'], + location: { + countryCode: 'CY', + countryName: 'Cyprus', + comment: 'most of Cyprus', + latitude: 35.166666666666664, + longitude: 33.36666666666667, + }, + }, + { + id: 'Asia/Novokuznetsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B04 - Kemerovo', + latitude: 53.75, + longitude: 87.11666666666666, + }, + }, + { + id: 'Asia/Novosibirsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B04 - Novosibirsk', + latitude: 55.03333333333333, + longitude: 82.91666666666667, + }, + }, + { + id: 'Asia/Omsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B03 - Omsk', + latitude: 55, + longitude: 73.4, + }, + }, + { + id: 'Asia/Oral', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'West Kazakhstan', + latitude: 51.21666666666667, + longitude: 51.35, + }, + }, + { + id: 'Asia/Pontianak', + aliases: [], + location: { + countryCode: 'ID', + countryName: 'Indonesia', + comment: 'Borneo (west, central)', + latitude: -0.03333333333333333, + longitude: 109.33333333333333, + }, + }, + { + id: 'Asia/Pyongyang', + aliases: [], + location: { + countryCode: 'KP', + countryName: 'Korea (North)', + comment: '', + latitude: 39.016666666666666, + longitude: 125.75, + }, + }, + { + id: 'Asia/Qatar', + aliases: ['Asia/Bahrain'], + location: { + countryCode: 'QA', + countryName: 'Qatar', + comment: '', + latitude: 25.283333333333335, + longitude: 51.53333333333333, + }, + }, + { + id: 'Asia/Qostanay', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'Qostanay/Kostanay/Kustanay', + latitude: 53.2, + longitude: 63.61666666666667, + }, + }, + { + id: 'Asia/Qyzylorda', + aliases: [], + location: { + countryCode: 'KZ', + countryName: 'Kazakhstan', + comment: 'Qyzylorda/Kyzylorda/Kzyl-Orda', + latitude: 44.8, + longitude: 65.46666666666667, + }, + }, + { + id: 'Asia/Riyadh', + aliases: ['Antarctica/Syowa', 'Asia/Aden', 'Asia/Kuwait'], + location: { + countryCode: 'SA', + countryName: 'Saudi Arabia', + comment: '', + latitude: 24.633333333333333, + longitude: 46.71666666666667, + }, + }, + { + id: 'Asia/Sakhalin', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B08 - Sakhalin Island', + latitude: 46.96666666666667, + longitude: 142.7, + }, + }, + { + id: 'Asia/Samarkand', + aliases: [], + location: { + countryCode: 'UZ', + countryName: 'Uzbekistan', + comment: 'Uzbekistan (west)', + latitude: 39.666666666666664, + longitude: 66.8, + }, + }, + { + id: 'Asia/Seoul', + aliases: ['ROK'], + location: { + countryCode: 'KR', + countryName: 'Korea (South)', + comment: '', + latitude: 37.55, + longitude: 126.96666666666667, + }, + }, + { + id: 'Asia/Shanghai', + aliases: ['Asia/Chongqing', 'Asia/Chungking', 'Asia/Harbin', 'PRC'], + location: { + countryCode: 'CN', + countryName: 'China', + comment: 'Beijing Time', + latitude: 31.233333333333334, + longitude: 121.46666666666667, + }, + }, + { + id: 'Asia/Singapore', + aliases: ['Asia/Kuala_Lumpur', 'Singapore'], + location: { + countryCode: 'SG', + countryName: 'Singapore', + comment: '', + latitude: 1.2833333333333334, + longitude: 103.85, + }, + }, + { + id: 'Asia/Srednekolymsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B08 - Sakha (E), N Kuril Is', + latitude: 67.46666666666667, + longitude: 153.71666666666667, + }, + }, + { + id: 'Asia/Taipei', + aliases: ['ROC'], + location: { + countryCode: 'TW', + countryName: 'Taiwan', + comment: '', + latitude: 25.05, + longitude: 121.5, + }, + }, + { + id: 'Asia/Tashkent', + aliases: [], + location: { + countryCode: 'UZ', + countryName: 'Uzbekistan', + comment: 'Uzbekistan (east)', + latitude: 41.333333333333336, + longitude: 69.3, + }, + }, + { + id: 'Asia/Tbilisi', + aliases: [], + location: { + countryCode: 'GE', + countryName: 'Georgia', + comment: '', + latitude: 41.71666666666667, + longitude: 44.81666666666667, + }, + }, + { + id: 'Asia/Tehran', + aliases: ['Iran'], + location: { + countryCode: 'IR', + countryName: 'Iran', + comment: '', + latitude: 35.666666666666664, + longitude: 51.43333333333333, + }, + }, + { + id: 'Asia/Thimphu', + aliases: ['Asia/Thimbu'], + location: { + countryCode: 'BT', + countryName: 'Bhutan', + comment: '', + latitude: 27.466666666666665, + longitude: 89.65, + }, + }, + { + id: 'Asia/Tokyo', + aliases: ['Japan'], + location: { + countryCode: 'JP', + countryName: 'Japan', + comment: '', + latitude: 35.654444444444444, + longitude: 139.7447222222222, + }, + }, + { + id: 'Asia/Tomsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B04 - Tomsk', + latitude: 56.5, + longitude: 84.96666666666667, + }, + }, + { + id: 'Asia/Ulaanbaatar', + aliases: ['Asia/Choibalsan', 'Asia/Ulan_Bator'], + location: { + countryCode: 'MN', + countryName: 'Mongolia', + comment: 'most of Mongolia', + latitude: 47.916666666666664, + longitude: 106.88333333333334, + }, + }, + { + id: 'Asia/Urumqi', + aliases: ['Asia/Kashgar'], + location: { + countryCode: 'CN', + countryName: 'China', + comment: 'Xinjiang Time', + latitude: 43.8, + longitude: 87.58333333333333, + }, + }, + { + id: 'Asia/Ust-Nera', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B07 - Oymyakonsky', + latitude: 64.56027777777778, + longitude: 143.22666666666666, + }, + }, + { + id: 'Asia/Vladivostok', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B07 - Amur River', + latitude: 43.166666666666664, + longitude: 131.93333333333334, + }, + }, + { + id: 'Asia/Yakutsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B06 - Lena River', + latitude: 62, + longitude: 129.66666666666666, + }, + }, + { + id: 'Asia/Yangon', + aliases: ['Asia/Rangoon', 'Indian/Cocos'], + location: { + countryCode: 'MM', + countryName: 'Myanmar (Burma)', + comment: '', + latitude: 16.783333333333335, + longitude: 96.16666666666667, + }, + }, + { + id: 'Asia/Yekaterinburg', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B02 - Urals', + latitude: 56.85, + longitude: 60.6, + }, + }, + { + id: 'Asia/Yerevan', + aliases: [], + location: { + countryCode: 'AM', + countryName: 'Armenia', + comment: '', + latitude: 40.18333333333333, + longitude: 44.5, + }, + }, + { + id: 'Atlantic/Azores', + aliases: [], + location: { + countryCode: 'PT', + countryName: 'Portugal', + comment: 'Azores', + latitude: 37.733333333333334, + longitude: -25.666666666666668, + }, + }, + { + id: 'Atlantic/Bermuda', + aliases: [], + location: { + countryCode: 'BM', + countryName: 'Bermuda', + comment: '', + latitude: 32.28333333333333, + longitude: -64.76666666666667, + }, + }, + { + id: 'Atlantic/Canary', + aliases: [], + location: { + countryCode: 'ES', + countryName: 'Spain', + comment: 'Canary Islands', + latitude: 28.1, + longitude: -15.4, + }, + }, + { + id: 'Atlantic/Cape_Verde', + aliases: [], + location: { + countryCode: 'CV', + countryName: 'Cape Verde', + comment: '', + latitude: 14.916666666666666, + longitude: -23.516666666666666, + }, + }, + { + id: 'Atlantic/Faroe', + aliases: ['Atlantic/Faeroe'], + location: { + countryCode: 'FO', + countryName: 'Faroe Islands', + comment: '', + latitude: 62.016666666666666, + longitude: -6.766666666666667, + }, + }, + { + id: 'Atlantic/Madeira', + aliases: [], + location: { + countryCode: 'PT', + countryName: 'Portugal', + comment: 'Madeira Islands', + latitude: 32.63333333333333, + longitude: -16.9, + }, + }, + { + id: 'Atlantic/South_Georgia', + aliases: [], + location: { + countryCode: 'GS', + countryName: 'South Georgia \u0026 the South Sandwich Islands', + comment: '', + latitude: -54.266666666666666, + longitude: -36.53333333333333, + }, + }, + { + id: 'Atlantic/Stanley', + aliases: [], + location: { + countryCode: 'FK', + countryName: 'Falkland Islands', + comment: '', + latitude: -51.7, + longitude: -57.85, + }, + }, + { + id: 'Australia/Adelaide', + aliases: ['Australia/South'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'South Australia', + latitude: -34.916666666666664, + longitude: 138.58333333333334, + }, + }, + { + id: 'Australia/Brisbane', + aliases: ['Australia/Queensland'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Queensland (most areas)', + latitude: -27.466666666666665, + longitude: 153.03333333333333, + }, + }, + { + id: 'Australia/Broken_Hill', + aliases: ['Australia/Yancowinna'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'New South Wales (Yancowinna)', + latitude: -31.95, + longitude: 141.45, + }, + }, + { + id: 'Australia/Darwin', + aliases: ['Australia/North'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Northern Territory', + latitude: -12.466666666666667, + longitude: 130.83333333333334, + }, + }, + { + id: 'Australia/Eucla', + aliases: [], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Western Australia (Eucla)', + latitude: -31.716666666666665, + longitude: 128.86666666666667, + }, + }, + { + id: 'Australia/Hobart', + aliases: ['Australia/Currie', 'Australia/Tasmania'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Tasmania', + latitude: -42.88333333333333, + longitude: 147.31666666666666, + }, + }, + { + id: 'Australia/Lindeman', + aliases: [], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Queensland (Whitsunday Islands)', + latitude: -20.266666666666666, + longitude: 149, + }, + }, + { + id: 'Australia/Lord_Howe', + aliases: ['Australia/LHI'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Lord Howe Island', + latitude: -31.55, + longitude: 159.08333333333334, + }, + }, + { + id: 'Australia/Melbourne', + aliases: ['Australia/Victoria'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Victoria', + latitude: -37.81666666666667, + longitude: 144.96666666666667, + }, + }, + { + id: 'Australia/Perth', + aliases: ['Australia/West'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'Western Australia (most areas)', + latitude: -31.95, + longitude: 115.85, + }, + }, + { + id: 'Australia/Sydney', + aliases: ['Australia/ACT', 'Australia/Canberra', 'Australia/NSW'], + location: { + countryCode: 'AU', + countryName: 'Australia', + comment: 'New South Wales (most areas)', + latitude: -33.86666666666667, + longitude: 151.21666666666667, + }, + }, + { + id: 'Etc/GMT', + aliases: [ + 'Etc/GMT\u002B0', + 'Etc/GMT-0', + 'Etc/GMT0', + 'Etc/Greenwich', + 'GMT', + 'GMT\u002B0', + 'GMT-0', + 'GMT0', + 'Greenwich', + ], + location: null, + }, + { + id: 'Etc/GMT-1', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-10', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-11', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-12', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-13', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-14', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-2', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-3', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-4', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-5', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-6', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-7', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-8', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT-9', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B1', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B10', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B11', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B12', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B2', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B3', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B4', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B5', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B6', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B7', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B8', + aliases: [], + location: null, + }, + { + id: 'Etc/GMT\u002B9', + aliases: [], + location: null, + }, + { + id: 'Etc/UTC', + aliases: [ + 'Etc/UCT', + 'Etc/Universal', + 'Etc/Zulu', + 'UCT', + 'UTC', + 'Universal', + 'Zulu', + ], + location: null, + }, + { + id: 'Europe/Andorra', + aliases: [], + location: { + countryCode: 'AD', + countryName: 'Andorra', + comment: '', + latitude: 42.5, + longitude: 1.5166666666666666, + }, + }, + { + id: 'Europe/Astrakhan', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B01 - Astrakhan', + latitude: 46.35, + longitude: 48.05, + }, + }, + { + id: 'Europe/Athens', + aliases: ['EET'], + location: { + countryCode: 'GR', + countryName: 'Greece', + comment: '', + latitude: 37.96666666666667, + longitude: 23.716666666666665, + }, + }, + { + id: 'Europe/Belgrade', + aliases: [ + 'Europe/Ljubljana', + 'Europe/Podgorica', + 'Europe/Sarajevo', + 'Europe/Skopje', + 'Europe/Zagreb', + ], + location: { + countryCode: 'RS', + countryName: 'Serbia', + comment: '', + latitude: 44.833333333333336, + longitude: 20.5, + }, + }, + { + id: 'Europe/Berlin', + aliases: [ + 'Arctic/Longyearbyen', + 'Atlantic/Jan_Mayen', + 'Europe/Copenhagen', + 'Europe/Oslo', + 'Europe/Stockholm', + ], + location: { + countryCode: 'DE', + countryName: 'Germany', + comment: 'most of Germany', + latitude: 52.5, + longitude: 13.366666666666667, + }, + }, + { + id: 'Europe/Brussels', + aliases: ['CET', 'Europe/Amsterdam', 'Europe/Luxembourg', 'MET'], + location: { + countryCode: 'BE', + countryName: 'Belgium', + comment: '', + latitude: 50.833333333333336, + longitude: 4.333333333333333, + }, + }, + { + id: 'Europe/Bucharest', + aliases: [], + location: { + countryCode: 'RO', + countryName: 'Romania', + comment: '', + latitude: 44.43333333333333, + longitude: 26.1, + }, + }, + { + id: 'Europe/Budapest', + aliases: [], + location: { + countryCode: 'HU', + countryName: 'Hungary', + comment: '', + latitude: 47.5, + longitude: 19.083333333333332, + }, + }, + { + id: 'Europe/Chisinau', + aliases: ['Europe/Tiraspol'], + location: { + countryCode: 'MD', + countryName: 'Moldova', + comment: '', + latitude: 47, + longitude: 28.833333333333332, + }, + }, + { + id: 'Europe/Dublin', + aliases: ['Eire'], + location: { + countryCode: 'IE', + countryName: 'Ireland', + comment: '', + latitude: 53.333333333333336, + longitude: -6.25, + }, + }, + { + id: 'Europe/Gibraltar', + aliases: [], + location: { + countryCode: 'GI', + countryName: 'Gibraltar', + comment: '', + latitude: 36.13333333333333, + longitude: -5.35, + }, + }, + { + id: 'Europe/Helsinki', + aliases: ['Europe/Mariehamn'], + location: { + countryCode: 'FI', + countryName: 'Finland', + comment: '', + latitude: 60.166666666666664, + longitude: 24.966666666666665, + }, + }, + { + id: 'Europe/Istanbul', + aliases: ['Asia/Istanbul', 'Turkey'], + location: { + countryCode: 'TR', + countryName: 'Turkey', + comment: '', + latitude: 41.016666666666666, + longitude: 28.966666666666665, + }, + }, + { + id: 'Europe/Kaliningrad', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK-01 - Kaliningrad', + latitude: 54.71666666666667, + longitude: 20.5, + }, + }, + { + id: 'Europe/Kirov', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B00 - Kirov', + latitude: 58.6, + longitude: 49.65, + }, + }, + { + id: 'Europe/Kyiv', + aliases: ['Europe/Kiev', 'Europe/Uzhgorod', 'Europe/Zaporozhye'], + location: { + countryCode: 'UA', + countryName: 'Ukraine', + comment: 'most of Ukraine', + latitude: 50.43333333333333, + longitude: 30.516666666666666, + }, + }, + { + id: 'Europe/Lisbon', + aliases: ['Portugal', 'WET'], + location: { + countryCode: 'PT', + countryName: 'Portugal', + comment: 'Portugal (mainland)', + latitude: 38.71666666666667, + longitude: -9.133333333333333, + }, + }, + { + id: 'Europe/London', + aliases: [ + 'Europe/Belfast', + 'Europe/Guernsey', + 'Europe/Isle_of_Man', + 'Europe/Jersey', + 'GB', + 'GB-Eire', + ], + location: { + countryCode: 'GB', + countryName: 'Britain (UK)', + comment: '', + latitude: 51.50833333333333, + longitude: -0.12527777777777777, + }, + }, + { + id: 'Europe/Madrid', + aliases: [], + location: { + countryCode: 'ES', + countryName: 'Spain', + comment: 'Spain (mainland)', + latitude: 40.4, + longitude: -3.683333333333333, + }, + }, + { + id: 'Europe/Malta', + aliases: [], + location: { + countryCode: 'MT', + countryName: 'Malta', + comment: '', + latitude: 35.9, + longitude: 14.516666666666667, + }, + }, + { + id: 'Europe/Minsk', + aliases: [], + location: { + countryCode: 'BY', + countryName: 'Belarus', + comment: '', + latitude: 53.9, + longitude: 27.566666666666666, + }, + }, + { + id: 'Europe/Moscow', + aliases: ['W-SU'], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B00 - Moscow area', + latitude: 55.755833333333335, + longitude: 37.617777777777775, + }, + }, + { + id: 'Europe/Paris', + aliases: ['Europe/Monaco'], + location: { + countryCode: 'FR', + countryName: 'France', + comment: '', + latitude: 48.86666666666667, + longitude: 2.3333333333333335, + }, + }, + { + id: 'Europe/Prague', + aliases: ['Europe/Bratislava'], + location: { + countryCode: 'CZ', + countryName: 'Czech Republic', + comment: '', + latitude: 50.083333333333336, + longitude: 14.433333333333334, + }, + }, + { + id: 'Europe/Riga', + aliases: [], + location: { + countryCode: 'LV', + countryName: 'Latvia', + comment: '', + latitude: 56.95, + longitude: 24.1, + }, + }, + { + id: 'Europe/Rome', + aliases: ['Europe/San_Marino', 'Europe/Vatican'], + location: { + countryCode: 'IT', + countryName: 'Italy', + comment: '', + latitude: 41.9, + longitude: 12.483333333333333, + }, + }, + { + id: 'Europe/Samara', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B01 - Samara, Udmurtia', + latitude: 53.2, + longitude: 50.15, + }, + }, + { + id: 'Europe/Saratov', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B01 - Saratov', + latitude: 51.56666666666667, + longitude: 46.03333333333333, + }, + }, + { + id: 'Europe/Simferopol', + aliases: [], + location: { + countryCode: 'UA', + countryName: 'Ukraine', + comment: 'Crimea', + latitude: 44.95, + longitude: 34.1, + }, + }, + { + id: 'Europe/Sofia', + aliases: [], + location: { + countryCode: 'BG', + countryName: 'Bulgaria', + comment: '', + latitude: 42.68333333333333, + longitude: 23.316666666666666, + }, + }, + { + id: 'Europe/Tallinn', + aliases: [], + location: { + countryCode: 'EE', + countryName: 'Estonia', + comment: '', + latitude: 59.416666666666664, + longitude: 24.75, + }, + }, + { + id: 'Europe/Tirane', + aliases: [], + location: { + countryCode: 'AL', + countryName: 'Albania', + comment: '', + latitude: 41.333333333333336, + longitude: 19.833333333333332, + }, + }, + { + id: 'Europe/Ulyanovsk', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B01 - Ulyanovsk', + latitude: 54.333333333333336, + longitude: 48.4, + }, + }, + { + id: 'Europe/Vienna', + aliases: [], + location: { + countryCode: 'AT', + countryName: 'Austria', + comment: '', + latitude: 48.21666666666667, + longitude: 16.333333333333332, + }, + }, + { + id: 'Europe/Vilnius', + aliases: [], + location: { + countryCode: 'LT', + countryName: 'Lithuania', + comment: '', + latitude: 54.68333333333333, + longitude: 25.316666666666666, + }, + }, + { + id: 'Europe/Volgograd', + aliases: [], + location: { + countryCode: 'RU', + countryName: 'Russia', + comment: 'MSK\u002B00 - Volgograd', + latitude: 48.733333333333334, + longitude: 44.416666666666664, + }, + }, + { + id: 'Europe/Warsaw', + aliases: ['Poland'], + location: { + countryCode: 'PL', + countryName: 'Poland', + comment: '', + latitude: 52.25, + longitude: 21, + }, + }, + { + id: 'Europe/Zurich', + aliases: ['Europe/Busingen', 'Europe/Vaduz'], + location: { + countryCode: 'CH', + countryName: 'Switzerland', + comment: '', + latitude: 47.38333333333333, + longitude: 8.533333333333333, + }, + }, + { + id: 'Indian/Chagos', + aliases: [], + location: { + countryCode: 'IO', + countryName: 'British Indian Ocean Territory', + comment: '', + latitude: -7.333333333333333, + longitude: 72.41666666666667, + }, + }, + { + id: 'Indian/Maldives', + aliases: ['Indian/Kerguelen'], + location: { + countryCode: 'MV', + countryName: 'Maldives', + comment: '', + latitude: 4.166666666666667, + longitude: 73.5, + }, + }, + { + id: 'Indian/Mauritius', + aliases: [], + location: { + countryCode: 'MU', + countryName: 'Mauritius', + comment: '', + latitude: -20.166666666666668, + longitude: 57.5, + }, + }, + { + id: 'Pacific/Apia', + aliases: [], + location: { + countryCode: 'WS', + countryName: 'Samoa (western)', + comment: '', + latitude: -13.833333333333334, + longitude: -171.73333333333332, + }, + }, + { + id: 'Pacific/Auckland', + aliases: ['Antarctica/McMurdo', 'Antarctica/South_Pole', 'NZ'], + location: { + countryCode: 'NZ', + countryName: 'New Zealand', + comment: 'most of New Zealand', + latitude: -36.86666666666667, + longitude: 174.76666666666668, + }, + }, + { + id: 'Pacific/Bougainville', + aliases: [], + location: { + countryCode: 'PG', + countryName: 'Papua New Guinea', + comment: 'Bougainville', + latitude: -6.216666666666667, + longitude: 155.56666666666666, + }, + }, + { + id: 'Pacific/Chatham', + aliases: ['NZ-CHAT'], + location: { + countryCode: 'NZ', + countryName: 'New Zealand', + comment: 'Chatham Islands', + latitude: -43.95, + longitude: -176.55, + }, + }, + { + id: 'Pacific/Easter', + aliases: ['Chile/EasterIsland'], + location: { + countryCode: 'CL', + countryName: 'Chile', + comment: 'Easter Island', + latitude: -27.15, + longitude: -109.43333333333334, + }, + }, + { + id: 'Pacific/Efate', + aliases: [], + location: { + countryCode: 'VU', + countryName: 'Vanuatu', + comment: '', + latitude: -17.666666666666668, + longitude: 168.41666666666666, + }, + }, + { + id: 'Pacific/Fakaofo', + aliases: [], + location: { + countryCode: 'TK', + countryName: 'Tokelau', + comment: '', + latitude: -9.366666666666667, + longitude: -171.23333333333332, + }, + }, + { + id: 'Pacific/Fiji', + aliases: [], + location: { + countryCode: 'FJ', + countryName: 'Fiji', + comment: '', + latitude: -18.133333333333333, + longitude: 178.41666666666666, + }, + }, + { + id: 'Pacific/Galapagos', + aliases: [], + location: { + countryCode: 'EC', + countryName: 'Ecuador', + comment: 'Galapagos Islands', + latitude: -0.9, + longitude: -89.6, + }, + }, + { + id: 'Pacific/Gambier', + aliases: [], + location: { + countryCode: 'PF', + countryName: 'French Polynesia', + comment: 'Gambier Islands', + latitude: -23.133333333333333, + longitude: -134.95, + }, + }, + { + id: 'Pacific/Guadalcanal', + aliases: ['Pacific/Pohnpei', 'Pacific/Ponape'], + location: { + countryCode: 'SB', + countryName: 'Solomon Islands', + comment: '', + latitude: -9.533333333333333, + longitude: 160.2, + }, + }, + { + id: 'Pacific/Guam', + aliases: ['Pacific/Saipan'], + location: { + countryCode: 'GU', + countryName: 'Guam', + comment: '', + latitude: 13.466666666666667, + longitude: 144.75, + }, + }, + { + id: 'Pacific/Honolulu', + aliases: ['HST', 'Pacific/Johnston', 'US/Hawaii'], + location: { + countryCode: 'US', + countryName: 'United States', + comment: 'Hawaii', + latitude: 21.306944444444444, + longitude: -157.85833333333332, + }, + }, + { + id: 'Pacific/Kanton', + aliases: ['Pacific/Enderbury'], + location: { + countryCode: 'KI', + countryName: 'Kiribati', + comment: 'Phoenix Islands', + latitude: -2.783333333333333, + longitude: -171.71666666666667, + }, + }, + { + id: 'Pacific/Kiritimati', + aliases: [], + location: { + countryCode: 'KI', + countryName: 'Kiribati', + comment: 'Line Islands', + latitude: 1.8666666666666667, + longitude: -157.33333333333334, + }, + }, + { + id: 'Pacific/Kosrae', + aliases: [], + location: { + countryCode: 'FM', + countryName: 'Micronesia', + comment: 'Kosrae', + latitude: 5.316666666666666, + longitude: 162.98333333333332, + }, + }, + { + id: 'Pacific/Kwajalein', + aliases: ['Kwajalein'], + location: { + countryCode: 'MH', + countryName: 'Marshall Islands', + comment: 'Kwajalein', + latitude: 9.083333333333334, + longitude: 167.33333333333334, + }, + }, + { + id: 'Pacific/Marquesas', + aliases: [], + location: { + countryCode: 'PF', + countryName: 'French Polynesia', + comment: 'Marquesas Islands', + latitude: -9, + longitude: -139.5, + }, + }, + { + id: 'Pacific/Nauru', + aliases: [], + location: { + countryCode: 'NR', + countryName: 'Nauru', + comment: '', + latitude: -0.5166666666666667, + longitude: 166.91666666666666, + }, + }, + { + id: 'Pacific/Niue', + aliases: [], + location: { + countryCode: 'NU', + countryName: 'Niue', + comment: '', + latitude: -19.016666666666666, + longitude: -169.91666666666666, + }, + }, + { + id: 'Pacific/Norfolk', + aliases: [], + location: { + countryCode: 'NF', + countryName: 'Norfolk Island', + comment: '', + latitude: -29.05, + longitude: 167.96666666666667, + }, + }, + { + id: 'Pacific/Noumea', + aliases: [], + location: { + countryCode: 'NC', + countryName: 'New Caledonia', + comment: '', + latitude: -22.266666666666666, + longitude: 166.45, + }, + }, + { + id: 'Pacific/Pago_Pago', + aliases: ['Pacific/Midway', 'Pacific/Samoa', 'US/Samoa'], + location: { + countryCode: 'AS', + countryName: 'Samoa (American)', + comment: '', + latitude: -14.266666666666667, + longitude: -170.7, + }, + }, + { + id: 'Pacific/Palau', + aliases: [], + location: { + countryCode: 'PW', + countryName: 'Palau', + comment: '', + latitude: 7.333333333333333, + longitude: 134.48333333333332, + }, + }, + { + id: 'Pacific/Pitcairn', + aliases: [], + location: { + countryCode: 'PN', + countryName: 'Pitcairn', + comment: '', + latitude: -25.066666666666666, + longitude: -130.08333333333334, + }, + }, + { + id: 'Pacific/Port_Moresby', + aliases: [ + 'Antarctica/DumontDUrville', + 'Pacific/Chuuk', + 'Pacific/Truk', + 'Pacific/Yap', + ], + location: { + countryCode: 'PG', + countryName: 'Papua New Guinea', + comment: 'most of Papua New Guinea', + latitude: -9.5, + longitude: 147.16666666666666, + }, + }, + { + id: 'Pacific/Rarotonga', + aliases: [], + location: { + countryCode: 'CK', + countryName: 'Cook Islands', + comment: '', + latitude: -21.233333333333334, + longitude: -159.76666666666668, + }, + }, + { + id: 'Pacific/Tahiti', + aliases: [], + location: { + countryCode: 'PF', + countryName: 'French Polynesia', + comment: 'Society Islands', + latitude: -17.533333333333335, + longitude: -149.56666666666666, + }, + }, + { + id: 'Pacific/Tarawa', + aliases: [ + 'Pacific/Funafuti', + 'Pacific/Majuro', + 'Pacific/Wake', + 'Pacific/Wallis', + ], + location: { + countryCode: 'KI', + countryName: 'Kiribati', + comment: 'Gilbert Islands', + latitude: 1.4166666666666667, + longitude: 173, + }, + }, + { + id: 'Pacific/Tongatapu', + aliases: [], + location: { + countryCode: 'TO', + countryName: 'Tonga', + comment: '', + latitude: -21.133333333333333, + longitude: -175.2, + }, + }, + ], +} as const; + +type TimeZoneIds = (typeof timezoneData)['zones'][number]['id']; +type TimeZoneAlias = (typeof timezoneData)['zones'][number]['aliases'][number]; +export type TimeZones = TimeZoneIds | TimeZoneAlias; + +export const timeZoneIds = timezoneData.zones.map( + (zone) => zone.id, +) as TimeZoneIds[]; +export const timeZoneAliases = timezoneData.zones.flatMap( + (zone) => zone.aliases, +) as TimeZoneAlias[]; +export const allTimeZones = [...timeZoneIds, ...timeZoneAliases] as const; diff --git a/src/middleware.ts b/src/middleware.ts index a1ae8e1..7f1dba7 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -2,6 +2,6 @@ export { auth as middleware } from '@/auth'; export const config = { matcher: [ - '/((?!api|_next/static|api-doc|_next/image|site\.webmanifest|web-app-manifest-(?:192x192|512x512)\.png|apple-touch-icon.png|favicon(?:-(?:dark|light))?\.(?:png|svg|ico)|fonts).*)', + '/((?!api|_next/static|api-doc|api-doc|_next/image|site\.webmanifest|web-app-manifest-(?:192x192|512x512)\.png|apple-touch-icon.png|favicon(?:-(?:dark|light))?\.(?:png|svg|ico)|fonts).*)', ], }; diff --git a/yarn.lock b/yarn.lock index fadc981..6896655 100644 --- a/yarn.lock +++ b/yarn.lock @@ -112,9 +112,9 @@ __metadata: languageName: node linkType: hard -"@auth/core@npm:0.39.1": - version: 0.39.1 - resolution: "@auth/core@npm:0.39.1" +"@auth/core@npm:0.40.0": + version: 0.40.0 + resolution: "@auth/core@npm:0.40.0" dependencies: "@panva/hkdf": "npm:^1.2.1" jose: "npm:^6.0.6" @@ -132,18 +132,18 @@ __metadata: optional: true nodemailer: optional: true - checksum: 10c0/ba2703656c266ce42f10a1e5ac90c2bcbc829bff651cc930ad95a4734aafaa249551d0af589a0c970fbd7f7aa6324c329439183bfb46ba1bee3f8cfa90128275 + checksum: 10c0/25cd12f22611eedc21c17dc1908fa9428ae5f0e32eb32c1ab009642276c37099cce58f49ffbb7f8e8d6d6488d5101a24fb9808ec662eee5aca19d520750acaa3 languageName: node linkType: hard "@auth/prisma-adapter@npm:^2.9.1": - version: 2.9.1 - resolution: "@auth/prisma-adapter@npm:2.9.1" + version: 2.10.0 + resolution: "@auth/prisma-adapter@npm:2.10.0" dependencies: - "@auth/core": "npm:0.39.1" + "@auth/core": "npm:0.40.0" peerDependencies: "@prisma/client": ">=2.26.0 || >=3 || >=4 || >=5 || >=6" - checksum: 10c0/615ee7c02f690e35ccac8206607a4345ca6455c322a741ddd4dbd52e7a068ace9e5c46c4d8a50fe471ca2c2fb6a5b4bb9924cbd2e911613f671fe929c33278d4 + checksum: 10c0/f6c95f144958c678e8cbc691b205c937cbc456beab3da035ab3e00d55e91b8b39be6ff8529dbe3c72d0f95365988db09bc5862445f70c2438061dbe69bca34f5 languageName: node linkType: hard @@ -578,15 +578,15 @@ __metadata: linkType: hard "@gerrit0/mini-shiki@npm:^3.2.2": - version: 3.6.0 - resolution: "@gerrit0/mini-shiki@npm:3.6.0" + version: 3.7.0 + resolution: "@gerrit0/mini-shiki@npm:3.7.0" dependencies: - "@shikijs/engine-oniguruma": "npm:^3.6.0" - "@shikijs/langs": "npm:^3.6.0" - "@shikijs/themes": "npm:^3.6.0" - "@shikijs/types": "npm:^3.6.0" + "@shikijs/engine-oniguruma": "npm:^3.7.0" + "@shikijs/langs": "npm:^3.7.0" + "@shikijs/themes": "npm:^3.7.0" + "@shikijs/types": "npm:^3.7.0" "@shikijs/vscode-textmate": "npm:^10.0.2" - checksum: 10c0/347456c9da8a1fadd3c1f63097da459a5f930ef4bca6431cce913a379012c551e061d0a94ff7a0f307215b87f2418b7c198a55fba888fc97fb02ab36247adf6b + checksum: 10c0/eb3f4900d841338077d839ebbc7f8722b13876a586cff7abc73295e956683724dd3371a9f990900184a2d069461965951b2604d677991badf3474262e7811384 languageName: node linkType: hard @@ -974,10 +974,10 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/env@npm:15.4.0-canary.85" - checksum: 10c0/2a11c5530bd87edf993413044af5175f7e230d6db41145e3c56059a0cd1fc675b6150e1644b1e8731ff1c590927b4d6c27550ca1bafae3318fffd6483e75d1da +"@next/env@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/env@npm:15.4.0-canary.94" + checksum: 10c0/d4c4f9fd1ab996271f57b2ace4db53c0f0209ddcfc536dbe1fe28f3dd3bcc858b402abdf69d7ebb778581d94da4034a5a0bef0ced234e4a476fafdcba2ea46a0 languageName: node linkType: hard @@ -990,58 +990,58 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-darwin-arm64@npm:15.4.0-canary.85" +"@next/swc-darwin-arm64@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-darwin-arm64@npm:15.4.0-canary.94" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-darwin-x64@npm:15.4.0-canary.85" +"@next/swc-darwin-x64@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-darwin-x64@npm:15.4.0-canary.94" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-linux-arm64-gnu@npm:15.4.0-canary.85" +"@next/swc-linux-arm64-gnu@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-linux-arm64-gnu@npm:15.4.0-canary.94" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-linux-arm64-musl@npm:15.4.0-canary.85" +"@next/swc-linux-arm64-musl@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-linux-arm64-musl@npm:15.4.0-canary.94" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-linux-x64-gnu@npm:15.4.0-canary.85" +"@next/swc-linux-x64-gnu@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-linux-x64-gnu@npm:15.4.0-canary.94" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-linux-x64-musl@npm:15.4.0-canary.85" +"@next/swc-linux-x64-musl@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-linux-x64-musl@npm:15.4.0-canary.94" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-win32-arm64-msvc@npm:15.4.0-canary.85" +"@next/swc-win32-arm64-msvc@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-win32-arm64-msvc@npm:15.4.0-canary.94" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "@next/swc-win32-x64-msvc@npm:15.4.0-canary.85" +"@next/swc-win32-x64-msvc@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "@next/swc-win32-x64-msvc@npm:15.4.0-canary.94" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1246,58 +1246,58 @@ __metadata: languageName: node linkType: hard -"@prisma/config@npm:6.9.0": - version: 6.9.0 - resolution: "@prisma/config@npm:6.9.0" +"@prisma/config@npm:6.10.1": + version: 6.10.1 + resolution: "@prisma/config@npm:6.10.1" dependencies: jiti: "npm:2.4.2" - checksum: 10c0/749c801e31d5284d78ce0df9a41b07a2a1d756d966b857472c2dcbfa1239da3cf8e60f3522d42d201fa08594b8ecbb88816f9381b521230ddac992a9bc566445 + checksum: 10c0/49d99474ba086d1141340b8b54f109597cc485e4a35cfab8b43cff35c19fe4f9ffa0d424ef4dbf76a8880c955ecd8a233206d4e7ee436116fc319506b46e46fb languageName: node linkType: hard -"@prisma/debug@npm:6.9.0": - version: 6.9.0 - resolution: "@prisma/debug@npm:6.9.0" - checksum: 10c0/abb6822299285d6847d7f86723ad4c222a828cb0cec0086bdf616c9d92e3c2c48b9f00d1b49655c489bbe6ad1a33cf4818c468ea8448b58a3233d67a967bb0ee +"@prisma/debug@npm:6.10.1": + version: 6.10.1 + resolution: "@prisma/debug@npm:6.10.1" + checksum: 10c0/a5f76ace213da5ab3180fc179383637df6923363a6a08c5958788ecf4dbade3761b07445bc06f7fa044880221a66b824b105bee3aa19eb155c48f6c3f730051b languageName: node linkType: hard -"@prisma/engines-version@npm:6.9.0-10.81e4af48011447c3cc503a190e86995b66d2a28e": - version: 6.9.0-10.81e4af48011447c3cc503a190e86995b66d2a28e - resolution: "@prisma/engines-version@npm:6.9.0-10.81e4af48011447c3cc503a190e86995b66d2a28e" - checksum: 10c0/a81ba1a619d3945ef7840d28f4b6eb0ed345aac86011d03ec8b9388129273e70887a6ece8052195a8d909bfce8f469cdab2a3fe079fe89d432d5510f35ebfa0b +"@prisma/engines-version@npm:6.10.1-1.9b628578b3b7cae625e8c927178f15a170e74a9c": + version: 6.10.1-1.9b628578b3b7cae625e8c927178f15a170e74a9c + resolution: "@prisma/engines-version@npm:6.10.1-1.9b628578b3b7cae625e8c927178f15a170e74a9c" + checksum: 10c0/478feafd1bebea1edc1b93c5117c0b3b85c7a4a89bf2f0e7f1b3ab425ed3f3df5a56a6bdda8debf16ba096ef1618399a4912f581e1a543bfbf6ea5e8b6a19cdf languageName: node linkType: hard -"@prisma/engines@npm:6.9.0": - version: 6.9.0 - resolution: "@prisma/engines@npm:6.9.0" +"@prisma/engines@npm:6.10.1": + version: 6.10.1 + resolution: "@prisma/engines@npm:6.10.1" dependencies: - "@prisma/debug": "npm:6.9.0" - "@prisma/engines-version": "npm:6.9.0-10.81e4af48011447c3cc503a190e86995b66d2a28e" - "@prisma/fetch-engine": "npm:6.9.0" - "@prisma/get-platform": "npm:6.9.0" - checksum: 10c0/62fb62141f277376a3194637a1e6123c4eecdd54df89138d0694813dc5d3007b6cec0bcd15dceb76d383f9379f844dffd0a62de87a0c5c761c61d46c91a7c6ba + "@prisma/debug": "npm:6.10.1" + "@prisma/engines-version": "npm:6.10.1-1.9b628578b3b7cae625e8c927178f15a170e74a9c" + "@prisma/fetch-engine": "npm:6.10.1" + "@prisma/get-platform": "npm:6.10.1" + checksum: 10c0/fa1fe15a46b8f1342919d7c84a64b8b9c2522c408ee33203c7df6c39cf87c1dffdf9b8a9af5a90214ebdfcaf5fd4f640f75f869a1e7eccadcc816065b35aa318 languageName: node linkType: hard -"@prisma/fetch-engine@npm:6.9.0": - version: 6.9.0 - resolution: "@prisma/fetch-engine@npm:6.9.0" +"@prisma/fetch-engine@npm:6.10.1": + version: 6.10.1 + resolution: "@prisma/fetch-engine@npm:6.10.1" dependencies: - "@prisma/debug": "npm:6.9.0" - "@prisma/engines-version": "npm:6.9.0-10.81e4af48011447c3cc503a190e86995b66d2a28e" - "@prisma/get-platform": "npm:6.9.0" - checksum: 10c0/cdab9a5e1e0b8f52cb32dfacb8fff4b50cccb64235a8fdc06ae1930089f6acf28cd6b4af4bb306aae25773db76db2d2d378244d23f7b491acf6f3f8d135e0ef6 + "@prisma/debug": "npm:6.10.1" + "@prisma/engines-version": "npm:6.10.1-1.9b628578b3b7cae625e8c927178f15a170e74a9c" + "@prisma/get-platform": "npm:6.10.1" + checksum: 10c0/46a47eac79f53ef7a5ff513e237a95c6b2f7509317c49f4df6b4151002a768715eccf7eb6e0bf9ca4c64d5703fc6ba3af33bfb105c9d37decd225a2bab9fc4cf languageName: node linkType: hard -"@prisma/get-platform@npm:6.9.0": - version: 6.9.0 - resolution: "@prisma/get-platform@npm:6.9.0" +"@prisma/get-platform@npm:6.10.1": + version: 6.10.1 + resolution: "@prisma/get-platform@npm:6.10.1" dependencies: - "@prisma/debug": "npm:6.9.0" - checksum: 10c0/e70bd4e9733d959b7dd5614d4f6f7af6d9f135e1719ddcf91a6c8baa4235882674b46f1c965e63ecfb7251327e7e670b0396d11c0a9c28648fc430de843da806 + "@prisma/debug": "npm:6.10.1" + checksum: 10c0/fbaaad070301a54a08022b7c23ef290007bc7eb94cda8b1ed97aedbd9eaeb20dbf26266e309a5cc155c7636a04e8736eff1554f4a3ffe07013f1f68134c6efea languageName: node linkType: hard @@ -2066,41 +2066,41 @@ __metadata: languageName: node linkType: hard -"@shikijs/engine-oniguruma@npm:^3.6.0": - version: 3.6.0 - resolution: "@shikijs/engine-oniguruma@npm:3.6.0" +"@shikijs/engine-oniguruma@npm:^3.7.0": + version: 3.7.0 + resolution: "@shikijs/engine-oniguruma@npm:3.7.0" dependencies: - "@shikijs/types": "npm:3.6.0" + "@shikijs/types": "npm:3.7.0" "@shikijs/vscode-textmate": "npm:^10.0.2" - checksum: 10c0/2e3a1fb02d823be5d998a310fa2e5e34e92a7498996bed2ec52eb9368dbba99e10571619a364c406d79f3047b966fecc7afb29635a8fdfa6a25c9ee5cd8f2f34 + checksum: 10c0/e1ec52ec2255e3330812084d62bde8853d20162b1cd285dbb63440d63d0b16c03b6ce6983982e41ac2fc2eceb3e2f6b2bc1c627d093482c4c3836c4fbb9567b0 languageName: node linkType: hard -"@shikijs/langs@npm:^3.6.0": - version: 3.6.0 - resolution: "@shikijs/langs@npm:3.6.0" +"@shikijs/langs@npm:^3.7.0": + version: 3.7.0 + resolution: "@shikijs/langs@npm:3.7.0" dependencies: - "@shikijs/types": "npm:3.6.0" - checksum: 10c0/b904e230c5b4e1cd0c1c09d36b3704ac961b8b27802581ee375c2c1f92f5df5e93dc88ddf882be094fe42c3bd374c67e10f2f14d4974d0cb8e04efc8ba3492f0 + "@shikijs/types": "npm:3.7.0" + checksum: 10c0/326e8b014e74d25ce84a63bf7fdd47d5582f85c8404d4c48d6bdacf2f32ab92ddb39b41710ee7eff3daaecbbea7ee96a6c49d427344ee8375551597c74010a81 languageName: node linkType: hard -"@shikijs/themes@npm:^3.6.0": - version: 3.6.0 - resolution: "@shikijs/themes@npm:3.6.0" +"@shikijs/themes@npm:^3.7.0": + version: 3.7.0 + resolution: "@shikijs/themes@npm:3.7.0" dependencies: - "@shikijs/types": "npm:3.6.0" - checksum: 10c0/33be969bc56ea86590d63042a24ab715527f30f9488cca6fe17dfff67894ca1e75e83ddca9c9b5d449a8e8586ad014ace8b92b389e73be2c35280d6f805b87a3 + "@shikijs/types": "npm:3.7.0" + checksum: 10c0/6887eb99b55439988edab21a1af00302eaed6ba0dd7e2bea6c844ff4dfb8879a0c6c2178ba3fcfe2dbf3fd9f3ab6105572c57ae871e147aaceaf53bcc345d0cd languageName: node linkType: hard -"@shikijs/types@npm:3.6.0, @shikijs/types@npm:^3.6.0": - version: 3.6.0 - resolution: "@shikijs/types@npm:3.6.0" +"@shikijs/types@npm:3.7.0, @shikijs/types@npm:^3.7.0": + version: 3.7.0 + resolution: "@shikijs/types@npm:3.7.0" dependencies: "@shikijs/vscode-textmate": "npm:^10.0.2" "@types/hast": "npm:^3.0.4" - checksum: 10c0/5ea6246541b18e67bde854c4b72fb3aecde4a7da080be827645e4728945b782df9dc6498115085afbcf180e21e06e949bc3b8c3162233a2bdf4313979f49a6f7 + checksum: 10c0/d7c4fcca358c0585602090e2b4ed0a3f6742b55bea340030c115cb7aa643eac79836baa095517a538d695415458bb48c08b7be7f3c8d1cf1c1c7749a58913a3f languageName: node linkType: hard @@ -3074,21 +3074,21 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.80.10": - version: 5.80.10 - resolution: "@tanstack/query-core@npm:5.80.10" - checksum: 10c0/6391f4439f1f4676f5efeb07271e6b0b1418bd1192779f55cac537f0b35ec31c729eb43a30e0269534328c259c3ed6dd2f31555c42c68b6dd0c9ede410d46eb1 +"@tanstack/query-core@npm:5.81.2": + version: 5.81.2 + resolution: "@tanstack/query-core@npm:5.81.2" + checksum: 10c0/36a6bddec2e7512015bcfbb0d7b0876fab418de9e0ef21ad403598276960e0b7d53efd62832ce462738ad22d9883e31cb5403eafc65dfd9b2f6744c22a9d8e42 languageName: node linkType: hard "@tanstack/react-query@npm:^5.80.7": - version: 5.80.10 - resolution: "@tanstack/react-query@npm:5.80.10" + version: 5.81.2 + resolution: "@tanstack/react-query@npm:5.81.2" dependencies: - "@tanstack/query-core": "npm:5.80.10" + "@tanstack/query-core": "npm:5.81.2" peerDependencies: react: ^18 || ^19 - checksum: 10c0/1a759b264cc94b389f802f1183183a3fbe1669ec1bb354951cfab6b6cf175276885c5f5c9b3fc00340a87140fdff4b9cf0c688fb7af103d34fb3b209d33a0a95 + checksum: 10c0/a80a2e7401a02bfc8d7a926c9e48b0a108cae21a2c47691632e754de44ca08838c105fb0c30804f4ccbf173bee04ad9a3e45a8bebdfc1d1a32468bbb9d960e19 languageName: node linkType: hard @@ -3194,20 +3194,20 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 24.0.3 - resolution: "@types/node@npm:24.0.3" + version: 24.0.4 + resolution: "@types/node@npm:24.0.4" dependencies: undici-types: "npm:~7.8.0" - checksum: 10c0/9c3c4e87600d1cf11e291c2fd4bfd806a615455463c30a0ef6dc9c801b3423344d9b82b8084e3ccabce485a7421ebb61a66e9676181bd7d9aea4759998a120d5 + checksum: 10c0/590e8cb0ec59fb9cd566402120e690d87ecbdf57f1ee2b8493266121ed33aa4b25949a0c6156b84a6ffb9250baaf1f80e9af142da542ed603e6ee73fc4d1115f languageName: node linkType: hard -"@types/node@npm:22.15.32": - version: 22.15.32 - resolution: "@types/node@npm:22.15.32" +"@types/node@npm:22.15.33": + version: 22.15.33 + resolution: "@types/node@npm:22.15.33" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/63a2fa52adf1134d1b3bee8b1862d4b8e4550fffc190551068d3d41a41d9e5c0c8f1cb81faa18767b260637360f662115c26c5e4e7718868ead40c4a57cbc0e3 + checksum: 10c0/ee040c29c891aa37fffc27d04a8529318c391356346933646b7692eaf62236831ad532f6ebaf43ebd6a2ef1f0f091860d8a0a83a4e3c5a4f66d37aa1b2c99f31 languageName: node linkType: hard @@ -3245,7 +3245,7 @@ __metadata: languageName: node linkType: hard -"@types/swagger-ui-react@npm:^5": +"@types/swagger-ui-react@npm:5": version: 5.18.0 resolution: "@types/swagger-ui-react@npm:5.18.0" dependencies: @@ -3289,7 +3289,7 @@ __metadata: languageName: node linkType: hard -"@types/webpack-env@npm:^1.18.8": +"@types/webpack-env@npm:1.18.8": version: 1.18.8 resolution: "@types/webpack-env@npm:1.18.8" checksum: 10c0/527a5d1eb75c5243e4f3665d956c7c340f899955dd25d16c9fd9750406f32e95a3a17d207640295038e8235c0c2a2daf084f420e088e58b965d82fc74f6012d7 @@ -3297,104 +3297,104 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.34.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.34.1" + version: 8.35.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.35.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.34.1" - "@typescript-eslint/type-utils": "npm:8.34.1" - "@typescript-eslint/utils": "npm:8.34.1" - "@typescript-eslint/visitor-keys": "npm:8.34.1" + "@typescript-eslint/scope-manager": "npm:8.35.0" + "@typescript-eslint/type-utils": "npm:8.35.0" + "@typescript-eslint/utils": "npm:8.35.0" + "@typescript-eslint/visitor-keys": "npm:8.35.0" graphemer: "npm:^1.4.0" ignore: "npm:^7.0.0" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^2.1.0" peerDependencies: - "@typescript-eslint/parser": ^8.34.1 + "@typescript-eslint/parser": ^8.35.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/f1c9f25e4fe4b59622312dfa0ca1e80fa7945296ba5c04362a5fda084a17e23a6b98dac331f5a13bcb1ba34a2b598a3f5c41aa288f0c51fe60196e912954e56a + checksum: 10c0/27391f1b168a175fdc62370e5afe51317d4433115abbbff8ee0aea8ecd7bf6dd541a76f8e0cc94119750ae3146863204862640acb45394f0b92809e88d39f881 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.34.1 - resolution: "@typescript-eslint/parser@npm:8.34.1" + version: 8.35.0 + resolution: "@typescript-eslint/parser@npm:8.35.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.34.1" - "@typescript-eslint/types": "npm:8.34.1" - "@typescript-eslint/typescript-estree": "npm:8.34.1" - "@typescript-eslint/visitor-keys": "npm:8.34.1" + "@typescript-eslint/scope-manager": "npm:8.35.0" + "@typescript-eslint/types": "npm:8.35.0" + "@typescript-eslint/typescript-estree": "npm:8.35.0" + "@typescript-eslint/visitor-keys": "npm:8.35.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/bf8070245d53ef6926ff6630bb72f245923f545304e2a61508fb944802a83fed8eab961d9010956d07999d51afdfbbec82aea9d6185295551a7c17c00d759183 + checksum: 10c0/8f1cda98f8bee3d79266974e5e5c831a0ca473e928fb16f1dc1c85ee24f2cb9c0fcf3c1bcbbef9d6044cf063f6e59d3198b766a27000776830fe591043e11625 languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/project-service@npm:8.34.1" +"@typescript-eslint/project-service@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/project-service@npm:8.35.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.34.1" - "@typescript-eslint/types": "npm:^8.34.1" + "@typescript-eslint/tsconfig-utils": "npm:^8.35.0" + "@typescript-eslint/types": "npm:^8.35.0" debug: "npm:^4.3.4" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/9333a890625f6777054db17a6b299281ae7502bb7615261d15b885a75b8cf65fc91591389c93b37ecd14b651d8e94851dac8718e5dcc8ed0600533535dae855c + checksum: 10c0/c2d6d44b6b2ff3ecabec8ade824163196799060ac457661eb94049487d770ce68d128b33a2f24090adf1ebcb66ff6c9a05fc6659349b9a0784a5a080ecf8ff81 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/scope-manager@npm:8.34.1" +"@typescript-eslint/scope-manager@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/scope-manager@npm:8.35.0" dependencies: - "@typescript-eslint/types": "npm:8.34.1" - "@typescript-eslint/visitor-keys": "npm:8.34.1" - checksum: 10c0/2af608fa3900f4726322e33bf4f3a376fdace3ac0f310cf7d9256bbc2905c3896138176a47dd195d2c2229f27fe43f5deb4bc7729db2eb18389926dedea78077 + "@typescript-eslint/types": "npm:8.35.0" + "@typescript-eslint/visitor-keys": "npm:8.35.0" + checksum: 10c0/a27cf27a1852bb0d6ea08f475fcc79557f1977be96ef563d92127e8011e4065566441c32c40eb7a530111ffd3a8489919da7f8a2b7466a610cfc9c07670a9601 languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.34.1, @typescript-eslint/tsconfig-utils@npm:^8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.34.1" +"@typescript-eslint/tsconfig-utils@npm:8.35.0, @typescript-eslint/tsconfig-utils@npm:^8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.35.0" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/8d1ead8b7c279b48e2ed96f083ec119a9aeea1ca9cdd40576ec271b996b9fd8cfa0ddb0aafbb4e14bc27fc62c69c5be66d39b1de68eab9ddd7f1861da267423d + checksum: 10c0/baa18e7137ba72f7d138f50d1168e8f334198a36499f954821e2369027e5b3d53ca93c354943e7782ba5caab604b050af10f353ccca34fbc0b23c48d6174832f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/type-utils@npm:8.34.1" +"@typescript-eslint/type-utils@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/type-utils@npm:8.35.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.34.1" - "@typescript-eslint/utils": "npm:8.34.1" + "@typescript-eslint/typescript-estree": "npm:8.35.0" + "@typescript-eslint/utils": "npm:8.35.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^2.1.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/502a2cdfe47f1f34206c747b5a70e0242dd99f570511db3dda9c5f999d9abadfbbb1dfa82a1fa437a1689d232715412e61c97d95f19c9314ba5ad23196b4096d + checksum: 10c0/9e23a332484a055eb73ba8918f95a981e0cec8fa623ba9ee0b57328af052628d630a415e32e0dbe95318574e62d4066f8aecc994728b3cedd906f36c616ec362 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.34.1, @typescript-eslint/types@npm:^8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/types@npm:8.34.1" - checksum: 10c0/db1b3dce6a70b28ddb13c76fbb5983240d9395656df5f7cbd99bfd9905e39c0dab2132870f01dbc406b48739c437f7d344a879a824cedaba81b91a53110dc23a +"@typescript-eslint/types@npm:8.35.0, @typescript-eslint/types@npm:^8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/types@npm:8.35.0" + checksum: 10c0/a2711a932680805e83252b5d7c55ac30437bdc4d40c444606cf6ccb6ba23a682da015ec03c64635e77bf733f84d9bb76810bf4f7177fd3a660db8a2c8a05e845 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.34.1" +"@typescript-eslint/typescript-estree@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.35.0" dependencies: - "@typescript-eslint/project-service": "npm:8.34.1" - "@typescript-eslint/tsconfig-utils": "npm:8.34.1" - "@typescript-eslint/types": "npm:8.34.1" - "@typescript-eslint/visitor-keys": "npm:8.34.1" + "@typescript-eslint/project-service": "npm:8.35.0" + "@typescript-eslint/tsconfig-utils": "npm:8.35.0" + "@typescript-eslint/types": "npm:8.35.0" + "@typescript-eslint/visitor-keys": "npm:8.35.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -3403,166 +3403,166 @@ __metadata: ts-api-utils: "npm:^2.1.0" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/4ee7249db91b9840361f34f80b7b6d646a3af159c7298d79a33d8a11c98792fd3a395343e5e17e0fa29529e8f0113bac8baadcef90d1e140bd736a48f0485042 + checksum: 10c0/7e94f6a92efc5832289e8bfd0b61209aa501224c935359253c29aeef8e0b981b370ee2a43e2909991c3c3cf709fcccb6380474e0e9a863e8f89e2fbd213aed59 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/utils@npm:8.34.1" +"@typescript-eslint/utils@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/utils@npm:8.35.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.7.0" - "@typescript-eslint/scope-manager": "npm:8.34.1" - "@typescript-eslint/types": "npm:8.34.1" - "@typescript-eslint/typescript-estree": "npm:8.34.1" + "@typescript-eslint/scope-manager": "npm:8.35.0" + "@typescript-eslint/types": "npm:8.35.0" + "@typescript-eslint/typescript-estree": "npm:8.35.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/e3085877f7940c02a37653e6bc52ac6cde115e755b1f788fe4331202f371b3421cc4d0878c7d3eb054e14e9b3a064496a707a73eac471cb2b73593b9e9d4b998 + checksum: 10c0/e3317df7875305bee16edd573e4bfdafc099f26f9c284d8adb351333683aacd5b668320870653dff7ec7e0da1982bbf89dc06197bc193a3be65362f21452dbea languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.34.1": - version: 8.34.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.34.1" +"@typescript-eslint/visitor-keys@npm:8.35.0": + version: 8.35.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.35.0" dependencies: - "@typescript-eslint/types": "npm:8.34.1" + "@typescript-eslint/types": "npm:8.35.0" eslint-visitor-keys: "npm:^4.2.1" - checksum: 10c0/0e5a9b3d93905d16d3cf8cb5fb346dcc6f760482eb7d0ac209aefc09a32f78ef28a687634df6ad08e81fb3e1083e8805f34472de6bbc501c0105ad654d518f40 + checksum: 10c0/df18ca9b6931cb58f5dc404fcc94f9e0cc1c22f3053c7013ab588bb8ccccd3d58a70c577c01267845d57fa124a8cf8371260d284dad97505c56b2abcf70a3dce languageName: node linkType: hard -"@unrs/resolver-binding-android-arm-eabi@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.9.0" +"@unrs/resolver-binding-android-arm-eabi@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.9.2" conditions: os=android & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-android-arm64@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-android-arm64@npm:1.9.0" +"@unrs/resolver-binding-android-arm64@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-android-arm64@npm:1.9.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.9.0" +"@unrs/resolver-binding-darwin-arm64@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.9.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.9.0" +"@unrs/resolver-binding-darwin-x64@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.9.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.9.0" +"@unrs/resolver-binding-freebsd-x64@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.9.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.0" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.9.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.0" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.9.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.0" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.9.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.9.0" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.9.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.0" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.9.2" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.0" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.9.2" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.0" +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.9.2" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.0" +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.9.2" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.9.0" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.9.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.9.0" +"@unrs/resolver-binding-linux-x64-musl@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.9.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.9.0" +"@unrs/resolver-binding-wasm32-wasi@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.9.2" dependencies: "@napi-rs/wasm-runtime": "npm:^0.2.11" conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.0" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.9.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.0" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.9.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.9.0": - version: 1.9.0 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.9.0" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.9.2": + version: 1.9.2 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.9.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3769,7 +3769,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8, array-includes@npm:^3.1.9": version: 3.1.9 resolution: "array-includes@npm:3.1.9" dependencies: @@ -3806,7 +3806,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.5": +"array.prototype.findlastindex@npm:^1.2.6": version: 1.2.6 resolution: "array.prototype.findlastindex@npm:1.2.6" dependencies: @@ -3821,7 +3821,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": +"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.3": version: 1.3.3 resolution: "array.prototype.flat@npm:1.3.3" dependencies: @@ -4071,9 +4071,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001579": - version: 1.0.30001723 - resolution: "caniuse-lite@npm:1.0.30001723" - checksum: 10c0/e019503061759b96017c4d27ddd7ca1b48533eabcd0431b51d2e3156f99f6b031075e46c279c0db63424cdfc874bba992caec2db51b922a0f945e686246886f6 + version: 1.0.30001724 + resolution: "caniuse-lite@npm:1.0.30001724" + checksum: 10c0/ed9ec0bcf619f0e7ef2d33aac74d2346d1faf52060dfded1fb9c32d87854de5c2988b3ba338c281034c88bf797d6b55468a804ce8396a7e16a48cb0d481d4bfe languageName: node linkType: hard @@ -4587,12 +4587,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.18.1": - version: 5.18.1 - resolution: "enhanced-resolve@npm:5.18.1" + version: 5.18.2 + resolution: "enhanced-resolve@npm:5.18.2" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/4cffd9b125225184e2abed9fdf0ed3dbd2224c873b165d0838fd066cde32e0918626cba2f1f4bf6860762f13a7e2364fd89a82b99566be2873d813573ac71846 + checksum: 10c0/2a45105daded694304b0298d1c0351a981842249a9867513d55e41321a4ccf37dfd35b0c1e9ceae290eab73654b09aa7a910d618ea6f9441e97c52bc424a2372 languageName: node linkType: hard @@ -4961,44 +4961,44 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.12.0": - version: 2.12.0 - resolution: "eslint-module-utils@npm:2.12.0" +"eslint-module-utils@npm:^2.12.1": + version: 2.12.1 + resolution: "eslint-module-utils@npm:2.12.1" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 + checksum: 10c0/6f4efbe7a91ae49bf67b4ab3644cb60bc5bd7db4cb5521de1b65be0847ffd3fb6bce0dd68f0995e1b312d137f768e2a1f842ee26fe73621afa05f850628fdc40 languageName: node linkType: hard "eslint-plugin-import@npm:^2.31.0": - version: 2.31.0 - resolution: "eslint-plugin-import@npm:2.31.0" + version: 2.32.0 + resolution: "eslint-plugin-import@npm:2.32.0" dependencies: "@rtsao/scc": "npm:^1.1.0" - array-includes: "npm:^3.1.8" - array.prototype.findlastindex: "npm:^1.2.5" - array.prototype.flat: "npm:^1.3.2" - array.prototype.flatmap: "npm:^1.3.2" + array-includes: "npm:^3.1.9" + array.prototype.findlastindex: "npm:^1.2.6" + array.prototype.flat: "npm:^1.3.3" + array.prototype.flatmap: "npm:^1.3.3" debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.12.0" + eslint-module-utils: "npm:^2.12.1" hasown: "npm:^2.0.2" - is-core-module: "npm:^2.15.1" + is-core-module: "npm:^2.16.1" is-glob: "npm:^4.0.3" minimatch: "npm:^3.1.2" object.fromentries: "npm:^2.0.8" object.groupby: "npm:^1.0.3" - object.values: "npm:^1.2.0" + object.values: "npm:^1.2.1" semver: "npm:^6.3.1" - string.prototype.trimend: "npm:^1.0.8" + string.prototype.trimend: "npm:^1.0.9" tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a + checksum: 10c0/bfb1b8fc8800398e62ddfefbf3638d185286edfed26dfe00875cc2846d954491b4f5112457831588b757fa789384e1ae585f812614c4797f0499fa234fd4a48b languageName: node linkType: hard @@ -5958,7 +5958,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.0, is-core-module@npm:^2.16.1": version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: @@ -6783,11 +6783,11 @@ __metadata: "@radix-ui/react-tabs": "npm:^1.1.11" "@tailwindcss/postcss": "npm:4.1.10" "@tanstack/react-query": "npm:^5.80.7" - "@types/node": "npm:22.15.32" + "@types/node": "npm:22.15.33" "@types/react": "npm:19.1.8" "@types/react-dom": "npm:19.1.6" - "@types/swagger-ui-react": "npm:^5" - "@types/webpack-env": "npm:^1.18.8" + "@types/swagger-ui-react": "npm:5" + "@types/webpack-env": "npm:1.18.8" bcryptjs: "npm:^3.0.2" class-variance-authority: "npm:^0.7.1" clsx: "npm:^2.1.1" @@ -6798,14 +6798,14 @@ __metadata: eslint-config-next: "npm:15.3.4" eslint-config-prettier: "npm:10.1.5" lucide-react: "npm:^0.511.0" - next: "npm:15.4.0-canary.85" + next: "npm:15.4.0-canary.94" next-auth: "npm:^5.0.0-beta.25" next-swagger-doc: "npm:^0.4.1" next-themes: "npm:^0.4.6" - orval: "npm:^7.10.0" + orval: "npm:7.10.0" postcss: "npm:8.5.6" prettier: "npm:3.5.3" - prisma: "npm:6.9.0" + prisma: "npm:6.10.1" react: "npm:^19.0.0" react-day-picker: "npm:^9.7.0" react-dom: "npm:^19.0.0" @@ -6814,8 +6814,8 @@ __metadata: swagger-ui-react: "npm:^5.24.1" tailwind-merge: "npm:^3.2.0" tailwindcss: "npm:4.1.10" - ts-node: "npm:^10.9.2" - tsconfig-paths: "npm:^4.2.0" + ts-node: "npm:10.9.2" + tsconfig-paths: "npm:4.2.0" tw-animate-css: "npm:1.3.4" typescript: "npm:^5.8.3" zod: "npm:^3.25.60" @@ -7022,7 +7022,7 @@ __metadata: languageName: node linkType: hard -"napi-postinstall@npm:^0.2.2": +"napi-postinstall@npm:^0.2.4": version: 0.2.4 resolution: "napi-postinstall@npm:0.2.4" bin: @@ -7053,10 +7053,10 @@ __metadata: linkType: hard "next-auth@npm:^5.0.0-beta.25": - version: 5.0.0-beta.28 - resolution: "next-auth@npm:5.0.0-beta.28" + version: 5.0.0-beta.29 + resolution: "next-auth@npm:5.0.0-beta.29" dependencies: - "@auth/core": "npm:0.39.1" + "@auth/core": "npm:0.40.0" peerDependencies: "@simplewebauthn/browser": ^9.0.1 "@simplewebauthn/server": ^9.0.2 @@ -7070,7 +7070,7 @@ __metadata: optional: true nodemailer: optional: true - checksum: 10c0/56ab8c5e9bdbffe65191a1afa1d18b95df9f61686f9d2faca3f53098eb59491df5929540d8bdb3258a0ab8d26ff2707e6256e34212c329c624f3014652cb8701 + checksum: 10c0/2c6bada9a5f28a9a172d3ad295bfb05b648a4fced01f9988154df1ebca712cf460fb49173ada4c26de4c7ab180256f40ac19d16e2147c1c68f2a7475ab5d5ea8 languageName: node linkType: hard @@ -7100,19 +7100,19 @@ __metadata: languageName: node linkType: hard -"next@npm:15.4.0-canary.85": - version: 15.4.0-canary.85 - resolution: "next@npm:15.4.0-canary.85" +"next@npm:15.4.0-canary.94": + version: 15.4.0-canary.94 + resolution: "next@npm:15.4.0-canary.94" dependencies: - "@next/env": "npm:15.4.0-canary.85" - "@next/swc-darwin-arm64": "npm:15.4.0-canary.85" - "@next/swc-darwin-x64": "npm:15.4.0-canary.85" - "@next/swc-linux-arm64-gnu": "npm:15.4.0-canary.85" - "@next/swc-linux-arm64-musl": "npm:15.4.0-canary.85" - "@next/swc-linux-x64-gnu": "npm:15.4.0-canary.85" - "@next/swc-linux-x64-musl": "npm:15.4.0-canary.85" - "@next/swc-win32-arm64-msvc": "npm:15.4.0-canary.85" - "@next/swc-win32-x64-msvc": "npm:15.4.0-canary.85" + "@next/env": "npm:15.4.0-canary.94" + "@next/swc-darwin-arm64": "npm:15.4.0-canary.94" + "@next/swc-darwin-x64": "npm:15.4.0-canary.94" + "@next/swc-linux-arm64-gnu": "npm:15.4.0-canary.94" + "@next/swc-linux-arm64-musl": "npm:15.4.0-canary.94" + "@next/swc-linux-x64-gnu": "npm:15.4.0-canary.94" + "@next/swc-linux-x64-musl": "npm:15.4.0-canary.94" + "@next/swc-win32-arm64-msvc": "npm:15.4.0-canary.94" + "@next/swc-win32-x64-msvc": "npm:15.4.0-canary.94" "@swc/helpers": "npm:0.5.15" caniuse-lite: "npm:^1.0.30001579" postcss: "npm:8.4.31" @@ -7155,7 +7155,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 10c0/756f84e1412b690b7c4687f3da4984ed3134c571a5d1568dcf7e764e4328ed7789f1898b43490682021a3b27f38975804bc9770495ae495925aeb50cd706dfdb + checksum: 10c0/4d3a3f0f85524bb0d595a58b61e017dee584024d4190f7f2709a4dd02ff922040e206531a652d89c3e47447c9c2c2e3b84729fd52fb9db1cb88db6c46c52c537 languageName: node linkType: hard @@ -7429,7 +7429,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": +"object.values@npm:^1.1.6, object.values@npm:^1.2.1": version: 1.2.1 resolution: "object.values@npm:1.2.1" dependencies: @@ -7486,7 +7486,7 @@ __metadata: languageName: node linkType: hard -"openapi3-ts@npm:4.4.0, openapi3-ts@npm:^4.1.2, openapi3-ts@npm:^4.2.2": +"openapi3-ts@npm:4.4.0": version: 4.4.0 resolution: "openapi3-ts@npm:4.4.0" dependencies: @@ -7495,6 +7495,15 @@ __metadata: languageName: node linkType: hard +"openapi3-ts@npm:^4.1.2, openapi3-ts@npm:^4.2.2": + version: 4.5.0 + resolution: "openapi3-ts@npm:4.5.0" + dependencies: + yaml: "npm:^2.8.0" + checksum: 10c0/97de2d24e9ceffb89e1388e137e4a6e17ee57a02dce0c938a5e98b1338ac72b31e8b2ce8dd28945ad43fae8bee2a145892cb548ba5ae60b0930f1b6b79b0747d + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -7509,7 +7518,7 @@ __metadata: languageName: node linkType: hard -"orval@npm:^7.10.0": +"orval@npm:7.10.0": version: 7.10.0 resolution: "orval@npm:7.10.0" dependencies: @@ -7745,12 +7754,12 @@ __metadata: languageName: node linkType: hard -"prisma@npm:6.9.0": - version: 6.9.0 - resolution: "prisma@npm:6.9.0" +"prisma@npm:6.10.1": + version: 6.10.1 + resolution: "prisma@npm:6.10.1" dependencies: - "@prisma/config": "npm:6.9.0" - "@prisma/engines": "npm:6.9.0" + "@prisma/config": "npm:6.10.1" + "@prisma/engines": "npm:6.10.1" peerDependencies: typescript: ">=5.1.0" peerDependenciesMeta: @@ -7758,7 +7767,7 @@ __metadata: optional: true bin: prisma: build/index.js - checksum: 10c0/58217bca255ba01ecc23722b9f25f37e3c68780d3801ddd3438fc7987cd6abad5759b87d9a851725516ef035330e58ab3d56362c426f19cd22d2dccdb5bccb41 + checksum: 10c0/7708736147fae3d0d537782f74ba18e574a72ae0e4c90c2f1ba9f5f8a994d1596ce206540241f18282407f846a6d0c904d6d67c0c959fe51bab4d7d402516185 languageName: node linkType: hard @@ -8852,7 +8861,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": +"string.prototype.trimend@npm:^1.0.9": version: 1.0.9 resolution: "string.prototype.trimend@npm:1.0.9" dependencies: @@ -9193,7 +9202,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.9.2": +"ts-node@npm:10.9.2": version: 10.9.2 resolution: "ts-node@npm:10.9.2" dependencies: @@ -9252,6 +9261,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: "npm:^2.2.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -9264,17 +9284,6 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: "npm:^2.2.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea - languageName: node - linkType: hard - "tslib@npm:^1.14.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -9373,11 +9382,11 @@ __metadata: linkType: hard "typedoc-plugin-markdown@npm:^4.4.2": - version: 4.6.4 - resolution: "typedoc-plugin-markdown@npm:4.6.4" + version: 4.7.0 + resolution: "typedoc-plugin-markdown@npm:4.7.0" peerDependencies: typedoc: 0.28.x - checksum: 10c0/c5ddd363c49edf6eb848b13924b3c50af93dd8a719c24c525e0f41090b3b9fd94e4779bdc60f9ee3b7da72f316925789e00abfa2fc50b5822e94c24fe49e471c + checksum: 10c0/066cb8a0f96bb24c22069830d189904d624204b7ceaaeab78c72008ebb2c2bddb55170ae39fac31352caf20516a1a2360300cf384c9683f7b42465dc2c354bd1 languageName: node linkType: hard @@ -9493,29 +9502,29 @@ __metadata: linkType: hard "unrs-resolver@npm:^1.6.2": - version: 1.9.0 - resolution: "unrs-resolver@npm:1.9.0" + version: 1.9.2 + resolution: "unrs-resolver@npm:1.9.2" dependencies: - "@unrs/resolver-binding-android-arm-eabi": "npm:1.9.0" - "@unrs/resolver-binding-android-arm64": "npm:1.9.0" - "@unrs/resolver-binding-darwin-arm64": "npm:1.9.0" - "@unrs/resolver-binding-darwin-x64": "npm:1.9.0" - "@unrs/resolver-binding-freebsd-x64": "npm:1.9.0" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.9.0" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.9.0" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.9.0" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.9.0" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.9.0" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.9.0" - "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.9.0" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.9.0" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.9.0" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.9.0" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.9.0" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.9.0" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.9.0" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.9.0" - napi-postinstall: "npm:^0.2.2" + "@unrs/resolver-binding-android-arm-eabi": "npm:1.9.2" + "@unrs/resolver-binding-android-arm64": "npm:1.9.2" + "@unrs/resolver-binding-darwin-arm64": "npm:1.9.2" + "@unrs/resolver-binding-darwin-x64": "npm:1.9.2" + "@unrs/resolver-binding-freebsd-x64": "npm:1.9.2" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.9.2" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.9.2" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.9.2" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.9.2" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.9.2" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.9.2" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.9.2" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.9.2" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.9.2" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.9.2" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.9.2" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.9.2" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.9.2" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.9.2" + napi-postinstall: "npm:^0.2.4" dependenciesMeta: "@unrs/resolver-binding-android-arm-eabi": optional: true @@ -9555,7 +9564,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 10c0/73c184514a82197145539c0506dd6633a28fc380192b1677d31348537c2783405e7392cf2bf18b96d84b8068f502868de3ae741edd580683ddb39f10d46d49e8 + checksum: 10c0/e3481cc19ea4b25f888e2412bbd80a729b13527a41b035e784b71d1a7d4e2109b58b174adce989085eb75c787435e80ffb385db2b1598288474f53beb01438c0 languageName: node linkType: hard @@ -9854,7 +9863,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.3.4, yaml@npm:^2.5.0, yaml@npm:^2.7.1": +"yaml@npm:^2.3.4, yaml@npm:^2.5.0, yaml@npm:^2.7.1, yaml@npm:^2.8.0": version: 2.8.0 resolution: "yaml@npm:2.8.0" bin: